Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Block Editor: Implement new colors hook. #16781

Merged
merged 15 commits into from
Oct 25, 2019

Conversation

epiqueras
Copy link
Contributor

Relates to #15450

Description

This PR continues to explore a new way to share Common Block Code using React hooks, see #16229 for prior art.

More specifically, it combines the functionality of the withColors HOC and PanelColorSettings with InspectorControls into an easy to use useColors hook.

To be able to reference the block edit context from within hooks, e.g. attributes and setAttributes, a few changes were made in @wordpress/block-editor's block-edit and a useBlockEditContext hook was introduced.

The new colors hook takes an array of color configuration objects for its first parameter. These objects draw inspiration from colorTypes in the HOC counterpart, but are easier to reason about, and support a few extra properties:

  • name: The name of the color.
    E.g. 'backgroundColor'.

  • attribute: The name of the corresponding CSS attribute in camel-case. Defaults to name.
    E.g. 'backgroundColor'.

  • panelLabel: The color setting's label in the inspector panel. Defaults to startCase( name ).
    E.g. 'Background Color'.

  • componentName: The name of the returned component for wrapping children with color. Defaults to panelLabel.replace( /\s/g, '' ).
    E.g. 'BackgroundColor'.

  • color: An initial value for the color when one isn't set.
    E.g. '#fcba03'.

The second parameter is an optional hooks dependency array for cases where you have closures in your configuration objects, and the third is an optional string to overwrite the default panel title, __( 'Color Settings' ).

The hook will return a color component for each configuration object and a single inspector controls panel preconfigured for all the configuration objects passed. If you want to break up your colors into multiple panels, you can just break up your array of configuration objects into different calls to the hook as each call will return a different inspector controls panel.

Color components merge all of their top level children's style props with the relevant attribute and its current value, giving preference to current props. E.g. style: { color: attributes.textColor, ...style }. They also have static properties color and setColor, for directly reading and setting the color's value respectively.

Here's a simple example:

const MyColorfulHeadings = ( { attributes: { textColor }, setAttributes } ) => {
	const { TextColor, InspectorControlsColorPanel } = useColors(
		[ { name: 'textColor', attribute: 'color' } ],
		[]
	);

	TextColor.color; // `textColor`
	TextColor.setColor; // `( newColor ) => setAttributes( { textColor: newColor } )`

	return (
		<>
			{ /* This sets up the panel in the inspector. */ }
			{ InspectorControlsColorPanel }

			<TextColor>
				{ /* Color is applied to all children here. */ }
				<h1>Heading</h1>
				<h2>Heading</h2>
				{ /* Custom components work too! */ }
				<RichText />
			</TextColor>
		</>
	);
};

A real life example can be seen in this commit, aaf3e64, where I swap the HOC usage for the new hook in the heading block's edit function. Of course, if we decide to land a change like that, we would need to add a block deprecated entry and modify the new block save appropriately. It might make more sense to just use the new hook going forwards, but we should also consider that the current HOC breaks validation in a couple of ways. Namely, when settings are not available during validation, #16489, and when settings change.

New tests and documentation should be written once the approach is validated.

How has this been tested?

The color functionality of the heading block's edit mode was tested and it worked as expected.

Once the approach is validated, proper tests need to be written.

Types of Changes

New Feature: Add a new useColors hook to @wordpress/block-editor for making it easier to build blocks with color functionality.

New Feature: Add a new useBlockEditContext hook to @wordpress/block-editor for enabling the development of hooks that access block edit context, e.g. attributes and setAttributes.

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.

@epiqueras epiqueras added [Feature] Block API API that allows to express the block paradigm. [Feature] Extensibility The ability to extend blocks or the editing experience labels Jul 27, 2019
@epiqueras epiqueras added this to the Future milestone Jul 27, 2019
@epiqueras epiqueras self-assigned this Jul 27, 2019
Copy link
Member

@jorgefilipecosta jorgefilipecosta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @epiqueras, thank you for going deep into this task. It seems the most significant simplification this new API brings is that the users don't need to create their own PanelColorSettings component, blocks still need to repeat some code on the save function and on the attribute definitions do you think it is possible to simplify these areas?

);

export default function useColors(
colorConfigs,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should have a useColors or a useColor hook used multiple times.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Plural, because we want one panel inspector controls per list of colors, not per color.

)
);

const createSetColor = memoize( ( setAttributes, name ) => ( newColor ) =>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we may have a memory leak here, each time setAttributes changes, we memoize another object, never cleaning old references.
Do we really need this memoize? The setters are already being created inside a useMemo hook.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, otherwise a single attribute change would recreate all setters. setAttributes shouldn't change often and we can always set a maxSize.

);

const InspectorControlsColorPanel = ( { title, colorSettings } ) => (
<InspectorControls>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we don't need to assume the panel is nested inside InspectorControls and we can left the choice for the user.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where else would you render it?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In a placeholder for example as part of a flow to initialize a block.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would rather expose that under InspectorControlsColorPanel.ColorPanel. I think the inspector usage is the most common.

import PanelColorSettings from '../panel-color-settings';
import { useBlockEditContext } from '../block-edit';

const createComponent = memoize( ( attribute, color ) => ( { children } ) =>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we have a memory leak each time the attributes change we memoize a different version, never cleaning old memoizations.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll set a maxSize.

);

const createSetColor = memoize( ( setAttributes, name ) => ( newColor ) =>
setAttributes( { [ name ]: newColor } )
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to verify if we should set the named color attribute or the customColor attribute. Currently, there is a regression if I set the text color to a custom color I get the following markup:

<!-- wp:heading {"textColor":"#175d7d"} -->
<h2 class="has-175-d-7-d-color">fdgdfgdfgdf</h2>
<!-- /wp:heading -->

It is not possible to use a single attribute e.g: red is a valid custom color string but may also be a named color with a slightly different "red".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need a differentiation between custom and not custom colors? It just makes validation fail and makes the usage of the colors API more complicated.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I may set a custom color of "red" (is a valid CSS color), but also may have a named color "red" (or a previous theme may have had it in the past), how can I know if should set an inline style or use a class?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should stick to inline styles for this. Otherwise changing themes/color settings invalidates blocks.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason the named colors were introduce was to avoid inline styles. We want to avoid styles as much as possible. Currently, changing themes/colors do not invalidate blocks, the named colors may be applied if the new theme does not define classes for them but that was something we wanted as the colors set when an old theme was used may not make sense in the new theme.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Pullquote problem is an exception because even for some named colors we want to use inline styles (for border styles which theme may not have defined as class) and depending on the block style the same color may be a border style (inline) or a background style (class), so the block works in different ways, the problem does not happen in other blocks.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess the correct way to implement that functionality on pullquote would have been to have different attributes one for border and other for the background and depending on the block style we should options to pick one color or the other.
The problem with this other approach would have been that when changing styles the border-color would not be a background color right away and the previews also would not reflect the chosen colors.
We should think about ways to deal with the problem but it is a special situation and I'm not sure the API's we offer need to take that case in consideration.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, but why not prevent developers from shooting themselves in the foot if we can?

I think that the fact that this happens is a code smell.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The use of classes provides interesting use cases.
E.g.: if my site uses two colors primary and secondary right now I can change all the primary colors and secondary colors around my website including existing blocks by changing the color value in the class and in the palette.
How can we do something similar now and globally change colors on the websites?
People build interesting mechanisms, e.g., allow users to globally change block colors in all the blocks of the website from the customizer
https://richtabor.com/gutenberg-customizer-colors/.
Can we keep back-compatibility with these solutions when we use this hook in the paragraph and button blocks?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That behavior belongs in a different API. Certain things have to be done differently to avoid invalidations when you use classes and I'd rather not overcomplicate a single hook when we can have a separate useThemeColor or something like that.


const InspectorControlsColorPanel = ( { title, colorSettings } ) => (
<InspectorControls>
<PanelColorSettings
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should allow the hook users to add children that appear inside PanelColorSettings and these children them selfs may depend on the color values. E.g: it is very common to add contrast checking UI inside this panel.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't we back contract checking into the hook somehow?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

back contract checking

Not sure what that means.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh got it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah we could, make it an option and turn it on by default.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll add it to the "next steps".

</InspectorControls>
);

export default function useColors(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems users of the hook can not use their own color palette, currently, our HOC's provide that option and table block uses it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah we can support that as well. I didn't want to make the initial prototype harder to read so I minimized functionality to the most common use case.

</InspectorControls>
);

export default function useColors(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we implement this hook as experimental (at least for one release)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure

Copy link
Contributor

@youknowriad youknowriad Jul 27, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe instead of making it experimental it could be just a utility used in the block library module for now, we don't have to expose it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't it get more feedback as experimental?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we interested in third-party feedback now? I think we should first use it in our blocks (multiple ones). I don't feel strongly though.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we interested in third-party feedback now?

Why not?

@epiqueras
Copy link
Contributor Author

epiqueras commented Jul 27, 2019

Hi @jorgefilipecosta , thanks for the quick review! 😄

blocks still need to repeat some code on the save function and on the attribute definition do you think it is possible to simplify these areas?

There isn't much we can do for the save function, but we could look at hijacking the attributes definitions although I don't know if that would play nicely with server-side block registration.

Next Steps:

  • Add has-x-color class names.
  • Avoid memory leaks: Block Editor: Implement new colors hook. #16781 (comment).
  • Bake in optional contrast checking.
  • Explore hijacking attributes definitions.
  • Expose InspectorControlsColorPanel.ColorPanel.
  • Mark hook as experimental.
  • Support children inside the panel.
  • Support custom color palettes.

export default function useColors(
colorConfigs,
deps = [],
panelTitle = __( 'Color Settings' )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel deps should always be the last param (to match react) and maybe instead of paneTitle we could have a config object (as a way to add other customizations if needed)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel deps should always be the last param (to match react)

It's more about which parameters are used more often. Here you would have had people always passing undefined, because they wanted the default panelTitle.

we could have a config object (as a way to add other customizations if needed)

Now that we need children inside the panel and optional contrast checking, I will make it an object and make deps go last as some of the object's properties might also have dependencies.

// if not already set explicitly through props.
Children.map( children, ( child ) =>
cloneElement( child, {
style: { [ attribute ]: color, ...child.props.style },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd have thought that sometimes it should be classname for the color palette colors. Why it's just style?
Also as mentioned privately, I feel this component adds more complexity that it solves compared to just returning the props that should be applied to any wrapper the block author decides to apply the color for.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd have thought that sometimes it should be classname for the color palette colors. Why it's just style?

the current HOC breaks validation in a couple of ways. Namely, when settings are not available during validation, #16489, and when settings change.

This is because of using class names. We should avoid it.

Also as mentioned privately, I feel this component adds more complexity that it solves compared to just returning the props that should be applied to any wrapper the block author decides to apply the color for.

They can still do that by accessing .color or .setColor. This just saves a lot of code for the most common use case.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure I understand properly here but using classNames is an important choice we did a long time ago and I don't think we can/should revert to inline styles here. That's one of the main purposes of the color palettes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #16489

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's not a reason to abandon classNames though? we should just make sure they're available right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why add that extra complexity and implicitly make the block editor depend on the editor which is something we wanted to avoid?

Styles are meant to be used for cases like this where values are dynamically calculated.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I provided more context to the pullquote problem in #16781 (comment).

onRemove={ () => onReplace( [] ) }
className={ classnames( className, {
[ `has-text-align-${ align }` ]: align,
'has-text-color': TextColor.color,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be added automatically by the hook?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it common? I haven't seen it much.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not all the blocks may want these classes to be added, I think blocks should add them explicitly if they need them.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consistency is good IMO. I saw some people asking for this kind of classes. Could be opt-out. At least we should think about it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't hurt to add them.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @epiqueras, the hook handles the addition of has-text-color class right? Can we remove it from the block?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, good catch!

Done.

)
);

const createSetColor = memoize( ( setAttributes, name ) => ( newColor ) =>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using a maxSize is not a perfect solution if we have many blocks that need to be rerendered at the same our cache may be invalid when it should not (setAttributes is specific per block).
What if in our hook before the current useMemo we have another useMemo that depends on setAttributes and colorCofig and returns an object whose keys are the name and whose value is the setter function? Then when we need the setter we can just retrieve it from that object.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would recreate all setters when only one needs to change.

I can just create the memoized function inside the hook so that every instance gets its own cache, with a maxSize of colorConfigs.length, and clear it on unmount.

@epiqueras epiqueras force-pushed the try/making-colors-common-code-simpler branch from 064105b to 40e399e Compare July 29, 2019 16:49
@epiqueras
Copy link
Contributor Author

  • Add has-x-color class names.
  • Avoid memory leaks: Block Editor: Implement new colors hook. #16781 (comment).
  • Bake in optional contrast checking.
  • Explore hijacking attributes definitions.
  • Expose InspectorControlsColorPanel.ColorPanel.
  • Mark hook as experimental.
  • Support children inside the panel.
  • Support custom color palettes.

Done! 🚀

const { TextColor, InspectorControlsColorPanel } = __experimentalUseColors(
[ { name: 'textColor', attribute: 'color' } ],
{
contrastCheckerProps: { backgroundColor: 'white', isLargeText: true },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do you decide which color from the first argument to use in the color contrast checks?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It checks all of them.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should not check the contrast of all the colors. Imagining a scenario where we use the hook with background color and text color, the contrast checked should not check the background color.
Another point is that I think we should not hardcode a color for contrast checking (currently we assume the background is always white). Themes may set the heading background to block, and in that case, white text color is perfectly fine.
I think users should be able to configure the color pairs used in contrast checking.
We currently also have some mechanisms to retrieve colors using browser computed styles functions when they are not set. This mechanism will need to be improved, e.g., it was created before nesting existed and didn't handle it. As an example of the imporvement needed for nesting, If we have a heading with black color inside a group block with block background color if the theme does not explicitly set a heading background color we should show a contrast warning.
Having all contrast functionality in this hook makes it very huge. I think the contrast checking should be outside of this hook, going in the direction of what @mcsf referred (multiple hooks) the developers use useColor for the color logic useContrast for the contrast logic.
The contrast hook can contain the logic of the fallback styles we currently have, and receive some color values retrieved from useColors and simply returns a warning message or null.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should not check the contrast of all the colors. Imagining a scenario where we use the hook with background color and text color, the contrast checked should not check the background color.

They can separate it into two hook calls or provide their own custom ConstrastChecker child.

Another point is that I think we should not hardcode a color for contrast checking (currently we assume the background is always white). Themes may set the heading background to block, and in that case, white text color is perfectly fine.

Nothing stops that backgroundColor property from being a variable.

This mechanism will need to be improved, e.g., it was created before nesting existed and didn't handle it. As an example of the imporvement needed for nesting, If we have a heading with black color inside a group block with block background color if the theme does not explicitly set a heading background color we should show a contrast warning.

I think that sort of contrast checking behavior belongs in another hook in another PR.

Copy link
Contributor

@mcsf mcsf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work here. I think these are some of the present challenges:

  • Making sure we aren't getting lost in the web of memoised objects and dependencies. That is, in every useCallback, useMemo or memoize context, are we nesting too deeply? Can certain things move up in the context, so that less things are exposed in their closures?
  • Trying to flatten the module a bit could help shed light on this and improve maintenance. In this process we could isolate these — if I may use a term — constructors (the functions passed to useMemo) as named functions.
  • Bonus question: right now useColors is one large hook mostly only relying on useBlockEditContext and stock React hooks. Can it be broken up into more (for now private) Gutenberg hooks?

In terms of interface, I think we're in a better position already, but:

  • I wonder if we should learn from React and prefer smaller surfaces, e.g. how useState encourages the separation of stateful objects by separately calling [ foo, setFoo ] = useState(…); [ bar, setBar ] = useState( … ); rather than operating on larger objects such as, hypothetically, { foo, setFoo, bar, setBar } = ...; .
  • While I see the advantages in immediate ease of use, there's something that feels off about the fact that, in the Heading example, TextColor and friends are completely detached from the attributes and setAttributes which are arguments of the very function we are in! I realise that those same objects are used inside useColors through the BlockEdit context, but I wonder if working so hard to provide "magic" behaviour could harm the developer experience at some point.

),
{ maxSize: colorConfigs.length }
),
[ colorConfigs.length ]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I take it that relying on colorConfigs.length was a trade-off between the convenience for the hook consumer of not having to cache colorConfigs, while retaining some sort of relationship between the input and the memo?

I can see why it works, but it's strictly speaking not correct. Just noting it here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For each use of the hook we need a memoized function with a cache space for each item in colorConfigs. That's the usage of the length here. It's the only dependency, the array itself is not a dependency.

),
[ colorConfigs.length ]
);
const createSetColor = useMemo(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

useCallback is likely more adequate here and in similar places. Why useMemo?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid calling memoize unnecessarily.

@epiqueras
Copy link
Contributor Author

Thanks for the review.

Making sure we aren't getting lost in the web of memoised objects and dependencies. That is, in every useCallback, useMemo or memoize context, are we nesting too deeply? Can certain things move up in the context, so that less things are exposed in their closures?

Not without adding more parameters to functions and making things harder to read.

are exposed in their closures

Not sure what that means.

Bonus question: right now useColors is one large hook mostly only relying on useBlockEditContext and stock React hooks. Can it be broken up into more (for now private) Gutenberg hooks?

Yes, but I can't see them being used anywhere else so it seems a bit premature.

I wonder if we should learn from React and prefer smaller surfaces, e.g. how useState encourages the separation of stateful objects by separately calling [ foo, setFoo ] = useState(…); [ bar, setBar ] = useState( … ); rather than operating on larger objects such as, hypothetically, { foo, setFoo, bar, setBar } = ...;

We want to be able to group colors so that they are all under the same inspector panel.

While I see the advantages in immediate ease of use, there's something that feels off about the fact that, in the Heading example, TextColor and friends are completely detached from the attributes and setAttributes which are arguments of the very function we are in! I realise that those same objects are used inside useColors through the BlockEdit context, but I wonder if working so hard to provide "magic" behaviour could harm the developer experience at some point.

I don't think it's magic, the whole point of having this utility is to not have to use attributes directly.

acc[ componentName ] = createComponent( attribute, color );
acc[ componentName ].displayName = componentName;
acc[ componentName ].color = color;
acc[ componentName ].setColor = createSetColor( name );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The combination of memoize with useMemo works and should be performant, but it took me some time to understand it.
Can we extract the setters and components creation to its own useMemo?
e.g: something like:

const colorSetters = useMemo(
	() => {
	return reduce( colorNames, ( accumulator, colorName ) => {
		accumulator[ colorName ] = ( newColor ) => setAttributes( { [ colorName ]: newColor } 			);
	} ),
	[ colorNames, setAttributes ]
);
const colorComponents = useMemo(...

Color colorNames would porbably come from another small useMemo hook.

We then would have a final useMemo that depends on colorSetters, colorComponents and probably colorConfig and generates the final object.
This approach probably has the disadvantage that as the colorComponents will depend on color value if the value of color changes all the colorComponents will be regenerated instead of just the color component of the color that changed, but I don't think this has a noticeable performance impact and the code simplification it brings may worth it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see how that code would look simpler. If anything, it creates more code and a soup of hook dependencies which are already not the easiest to understand.

@@ -12,7 +12,7 @@ import { Component } from '@wordpress/element';
* Internal dependencies
*/
import Edit from './edit';
import { BlockEditContextProvider } from './context';
import { BlockEditContextProvider, useBlockEditContext } from './context';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need the changes in this file, since you can access clientId from the context, you can call updateBlockAttributes and getBlockAttributes without extra context values.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That wouldn't subscribe the consumer to changes though, right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

useSelect would

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh right. I was thinking of the Block API functions. I'll change it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It just feels a lot clunkier to have to use the context to get the id and then pass it to useSelect.

Don't you think a useBlockEditContext with attributes and the setter will be very useful for people building custom hooks that need access to attributes?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think so personally, I feel like the context should contain the minimum possible things because

  • these are new APIs
  • semantically speaking, the context says, we're editing that block (id) and it should be enough for the consumer.

if we add these, the question becomes: Will we add a new value there each time we need another selector/action?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will we add a new value there each time we need another selector/action?

I don't think we could, because it would be limited to the props that BlockEdit receives. I just tend to favor context over selector/subscription boilerplate, but I can see why this aligns more with the rest of the codebase and see the value in having a single way of doing things:

69865dd

@youknowriad
Copy link
Contributor

Can we find a path forward here @jorgefilipecosta @mcsf @epiqueras ?

Since it's experimental, it doesn't have to be perfect from the start. I'd like us to follow-up on this, try to use it in several blocks and maybe expand to other properties after that (gradients, font sizes...)

Copy link
Member

@jorgefilipecosta jorgefilipecosta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @epiqueras I did a new set of tests, and I noticed the following bugs:

When I select a color, the color selected UI (with a right mark) does not appear above the selected color.
Screenshot 2019-10-24 at 20 07 10
When I select a preset color and then open the custom color panel, the value by default is not the one I select from the preset. The value is a random one (making small color adjustments much harder). Maybe related to the previous bug, where it assumes there is no color selection.
Screenshot 2019-10-24 at 20 10 42
When I select a preset color, the color indication always says I selected the
white color:
Screenshot 2019-10-24 at 20 07 10
When I select a custom color, there is no color indication at all.
It also may be related to the first bug.

The contrast checker only triggers warnings for preset colors, if I select a custom color without enough contrast the warning does not appear:
Screenshot 2019-10-24 at 20 13 20

const { TextColor, InspectorControlsColorPanel } = __experimentalUseColors(
[ { name: 'textColor', attribute: 'color' } ],
{
contrastCheckerProps: { backgroundColor: 'white', isLargeText: true },
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should on the heading we use a hardcoded value for background on contracts checking of white? By default, the default WordPress theme does not contain a white background.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, I changed it to detect the background of the nearest parent that has one.

let className = child.props.className;
let style = child.props.style;
if ( color ) {
className = `${ child.props.className } has-${ kebabCase(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a small function that computes the class name from the color slug getColorClassName could we use it here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That one works slightly differently. It takes a kebab cased context name and the slug. Here we have both the color and attribute name in camel case and need to convert one or both depending on whether it's a custom color or not.

<InspectorControlsColorPanel { ...wrappedColorPanelProps } />
),
};
}, [ attributes, setAttributes, ...deps ] );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should color config be a dependency here? colorConfig may totally change the expected output of the component. I guess we did not added it as a dependency because if users pass an array inline on each re-render a new reference is passed, could we automatically generate the dependencies from the config e.g: generate an array of [ name, attribute, name, attribute ...], If we also pass all properties of panel setting props we could avoid the need for dependencies.

Currently, we are relying on devs passing the dependencies and I think it will be something developers will easily miss.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

colorConfig shouldn't be dynamic in most cases. If it is, they can use deps to invalidate it. This is a better DX than having to memoize colorConfig for all simple use cases.

} ) {
const { TextColor, InspectorControlsColorPanel } = __experimentalUseColors(
[ { name: 'textColor', attribute: 'color' } ],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At the start, our colors API explicitly made block developers identify what was the attribute and what was the CSS property:

colorContext: 'color',
colorAttribute: 'textColor',

People provided feedback in reviews that maybe we could just use something in this format { textColor: 'color' }, where the key represents the Gutenberg attribute and the value of the CSS context/property where the color is used. Would not this format fit here? What were the reasons for the change and go back to explicitly identify the Gutenberg attribute and CSS property?

We have functions and docs where we call the CSS property 'color' the color context. And currently, some code that exists outside of the hook calls 'textColor' colorAttributeName. I think naming 'color' attribute may be confusing. Could we keep the current name 'context'?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{ textColor: 'color' } is super confusing and not self explanatory.

color here is an attribute, it's not context. I think it makes a lot more sense to stick to the terminology that the web platform uses.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @epiqueras, The problem is that the term attribute in Gutenberg has a very specific meaning. I think people will get confused.
On the web, we normally call "color", "background-color" CSS properties. I think if we call "property" we still stick to the terminology that the web platform uses while removing a source of possible confusion for developers.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right, property makes more sense.

return createBlock( 'core/paragraph' );
}
{ InspectorControlsColorPanel }
<TextColor>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems this component would also be useful in the save function as the classes/styles we should add follow the same logic. Do you think it would be possible to have something identical there?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that would be nice, but first we need to mock the React dispatcher in our serializer so that hooks don't throw errors.

@epiqueras
Copy link
Contributor Author

I did a new set of tests, and I noticed the following bugs:

All fixed now 😄!

@@ -8,7 +8,7 @@ export { default as AlignmentToolbar } from './alignment-toolbar';
export { default as Autocomplete } from './autocomplete';
export { default as BlockAlignmentToolbar } from './block-alignment-toolbar';
export { default as BlockControls } from './block-controls';
export { default as BlockEdit } from './block-edit';
export { default as BlockEdit, useBlockEditContext } from './block-edit';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add this export also to the native version of the file packages/block-editor/src/components/index.native.js?

Otherwise, headings on mobile will break.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, good catch!

Copy link
Member

@jorgefilipecosta jorgefilipecosta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for iterating and fixing all issues 👍 I confirm that everything seems to be working as expected now.
I left two suggestions one related to mobile, and one related to calling property instead of attribute to decrease the chances of confusion with Gutenberg attributes. I leave the final decision on the suggestions to you.
I think this is ready to merge. Awesome work during all these iterations, and thank you for bringing this to the finish line!

] )( HeadingEdit );
export default withFallbackStyles( ( node ) => {
let backgroundColor = getComputedStyle( node ).backgroundColor;
while ( backgroundColor === 'rgba(0, 0, 0, 0)' && node.parentNode ) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice improvement 👍

@epiqueras
Copy link
Contributor Author

I left two suggestions one related to mobile, and one related to calling property instead of attribute to decrease the chances of confusion with Gutenberg attributes. I leave the final decision on the suggestions to you.

I've implemented both.

I think this is ready to merge. Awesome work during all these iterations, and thank you for bringing this to the finish line!

Thanks for all the reviews!

@epiqueras epiqueras merged commit 434bb66 into master Oct 25, 2019
@epiqueras epiqueras deleted the try/making-colors-common-code-simpler branch October 25, 2019 21:25
} ) {
const { TextColor, InspectorControlsColorPanel } = __experimentalUseColors(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work, let's try to open follow-up PRs to use in other blocks to see how it behaves, if it's good enough.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does <TextColor> do? This doesn't seem to be documented anywhere.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It applies the text color as inline style to the wrapped component.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not pass the style directly to the element?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's less verbose this way.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm on the fence personally, if it's just about "style", I guess being explicit is better (passing styles). But I believe it also handles classNames and merging these props which ultiimately can result in a lot of duplicated code.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks a bit like magic right now. It's not very obvious what it does. I'll look around sometime to see how it works.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I believe it also handles classNames and merging these props which ultiimately can result in a lot of duplicated code.

Yes

export default compose( [
withColors( 'backgroundColor', { textColor: 'color' } ),
] )( HeadingEdit );
export default withFallbackStyles( ( node ) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain Why did we add this new behavior? (or where was it handled before?
also, is this something that can be absorbed by the hook somehow? Is this specific to the heading block.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain Why did we add this new behavior?

For the background value of the contrast checker.

or where was it handled before?

The Heading block did not have a contrast checker.

is this something that can be absorbed by the hook somehow? Is this specific to the heading block.

No it's not specific, it could potentially be useful for any block that changes text colors, but uses a parent background.

I think that if the contrast checker config is provided to useColors without a background value, the hook should somehow default to doing this parent traversal, what do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that if the contrast checker config is provided to useColors without a background value, the hook should somehow default to doing this parent traversal, what do you think?

This means that it will be automatically handled by the hook right? I think that's better. I wonder if we need a way to disable it if needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, what do you think about this proposal?

#18148 (comment)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #18237.

@youknowriad youknowriad modified the milestones: Future, Gutenberg 6.8 Oct 28, 2019
SergioEstevao pushed a commit that referenced this pull request Nov 1, 2019
* Adds correct escaping for urls (#17932)

* Add an apiFetch middleware to automatically handle media upload failures (#17858)

* Add an apiFetch middleware to automatically handle media upload failures

* Remove the attachement on failures

* Handle errors properly

* limit the media upload middleware to the 500 responses

* Fix the error handling and unit tests

* Api Fetch: Check for 502s and parse uncaught errors in Media Upload middleware.

* Fix: Gradient presets to verify some MU kses rules (#17940)

* Bump plugin version to 6.7.0-rc.1

* Code Style: Change name of accumulated variables when using reduce function (#17893)

* Fix issue-7378 - change name of accumulated variables when using reduce function

* fix issue-7378 - update variables names

* fix issue-7378 - update variables names

* Fix:Image Block: Hide 'noreferrer' and 'noopener' in Link Rel (#17398)

* Update the regex used when removing NEW_TAB_REL and add trimming (+2 squashed commits)
Squashed commits:
[cf71759c3] Accessibility:Image Block:Link Editor: Move Link Rel field below Open new tab toggle
[310a23c33] Fix:Image Block:Link Editor: Hide 'noreferrer' and 'noopener' in Link Rel field

* post rebases fixes


Co-authored-by: Jorge Costa <[email protected]>

* Change Cover block min height input step size to 1 (#17927)

* chore(release): publish

 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]

* Update changelogs after the npm release

* Prevent prependHttp from failing if url is not defined (#17928)

* Check that url is defined before passing into prependHttp

* Shift check from component to url lib

* List block: move default style (#17958)

* Storybook: Add stories for Checkbox control component (#17891)

* Add checkbox control stories for Storybook

* Update README example to match story, useState

* Apply suggestions from code review

👍

Co-Authored-By: Enrique Piqueras <[email protected]>

* Update story to match README

* Add variants for heading, label, help

* Update packages/components/src/checkbox-control/README.md

Co-Authored-By: Grzegorz (Greg) Ziółkowski <[email protected]>

* Add Knobs addon to Storybook

* Move storybook addon to dev-dependencies

* Solve lint dependency by excluding stories, dont need in package.json

* Apply suggestions from code review

Co-Authored-By: Enrique Piqueras <[email protected]>

* Update with story level decorators

* Switch back to global withKnobs, per story not working

* Change the name of the example in ChecboxControl story

* Try with the uppercase name of the component exported from stories

* RNMobile Add size options to mobile  image block (#17245)

* [RNMobile] Native mobile release v1.11.0 (#17181)

* [RNMobile] Fix crash when adding separator

* Build: remove global install of latest npm since we want to use the paired node/npm version (#17134)

* Build: remove global install of latest npm since we want to use the paired node/npm version
* Also update travis to remove --latest-npm flag

* [RNMobile] Try dark mode (iOS) (#17067)

* Adding dark mode component implemented on list and list block

* Adding DarkMode handling to RichText, ToolBar and SafeArea

* Mobile: Using DarkMode as HOC

* iOS DarkMode: Modified colors on block list and block container

* iOS DarkMode: Improved Header Toolbar colors

* iOS DarkMode: Removing background from buttons

* iOS DarkMode warning and unsupported

* iOS DarkMode: MediaPlaceholder

* iOS DarkMode: BottomSheets

* iOS DarkMode: Inserter

* iOS DarkMode: DefaultBlockAppender

* iOS DarkMode: PostTite

* Update hardcoded colors with variables

* iOS DarkMode: Fix bottom-sheet cell value color

* iOS DarkMode: More - PageBreak - Add Block Here

* iOS DarkMode: Better text color

* iOS Darkmode: Code block

* iOS DarkMode: HTML View

* iOS DarkMode: Improve colors on SafeArea

* Fix toolbar not avoiding keyboard regression

* Fix native unit tests

* Fix gutenberg-mobile unit tests

* Adding RNDarkMode mocks

* RNMobile: Fix crash when viewing HTML on iOS

* [RNMobile] Remove toolbar from html view

* [RNMobile] Fix MaxListenersExceededWarning caused by dark-mode event emitter (#17186)

* Fix MaxListenersExceededWarning caused by dark-mode event emitter

* Checking for setMaxListeners trying to avoid CI error

* Adding remove listener to DarkMode HOC

* DarkMode: Binding this.onModeChanged to `this`

* DarkMode: Adding conditional needed to pass UI Tests on CI

* Fix focus title on new posts regression (#17180)

* BottomSheet: Setting DashIcon color directly when theme is default (light) (#17193)

* Activate Travis CI on rnmobile/master branch (#17229)

* Added ability to update image size options (sizeSlug) through a new InspectorControl Cell that leads to a Picker.

* Added a style for Size Inspector Controls cell to align it will other cells that have icons.

* Add native support for the MediaText block (#16305)

* First working version of the MediaText component for native mobile

* Fix adding a block to an innerblock list

* Disable mediaText on production

* MediaText native: improve editor visuals

* Move BlockToolbar from BlockList to Layout

* Remove BlockEditorProvider from BlockList and add native version of EditorProvider to Editor. Plus support InsertionPoint and BlockListAppender

* Update BlockMover for native to hide if locked or if it's the only block

* Make the vertical align button work, add more styling options for toolbar buttons

* Make sure registerCoreBlocks does not break in production

* Copy docblock comment from the web version for registerCoreBlocks

* Fix focusing on the media placeholder

* Only support adding image for now

* Update usage of MediaPlaceholder in MediaContainer

* Enable autoScroll for just the out most block list

* Fix JS Unit tests

* Roll back to IconButton refactor and fix tests

* Fix BlockVerticalAlignmentToolbar buttons style on mobile

* Fix thing for web and ensure ariaPressed is always passed down

* Use AriaPressed directly to style SVG on mobile

* Update snapshots

* Swtiched to react-native Modal onDismiss property for signaling Picker is ready to show

* Added a prop for catching modal dismissal on Android. (onDismiss is iOS only and onModalHide works on Android but breaks on iOS)

* Added icon for Inspector Controls size option. Removed style we no longer need.

* Added title to size option iOS ActionSheet and left alignstyle to size options BottomSheet

* MediaUpload and MediaPlaceholder unify props (#17145)

* Unify media placeholder and upload props within media-text (#17268)

* [RNMobile] Fix dismiss keyboard button for the post title (#17260)

* Set unused functions to undefined instead of false in BottomSheet Modal props

* Recover border colors (#17269)

* [RNMobile] Insure tapping at end of post inserts at end

Previously, tapping at the end of the post would insert a block
immediately after the currently selected block. In addition, this commit
is cleaning out a few unusued props in the block-list file.

* Support group block on mobile (#17251)

* First working version of the MediaText component for native mobile

* Fix adding a block to an innerblock list

* Disable mediaText on production

* MediaText native: improve editor visuals

* Move BlockToolbar from BlockList to Layout

* Remove BlockEditorProvider from BlockList and add native version of EditorProvider to Editor. Plus support InsertionPoint and BlockListAppender

* Update BlockMover for native to hide if locked or if it's the only block

* Make the vertical align button work, add more styling options for toolbar buttons

* Make sure registerCoreBlocks does not break in production

* Copy docblock comment from the web version for registerCoreBlocks

* Fix focusing on the media placeholder

* Only support adding image for now

* Update usage of MediaPlaceholder in MediaContainer

* Enable autoScroll for just the out most block list

* Fix JS Unit tests

* Roll back to IconButton refactor and fix tests

* Fix BlockVerticalAlignmentToolbar buttons style on mobile

* Fix thing for web and ensure ariaPressed is always passed down

* Use AriaPressed directly to style SVG on mobile

* Update snapshots

* Support group block on mobile

* Extend shouldShowInsertionPoint condition to be false when group is selected

* Code refactor

* Update package-lock

* Removing old style reference.

* Moved Picker for image size options into new ImageSizePicker component. Cleaned up sizeOptionLabels.

* Updated total left margin on Android Image size options to be 24 px instead of 28 px

* Image Size options hidden behind __DEV__ flag

* Remove redundant bg color within button appender (#17325)

* [RNMobile] DarkMode improvements (#17309)

* Remove the need to import `useStyle` and pass the theme prop on every instance that `withStyle` is used

* Implement dark-mode refactor on all components

* Fix broken native tests

* Fix default block appender background color on DarkMode

* DarkMode: Make `useStyle` a class function

* Cleaned up default true properties and replaced code with lodash map.

* Updated to use BottomSheetPickerCell. Eliminated code, but size options now open over top inspector controls menu.

* Added leftalign to PickerCell.

* [RNMobile] Add autosave to mobile apps (#17329)

* [RNMobile] Fix crash when adding separator

* Build: remove global install of latest npm since we want to use the paired node/npm version (#17134)

* Build: remove global install of latest npm since we want to use the paired node/npm version
* Also update travis to remove --latest-npm flag

* [RNMobile] Try dark mode (iOS) (#17067)

* Adding dark mode component implemented on list and list block

* Adding DarkMode handling to RichText, ToolBar and SafeArea

* Mobile: Using DarkMode as HOC

* iOS DarkMode: Modified colors on block list and block container

* iOS DarkMode: Improved Header Toolbar colors

* iOS DarkMode: Removing background from buttons

* iOS DarkMode warning and unsupported

* iOS DarkMode: MediaPlaceholder

* iOS DarkMode: BottomSheets

* iOS DarkMode: Inserter

* iOS DarkMode: DefaultBlockAppender

* iOS DarkMode: PostTite

* Update hardcoded colors with variables

* iOS DarkMode: Fix bottom-sheet cell value color

* iOS DarkMode: More - PageBreak - Add Block Here

* iOS DarkMode: Better text color

* iOS Darkmode: Code block

* iOS DarkMode: HTML View

* iOS DarkMode: Improve colors on SafeArea

* Fix toolbar not avoiding keyboard regression

* Fix native unit tests

* Fix gutenberg-mobile unit tests

* Adding RNDarkMode mocks

* RNMobile: Fix crash when viewing HTML on iOS

* [RNMobile] Remove toolbar from html view

* [RNMobile] Fix MaxListenersExceededWarning caused by dark-mode event emitter (#17186)

* Fix MaxListenersExceededWarning caused by dark-mode event emitter

* Checking for setMaxListeners trying to avoid CI error

* Adding remove listener to DarkMode HOC

* DarkMode: Binding this.onModeChanged to `this`

* DarkMode: Adding conditional needed to pass UI Tests on CI

* Fix focus title on new posts regression (#17180)

* BottomSheet: Setting DashIcon color directly when theme is default (light) (#17193)

* Add a preliminary version of the AutosaveMonitor for mobile that calls the "bridge" and asks the native side to save the content

* Add autosave mock function for tests

* Fix merge conflicts

* Fix lint

* Re-add autosave on mobile that was removed erroneously during import-merge from rnmobile/master

* Remove native variant of AutosaveMonitor and introduces changes at  editor store level

* Default to false for `isEditedPostAutosaveable` on mobile. There was a typo in the returing value on the previous commit.

* Make sure to consider edits to the Title when checking if auto-save is needed

* Fix lint

*  Add isAppender functionality on mobile (#17195)

* Add isAppender functionality on mobile

* refactor isAppender conditions

* Replace dropZoneUIOnly in favour of showMediaSelectionUI

* deprecate dropZoneUIOnly and add disableMediaSelection prop

* Update test

* Refactor tests and change prop name

* Remove redundant empty lines

* Refactor conditions inside MediaPlaceholder

* Update block-editor CHANGELOG

* Update packages/block-editor/CHANGELOG.md

Co-Authored-By: Grzegorz (Greg) Ziółkowski <[email protected]>

* Autosave monitor - Make the mobile editor ping the native at each keystroke, since the deboucing logic is already well defined in the apps. (#17548)

* [RNMobile] Refactor Dark Mode HOC (#17552)

* [RNMobile] Refactor the Dark Mode HOC to fix naming antipatterns

* Fix lint errors

* Add .native.js suffix to usePreferredColorScheme

* Update usage of theme props renamed to preferredColorScheme

* Update usage of theme props renamed to preferredColorScheme

* Add missing heading levels to the UI (H4, H5, H6) (#17533)

* Fix lint issue (#17598)

* Fix list filter on paste for RN mobile. (#17550)

* Fix method for RN mobile.

* Use array.From instead of slice.

* Remove comment and use Array.from directly

* Convert from NodeList spreadable to Array.from

* Fix lint errors.

* Fix documentation examples to use Array.from

* Add empty line.

* [RNMobile] Move MediaUploadPorgress to its own component folder (#17392)

* Move MediaUploadPorgress to its own component folder (native)

* MediaUploadProgress - Fix import to code standards

* MediaUploadProgress readme

* Mobile - MediaUploadProgress README update

* Rnmobile/fix link editing on start (#17631)

* Don't try to clear links if text is clean.

* Commented LinkUI removal test when no URL.

* Don't try to remove link if we are at start of link and no actual selection is

* Re-implementing https://github.com/WordPress/gutenberg/pull/17802, affected by merge. Fixed extra space and unused code.

* Fixing lint error, trailing space.

* Improve columns flex rule, round 2. (#17968)

* Bump plugin version to 6.7.0

* Small changes to Git Workflow docs (#17662)

* :information_desk_person: add 'upstream' remote

* :bug: origin / remote

* Codeowners: Remove gziolo from some folders (#17971)

I get too many notifications.

* Fix: Invalid import statement for deprecated in the modal component (#17969)

* Fix: Invalid import statement for deprecated in the modal component

* Font Size Picker: Update E2E test to work with new Core changes.

* Add empty line (#17981)

* Try setting a block display name for the Block Navigator. (#17519)

* Really simple first attempt at showing a display name in the navigator

* Strip any RichText formatting

* Add display name for navigation menu item block

* Refactor to use displayNameAttribute property

* Change name of displayName options

* [RNMobile] add RangeControl mobile implementation (slider) (#17282)

* add RangeCell

* Split e2e tests into multiple folders (#17990)

* Playground: Add link to components storybook. (#17982)

* Fix image native test (#17989)

* Update: Refactor button edit to use a functional component (#18006)

* Optimize exports of the wp/compose package (#17945)

Adds `sideEffects:false` to `package.json` so that unused exports can be optimized away
by the bundler.

Moves the `compose` definition (i.e., reexport from Lodash) to its own module, so that
we don't pull in Lodash just by importing something from `@wordpress/compose`. After this
patch, one needs to import `compose` explicitly to trigger the Lodash import.

* [RNMobile] Introduce grouping in the block settings inspector (#17703)

* Intrdouce groupin in the block settings inspector

* Adjust PanelBody to design

* Adjust padding when section doesnt have title

* Rewirte arrow function to function

* Fix lint issue

* Create a PanelActions component for handling action buttons in the block settings inspector

* Remove useless separator type and fix typo

* Refactor after CR

* Correct label styles

* Fix overriding mechanism on label style

* Fix the performance tests (#18020)

* Storybook: Add knobs to ColorIndicator (#18015)

* Add knobs to ColorIndicator

* Lint: new line

* Add dashicon component to storybook (#18027)

* Fix Publish Button!!! (#18016)

Fixes #18004 and thank science, that was driving me insane ever since you pointed it out.

This PR does a couple of things:

1. It adds `isLarge` to the Publish button. It was there for Preview, but not Publish.
2. It simplifies a little CSS as a result of that.
3. It also tweaks the button height as defined for the two preview publish buttons.

* Update MediaPlaceholder README.md (#17980)

* Update MediaPlaceholder README.md

This change updates the readme to properly document the `value` property.

See issue here: https://github.com/WordPress/gutenberg/issues/17967

* Update MediaUpload README.md

* removes decleration of Select button (#18007)

* Fix MediaUpload README value prop description (#18039)

* Tests: Clean up skipped e2e tests (#18003)

* chore(release): publish

 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]
 - @wordpress/[email protected]

* Chore: Fix issues related to Node 12 becoming LTS (#18054)

* Chore: Fix issues related to Node 12 becoming LTS

* Include the root package.json file in the linting
This commit also moves the npm-package-json-lint config to the standalone file.

* Add changelog entries to @wordpress/scripts package

* Fix issue when providing multiple shortcode aliases for a new block (#17925)

* Fix issue where providing multiple shortcode aliases to transform into a block only matches the first shortcode

* Add test to ensure blocks can transform using multiple shortcode aliases

* Simplify the approach used to find the individual shortcode being transformed

Props jg314

* Chore: Update the lock file to use newer version of fsevents (#18057)

This fixes the issues when `npm install` on macOS throws several errors.

* Env: Add support for custom ports. (#17697)

* Add isInvalidDate prop to DatePicker (#17498)

* navigation-menu: Implement colors selector button. (#17832)

Summary
block-editor: expose ColorPaletteControl component
navigation-menu: improve colors-selector component
navigation-menu: compose withColors
navigation-menu: render colors selector in bar
navigation-menu: propagate withColor props
navigation-menu: apply theme styles to selection
navigation-item: populate styles to nav item
navigation-menu: apply inline styles and CSS classes

* Update design-systems:dev script to build packages (#18073)

The build-style/style.css needs to be rebuilt prior to
running Storybook in watch mode.

This change adds `npm run build:packages` at the start of
the design-systems:dev script to CSS is built prior.

Issue found in #17997

* Add `@wordpress/base-styles` package (#17883)

- Move `assets/stylesheets/*` to the new package
- Move admin color schemes to the new package

* Add Site Title block and required functionality. (#17207)

* Core Data: Add a Site entity and a hook for entity saving logic.

* Experiments: Add a Full Site Editing experiment.

* Block Library: Add Site Title block.

* Fixtures: Add Site Title block fixture.

* Fixtures: Add missing transform fixtures.

* Block Library: Remove deprecated prop usage in Site Title.

* Site Title: Support nesting inside of a Site block.

* Site Title: Disallow formatting in the rich text field.

* Core Data: Make useEntitySaving experimental.

* Table: remove wrapper around cells (#17711)

* Implement core template loader overrides to rely on wp_template posts (#17626)

* Introduce wp_template post type.

* Improve (temporary) admin UI for wp_template post type by exposing slug.

* Implement template loader overrides to rely on 'wp_template' posts.

* Render viewport meta tag.

* Prevent deletion of fallback 'wp_template' post 'index'.

* Scope PR to just basic wp_template post type registration.

* Implement core template loader overrides to rely on wp_template posts instead.

* Render title tag regardless of theme support

Co-Authored-By: Weston Ruter <[email protected]>

* Make getting correct wp_template post more error-proof

Co-Authored-By: Weston Ruter <[email protected]>

* Template Loader: Add more content filters.

* Templates: Fix experiment flag logic.

* Add logic for basic (temporary) wp_template editing UI (#17625)

* Templates: Add logic for basic temporary editing UI.

* Templates: Fix menu filter.

* Post Slug: Follow class name convention.

* url-input: ensuring value is defined on key down (#18088)

* Code style: Fix ESLint warnings reported for JSDoc definitions (#18025)

* Code style: Fix ESLint warnings reported for JSDoc definitions

* Add WordPress type definitions to the list of names recognized by JSDoc linter

* Local autosave: Clear after successful save (#18051)

* Local autosave: Clear after successful save

Presumably, somewhere in the fixing of conflicts between remote and
local autosaves (purge local upon successful remote autosave),
LocalAutosaveMonitor stopped purging the local autosave upon successful
*saves*.

* Tests: Autosave: Correctly wait for editor chrome before saving

* Chore: Fix: Do not show Gradient panel if gradients are not av… (#18091)

* Fix regression with Gallery margin. (#18019)

I failed to verify the Gallery block when I approved https://github.com/WordPress/gutenberg/pull/17958#issuecomment-543597183 and therefore caused a regression.

This PR adds explicity left margins and paddings to the gallery ul to ensure there isn't any added padding and margin.

* Add platform component (#18058)

* Add platform component

* Improve platform implementation in RN.

* Add more documentation and tests.

* Update readme file.

* Update tests.

* Fix filenames for native versions.

* Add license attribution

* Remove unnecessary lines.

* Improve documentation

* Remove trailing space

* Update packages/element/src/platform.js

Co-Authored-By: Grzegorz (Greg) Ziółkowski <[email protected]>

* Update readme.

* Fix lint error.

* Fix: End to end tests do not disable the experiments (#18093)

* Fix: Custom button background color not reflected on reload (#18037)

Fixes: https://github.com/WordPress/gutenberg/issues/18012
We had a bug where the editor may not reflect the custom button background color after a reload. That happened because the rule background: customGradient, may overwrite the background-color rule even if the custom gradient has not set.
This PR performs a logic update to solve the issue.

* List Block: Do not merge list with previous block if deleting first list item and list is not empty (#18032)

* Do not merge list with previous block if deleting first list item and list is not empty

* Add e2e test and clean up

* Correct mistake

* Adjust comment

* Add gradients in cover block (#18001)

* Components: Add VisuallyHidden component (#18022)

* Add ScreenReaderText component

* Add new component readme to manifest

* Remove CSS style loading within stories

* Switch component name to VisuallyHidden

- Rename directory and includes
- Update README usage
- Update Storybook usage

* Switch classname to components-visually-hidden

* Lint: newline

* Add focus style

* Switch to 'as' for specifying tag

* Move renderAsRenderProps to utils.js

* Move utils to inside component folder

Waiting to refine the utils usage a little better before
making it look available for other components to use.

* Apply suggestions from code review

Co-Authored-By: Grzegorz (Greg) Ziółkowski <[email protected]>

* Lint: Move newline

* Fix variable name

* Use variable for stylesheet

* Storybook: Apply a set of enhancements to the existing stories (#18030)

* Storybook: Apply a set of enhancements to the existing stories

* Add basic knobs integration to all Button stories

* Env: Add support for running in themes. (#17732)

* Env: Add support for running in themes.

* Env: Optimize context detection filter.

* Env: Update test directory structure to match convention.

* Storybook: Add Color Palette Component (#17997)

* Add Color Palette to Storybook

* Apply suggestions from code review

Co-Authored-By: Enrique Piqueras <[email protected]>

* Refactor state out of story components, to own

* Update packages/components/src/color-palette/stories/index.js

* Preserve attributes on split (#18102)

* [rnmobile] Breadcrumbs (#17471)

* Add breadcrumbs to floating toolbar

* Add dark mode support

* Add a block selection breadcrumb to the bottom of the editor (#17838)

* RNMobile: Add image alignment controls (#17962)

RNMobile: Add image alignment controls

Only handles left, center, right. Does not permit setting or displaying
either full or wide alignments.

* Fix checkboxes for postmeta. (#18108)

* Add block inspector to the Gutenberg playground. (#18077)

* Block Editor: Implement new colors hook. (#16781)

* Block Editor: Implement new colors hook.

* Block Library: Swap usage of the colors HOC with the colors hook in the heading edit component.

* Use Colors: Add 'has-x-color' class names.

* Use Colors: Avoid memory leaks by making caches limited in size, and tied to hook instances.

* Use Colors: Support children and optional contrast checking in the color panel.

* Use Colors: Expose colors panel without inspector slot/fill wrapper.

* Use Colors: Mark hook as experimental.

* Use Colors: Support custom colors.

* Block Edit: Remove extra context values and use selectors/actions instead.

* Heading: Remove unnecessary color class and set text color on save.

* Use Colors: Add custom/preset color logic.

* Use Colors: Fix panel bugs.

* Heading Block: Detect actual background color for contrast checking.

* Block Edit: Add new export to native file.

* Use Colors: Change CSS "attribute" to "property".

* Fix: Font size picker component relies on WordPress styles (#18078)

* Nav menu item enhancements: display toolbar and remove dropdown (#17986)

* Display toolbar and remove dropdown from menu item

* Fixes block toolbar misalignment on IE.

* Replace destination and deal with keypresses.

* Update fixture.

* Keydown management and attempt at close on blur.

* Add definitive menu item icon.

* Fix label/input styling.

* Clean up styles after rebase.

* Refactor stop propagation .

* Remove duplicate dependency comments

* Navigation Block: Rename 'destination' to 'url' in server-side code

* Fix overlapping controls in the Inline Image formatting toolbar (#18090)

* Fix overlapping controls in the Inline Image formatting toolbar

* Inline mage formatting: make Apply button same height as Width input

* Polish.

* Raw handling: Fix strikethrough formatting when copy/pasting from Google Docs in Safari (#17187)

* Tutorial: Specify block naming restrictions (#18117)

* Tutorial: Specify block naming restrictions

* Remove an incorrect comma

* Components: ExternalLink, add story (#18084)

This update adds a story for the ExternalLink component.
Storybook knobs were added to better demonstrate the component's
properties.

* Storybook: Add ColorPicker component (#18013)

* Add color picker component to Storybook

* Switch screen-reader-text to new VisuallyHidden

* Update ColorPicker tests snapshots

* Add story for showing Alpha Channel

* Move state out of exported component

* Lowercase story name

* Add class mechanism for preset gradients. (#18008)

* Allow media upload post processing for all 5xx responses (#18106)

* Allow travis builds in all wp/* branches

* Add `DimensionControl` component (#16791)

* Adds initial component

Note this is copied wholescale from original PR https://github.com/WordPress/gutenberg/pull/16730

* Remove redunant files. Refactors tests.

* Updates docs

* Checks callbacks are functions prior to calling

* Adds temp testing example usage of component to Group Block

* Updates to allow sizes as an (optionaly) prop dependency

* Update default value label

* Removes unnecessary InstanceId HOC usage

Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r323906696

* Remove unused abbreviation in size table

* Revert "Adds temp testing example usage of component to Group Block"

This reverts commit 6f9f3bfd2a7c1a08ecfab143384d414701f0c1e8.

* Remove arbitrary size value from sizes list

This is not required as we cannot know how the dimensions component will be used. Therefore sticking with relative values via the slugs is safer. These can be mapped on a case by case basis as required.

* Remove icon label for a11y reasons

Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r324103481

* Update component docs for consistency, spelling and grammar

* Tweak docblock formats

* Update test snapshots to match new default value

* Update API from onSpacingChange to more agnostic onChange

Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r331622801

* Update tests to cover onChange handler renamed

* Update currentSize prop to value for consistency with other components

* Removes onReset in favour of onChange with undefined for consistency

Adddresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r331624272

* Move component to @wordpress/components package

* Remove invalid font sizes style import

Accidentally included from rebase.

* Deps update due to rebase

* Remove unneeded doc blocks

* Remove usage suggestion which was not helpful

* Update readme docs to match current API

Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r332692714

* Export as experimental component

Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r332694561

* Revert "Deps update due to rebase"

This reverts commit 95d00f39010edfaac620980e0d0e7c1001a68c98.

Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r332691520

* Paste: allow list attributes (#17144)

* Add grandient fixtures to cover block (#18002)

* Bump plugin version to 6.8.0-rc.1

* Fix RN build after merge with master (#18133)

* Commander: switch cloning method to HTTPS (#18136)

* Commander: switch cloning method to HTTPS

* Add HOME env variable

* Add horizontal option for the block movers (#16615)

* horizontal option for the mover, missing icons, broken hover

* we now have icons

* positioned the mover to the middle left

* horizontal mover on mobile

* vertical layout for horizontal movers

* drop block movers into block edit to enable inline movers

* implemented so as to not be a concern for the block implementer

* removes useless scss variable

* hiding the drag handle at block level

* renamed horizontalMover to moverOptions to incorporate separation of properties

* rafactores the mover options

* Initial CSS work to make the menu more manageable.

This moves to flex instead of grid, neutralizes margins, simplifies a few things.

* Make movers inline again.

* Further improve margins for child blocks.

* adds proper aliases in BlockEdit

* previxed options as experimental

* RTL movers

* removed the position option, marked option experimental

* labeled as experimental new mober and block list props

* refactored direction detection code for better readability, fixed some code alignment issues

* Update ExternalLink Component to fix visually hidden text (#18142)

* Switch screen-reader-txt to VisuallyHidden component

* Fix core embed test snapshot, new classname

* Add Spinner component to storybook (#18145)

* Smart block appender (#16708)

* if thre is only one there is only one

* made a new insertion point selector, some code review refactoring

* better handling of inserter

* refactoring and named block insertion

* updates to the appender

* update snapshots

* update docs

* default inserter label is used in so many tests

* fixed allowed blocks test

* snapshot updated

* better naming and removed the need for es-lint disabling

* improved the inserter label construction

* improved the doc of getTheOnlyAllowedItem selector

* reverting test patches becasue patching without understanding is bad, bad, bad - don't do it

* moved getInsertionIndex out of selectos and back into each component that used it

* docs generated

* added experimental labels to new selectors, added es-lint comment back

* updated docs

* Update packages/block-editor/src/store/selectors.js

Co-Authored-By: Miguel Fonseca <[email protected]>

* Update packages/block-editor/src/store/selectors.js

Co-Authored-By: Miguel Fonseca <[email protected]>

* refactored and fixed some coding errors

* small code move

* small code move

* removes aria attrs for autoinserted items

* fixes typo, adds translators comment

* simplifies the intserter logic

* fix for the simplification

* simplifies by using one selector and passing props in compose

* small code updates

* lint

* renamed insertedBlock

* small doc update

* adds tooltip to the default button appender

* refactores for more self documenting varnames

* Components: Draggable, add story (#18070)

* Components: Add Story for Draggable

This update adds a Storybook example for the Draggable component from `@wordpress/components`.

* Fix useState hook for Draggable story example

Solution was to create an Example component with the useState hook.
Render that Example component in the story instead.

* Block Directory: Convert it to UI Plugin to avoid bundling into Core (#17576)

* Block Directory: Convert it to UI Plugin to avoid bundling into Core

* Load the block directory assets only when the experiment is enabled

* Try to reimplement asset overrides to give more flexibility

* Add code style improvemements and perform code cleanup

* Try to make PHP unit tests pass by removing group check

* Ensure that packages and vendor scripts are printed in the footer

* Fix the has action check for the block directory assets

* Move gutenberg-block-directory experiment check out of the action

* Fix bin/get-vendor-scripts.php

* Make the AsyncModeProvider API a stable API (#18154)

* Make the mediaUpload block editor setting a stable API (#18156)

* Fix columns full-wide regression. (#18021)

The Columns block, when full-wide, has intentional left and right padding to ensure the mover controls of child blocks are accessible. This is editor-only, and only when the block is selected.

This regressed at some point, a while ago, probably around the introduction of extra on-click padding to show the dashed outlines of child elements.

This PR shuffles the rules a bit, reduces some of their specificity, and applies the left and right padding elsewhere to make it work.

* Resyncs RichText mobile components with web counterparts. (#17897)

* Resyncs RichText mobile components with web counterparts.

* Remove outdated test.

* Remove unused references.

* Add platform component

* Add components depending of platform.

Only add specific components if we are on the web implementation.

* Abstract paste of files for RN and web

Makes the code for pasting image more abstract in the paste method and
implement specific translation to HTML depending of the platform.

* Compose extra attributes/props on select/dispatch only if mobile.

* Remove RN index file for RichText Wrapper.

Moved all the specific code to the standard index file, so this file
is no longer needed.

* Remove API index native file that is no longer needed.

* Clean up lint errors in file-paste-handler.

* Fix lint errors.

* Implement stub remove browser shortcuts for RN

* Implement autocomplete stub for RN.

* Refactor toolbar presentation to a method.

* Remove no longer needed platform file.

* Consolidate the file paste handler in a single implementation.

Created a stub for createBlobURL for native that simple returns the
original URL.

* Change the text for platform to make it explicit it's native only.

* Remove duplicate files

* Include type in file comparison

* Forgot to rename for native file

* Fix filePasteHandler for native

* Move logging back

* Restore comment on logging

* Add check for files existence.

* Refactor format-toolbar code to use split web/native files

* Remove prop duplication.

* Fix getAnchorRect call

* Remove unnecessary const

* Sync fix for list removal of first empty line

* Fix RN build after merge with master

* Sync with web counterpart.

* Only change selection after new formats are set.

* [RNMobile] Add a subtitle for unsupported blocks (#18107)

* Add a new unsupported subtitle to missing blocks - even we know about the block title

* Update margins, colors and font weight of the unsupported block

* Navigation: Explore default frontend styles (#18094)

* try basic version of varia theme styles as default

* Add class to show submenu indicator

* adjustments for small viewports

* NavigationMenu: set attributes rightly (#18150)

* navigation-menu: set attributes once

* navigation-menu: add CSS class as hook dependencies

* Update packages/block-library/src/navigation-menu/edit.js

Co-Authored-By: Enrique Piqueras <[email protected]>

* Update packages/block-editor/src/components/colors/use-colors.js (#18147)

Co-Authored-By: Enrique Piqueras <[email protected]> (+2 squashed commits)
Squashed commits:
[36484b4d3f] Update packages/block-editor/src/components/colors/use-colors.js

Co-Authored-By: Enrique Piqueras <[email protected]>
[9c4c7694bd] Fix: solve some issues in useColors hook

* [RNMobile] Added support for giphy and pexels images (#18026)

* Scripts: Bump the version of npm-package-json-lint (#18160)

* Experimental Link creation interface (#17846)

* Initial component file structure

* Implement basic icon and toggle mechanic

* Adds basic search input

* Update input to utilise LinkEditor component autocomplete

* Add ability to customise placeholder

* Update to utilise URLInput directly for greater flexibility

* Add example search results and test coverage

* Update class naming convention to match guidelines

See https://github.com/WordPress/gutenberg/blob/master/docs/contributors/coding-guidelines.md#css

Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r332567521

* Adds render prop to enable custom suggestions rendering

Previously it wasn’t possible to customise the render of the search suggestions. By providing an optional render prop we now have full control over this if required.

* Update to utilise URLInput render prop to customise search suggestions render

Previously we relied on our own render of suggestions but this wasn’t hooked up to all the accessibility enhancements afforded by URLInput. By utilising the render prop exposed by URLInput to customise the rendering of suggestions, we can have the best of both worlds.

* Update to add post type to the fetchLinkSuggestions responsive mapping

This is required to display the type of entitity in the search results for LinkControl

* Fix to ensure search suggestion interaction states are perceivable

* Update suggestion render prop to provide component props as arguments

Previously when using the `renderSuggestions` render prop the user had to know how to put together the correct props on the correct elements in their custom render. By passing the default props for the listing element and the item element we can relieve the user of this burden by allowing them to spread the props onto the appropriate elements in their render without having to know how they are created.

* Update to match with design visual and provide more accessible markup

* Adds settings area. Fixes missing reset icon.

* Fix search items to be buttons with correct style and layout

* Adds overflow scrolling to search results

* Fix to stop scroll shadow overlaying scrollbars

* Add bespoke settings area and tweak styles

* Update to allow URLs to be conditionally handled as a suggestion

Previously when a URL was entered it was deemed that no suggestions should or could be found and so the process of fetching suggestions was short circuited. Add additional prop to optionally allow developers to have URL-like values handled as suggestions.

* Updates to conditionally use an entity or url based search results fetcher

If the current value of the input is a URL then we conditionally pass a different handler for search results to the URLInput component. For URL based values we immediately return a “suggestion” object with values matching those entered by the user. Non URL based values are handled as previously.

* Fix bug whereby fetchSearchSuggestions wasn’t called

Remove ambiguity by calling the search handler directly rather than proxying through another function and having to apply it immediately.

* Remove default toggle UI and implement Popover close

The LinkControl will be mostly where another element triggers the UI to appear. As a result we don’t want to force a toggle element on the developer. Rather we will expose an API to allow the consuming component to toggle the visibility of the LinkControl

* Adds search text “highlighting” in results list

* Move TextHighlight component to its own file

* Fix bug where update to value prop didn’t cause suggestions to reset.

* Update to remove internal handling of open/closed state

This state is now expected to be handled by the consuming component chosing whether or not to render the component. It has no concept of open or closed.

* Fix React violation by returning only the text for non matches

* Update existing tests to match new implementation

* Add link reset test

* Adds test which uncovers major bug in the implementation

Basically this test has revealed that due to the way we’re detecting and handling URL-like values the wrong data fetcher function gets passed to the URLInput component for the first input `change` event.

For example if you paste `https://make.wordpress.com` directly into the input then it is determined to be a URL but because the current fetcher function for the current render is still the handler that deals with entity searches the correct results are not displayed. Adding another character to trigger a re-render will cause the UI to update to the expected state, but this is a major bug.

* Tweak critical test to be more explicit about what is expected

* Fix bug to make determining search handler use the latest input value

Previously we relied on parent component state to choose which search handler to use for the current input term. However, the state was always 1 tick behind so the previous search handler got used. Updating this to use the real time value of the input passed onChange ensures we select the correct search fetcher when the component re-renders.

* Add loading spinner and associated test coverage

Spinner was technically always rendered but it wasn’t visible due to CSS styling. Fix and also cover with tests.

* Fix bug where value could be empty

* Adds basic editing / view state switching

* Add keydown callback to URLInput

* Select link on ENTER keydown event

* Utilise LinkViewer to render edit state and decode urls for display

* Only display link settings when a link is selected

* Adds current link view styles

* Makes settings toggle controlled by parent component

* Update visuals to match updated design

Addresses https://github.com/WordPress/gutenberg/issues/17557#issuecomment-542401433

* Add standardised min width to popover

* Temporary hack to include Link UI in Playground for testing

* Update to utilise isURL util from @wordpress/url package

* Update to utilise isURL util from @wordpress/url package

* Removes URLPopover dependency

Attempts to remove unwanted deps on other components. We now utilise Popover directly and suffer no consequences as we are not making use of any bespoke features provided by URLPopover.

* Extract settings drawer to sub component

* Refactor search items into a component

* Refactor Input and Search to component

* Fix missing selected state on search suggestions

* Tweak line height on search suggestion url path

* Augment test for URL-like by testing for “www.”

* Fix to stop url overflows and wrapping on to multiple lines

* Uppcase URL in type indicator within search results list

* Avoid reading out slug/URL for entity results

* Ensures i18n of change button

* Always offer URL result in search suggestions as default

* Fix loading spinner position and dim results during loading

Addresses https://github.com/WordPress/gutenberg/pull/17846#issuecomment-543244810

* Fix scroll shadows to use valid alpha transparent values in gradient

Fixes broken shadows in Safari which didn’t recognise transparent as a value to transition to in a gradient.

* Adds instructional text in place of URL for suggestions that are URLs

Addresses designer feedback https://github.com/WordPress/gutenberg/issues/17557#issuecomment-545030027

* Update prop names for consistency

Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337840953

* Update line length to improve readability

Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337842799

* Update to avoid need to utilise partialRight util from lodash

Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337882576

* Updates key to avoid usage of index

We cannot assume the suggestion `id` will be unique. This is because at the moment the search results are `Post`s. However in the future we may also need to include `Category` terms and the term IDs could easily clash with the Post IDs as they are in different DB tables.

Using the `type` to differentiate the key.

Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337883174

* Update to remote isFunction check in favour of direct check

Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337885206

* Update to handle mailto and tel protocols and internal links

* url-input: handle onKeyPress type event

* link-control: add className prop

* link-control: add README file

* Remove unnecessary use of useCallback

Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r338363236

* Fix current automated tests

* Improves URL handling test to run for multiple URL value variations

* Updates to display the URL type in the search results

Previously only true `http` URLs were formatted with the correct type and the instructional text. Fixes so that all types of manual URL entry are correctly shown as such in the search results.

Adds test to cover mailto variant of this.

* Refactor tests to assert against all valid protocol formats and link variants

This now includes tel, mailto and internal links.

* Adds test to cover display of fallback URL search result for search values that are potentially URLS

* Adds tests to check URL suggestions don’t display for non-URLs.

* url-input: remove unneeded `suggestion` const

* url-input: always trigger onKeyDown event

* link-control: delegate handling keydown event
Instead of this, let's propagate the onKeyDown and onKeyPress events to the parent component

* link-control: add onKeyDown and onKeyPress handlers

* link-control: playground -> close once onClose

* link-control: propagate onClose() event

* link-control: playground -> hanldling close by ESCAPE key

* Fix to only render settings draw if settings are defined

* Remove redundant commented out test

* Update to render with a “current link” if one is provided.

Previously if you passed in a current link the component would still render with a search box as thought nothing was selected.

Updates so that if `currentLink` is provided the UI reflects that by showing the “selected” item and no search input.

* Render playground with currentLink active

* Adds test to cover currentLink prop

* Remove selected state from Playground

* Adds tests to cover selecting and changing links

* Remove async function in place of direct Promise usage and add test coverage

* Add test to cover keyboard handling

Note: this uncovered a bug whereby keyboard handling of “selecting” the link you want to use is broken. This needs to be fixed.

* Remove unecessary dep from effect

* Fix URLInput to pass the actual suggestion object not the index

If the full object is not provided then consuming components have no way of accessing the details of the selected suggestion thereby rendering it useless.

* Fix keyboard handling so hitting `ENTER` will select an item as the current link

Builds on previous commit.

* Updates keyboard interaction test to include URL entry

* Minor: reword test description

* Fix missing key prop regression

Previously `buildSuggestionItemProps` was including a key. However the implementation of `LinkControl` changed so that this was not required. However we forgot to reinstate on `URLInput`. This update ensures a key prop is set on the default output.

Note that disabling of the autofocus linting was already in place:

https://github.com/WordPress/gutenberg/blob/04e142e9cbd06a45c4ea297ec573d389955c13be/packages/block-editor/src/components/url-input/index.js#L239

Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337841961

* DRY up conditionals

Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337842477

* link-control: set a default experimental link suggestions searcher if it't needed

* link-control: handling key events

* url-input: remove onKeyDown prop

* url-input: remove calling onKeyDown prop

* url-input: rollback some changes

* Mark Link Creation Interface as Experimental (#18110)

* mark main component as experimental

* mark new URLInput props as experimental

* add experimental onKeyPress

* remove key handlers

* Updates to use alias on experimental props

Addresses https://github.com/WordPress/gutenberg/pull/18110#discussion_r339427180

* Remove unused prop from docs

* Update props ordering and readme docs

Also fixes eslint errors that kept me from committing the original changes

* Revert playground changes

* Rename InputSearch to SearchInput

Props @talldan

I really hope those changes I had to make in `search-input.js` don't break anything.

* Remove disabling of jsx-key lint rule

* Change fake id value to something that will not clash with post ids

* [RNMobile] Hotfix 1.15.2 (#18128)

* Force block inserter to re-render on device rotation (#18101)

* Force block inserter to re-render on device rotation

* Dummy

* Revert "Dummy"

This reverts commit 037f076679cb8f89a65ecafdd9130465a0fc03d9.

* Add left right borders to inner blocks (#18109)

* [Mobile]Remove alignment options from Media & Text until they are fixed (#18112)

* Remove alignment options temporarily

* Dummy commit

* Fix: remove getItemLayout which causes scroll position issue (#18060)

* Fix: Media & Text Loses upload status if post is closed/reopened during the upload (#18137)

* Prevent deleting mediaType on upload progress

* Call onMediaUpdate instead of onSelectMedia

* Dummy commit

* Revert "Dummy commit"

This reverts commit 5ce06d61f74af688b9d938c99e2d9fdad090a42c.

* Limit requestMediaImport calls for only image type

* Update comment

* Dummy commit

* Revert "Dummy commit"

This reverts commit 99584e41b097792d61370e9a0ac3c9ab52cf9bf4.

* Fix handling of pasted images and prevent thumbnail uploads (#18215)

* Fix handling of pasted images and prevent thumbnail uploads

* Fix lint errors

* Remove check for image for sync.

* Include the RN mobile releases branch in Travis branches
hypest pushed a commit that referenced this pull request Nov 4, 2019
* Block Editor: Implement new colors hook.

* Block Library: Swap usage of the colors HOC with the colors hook in the heading edit component.

* Use Colors: Add 'has-x-color' class names.

* Use Colors: Avoid memory leaks by making caches limited in size, and tied to hook instances.

* Use Colors: Support children and optional contrast checking in the color panel.

* Use Colors: Expose colors panel without inspector slot/fill wrapper.

* Use Colors: Mark hook as experimental.

* Use Colors: Support custom colors.

* Block Edit: Remove extra context values and use selectors/actions instead.

* Heading: Remove unnecessary color class and set text color on save.

* Use Colors: Add custom/preset color logic.

* Use Colors: Fix panel bugs.

* Heading Block: Detect actual background color for contrast checking.

* Block Edit: Add new export to native file.

* Use Colors: Change CSS "attribute" to "property".
hypest pushed a commit that referenced this pull request Nov 4, 2019
* Block Editor: Implement new colors hook.

* Block Library: Swap usage of the colors HOC with the colors hook in the heading edit component.

* Use Colors: Add 'has-x-color' class names.

* Use Colors: Avoid memory leaks by making caches limited in size, and tied to hook instances.

* Use Colors: Support children and optional contrast checking in the color panel.

* Use Colors: Expose colors panel without inspector slot/fill wrapper.

* Use Colors: Mark hook as experimental.

* Use Colors: Support custom colors.

* Block Edit: Remove extra context values and use selectors/actions instead.

* Heading: Remove unnecessary color class and set text color on save.

* Use Colors: Add custom/preset color logic.

* Use Colors: Fix panel bugs.

* Heading Block: Detect actual background color for contrast checking.

* Block Edit: Add new export to native file.

* Use Colors: Change CSS "attribute" to "property".
mchowning added a commit that referenced this pull request Nov 18, 2019
commit 9c5e2c1b6f043540a0af8451893d3093d4173b99
Author: Marko Savic <[email protected]>
Date:   Fri Nov 15 16:13:12 2019 +0100

    Added native label to android and ios Platforms element (#18539)

commit 862c6c2178aa8fc41142fa05a3611c107969030d
Author: Stefanos Togkoulidis <[email protected]>
Date:   Fri Nov 15 13:12:46 2019 +0200

    Fix lint issues

commit e76d087ce1315b4e04048f650973822eeac1dfcd
Author: Matthew Kevins <[email protected]>
Date:   Fri Nov 15 19:35:36 2019 +1000

    [RNMobile] Add separate options for capturing photo and video (#18505)

    * Add separate options for capturing photo and video

    * Adding media source objects to MediaUpload

    * Added id to media source to diferenciate between take image and take photo

    * Fix values not found on media sources

    * Fix lint issues

    * Fix unit tests on Media Upload component

    * Remove empty array item from internalSources in mediaUpload

commit aba13e2981a3fc5af1ed3e280f559822f32419fd
Author: Cameron Voell <[email protected]>
Date:   Thu Nov 14 07:14:05 2019 -0800

    [RNMobile] Image block makes call to native for fullscreen preview (#18493)

    * Call to RN gutenberg bridge for Android native fullscreen preview

    * Added highlight border around image when image block is selected

    * Do not request fullscreen preview if tapped mid upload or while showing tap to rety.

commit 262cca42e53be0be2e9d6c0a8df08d94e672ac54
Author: Matt Chowning <[email protected]>
Date:   Thu Nov 14 09:24:52 2019 -0500

    [RNMobile] Add content alignment options to paragraph block (#18433)

commit 3d1ef4bdc1f204c4e8aef4cd98a02c1050d37130
Author: Sérgio Estêvão <[email protected]>
Date:   Thu Nov 14 13:19:03 2019 +0000

    Fix paste in post title in GB-mobile. (#18479)

    * Fix paste on title.

    * Remove html import.

commit 639d3c4bba6e5f2577d2694e05301c5760384c62
Author: etoledom <[email protected]>
Date:   Thu Nov 14 12:24:33 2019 +0100

    [RNMobile] Simplify bridge requestMediaPick methods (#18303)

    * Merge bridge `Requeste media pick` methods into a single one, adding a source param.
    This helps to handle the "others" option in the same way than any other option, plus adding the filters parameter.
    This filter parameters is needed for the iOS "Other Apps" media source option.
    This is also one step forward to declare all media source options from the client app.

    * Move device sources to native bridge component

    * Fix typo on media source name

commit e9f55660ef36605fc2e98465c20e0d4b7c27ca8a
Author: Sérgio Estêvão <[email protected]>
Date:   Tue Nov 12 22:30:20 2019 +0000

    Activate preformatted block in the RN app (#17906)

    * Activate pre-format block

    * Make sure identifier is set to the correct value.

    * Implement native version of preformatted block

    Use the web block as a base but then wrap a style view around.

    * Change preformatted background color to gray-5

    * Prepare block for dark color mode in iOS.

    * Test preformatted block

    * Make block placeholder borders round

    * Update colors for preformatted block in mobile

    * Cleanup test

    * Remove test

    At the moment the test setup is not ready to mock RichText components.

    * Simplify styles.

    * Simplify the styles file using vars and shorthands

    * Enable preformatted only for ios when running in production mode.

commit 5b02715253a46a65a4e9bd380cb013a607fd1273
Author: Stefanos Togkoulidis <[email protected]>
Date:   Mon Nov 11 16:16:29 2019 +0200

    More fixing of merge errors

commit 168bf7dca69d108159a10002ab6f3a102933e6bc
Author: Stefanos Togkoulidis <[email protected]>
Date:   Mon Nov 11 14:36:56 2019 +0200

    Fix merge errors

commit a6450c6397e8b182527414cf6d878cb8f953c845
Merge: 2c3310fa6 705d91151
Author: Stefanos Togkoulidis <[email protected]>
Date:   Mon Nov 11 12:13:33 2019 +0200

    Merge branch 'rnmobile/releases' into rnmobile/release-v1.17.0

commit 705d91151fe4064d4dfea337a7f2ba77983ecbe1
Author: Stefanos Togkoulidis <[email protected]>
Date:   Fri Nov 1 13:32:41 2019 +0200

    Include the RN mobile releases branch in Travis branches

commit e03e133b2a7feb4aa11dc73883457d6798896f1f
Author: Jorge Bernal <[email protected]>
Date:   Fri Nov 1 11:16:13 2019 +0100

    Fix handling of pasted images and prevent thumbnail uploads (#18215)

    * Fix handling of pasted images and prevent thumbnail uploads

    * Fix lint errors

    * Remove check for image for sync.

commit c04639e519e538a20059d8a22b60974c7ef589b2
Author: Dave Smith <[email protected]>
Date:   Wed Oct 30 04:21:33 2019 +0000

    Experimental Link creation interface (#17846)

    * Initial component file structure

    * Implement basic icon and toggle mechanic

    * Adds basic search input

    * Update input to utilise LinkEditor component autocomplete

    * Add ability to customise placeholder

    * Update to utilise URLInput directly for greater flexibility

    * Add example search results and test coverage

    * Update class naming convention to match guidelines

    See https://github.com/WordPress/gutenberg/blob/master/docs/contributors/coding-guidelines.md#css

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r332567521

    * Adds render prop to enable custom suggestions rendering

    Previously it wasn’t possible to customise the render of the search suggestions. By providing an optional render prop we now have full control over this if required.

    * Update to utilise URLInput render prop to customise search suggestions render

    Previously we relied on our own render of suggestions but this wasn’t hooked up to all the accessibility enhancements afforded by URLInput. By utilising the render prop exposed by URLInput to customise the rendering of suggestions, we can have the best of both worlds.

    * Update to add post type to the fetchLinkSuggestions responsive mapping

    This is required to display the type of entitity in the search results for LinkControl

    * Fix to ensure search suggestion interaction states are perceivable

    * Update suggestion render prop to provide component props as arguments

    Previously when using the `renderSuggestions` render prop the user had to know how to put together the correct props on the correct elements in their custom render. By passing the default props for the listing element and the item element we can relieve the user of this burden by allowing them to spread the props onto the appropriate elements in their render without having to know how they are created.

    * Update to match with design visual and provide more accessible markup

    * Adds settings area. Fixes missing reset icon.

    * Fix search items to be buttons with correct style and layout

    * Adds overflow scrolling to search results

    * Fix to stop scroll shadow overlaying scrollbars

    * Add bespoke settings area and tweak styles

    * Update to allow URLs to be conditionally handled as a suggestion

    Previously when a URL was entered it was deemed that no suggestions should or could be found and so the process of fetching suggestions was short circuited. Add additional prop to optionally allow developers to have URL-like values handled as suggestions.

    * Updates to conditionally use an entity or url based search results fetcher

    If the current value of the input is a URL then we conditionally pass a different handler for search results to the URLInput component. For URL based values we immediately return a “suggestion” object with values matching those entered by the user. Non URL based values are handled as previously.

    * Fix bug whereby fetchSearchSuggestions wasn’t called

    Remove ambiguity by calling the search handler directly rather than proxying through another function and having to apply it immediately.

    * Remove default toggle UI and implement Popover close

    The LinkControl will be mostly where another element triggers the UI to appear. As a result we don’t want to force a toggle element on the developer. Rather we will expose an API to allow the consuming component to toggle the visibility of the LinkControl

    * Adds search text “highlighting” in results list

    * Move TextHighlight component to its own file

    * Fix bug where update to value prop didn’t cause suggestions to reset.

    * Update to remove internal handling of open/closed state

    This state is now expected to be handled by the consuming component chosing whether or not to render the component. It has no concept of open or closed.

    * Fix React violation by returning only the text for non matches

    * Update existing tests to match new implementation

    * Add link reset test

    * Adds test which uncovers major bug in the implementation

    Basically this test has revealed that due to the way we’re detecting and handling URL-like values the wrong data fetcher function gets passed to the URLInput component for the first input `change` event.

    For example if you paste `https://make.wordpress.com` directly into the input then it is determined to be a URL but because the current fetcher function for the current render is still the handler that deals with entity searches the correct results are not displayed. Adding another character to trigger a re-render will cause the UI to update to the expected state, but this is a major bug.

    * Tweak critical test to be more explicit about what is expected

    * Fix bug to make determining search handler use the latest input value

    Previously we relied on parent component state to choose which search handler to use for the current input term. However, the state was always 1 tick behind so the previous search handler got used. Updating this to use the real time value of the input passed onChange ensures we select the correct search fetcher when the component re-renders.

    * Add loading spinner and associated test coverage

    Spinner was technically always rendered but it wasn’t visible due to CSS styling. Fix and also cover with tests.

    * Fix bug where value could be empty

    * Adds basic editing / view state switching

    * Add keydown callback to URLInput

    * Select link on ENTER keydown event

    * Utilise LinkViewer to render edit state and decode urls for display

    * Only display link settings when a link is selected

    * Adds current link view styles

    * Makes settings toggle controlled by parent component

    * Update visuals to match updated design

    Addresses https://github.com/WordPress/gutenberg/issues/17557#issuecomment-542401433

    * Add standardised min width to popover

    * Temporary hack to include Link UI in Playground for testing

    * Update to utilise isURL util from @wordpress/url package

    * Update to utilise isURL util from @wordpress/url package

    * Removes URLPopover dependency

    Attempts to remove unwanted deps on other components. We now utilise Popover directly and suffer no consequences as we are not making use of any bespoke features provided by URLPopover.

    * Extract settings drawer to sub component

    * Refactor search items into a component

    * Refactor Input and Search to component

    * Fix missing selected state on search suggestions

    * Tweak line height on search suggestion url path

    * Augment test for URL-like by testing for “www.”

    * Fix to stop url overflows and wrapping on to multiple lines

    * Uppcase URL in type indicator within search results list

    * Avoid reading out slug/URL for entity results

    * Ensures i18n of change button

    * Always offer URL result in search suggestions as default

    * Fix loading spinner position and dim results during loading

    Addresses https://github.com/WordPress/gutenberg/pull/17846#issuecomment-543244810

    * Fix scroll shadows to use valid alpha transparent values in gradient

    Fixes broken shadows in Safari which didn’t recognise transparent as a value to transition to in a gradient.

    * Adds instructional text in place of URL for suggestions that are URLs

    Addresses designer feedback https://github.com/WordPress/gutenberg/issues/17557#issuecomment-545030027

    * Update prop names for consistency

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337840953

    * Update line length to improve readability

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337842799

    * Update to avoid need to utilise partialRight util from lodash

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337882576

    * Updates key to avoid usage of index

    We cannot assume the suggestion `id` will be unique. This is because at the moment the search results are `Post`s. However in the future we may also need to include `Category` terms and the term IDs could easily clash with the Post IDs as they are in different DB tables.

    Using the `type` to differentiate the key.

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337883174

    * Update to remote isFunction check in favour of direct check

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337885206

    * Update to handle mailto and tel protocols and internal links

    * url-input: handle onKeyPress type event

    * link-control: add className prop

    * link-control: add README file

    * Remove unnecessary use of useCallback

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r338363236

    * Fix current automated tests

    * Improves URL handling test to run for multiple URL value variations

    * Updates to display the URL type in the search results

    Previously only true `http` URLs were formatted with the correct type and the instructional text. Fixes so that all types of manual URL entry are correctly shown as such in the search results.

    Adds test to cover mailto variant of this.

    * Refactor tests to assert against all valid protocol formats and link variants

    This now includes tel, mailto and internal links.

    * Adds test to cover display of fallback URL search result for search values that are potentially URLS

    * Adds tests to check URL suggestions don’t display for non-URLs.

    * url-input: remove unneeded `suggestion` const

    * url-input: always trigger onKeyDown event

    * link-control: delegate handling keydown event
    Instead of this, let's propagate the onKeyDown and onKeyPress events to the parent component

    * link-control: add onKeyDown and onKeyPress handlers

    * link-control: playground -> close once onClose

    * link-control: propagate onClose() event

    * link-control: playground -> hanldling close by ESCAPE key

    * Fix to only render settings draw if settings are defined

    * Remove redundant commented out test

    * Update to render with a “current link” if one is provided.

    Previously if you passed in a current link the component would still render with a search box as thought nothing was selected.

    Updates so that if `currentLink` is provided the UI reflects that by showing the “selected” item and no search input.

    * Render playground with currentLink active

    * Adds test to cover currentLink prop

    * Remove selected state from Playground

    * Adds tests to cover selecting and changing links

    * Remove async function in place of direct Promise usage and add test coverage

    * Add test to cover keyboard handling

    Note: this uncovered a bug whereby keyboard handling of “selecting” the link you want to use is broken. This needs to be fixed.

    * Remove unecessary dep from effect

    * Fix URLInput to pass the actual suggestion object not the index

    If the full object is not provided then consuming components have no way of accessing the details of the selected suggestion thereby rendering it useless.

    * Fix keyboard handling so hitting `ENTER` will select an item as the current link

    Builds on previous commit.

    * Updates keyboard interaction test to include URL entry

    * Minor: reword test description

    * Fix missing key prop regression

    Previously `buildSuggestionItemProps` was including a key. However the implementation of `LinkControl` changed so that this was not required. However we forgot to reinstate on `URLInput`. This update ensures a key prop is set on the default output.

    Note that disabling of the autofocus linting was already in place:

    https://github.com/WordPress/gutenberg/blob/04e142e9cbd06a45c4ea297ec573d389955c13be/packages/block-editor/src/components/url-input/index.js#L239

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337841961

    * DRY up conditionals

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337842477

    * link-control: set a default experimental link suggestions searcher if it't needed

    * link-control: handling key events

    * url-input: remove onKeyDown prop

    * url-input: remove calling onKeyDown prop

    * url-input: rollback some changes

    * Mark Link Creation Interface as Experimental (#18110)

    * mark main component as experimental

    * mark new URLInput props as experimental

    * add experimental onKeyPress

    * remove key handlers

    * Updates to use alias on experimental props

    Addresses https://github.com/WordPress/gutenberg/pull/18110#discussion_r339427180

    * Remove unused prop from docs

    * Update props ordering and readme docs

    Also fixes eslint errors that kept me from committing the original changes

    * Revert playground changes

    * Rename InputSearch to SearchInput

    Props @talldan

    I really hope those changes I had to make in `search-input.js` don't break anything.

    * Remove disabling of jsx-key lint rule

    * Change fake id value to something that will not clash with post ids

commit 3ecf70171dd5522f1686acae4902ed465f514ac7
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Tue Oct 29 23:37:35 2019 +0100

    Scripts: Bump the version of npm-package-json-lint (#18160)

commit caa80cb0d298f4792f973a0eaa16b54d2a44da6b
Author: Marko Savic <[email protected]>
Date:   Tue Oct 29 20:03:04 2019 +0100

    [RNMobile] Added support for giphy and pexels images (#18026)

commit 3e5f7a5999aa846fa2bed2f6dbddd6cb78b189ef
Author: Jorge Costa <[email protected]>
Date:   Tue Oct 29 17:59:01 2019 +0000

    Update packages/block-editor/src/components/colors/use-colors.js (#18147)

    Co-Authored-By: Enrique Piqueras <[email protected]> (+2 squashed commits)
    Squashed commits:
    [36484b4d3f] Update packages/block-editor/src/components/colors/use-colors.js

    Co-Authored-By: Enrique Piqueras <[email protected]>
    [9c4c7694bd] Fix: solve some issues in useColors hook

commit f558ed79e68014880cabfc41d43c50f51e118752
Author: Damián Suárez <[email protected]>
Date:   Tue Oct 29 14:43:31 2019 -0300

    NavigationMenu: set attributes rightly (#18150)

    * navigation-menu: set attributes once

    * navigation-menu: add CSS class as hook dependencies

    * Update packages/block-library/src/navigation-menu/edit.js

    Co-Authored-By: Enrique Piqueras <[email protected]>

commit 57197b6c15939605ce60cb31b6686cd1233efe22
Author: Michael P. Pfeiffer <[email protected]>
Date:   Tue Oct 29 18:21:56 2019 +0100

    Navigation: Explore default frontend styles (#18094)

    * try basic version of varia theme styles as default

    * Add class to show submenu indicator

    * adjustments for small viewports

commit a9cfa56e6caeaac67d11d4fa0328780110e91124
Author: Maxime Biais <[email protected]>
Date:   Tue Oct 29 18:20:49 2019 +0100

    [RNMobile] Add a subtitle for unsupported blocks (#18107)

    * Add a new unsupported subtitle to missing blocks - even we know about the block title

    * Update margins, colors and font weight of the unsupported block

commit 1d9313025b9a147fd0a3831bcbdd53108194e52e
Author: Sérgio Estêvão <[email protected]>
Date:   Tue Oct 29 15:09:53 2019 +0000

    Resyncs RichText mobile components with web counterparts. (#17897)

    * Resyncs RichText mobile components with web counterparts.

    * Remove outdated test.

    * Remove unused references.

    * Add platform component

    * Add components depending of platform.

    Only add specific components if we are on the web implementation.

    * Abstract paste of files for RN and web

    Makes the code for pasting image more abstract in the paste method and
    implement specific translation to HTML depending of the platform.

    * Compose extra attributes/props on select/dispatch only if mobile.

    * Remove RN index file for RichText Wrapper.

    Moved all the specific code to the standard index file, so this file
    is no longer needed.

    * Remove API index native file that is no longer needed.

    * Clean up lint errors in file-paste-handler.

    * Fix lint errors.

    * Implement stub remove browser shortcuts for RN

    * Implement autocomplete stub for RN.

    * Refactor toolbar presentation to a method.

    * Remove no longer needed platform file.

    * Consolidate the file paste handler in a single implementation.

    Created a stub for createBlobURL for native that simple returns the
    original URL.

    * Change the text for platform to make it explicit it's native only.

    * Remove duplicate files

    * Include type in file comparison

    * Forgot to rename for native file

    * Fix filePasteHandler for native

    * Move logging back

    * Restore comment on logging

    * Add check for files existence.

    * Refactor format-toolbar code to use split web/native files

    * Remove prop duplication.

    * Fix getAnchorRect call

    * Remove unnecessary const

    * Sync fix for list removal of first empty line

    * Fix RN build after merge with master

    * Sync with web counterpart.

    * Only change selection after new formats are set.

commit 90342167f8f00da500ff5d5c967129d400844709
Author: Joen Asmussen <[email protected]>
Date:   Tue Oct 29 14:34:24 2019 +0100

    Fix columns full-wide regression. (#18021)

    The Columns block, when full-wide, has intentional left and right padding to ensure the mover controls of child blocks are accessible. This is editor-only, and only when the block is selected.

    This regressed at some point, a while ago, probably around the introduction of extra on-click padding to show the dashed outlines of child elements.

    This PR shuffles the rules a bit, reduces some of their specificity, and applies the left and right padding elsewhere to make it work.

commit f1f43d827f7d91777a86c3e4a001ac7f7c824c20
Author: Riad Benguella <[email protected]>
Date:   Tue Oct 29 13:38:20 2019 +0100

    Make the mediaUpload block editor setting a stable API (#18156)

commit 0eb16bd4732d06fe1f156526602f130b27109e2d
Author: Riad Benguella <[email protected]>
Date:   Tue Oct 29 10:51:30 2019 +0100

    Make the AsyncModeProvider API a stable API (#18154)

commit 6277ffdfb1ab449cf7a958a77fe3b81a49f4816a
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Tue Oct 29 09:53:13 2019 +0100

    Block Directory: Convert it to UI Plugin to avoid bundling into Core (#17576)

    * Block Directory: Convert it to UI Plugin to avoid bundling into Core

    * Load the block directory assets only when the experiment is enabled

    * Try to reimplement asset overrides to give more flexibility

    * Add code style improvemements and perform code cleanup

    * Try to make PHP unit tests pass by removing group check

    * Ensure that packages and vendor scripts are printed in the footer

    * Fix the has action check for the block directory assets

    * Move gutenberg-block-directory experiment check out of the action

    * Fix bin/get-vendor-scripts.php

commit 77b36b963a63bb69827273c815ea369cbde676b2
Author: Jon Quach <[email protected]>
Date:   Tue Oct 29 04:20:53 2019 -0400

    Components: Draggable, add story (#18070)

    * Components: Add Story for Draggable

    This update adds a Storybook example for the Draggable component from `@wordpress/components`.

    * Fix useState hook for Draggable story example

    Solution was to create an Example component with the useState hook.
    Render that Example component in the story instead.

commit 38a1227e7c5817141dd0907b762eb4ff00dc770e
Author: andrei draganescu <[email protected]>
Date:   Tue Oct 29 08:46:12 2019 +0200

    Smart block appender (#16708)

    * if thre is only one there is only one

    * made a new insertion point selector, some code review refactoring

    * better handling of inserter

    * refactoring and named block insertion

    * updates to the appender

    * update snapshots

    * update docs

    * default inserter label is used in so many tests

    * fixed allowed blocks test

    * snapshot updated

    * better naming and removed the need for es-lint disabling

    * improved the inserter label construction

    * improved the doc of getTheOnlyAllowedItem selector

    * reverting test patches becasue patching without understanding is bad, bad, bad - don't do it

    * moved getInsertionIndex out of selectos and back into each component that used it

    * docs generated

    * added experimental labels to new selectors, added es-lint comment back

    * updated docs

    * Update packages/block-editor/src/store/selectors.js

    Co-Authored-By: Miguel Fonseca <[email protected]>

    * Update packages/block-editor/src/store/selectors.js

    Co-Authored-By: Miguel Fonseca <[email protected]>

    * refactored and fixed some coding errors

    * small code move

    * small code move

    * removes aria attrs for autoinserted items

    * fixes typo, adds translators comment

    * simplifies the intserter logic

    * fix for the simplification

    * simplifies by using one selector and passing props in compose

    * small code updates

    * lint

    * renamed insertedBlock

    * small doc update

    * adds tooltip to the default button appender

    * refactores for more self documenting varnames

commit d42053413785aaf2c23400ccc86b03fd17d9bf1a
Author: Brent Swisher <[email protected]>
Date:   Tue Oct 29 02:06:40 2019 -0400

    Add Spinner component to storybook (#18145)

commit f46a6a81e74be9a839c6c6159ce360707daf7cb2
Author: Marcus Kazmierczak <[email protected]>
Date:   Mon Oct 28 22:55:52 2019 -0700

    Update ExternalLink Component to fix visually hidden text (#18142)

    * Switch screen-reader-txt to VisuallyHidden component

    * Fix core embed test snapshot, new classname

commit ff78d859458d12e475e8a61b3e6da8937d87a74c
Author: andrei draganescu <[email protected]>
Date:   Tue Oct 29 02:24:16 2019 +0200

    Add horizontal option for the block movers (#16615)

    * horizontal option for the mover, missing icons, broken hover

    * we now have icons

    * positioned the mover to the middle left

    * horizontal mover on mobile

    * vertical layout for horizontal movers

    * drop block movers into block edit to enable inline movers

    * implemented so as to not be a concern for the block implementer

    * removes useless scss variable

    * hiding the drag handle at block level

    * renamed horizontalMover to moverOptions to incorporate separation of properties

    * rafactores the mover options

    * Initial CSS work to make the menu more manageable.

    This moves to flex instead of grid, neutralizes margins, simplifies a few things.

    * Make movers inline again.

    * Further improve margins for child blocks.

    * adds proper aliases in BlockEdit

    * previxed options as experimental

    * RTL movers

    * removed the position option, marked option experimental

    * labeled as experimental new mober and block list props

    * refactored direction detection code for better readability, fixed some code alignment issues

commit 12490f242fcbe7497699bf2ea133164c93572aa5
Author: Ella van Durpe <[email protected]>
Date:   Mon Oct 28 17:16:08 2019 +0100

    Commander: switch cloning method to HTTPS (#18136)

    * Commander: switch cloning method to HTTPS

    * Add HOME env variable

commit 82085edcc77e956f2565d499e094c81ea386cd4b
Author: Sérgio Estêvão <[email protected]>
Date:   Mon Oct 28 15:48:01 2019 +0000

    Fix RN build after merge with master (#18133)

commit 757f7d6d046ec517511c6a384b2f0b0774f328fa
Author: iseulde <[email protected]>
Date:   Mon Oct 28 15:59:05 2019 +0100

    Bump plugin version to 6.8.0-rc.1

commit 96117906dd237fa5706b2db809816e240a2fcf90
Author: Jorge Costa <[email protected]>
Date:   Mon Oct 28 13:56:54 2019 +0000

    Add grandient fixtures to cover block (#18002)

commit 94b971b4a9d2790c390be14f7dafb222ff660881
Author: Ella van Durpe <[email protected]>
Date:   Mon Oct 28 13:49:48 2019 +0100

    Paste: allow list attributes (#17144)

commit 0f1ea49c10f32fadf20da8da50853ac40617fada
Author: Dave Smith <[email protected]>
Date:   Mon Oct 28 11:50:46 2019 +0000

    Add `DimensionControl` component (#16791)

    * Adds initial component

    Note this is copied wholescale from original PR https://github.com/WordPress/gutenberg/pull/16730

    * Remove redunant files. Refactors tests.

    * Updates docs

    * Checks callbacks are functions prior to calling

    * Adds temp testing example usage of component to Group Block

    * Updates to allow sizes as an (optionaly) prop dependency

    * Update default value label

    * Removes unnecessary InstanceId HOC usage

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r323906696

    * Remove unused abbreviation in size table

    * Revert "Adds temp testing example usage of component to Group Block"

    This reverts commit 6f9f3bfd2a7c1a08ecfab143384d414701f0c1e8.

    * Remove arbitrary size value from sizes list

    This is not required as we cannot know how the dimensions component will be used. Therefore sticking with relative values via the slugs is safer. These can be mapped on a case by case basis as required.

    * Remove icon label for a11y reasons

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r324103481

    * Update component docs for consistency, spelling and grammar

    * Tweak docblock formats

    * Update test snapshots to match new default value

    * Update API from onSpacingChange to more agnostic onChange

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r331622801

    * Update tests to cover onChange handler renamed

    * Update currentSize prop to value for consistency with other components

    * Removes onReset in favour of onChange with undefined for consistency

    Adddresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r331624272

    * Move component to @wordpress/components package

    * Remove invalid font sizes style import

    Accidentally included from rebase.

    * Deps update due to rebase

    * Remove unneeded doc blocks

    * Remove usage suggestion which was not helpful

    * Update readme docs to match current API

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r332692714

    * Export as experimental component

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r332694561

    * Revert "Deps update due to rebase"

    This reverts commit 95d00f39010edfaac620980e0d0e7c1001a68c98.

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r332691520

commit 286ee9a3448e2aa8a5a1a7eaf6bd35cfdadd4507
Author: Riad Benguella <[email protected]>
Date:   Mon Oct 28 11:34:12 2019 +0100

    Allow travis builds in all wp/* branches

commit 7f0a81c53ce451e25ed5e291292e0234a0efafcf
Author: Riad Benguella <[email protected]>
Date:   Mon Oct 28 11:09:48 2019 +0100

    Allow media upload post processing for all 5xx responses (#18106)

commit aec39f0c7926ec4d007cb25a829a8c9d65016d44
Author: Jorge Costa <[email protected]>
Date:   Mon Oct 28 09:44:55 2019 +0000

    Add class mechanism for preset gradients. (#18008)

commit 880d1de41b4f1d0d6eed57e914f85260c1f29dbf
Author: Marcus Kazmierczak <[email protected]>
Date:   Mon Oct 28 00:06:32 2019 -0700

    Storybook: Add ColorPicker component (#18013)

    * Add color picker component to Storybook

    * Switch screen-reader-text to new VisuallyHidden

    * Update ColorPicker tests snapshots

    * Add story for showing Alpha Channel

    * Move state out of exported component

    * Lowercase story name

commit b85675d0e117bdf3daf6ea31d55d1a03102da859
Author: Jon Quach <[email protected]>
Date:   Mon Oct 28 03:01:04 2019 -0400

    Components: ExternalLink, add story (#18084)

    This update adds a story for the ExternalLink component.
    Storybook knobs were added to better demonstrate the component's
    properties.

commit 06834d909d393139fb57e1c1813721ec58baad9c
Author: Jeff Bowen <[email protected]>
Date:   Mon Oct 28 02:51:05 2019 -0400

    Tutorial: Specify block naming restrictions (#18117)

    * Tutorial: Specify block naming restrictions

    * Remove an incorrect comma

commit f49df6f25dd1b67586f6a42b0b3175ac63b2909a
Author: Robert Anderson <[email protected]>
Date:   Mon Oct 28 11:23:39 2019 +1100

    Raw handling: Fix strikethrough formatting when copy/pasting from Google Docs in Safari (#17187)

commit e93f7bb4ea07c0a8fe973964b6c5f0da9dd85e5a
Author: Robert Anderson <[email protected]>
Date:   Mon Oct 28 11:08:23 2019 +1100

    Fix overlapping controls in the Inline Image formatting toolbar (#18090)

    * Fix overlapping controls in the Inline Image formatting toolbar

    * Inline mage formatting: make Apply button same height as Width input

    * Polish.

commit a486306f6695a7b5ffcac1c94ea772c1ead4a68a
Author: tellthemachines <[email protected]>
Date:   Sun Oct 27 15:44:07 2019 -0700

    Nav menu item enhancements: display toolbar and remove dropdown (#17986)

    * Display toolbar and remove dropdown from menu item

    * Fixes block toolbar misalignment on IE.

    * Replace destination and deal with keypresses.

    * Update fixture.

    * Keydown management and attempt at close on blur.

    * Add definitive menu item icon.

    * Fix label/input styling.

    * Clean up styles after rebase.

    * Refactor stop propagation .

    * Remove duplicate dependency comments

    * Navigation Block: Rename 'destination' to 'url' in server-side code

commit 9c91f5f92cc41210ca027a5fec72c9b54c354524
Author: Jorge Costa <[email protected]>
Date:   Sat Oct 26 12:44:11 2019 +0100

    Fix: Font size picker component relies on WordPress styles (#18078)

commit 9781a027f324e093ae0970fb1c9c134333d66596
Author: Enrique Piqueras <[email protected]>
Date:   Fri Oct 25 14:25:11 2019 -0700

    Block Editor: Implement new colors hook. (#16781)

    * Block Editor: Implement new colors hook.

    * Block Library: Swap usage of the colors HOC with the colors hook in the heading edit component.

    * Use Colors: Add 'has-x-color' class names.

    * Use Colors: Avoid memory leaks by making caches limited in size, and tied to hook instances.

    * Use Colors: Support children and optional contrast checking in the color panel.

    * Use Colors: Expose colors panel without inspector slot/fill wrapper.

    * Use Colors: Mark hook as experimental.

    * Use Colors: Support custom colors.

    * Block Edit: Remove extra context values and use selectors/actions instead.

    * Heading: Remove unnecessary color class and set text color on save.

    * Use Colors: Add custom/preset color logic.

    * Use Colors: Fix panel bugs.

    * Heading Block: Detect actual background color for contrast checking.

    * Block Edit: Add new export to native file.

    * Use Colors: Change CSS "attribute" to "property".

commit 8d0e5aab1a1c75b52e636aaeda36efd48d1dc838
Author: Jorge Costa <[email protected]>
Date:   Fri Oct 25 17:53:36 2019 +0100

    Add block inspector to the Gutenberg playground. (#18077)

commit be6a8fd32d17b6f927699aa3a7baa7f91daff3a2
Author: Joen Asmussen <[email protected]>
Date:   Fri Oct 25 18:01:29 2019 +0200

    Fix checkboxes for postmeta. (#18108)

commit c4eb0ef953dfc2b7542347832f299f08c11d2c2f
Author: Matt Chowning <[email protected]>
Date:   Fri Oct 25 11:27:56 2019 -0400

    RNMobile: Add image alignment controls (#17962)

    RNMobile: Add image alignment controls

    Only handles left, center, right. Does not permit setting or displaying
    either full or wide alignments.

commit 775d00342ee635bf998e6254cdf6a777aec130a6
Author: Riad Benguella <[email protected]>
Date:   Fri Oct 25 13:13:59 2019 +0100

    Add a block selection breadcrumb to the bottom of the editor (#17838)

commit ac6dc61b0b7d2330d1a2f59fff5511ecdfc5557d
Author: Drapich Piotr <[email protected]>
Date:   Fri Oct 25 12:55:02 2019 +0200

    [rnmobile] Breadcrumbs (#17471)

    * Add breadcrumbs to floating toolbar

    * Add dark mode support

commit 21445de58278eba94ab4e4f415319a028c8f19fa
Author: Ella van Durpe <[email protected]>
Date:   Fri Oct 25 11:16:39 2019 +0200

    Preserve attributes on split (#18102)

commit 0b12ac9bab453e90c24c7d214ab4ad2eb01906bd
Author: Marcus Kazmierczak <[email protected]>
Date:   Thu Oct 24 20:40:57 2019 -0700

    Storybook: Add Color Palette Component (#17997)

    * Add Color Palette to Storybook

    * Apply suggestions from code review

    Co-Authored-By: Enrique Piqueras <[email protected]>

    * Refactor state out of story components, to own

    * Update packages/components/src/color-palette/stories/index.js

commit c16c1a907a79bf62cfb8eb8b94c368dd68da1dd1
Author: Enrique Piqueras <[email protected]>
Date:   Thu Oct 24 18:53:38 2019 -0700

    Env: Add support for running in themes. (#17732)

    * Env: Add support for running in themes.

    * Env: Optimize context detection filter.

    * Env: Update test directory structure to match convention.

commit 7a62af0cb8a280b53c0e26b6da8d0e74f04ee2f4
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Thu Oct 24 23:10:09 2019 +0200

    Storybook: Apply a set of enhancements to the existing stories (#18030)

    * Storybook: Apply a set of enhancements to the existing stories

    * Add basic knobs integration to all Button stories

commit 20b825a0bcc863c274741c942e306e1328ec0854
Author: Marcus Kazmierczak <[email protected]>
Date:   Thu Oct 24 13:53:24 2019 -0700

    Components: Add VisuallyHidden component (#18022)

    * Add ScreenReaderText component

    * Add new component readme to manifest

    * Remove CSS style loading within stories

    * Switch component name to VisuallyHidden

    - Rename directory and includes
    - Update README usage
    - Update Storybook usage

    * Switch classname to components-visually-hidden

    * Lint: newline

    * Add focus style

    * Switch to 'as' for specifying tag

    * Move renderAsRenderProps to utils.js

    * Move utils to inside component folder

    Waiting to refine the utils usage a little better before
    making it look available for other components to use.

    * Apply suggestions from code review

    Co-Authored-By: Grzegorz (Greg) Ziółkowski <[email protected]>

    * Lint: Move newline

    * Fix variable name

    * Use variable for stylesheet

commit 6c556a7c8566a286cf6f9622d0d153669db3683d
Author: Jorge Costa <[email protected]>
Date:   Thu Oct 24 21:25:18 2019 +0100

    Add gradients in cover block (#18001)

commit abf261cf780c98956a711a248de6c9dd520bd757
Author: Kerry Liu <[email protected]>
Date:   Thu Oct 24 11:25:15 2019 -0700

    List Block: Do not merge list with previous block if deleting first list item and list is not empty (#18032)

    * Do not merge list with previous block if deleting first list item and list is not empty

    * Add e2e test and clean up

    * Correct mistake

    * Adjust comment

commit 3df5109c47870ed37aa19f11978476960474c2d0
Author: Jorge Costa <[email protected]>
Date:   Thu Oct 24 18:58:46 2019 +0100

    Fix: Custom button background color not reflected on reload (#18037)

    Fixes: https://github.com/WordPress/gutenberg/issues/18012
    We had a bug where the editor may not reflect the custom button background color after a reload. That happened because the rule background: customGradient, may overwrite the background-color rule even if the custom gradient has not set.
    This PR performs a logic update to solve the issue.

commit 65c363bc392c1fed3315afc835c31eaaf8e43dc3
Author: Jorge Costa <[email protected]>
Date:   Thu Oct 24 16:42:35 2019 +0100

    Fix: End to end tests do not disable the experiments (#18093)

commit 5e13a1cccfa33c9ee18ca00c4bbcd5b642fe26f7
Author: Sérgio Estêvão <[email protected]>
Date:   Thu Oct 24 16:37:36 2019 +0100

    Add platform component (#18058)

    * Add platform component

    * Improve platform implementation in RN.

    * Add more documentation and tests.

    * Update readme file.

    * Update tests.

    * Fix filenames for native versions.

    * Add license attribution

    * Remove unnecessary lines.

    * Improve documentation

    * Remove trailing space

    * Update packages/element/src/platform.js

    Co-Authored-By: Grzegorz (Greg) Ziółkowski <[email protected]>

    * Update readme.

    * Fix lint error.

commit e829d97a6a15edfe3d38252630897f3f35ddc4cd
Author: Joen Asmussen <[email protected]>
Date:   Thu Oct 24 14:02:17 2019 +0200

    Fix regression with Gallery margin. (#18019)

    I failed to verify the Gallery block when I approved https://github.com/WordPress/gutenberg/pull/17958#issuecomment-543597183 and therefore caused a regression.

    This PR adds explicity left margins and paddings to the gallery ul to ensure there isn't any added padding and margin.

commit 0b723424f5c6e40115e12694c693b34879ba9a9f
Author: Jorge Costa <[email protected]>
Date:   Thu Oct 24 12:46:13 2019 +0100

    Chore: Fix: Do not show Gradient panel if gradients are not av… (#18091)

commit 7783eb5c788528402a050833d9a4b792bdcdc22e
Author: Miguel Fonseca <[email protected]>
Date:   Thu Oct 24 10:39:45 2019 +0100

    Local autosave: Clear after successful save (#18051)

    * Local autosave: Clear after successful save

    Presumably, somewhere in the fixing of conflicts between remote and
    local autosaves (purge local upon successful remote autosave),
    LocalAutosaveMonitor stopped purging the local autosave upon successful
    *saves*.

    * Tests: Autosave: Correctly wait for editor chrome before saving

commit a6502c1e52dfa2c223342eedc5ba8d4beeffe082
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Thu Oct 24 11:14:46 2019 +0200

    Code style: Fix ESLint warnings reported for JSDoc definitions (#18025)

    * Code style: Fix ESLint warnings reported for JSDoc definitions

    * Add WordPress type definitions to the list of names recognized by JSDoc linter

commit 31218475b3ddc7768e62123e3c3f1afb05fcb264
Author: Damián Suárez <[email protected]>
Date:   Thu Oct 24 04:17:35 2019 -0300

    url-input: ensuring value is defined on key down (#18088)

commit 1cff327cdd6e32adfa1aafd6217fafe0f973918a
Author: Felix Arntz <[email protected]>
Date:   Thu Oct 24 01:35:06 2019 +0200

    Add logic for basic (temporary) wp_template editing UI (#17625)

    * Templates: Add logic for basic temporary editing UI.

    * Templates: Fix menu filter.

    * Post Slug: Follow class name convention.

commit 29670ca35b33de231fb5a8e8c1451d35a9d0a92e
Author: Felix Arntz <[email protected]>
Date:   Wed Oct 23 22:42:36 2019 +0200

    Implement core template loader overrides to rely on wp_template posts (#17626)

    * Introduce wp_template post type.

    * Improve (temporary) admin UI for wp_template post type by exposing slug.

    * Implement template loader overrides to rely on 'wp_template' posts.

    * Render viewport meta tag.

    * Prevent deletion of fallback 'wp_template' post 'index'.

    * Scope PR to just basic wp_template post type registration.

    * Implement core template loader overrides to rely on wp_template posts instead.

    * Render title tag regardless of theme support

    Co-Authored-By: Weston Ruter <[email protected]>

    * Make getting correct wp_template post more error-proof

    Co-Authored-By: Weston Ruter <[email protected]>

    * Template Loader: Add more content filters.

    * Templates: Fix experiment flag logic.

commit 4dbe1fcd288e9a0bc6a978939eac5b5b721c9033
Author: Ella van Durpe <[email protected]>
Date:   Wed Oct 23 22:37:19 2019 +0200

    Table: remove wrapper around cells (#17711)

commit 7da1e78996bd7fa800cb4521490e60d45dd34f17
Author: Enrique Piqueras <[email protected]>
Date:   Wed Oct 23 13:28:04 2019 -0700

    Add Site Title block and required functionality. (#17207)

    * Core Data: Add a Site entity and a hook for entity saving logic.

    * Experiments: Add a Full Site Editing experiment.

    * Block Library: Add Site Title block.

    * Fixtures: Add Site Title block fixture.

    * Fixtures: Add missing transform fixtures.

    * Block Library: Remove deprecated prop usage in Site Title.

    * Site Title: Support nesting inside of a Site block.

    * Site Title: Disallow formatting in the rich text field.

    * Core Data: Make useEntitySaving experimental.

commit a50bf80d2d6c618082527847ed6ecad3d13c5bc6
Author: Mikael Korpela <[email protected]>
Date:   Wed Oct 23 13:11:39 2019 +0300

    Add `@wordpress/base-styles` package (#17883)

    - Move `assets/stylesheets/*` to the new package
    - Move admin color schemes to the new package

commit 9e5d1385d6b844c4dcae617e3966acb209b23110
Author: Marcus Kazmierczak <[email protected]>
Date:   Tue Oct 22 17:05:04 2019 -0700

    Update design-systems:dev script to build packages (#18073)

    The build-style/style.css needs to be rebuilt prior to
    running Storybook in watch mode.

    This change adds `npm run build:packages` at the start of
    the design-systems:dev script to CSS is built prior.

    Issue found in #17997

commit 40ebea70a42588782088fdc8591844ccace96e9c
Author: Damián Suárez <[email protected]>
Date:   Tue Oct 22 20:08:25 2019 -0300

    navigation-menu: Implement colors selector button. (#17832)

    Summary
    block-editor: expose ColorPaletteControl component
    navigation-menu: improve colors-selector component
    navigation-menu: compose withColors
    navigation-menu: render colors selector in bar
    navigation-menu: propagate withColor props
    navigation-menu: apply theme styles to selection
    navigation-item: populate styles to nav item
    navigation-menu: apply inline styles and CSS classes

commit d5d66a8b34de70a1290661082bf79ac104b56ac6
Author: Manzoor Wani <[email protected]>
Date:   Wed Oct 23 04:08:56 2019 +0530

    Add isInvalidDate prop to DatePicker (#17498)

commit 03414de9995870109f3f6e0e1c88605a0353aaf3
Author: Enrique Piqueras <[email protected]>
Date:   Tue Oct 22 13:18:20 2019 -0700

    Env: Add support for custom ports. (#17697)

commit 6ab0e323531bf4b0b03aaee58e02a611fc74d16b
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Tue Oct 22 12:55:17 2019 +0200

    Chore: Update the lock file to use newer version of fsevents (#18057)

    This fixes the issues when `npm install` on macOS throws several errors.

commit 869ac8de003d591e50c1c76210f879cd6d28a7b3
Author: Jonathan Goldford <[email protected]>
Date:   Tue Oct 22 05:43:51 2019 -0500

    Fix issue when providing multiple shortcode aliases for a new block (#17925)

    * Fix issue where providing multiple shortcode aliases to transform into a block only matches the first shortcode

    * Add test to ensure blocks can transform using multiple shortcode aliases

    * Simplify the approach used to find the individual shortcode being transformed

    Props jg314

commit 0c8da5b39d25d9b223239daf744ecc7091e74b91
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Tue Oct 22 11:15:11 2019 +0200

    Chore: Fix issues related to Node 12 becoming LTS (#18054)

    * Chore: Fix issues related to Node 12 becoming LTS

    * Include the root package.json file in the linting
    This commit also moves the npm-package-json-lint config to the standalone file.

    * Add changelog entries to @wordpress/scripts package

commit bf60a077465f4908e843d2537d8c31b6a11c7cfa
Author: Riad Benguella <[email protected]>
Date:   Mon Oct 21 11:20:33 2019 +0100

    chore(release): publish

     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]

commit 563ac7916fae4cd4f6aa17edae34c9449429e835
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Mon Oct 21 12:03:13 2019 +0200

    Tests: Clean up skipped e2e tests (#18003)

commit 952659bd93683f7262a516a6f802bcea448b9ca1
Author: Matthew Kevins <[email protected]>
Date:   Mon Oct 21 11:27:54 2019 +1000

    Fix MediaUpload README value prop description (#18039)

commit c671a3857f5094b446728a7b4996a78419687f55
Author: Anthony Burchell <[email protected]>
Date:   Sun Oct 20 20:05:13 2019 -0500

    removes decleration of Select button (#18007)

commit bf3b7f9d0a6a4a8000ad1a64df7e2e38c19d587f
Author: Phoebe Gao <[email protected]>
Date:   Sat Oct 19 05:25:19 2019 -0700

    Update MediaPlaceholder README.md (#17980)

    * Update MediaPlaceholder README.md

    This change updates the readme to properly document the `value` property.

    See issue here: https://github.com/WordPress/gutenberg/issues/17967

    * Update MediaUpload README.md

commit db2235d69be5401858794b9465d94a1906dbaae6
Author: Joen Asmussen <[email protected]>
Date:   Sat Oct 19 10:56:02 2019 +0200

    Fix Publish Button!!! (#18016)

    Fixes #18004 and thank science, that was driving me insane ever since you pointed it out.

    This PR does a couple of things:

    1. It adds `isLarge` to the Publish button. It was there for Preview, but not Publish.
    2. It simplifies a little CSS as a result of that.
    3. It also tweaks the button height as defined for the two preview publish buttons.

commit fb283f092c43c093955cb65e25a26e405e1308e5
Author: Marcus Kazmierczak <[email protected]>
Date:   Fri Oct 18 13:14:43 2019 -0700

    Add dashicon component to storybook (#18027)

commit 181042ac4be04fd6775f95f85cd3e3a7c8aa2a91
Author: Marcus Kazmierczak <[email protected]>
Date:   Fri Oct 18 06:45:25 2019 -0700

    Storybook: Add knobs to ColorIndicator (#18015)

    * Add knobs to ColorIndicator

    * Lint: new line

commit f772aede279b2eafb0793078b433304468d1989f
Author: Riad Benguella <[email protected]>
Date:   Fri Oct 18 14:41:57 2019 +0100

    Fix the performance tests (#18020)

commit fba1f85b18fe15452763229f1c8435b371c21ae9
Author: Luke Walczak <[email protected]>
Date:   Fri Oct 18 13:04:21 2019 +0200

    [RNMobile] Introduce grouping in the block settings inspector (#17703)

    * Intrdouce groupin in the block settings inspector

    * Adjust PanelBody to design

    * Adjust padding when section doesnt have title

    * Rewirte arrow function to function

    * Fix lint issue

    * Create a PanelActions component for handling action buttons in the block settings inspector

    * Remove useless separator type and fix typo

    * Refactor after CR

    * Correct label styles

    * Fix overriding mechanism on label style

commit 30d3e982d619ad6b185871f305b66c89766e5686
Author: Jarda Snajdr <[email protected]>
Date:   Fri Oct 18 12:29:40 2019 +0200

    Optimize exports of the wp/compose package (#17945)

    Adds `sideEffects:false` to `package.json` so that unused exports can be optimized away
    by the bundler.

    Moves the `compose` definition (i.e., reexport from Lodash) to its own module, so that
    we don't pull in Lodash just by importing something from `@wordpress/compose`. After this
    patch, one needs to import `compose` explicitly to trigger the Lodash import.

commit 7017152306f71486d0d65362f545252f560cb55f
Author: Jorge Costa <[email protected]>
Date:   Fri Oct 18 09:59:46 2019 +0100

    Update: Refactor button edit to use a functional component (#18006)

commit 208cc9f0d3626c81bc9f7cda61c86c2c0c1bd7ce
Author: Luke Walczak <[email protected]>
Date:   Thu Oct 17 17:17:33 2019 +0200

    Fix image native test (#17989)

commit 6d28e63d0d53e34f100cf087448c7accce86e425
Author: Enrique Piqueras <[email protected]>
Date:   Thu Oct 17 07:53:52 2019 -0700

    Playground: Add link to components storybook. (#17982)

commit b13a6fc292f91bf3545164b434bf64ad03d2c184
Author: Riad Benguella <[email protected]>
Date:   Thu Oct 17 13:54:39 2019 +0100

    Split e2e tests into multiple folders (#17990)

commit 207bf752e961bbe33fbb84ee8b5840d0a0b54cd2
Author: jbinda <[email protected]>
Date:   Thu Oct 17 09:56:30 2019 +0200

    [RNMobile] add RangeControl mobile implementation (slider) (#17282)

    * add RangeCell

commit f94dadb5b562308795a85398db2681f42bda6c6b
Author: Daniel Richards <[email protected]>
Date:   Thu Oct 17 07:38:45 2019 +0800

    Try setting a block display name for the Block Navigator. (#17519)

    * Really simple first attempt at showing a display name in the navigator

    * Strip any RichText formatting

    * Add display name for navigation menu item block

    * Refactor to use displayNameAttribute property

    * Change name of displayName options

commit 56a27599d72718df787338dfb47cb0b39c39f4d8
Author: Marcus Kazmierczak <[email protected]>
Date:   Wed Oct 16 14:37:16 2019 -0700

    Add empty line (#17981)

commit 7a2298b98989a77de67acbf66c426e248a23bf9e
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Wed Oct 16 22:35:07 2019 +0200

    Fix: Invalid import statement for deprecated in the modal component (#17969)

    * Fix: Invalid import statement for deprecated in the modal component

    * Font Size Picker: Update E2E test to work with new Core changes.

commit e5ecca57be4a068f16d7cfdcdd41ad888b50ffa0
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Wed Oct 16 16:55:17 2019 +0200

    Codeowners: Remove gziolo from some folders (#17971)

    I get too many notifications.

commit 5a055336832730a91c1e1579e8261dd6075cd176
Author: Dan Phiffer <[email protected]>
Date:   Wed Oct 16 09:01:42 2019 -0400

    Small changes to Git Workflow docs (#17662)

    * :information_desk_person: add 'upstream' remote

    * :bug: origin / remote

commit f71a7d1c3d84481b46eb05a260703981ff71f6d8
Author: Riad Benguella <[email protected]>
Date:   Wed Oct 16 12:48:10 2019 +0100

    Bump plugin version to 6.7.0

commit fb6dee80e07042745858f38978445de0e6273eee
Author: Joen Asmussen <[email protected]>
Date:   Wed Oct 16 13:39:45 2019 +0200

    Improve columns flex rule, round 2. (#17968)

commit 1e089dba0c572bd7dd71f37aa1c4759cd6aaf81b
Author: Cameron Voell <[email protected]>
Date:   Wed Oct 16 04:00:34 2019 -0700

    RNMobile Add size options to mobile  image block (#17245)

    * [RNMobile] Native mobile release v1.11.0 (#17181)

    * [RNMobile] Fix crash when adding separator

    * Build: remove global install of latest npm since we want to use the paired node/npm version (#17134)

    * Build: remove global install of latest npm since we want to use the paired node/npm version
    * Also update travis to remove --latest-npm flag

    * [RNMobile] Try dark mode (iOS) (#17067)

    * Adding dark mode component implemented on list and list block

    * Adding DarkMode handling to RichText, ToolBar and SafeArea

    * Mobile: Using DarkMode as HOC

    * iOS DarkMode: Modified colors on block list and block container

    * iOS DarkMode: Improved Header Toolbar colors

    * iOS DarkMode: Removing background from buttons

    * iOS DarkMode warning and unsupported

    * iOS DarkMode: MediaPlaceholder

    * iOS DarkMode: BottomSheets

    * iOS DarkMode: Inserter

    * iOS DarkMode: DefaultBlockAppender

    * iOS DarkMode: PostTite

    * Update hardcoded colors with variables

    * iOS DarkMode: Fix bottom-sheet cell value color

    * iOS DarkMode: More - PageBreak - Add Block Here

    * iOS DarkMode: Better text color

    * iOS Darkmode: Code block

    * iOS DarkMode: HTML View

    * iOS DarkMode: Improve colors on SafeArea

    * Fix toolbar not avoiding keyboard regression

    * Fix native unit tests

    * Fix gutenberg-mobile unit tests

    * Adding RNDarkMode mocks

    * RNMobile: Fix crash when viewing HTML on iOS

    * [RNMobile] Remove toolbar from html view

    * [RNMobile] Fix MaxListenersExceededWarning caused by dark-mode event emitter (#17186)

    * Fix MaxListenersExceededWarning caused by dark-mode event emitter

    * Checking for setMaxListeners trying to avoid CI error

    * Adding remove listener to DarkMode HOC

    * DarkMode: Binding this.onModeChanged to `this`

    * DarkMode: Adding conditional needed to pass UI Tests on CI

    * Fix focus title on new posts regression (#17180)

    * BottomSheet: Setting DashIcon color directly when theme is default (light) (#17193)

    * Activate Travis CI on rnmobile/master branch (#17229)

    * Added ability to update image size options (sizeSlug) through a new InspectorControl Cell that leads to a Picker.

    * Added a style for Size Inspector Controls cell to align it will other cells that have icons.

    * Add native support for the MediaText block (#16305)

    * First working version of the MediaText component for native mobile

    * Fix adding a block to an innerblock list

    * Disable mediaText on production

    * MediaText native: improve editor visuals

    * Move BlockToolbar from BlockList to Layout

    * Remove BlockEditorProvider from BlockList and add native version of EditorProvider to Editor. Plus support InsertionPoint and BlockListAppender

    * Update BlockMover for native to hide if locked or if it's the only block

    * Make the vertical align button work, add more styling options for toolbar buttons

    * Make sure registerCoreBlocks does not break in production

    * Copy docblock comment from the web version for registerCoreBlocks

    * Fix focusing on the media placeholder

    * Only support adding image for now

    * Update usage of MediaPlaceholder in MediaContainer

    * Enable autoScroll for just the out most block list

    * Fix JS Unit tests

    * Roll back to IconButton refactor and fix tests

    * Fix BlockVerticalAlignmentToolbar buttons style on mobile

    * Fix thing for web and ensure ariaPressed is always passed down

    * Use AriaPressed directly to style SVG on mobile

    * Update snapshots

    * Swtiched to react-native Modal onDismiss property for signaling Picker is ready to show

    * Added a prop for catching modal dismissal on Android. (onDismiss is iOS only and onModalHide works on Android but breaks on iOS)

    * Added icon for Inspector Controls size option. Removed style we no longer need.

    * Added title to size option iOS ActionSheet and left alignstyle to size options BottomSheet

    * MediaUpload and MediaPlaceholder unify props (#17145)

    * Unify media placeholder and upload props within media-text (#17268)

    * [RNMobile] Fix dismiss keyboard button for the post title (#17260)

    * Set unused functions to undefined instead of false in BottomSheet Modal props

    * Recover border colors (#17269)

    * [RNMobile] Insure tapping at end of post inserts at end

    Previously, tapping at the end of the post would insert a block
    immediately after the currently selected block. In addition, this commit
    is cleaning out a few unusued props in the block-list file.

    * Support group block on mobile (#17251)

    * First working version of the MediaText component for native mobile

    * Fix adding a block to an innerblock list

    * Disable mediaText on production

    * MediaText native: improve editor visuals

    * Move BlockToolbar from BlockList to Layout

    * Remove BlockEditorProvider from BlockList and add native version of EditorProvider to Editor. Plus support InsertionPoint and BlockListAppender

    * Update BlockMover for native to hide if locked or if it's the only block

    * Make the vertical align button work, add more styling options for toolbar buttons

    * Make sure registerCoreBlocks does not break in production

    * Copy docblock comment from the web version for registerCoreBlocks

    * Fix focusing on the media placeholder

    * Only support adding image for now

    * Update usage of MediaPlaceholder in MediaContainer

    * Enable autoScroll for just the out most block list

    * Fix JS Unit tests

    * Roll back to IconButton refactor and fix tests

    * Fix BlockVerticalAlignmentToolbar buttons style on mobile

    * Fix thing for web and ensure ariaPressed is always passed down

    * Use AriaPressed directly to style SVG on mobile

    * Update snapshots

    * Support group block on mobile

    * Extend shouldShowInsertionPoint condition to be false when group is selected

    * Code refactor

    * Update package-lock

    * Removing old style reference.

    * Moved Picker for image size options into new ImageSizePicker component. Cleaned up sizeOptionLabels.

    * Updated total left margin on Android Image size options to be 24 px instead of 28 px

    * Image Size options hidden behind __DEV__ flag

    * Remove redundant bg color within button appender (#17325)

    * [RNMobile] DarkMode improvements (#17309)

    * Remove the need to import `useStyle` and pass the theme prop on every instance that `withStyle` is used

    * Implement dark-mode refactor on all components

    * Fix broken native tests

    * Fix default block appender background color on DarkMode

    * DarkMode: Make `useStyle` a class function

    * Cleaned up default true properties and replaced code with lodash map.

    * Updated to use BottomSheetPickerCell. Eliminated code, but size options now open over top inspector controls menu.

    * Added leftalign to PickerCell.

    * [RNMobile] Add autosave to mobile apps (#17329)

    * [RNMobile] Fix crash when adding separator

    * Build: remove global install of latest npm since we want to use the paired node/npm version (#17134)

    * Build: remove global install of latest npm since we want to use the paired node/npm version
    * Also update travis to remove --latest-npm flag

    * [RNMobile] Try dark mode (iOS) (#17067)

    * Adding dark mode component implemented on list and list block

    * Adding DarkMode handling to RichText, ToolBar and SafeArea

    * Mobile: Using DarkMode as HOC

    * iOS DarkMode: Modified colors on block list and block container

    * iOS DarkMode: Improved Header Toolbar colors

    * iOS DarkMode: Removing background from buttons

    * iOS DarkMode warning and unsupported

    * iOS DarkMode: MediaPlaceholder

    * iOS DarkMode: BottomSheets

    * iOS DarkMode: Inserter

    * iOS DarkMode: DefaultBlockAppender

    * iOS DarkMode: PostTite

    * Update hardcoded colors with variables

    * iOS DarkMode: Fix bottom-sheet cell value color

    * iOS DarkMode: More - PageBreak - Add Block Here

    * iOS DarkMode: Better text color

    * iOS Darkmode: Code block

    * iOS DarkMode: HTML View

    * iOS DarkMode: Improve colors on SafeArea

    * Fix toolbar not avoiding keyboard regression

    * Fix native unit tests

    * Fix gutenberg-mobile unit tests

    * Adding RNDarkMode mocks

    * RNMobile: Fix crash when viewing HTML on iOS

    * [RNMobile] Remove toolbar from html view

    * [RNMobile] Fix MaxListenersExceededWarning caused by dark-mode event emitter (#17186)

    * Fix MaxListenersExceededWarning caused by dark-mode event emitter

    * Checking for setMaxListeners trying to avoid CI error

    * Adding remove listener to DarkMode HOC

    * DarkMode: Binding this.onModeChanged to `this`

    * DarkMode: Adding conditional needed to pass UI Tests on CI

    * Fix focus title on new posts regression (#17180)

    * BottomSheet: Setting DashIcon color directly when theme is default (light) (#17193)

    * Add a preliminary version of the AutosaveMonitor for mobile that calls the "bridge" and asks the native side to save the content

    * Add autosave mock function for tests

    * Fix merge conflicts

    * Fix lint

    * Re-add autosave on mobile that was removed erroneously during import-merge from rnmobile/master

    * Remove native variant of AutosaveMonitor and introduces changes at  editor store level

    …
mchowning added a commit that referenced this pull request Nov 18, 2019
commit 9c5e2c1b6f043540a0af8451893d3093d4173b99
Author: Marko Savic <[email protected]>
Date:   Fri Nov 15 16:13:12 2019 +0100

    Added native label to android and ios Platforms element (#18539)

commit 862c6c2178aa8fc41142fa05a3611c107969030d
Author: Stefanos Togkoulidis <[email protected]>
Date:   Fri Nov 15 13:12:46 2019 +0200

    Fix lint issues

commit e76d087ce1315b4e04048f650973822eeac1dfcd
Author: Matthew Kevins <[email protected]>
Date:   Fri Nov 15 19:35:36 2019 +1000

    [RNMobile] Add separate options for capturing photo and video (#18505)

    * Add separate options for capturing photo and video

    * Adding media source objects to MediaUpload

    * Added id to media source to diferenciate between take image and take photo

    * Fix values not found on media sources

    * Fix lint issues

    * Fix unit tests on Media Upload component

    * Remove empty array item from internalSources in mediaUpload

commit aba13e2981a3fc5af1ed3e280f559822f32419fd
Author: Cameron Voell <[email protected]>
Date:   Thu Nov 14 07:14:05 2019 -0800

    [RNMobile] Image block makes call to native for fullscreen preview (#18493)

    * Call to RN gutenberg bridge for Android native fullscreen preview

    * Added highlight border around image when image block is selected

    * Do not request fullscreen preview if tapped mid upload or while showing tap to rety.

commit 262cca42e53be0be2e9d6c0a8df08d94e672ac54
Author: Matt Chowning <[email protected]>
Date:   Thu Nov 14 09:24:52 2019 -0500

    [RNMobile] Add content alignment options to paragraph block (#18433)

commit 3d1ef4bdc1f204c4e8aef4cd98a02c1050d37130
Author: Sérgio Estêvão <[email protected]>
Date:   Thu Nov 14 13:19:03 2019 +0000

    Fix paste in post title in GB-mobile. (#18479)

    * Fix paste on title.

    * Remove html import.

commit 639d3c4bba6e5f2577d2694e05301c5760384c62
Author: etoledom <[email protected]>
Date:   Thu Nov 14 12:24:33 2019 +0100

    [RNMobile] Simplify bridge requestMediaPick methods (#18303)

    * Merge bridge `Requeste media pick` methods into a single one, adding a source param.
    This helps to handle the "others" option in the same way than any other option, plus adding the filters parameter.
    This filter parameters is needed for the iOS "Other Apps" media source option.
    This is also one step forward to declare all media source options from the client app.

    * Move device sources to native bridge component

    * Fix typo on media source name

commit e9f55660ef36605fc2e98465c20e0d4b7c27ca8a
Author: Sérgio Estêvão <[email protected]>
Date:   Tue Nov 12 22:30:20 2019 +0000

    Activate preformatted block in the RN app (#17906)

    * Activate pre-format block

    * Make sure identifier is set to the correct value.

    * Implement native version of preformatted block

    Use the web block as a base but then wrap a style view around.

    * Change preformatted background color to gray-5

    * Prepare block for dark color mode in iOS.

    * Test preformatted block

    * Make block placeholder borders round

    * Update colors for preformatted block in mobile

    * Cleanup test

    * Remove test

    At the moment the test setup is not ready to mock RichText components.

    * Simplify styles.

    * Simplify the styles file using vars and shorthands

    * Enable preformatted only for ios when running in production mode.

commit 5b02715253a46a65a4e9bd380cb013a607fd1273
Author: Stefanos Togkoulidis <[email protected]>
Date:   Mon Nov 11 16:16:29 2019 +0200

    More fixing of merge errors

commit 168bf7dca69d108159a10002ab6f3a102933e6bc
Author: Stefanos Togkoulidis <[email protected]>
Date:   Mon Nov 11 14:36:56 2019 +0200

    Fix merge errors

commit a6450c6397e8b182527414cf6d878cb8f953c845
Merge: 2c3310fa6 705d91151
Author: Stefanos Togkoulidis <[email protected]>
Date:   Mon Nov 11 12:13:33 2019 +0200

    Merge branch 'rnmobile/releases' into rnmobile/release-v1.17.0

commit 705d91151fe4064d4dfea337a7f2ba77983ecbe1
Author: Stefanos Togkoulidis <[email protected]>
Date:   Fri Nov 1 13:32:41 2019 +0200

    Include the RN mobile releases branch in Travis branches

commit e03e133b2a7feb4aa11dc73883457d6798896f1f
Author: Jorge Bernal <[email protected]>
Date:   Fri Nov 1 11:16:13 2019 +0100

    Fix handling of pasted images and prevent thumbnail uploads (#18215)

    * Fix handling of pasted images and prevent thumbnail uploads

    * Fix lint errors

    * Remove check for image for sync.

commit c04639e519e538a20059d8a22b60974c7ef589b2
Author: Dave Smith <[email protected]>
Date:   Wed Oct 30 04:21:33 2019 +0000

    Experimental Link creation interface (#17846)

    * Initial component file structure

    * Implement basic icon and toggle mechanic

    * Adds basic search input

    * Update input to utilise LinkEditor component autocomplete

    * Add ability to customise placeholder

    * Update to utilise URLInput directly for greater flexibility

    * Add example search results and test coverage

    * Update class naming convention to match guidelines

    See https://github.com/WordPress/gutenberg/blob/master/docs/contributors/coding-guidelines.md#css

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r332567521

    * Adds render prop to enable custom suggestions rendering

    Previously it wasn’t possible to customise the render of the search suggestions. By providing an optional render prop we now have full control over this if required.

    * Update to utilise URLInput render prop to customise search suggestions render

    Previously we relied on our own render of suggestions but this wasn’t hooked up to all the accessibility enhancements afforded by URLInput. By utilising the render prop exposed by URLInput to customise the rendering of suggestions, we can have the best of both worlds.

    * Update to add post type to the fetchLinkSuggestions responsive mapping

    This is required to display the type of entitity in the search results for LinkControl

    * Fix to ensure search suggestion interaction states are perceivable

    * Update suggestion render prop to provide component props as arguments

    Previously when using the `renderSuggestions` render prop the user had to know how to put together the correct props on the correct elements in their custom render. By passing the default props for the listing element and the item element we can relieve the user of this burden by allowing them to spread the props onto the appropriate elements in their render without having to know how they are created.

    * Update to match with design visual and provide more accessible markup

    * Adds settings area. Fixes missing reset icon.

    * Fix search items to be buttons with correct style and layout

    * Adds overflow scrolling to search results

    * Fix to stop scroll shadow overlaying scrollbars

    * Add bespoke settings area and tweak styles

    * Update to allow URLs to be conditionally handled as a suggestion

    Previously when a URL was entered it was deemed that no suggestions should or could be found and so the process of fetching suggestions was short circuited. Add additional prop to optionally allow developers to have URL-like values handled as suggestions.

    * Updates to conditionally use an entity or url based search results fetcher

    If the current value of the input is a URL then we conditionally pass a different handler for search results to the URLInput component. For URL based values we immediately return a “suggestion” object with values matching those entered by the user. Non URL based values are handled as previously.

    * Fix bug whereby fetchSearchSuggestions wasn’t called

    Remove ambiguity by calling the search handler directly rather than proxying through another function and having to apply it immediately.

    * Remove default toggle UI and implement Popover close

    The LinkControl will be mostly where another element triggers the UI to appear. As a result we don’t want to force a toggle element on the developer. Rather we will expose an API to allow the consuming component to toggle the visibility of the LinkControl

    * Adds search text “highlighting” in results list

    * Move TextHighlight component to its own file

    * Fix bug where update to value prop didn’t cause suggestions to reset.

    * Update to remove internal handling of open/closed state

    This state is now expected to be handled by the consuming component chosing whether or not to render the component. It has no concept of open or closed.

    * Fix React violation by returning only the text for non matches

    * Update existing tests to match new implementation

    * Add link reset test

    * Adds test which uncovers major bug in the implementation

    Basically this test has revealed that due to the way we’re detecting and handling URL-like values the wrong data fetcher function gets passed to the URLInput component for the first input `change` event.

    For example if you paste `https://make.wordpress.com` directly into the input then it is determined to be a URL but because the current fetcher function for the current render is still the handler that deals with entity searches the correct results are not displayed. Adding another character to trigger a re-render will cause the UI to update to the expected state, but this is a major bug.

    * Tweak critical test to be more explicit about what is expected

    * Fix bug to make determining search handler use the latest input value

    Previously we relied on parent component state to choose which search handler to use for the current input term. However, the state was always 1 tick behind so the previous search handler got used. Updating this to use the real time value of the input passed onChange ensures we select the correct search fetcher when the component re-renders.

    * Add loading spinner and associated test coverage

    Spinner was technically always rendered but it wasn’t visible due to CSS styling. Fix and also cover with tests.

    * Fix bug where value could be empty

    * Adds basic editing / view state switching

    * Add keydown callback to URLInput

    * Select link on ENTER keydown event

    * Utilise LinkViewer to render edit state and decode urls for display

    * Only display link settings when a link is selected

    * Adds current link view styles

    * Makes settings toggle controlled by parent component

    * Update visuals to match updated design

    Addresses https://github.com/WordPress/gutenberg/issues/17557#issuecomment-542401433

    * Add standardised min width to popover

    * Temporary hack to include Link UI in Playground for testing

    * Update to utilise isURL util from @wordpress/url package

    * Update to utilise isURL util from @wordpress/url package

    * Removes URLPopover dependency

    Attempts to remove unwanted deps on other components. We now utilise Popover directly and suffer no consequences as we are not making use of any bespoke features provided by URLPopover.

    * Extract settings drawer to sub component

    * Refactor search items into a component

    * Refactor Input and Search to component

    * Fix missing selected state on search suggestions

    * Tweak line height on search suggestion url path

    * Augment test for URL-like by testing for “www.”

    * Fix to stop url overflows and wrapping on to multiple lines

    * Uppcase URL in type indicator within search results list

    * Avoid reading out slug/URL for entity results

    * Ensures i18n of change button

    * Always offer URL result in search suggestions as default

    * Fix loading spinner position and dim results during loading

    Addresses https://github.com/WordPress/gutenberg/pull/17846#issuecomment-543244810

    * Fix scroll shadows to use valid alpha transparent values in gradient

    Fixes broken shadows in Safari which didn’t recognise transparent as a value to transition to in a gradient.

    * Adds instructional text in place of URL for suggestions that are URLs

    Addresses designer feedback https://github.com/WordPress/gutenberg/issues/17557#issuecomment-545030027

    * Update prop names for consistency

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337840953

    * Update line length to improve readability

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337842799

    * Update to avoid need to utilise partialRight util from lodash

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337882576

    * Updates key to avoid usage of index

    We cannot assume the suggestion `id` will be unique. This is because at the moment the search results are `Post`s. However in the future we may also need to include `Category` terms and the term IDs could easily clash with the Post IDs as they are in different DB tables.

    Using the `type` to differentiate the key.

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337883174

    * Update to remote isFunction check in favour of direct check

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337885206

    * Update to handle mailto and tel protocols and internal links

    * url-input: handle onKeyPress type event

    * link-control: add className prop

    * link-control: add README file

    * Remove unnecessary use of useCallback

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r338363236

    * Fix current automated tests

    * Improves URL handling test to run for multiple URL value variations

    * Updates to display the URL type in the search results

    Previously only true `http` URLs were formatted with the correct type and the instructional text. Fixes so that all types of manual URL entry are correctly shown as such in the search results.

    Adds test to cover mailto variant of this.

    * Refactor tests to assert against all valid protocol formats and link variants

    This now includes tel, mailto and internal links.

    * Adds test to cover display of fallback URL search result for search values that are potentially URLS

    * Adds tests to check URL suggestions don’t display for non-URLs.

    * url-input: remove unneeded `suggestion` const

    * url-input: always trigger onKeyDown event

    * link-control: delegate handling keydown event
    Instead of this, let's propagate the onKeyDown and onKeyPress events to the parent component

    * link-control: add onKeyDown and onKeyPress handlers

    * link-control: playground -> close once onClose

    * link-control: propagate onClose() event

    * link-control: playground -> hanldling close by ESCAPE key

    * Fix to only render settings draw if settings are defined

    * Remove redundant commented out test

    * Update to render with a “current link” if one is provided.

    Previously if you passed in a current link the component would still render with a search box as thought nothing was selected.

    Updates so that if `currentLink` is provided the UI reflects that by showing the “selected” item and no search input.

    * Render playground with currentLink active

    * Adds test to cover currentLink prop

    * Remove selected state from Playground

    * Adds tests to cover selecting and changing links

    * Remove async function in place of direct Promise usage and add test coverage

    * Add test to cover keyboard handling

    Note: this uncovered a bug whereby keyboard handling of “selecting” the link you want to use is broken. This needs to be fixed.

    * Remove unecessary dep from effect

    * Fix URLInput to pass the actual suggestion object not the index

    If the full object is not provided then consuming components have no way of accessing the details of the selected suggestion thereby rendering it useless.

    * Fix keyboard handling so hitting `ENTER` will select an item as the current link

    Builds on previous commit.

    * Updates keyboard interaction test to include URL entry

    * Minor: reword test description

    * Fix missing key prop regression

    Previously `buildSuggestionItemProps` was including a key. However the implementation of `LinkControl` changed so that this was not required. However we forgot to reinstate on `URLInput`. This update ensures a key prop is set on the default output.

    Note that disabling of the autofocus linting was already in place:

    https://github.com/WordPress/gutenberg/blob/04e142e9cbd06a45c4ea297ec573d389955c13be/packages/block-editor/src/components/url-input/index.js#L239

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337841961

    * DRY up conditionals

    Addresses https://github.com/WordPress/gutenberg/pull/17846#discussion_r337842477

    * link-control: set a default experimental link suggestions searcher if it't needed

    * link-control: handling key events

    * url-input: remove onKeyDown prop

    * url-input: remove calling onKeyDown prop

    * url-input: rollback some changes

    * Mark Link Creation Interface as Experimental (#18110)

    * mark main component as experimental

    * mark new URLInput props as experimental

    * add experimental onKeyPress

    * remove key handlers

    * Updates to use alias on experimental props

    Addresses https://github.com/WordPress/gutenberg/pull/18110#discussion_r339427180

    * Remove unused prop from docs

    * Update props ordering and readme docs

    Also fixes eslint errors that kept me from committing the original changes

    * Revert playground changes

    * Rename InputSearch to SearchInput

    Props @talldan

    I really hope those changes I had to make in `search-input.js` don't break anything.

    * Remove disabling of jsx-key lint rule

    * Change fake id value to something that will not clash with post ids

commit 3ecf70171dd5522f1686acae4902ed465f514ac7
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Tue Oct 29 23:37:35 2019 +0100

    Scripts: Bump the version of npm-package-json-lint (#18160)

commit caa80cb0d298f4792f973a0eaa16b54d2a44da6b
Author: Marko Savic <[email protected]>
Date:   Tue Oct 29 20:03:04 2019 +0100

    [RNMobile] Added support for giphy and pexels images (#18026)

commit 3e5f7a5999aa846fa2bed2f6dbddd6cb78b189ef
Author: Jorge Costa <[email protected]>
Date:   Tue Oct 29 17:59:01 2019 +0000

    Update packages/block-editor/src/components/colors/use-colors.js (#18147)

    Co-Authored-By: Enrique Piqueras <[email protected]> (+2 squashed commits)
    Squashed commits:
    [36484b4d3f] Update packages/block-editor/src/components/colors/use-colors.js

    Co-Authored-By: Enrique Piqueras <[email protected]>
    [9c4c7694bd] Fix: solve some issues in useColors hook

commit f558ed79e68014880cabfc41d43c50f51e118752
Author: Damián Suárez <[email protected]>
Date:   Tue Oct 29 14:43:31 2019 -0300

    NavigationMenu: set attributes rightly (#18150)

    * navigation-menu: set attributes once

    * navigation-menu: add CSS class as hook dependencies

    * Update packages/block-library/src/navigation-menu/edit.js

    Co-Authored-By: Enrique Piqueras <[email protected]>

commit 57197b6c15939605ce60cb31b6686cd1233efe22
Author: Michael P. Pfeiffer <[email protected]>
Date:   Tue Oct 29 18:21:56 2019 +0100

    Navigation: Explore default frontend styles (#18094)

    * try basic version of varia theme styles as default

    * Add class to show submenu indicator

    * adjustments for small viewports

commit a9cfa56e6caeaac67d11d4fa0328780110e91124
Author: Maxime Biais <[email protected]>
Date:   Tue Oct 29 18:20:49 2019 +0100

    [RNMobile] Add a subtitle for unsupported blocks (#18107)

    * Add a new unsupported subtitle to missing blocks - even we know about the block title

    * Update margins, colors and font weight of the unsupported block

commit 1d9313025b9a147fd0a3831bcbdd53108194e52e
Author: Sérgio Estêvão <[email protected]>
Date:   Tue Oct 29 15:09:53 2019 +0000

    Resyncs RichText mobile components with web counterparts. (#17897)

    * Resyncs RichText mobile components with web counterparts.

    * Remove outdated test.

    * Remove unused references.

    * Add platform component

    * Add components depending of platform.

    Only add specific components if we are on the web implementation.

    * Abstract paste of files for RN and web

    Makes the code for pasting image more abstract in the paste method and
    implement specific translation to HTML depending of the platform.

    * Compose extra attributes/props on select/dispatch only if mobile.

    * Remove RN index file for RichText Wrapper.

    Moved all the specific code to the standard index file, so this file
    is no longer needed.

    * Remove API index native file that is no longer needed.

    * Clean up lint errors in file-paste-handler.

    * Fix lint errors.

    * Implement stub remove browser shortcuts for RN

    * Implement autocomplete stub for RN.

    * Refactor toolbar presentation to a method.

    * Remove no longer needed platform file.

    * Consolidate the file paste handler in a single implementation.

    Created a stub for createBlobURL for native that simple returns the
    original URL.

    * Change the text for platform to make it explicit it's native only.

    * Remove duplicate files

    * Include type in file comparison

    * Forgot to rename for native file

    * Fix filePasteHandler for native

    * Move logging back

    * Restore comment on logging

    * Add check for files existence.

    * Refactor format-toolbar code to use split web/native files

    * Remove prop duplication.

    * Fix getAnchorRect call

    * Remove unnecessary const

    * Sync fix for list removal of first empty line

    * Fix RN build after merge with master

    * Sync with web counterpart.

    * Only change selection after new formats are set.

commit 90342167f8f00da500ff5d5c967129d400844709
Author: Joen Asmussen <[email protected]>
Date:   Tue Oct 29 14:34:24 2019 +0100

    Fix columns full-wide regression. (#18021)

    The Columns block, when full-wide, has intentional left and right padding to ensure the mover controls of child blocks are accessible. This is editor-only, and only when the block is selected.

    This regressed at some point, a while ago, probably around the introduction of extra on-click padding to show the dashed outlines of child elements.

    This PR shuffles the rules a bit, reduces some of their specificity, and applies the left and right padding elsewhere to make it work.

commit f1f43d827f7d91777a86c3e4a001ac7f7c824c20
Author: Riad Benguella <[email protected]>
Date:   Tue Oct 29 13:38:20 2019 +0100

    Make the mediaUpload block editor setting a stable API (#18156)

commit 0eb16bd4732d06fe1f156526602f130b27109e2d
Author: Riad Benguella <[email protected]>
Date:   Tue Oct 29 10:51:30 2019 +0100

    Make the AsyncModeProvider API a stable API (#18154)

commit 6277ffdfb1ab449cf7a958a77fe3b81a49f4816a
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Tue Oct 29 09:53:13 2019 +0100

    Block Directory: Convert it to UI Plugin to avoid bundling into Core (#17576)

    * Block Directory: Convert it to UI Plugin to avoid bundling into Core

    * Load the block directory assets only when the experiment is enabled

    * Try to reimplement asset overrides to give more flexibility

    * Add code style improvemements and perform code cleanup

    * Try to make PHP unit tests pass by removing group check

    * Ensure that packages and vendor scripts are printed in the footer

    * Fix the has action check for the block directory assets

    * Move gutenberg-block-directory experiment check out of the action

    * Fix bin/get-vendor-scripts.php

commit 77b36b963a63bb69827273c815ea369cbde676b2
Author: Jon Quach <[email protected]>
Date:   Tue Oct 29 04:20:53 2019 -0400

    Components: Draggable, add story (#18070)

    * Components: Add Story for Draggable

    This update adds a Storybook example for the Draggable component from `@wordpress/components`.

    * Fix useState hook for Draggable story example

    Solution was to create an Example component with the useState hook.
    Render that Example component in the story instead.

commit 38a1227e7c5817141dd0907b762eb4ff00dc770e
Author: andrei draganescu <[email protected]>
Date:   Tue Oct 29 08:46:12 2019 +0200

    Smart block appender (#16708)

    * if thre is only one there is only one

    * made a new insertion point selector, some code review refactoring

    * better handling of inserter

    * refactoring and named block insertion

    * updates to the appender

    * update snapshots

    * update docs

    * default inserter label is used in so many tests

    * fixed allowed blocks test

    * snapshot updated

    * better naming and removed the need for es-lint disabling

    * improved the inserter label construction

    * improved the doc of getTheOnlyAllowedItem selector

    * reverting test patches becasue patching without understanding is bad, bad, bad - don't do it

    * moved getInsertionIndex out of selectos and back into each component that used it

    * docs generated

    * added experimental labels to new selectors, added es-lint comment back

    * updated docs

    * Update packages/block-editor/src/store/selectors.js

    Co-Authored-By: Miguel Fonseca <[email protected]>

    * Update packages/block-editor/src/store/selectors.js

    Co-Authored-By: Miguel Fonseca <[email protected]>

    * refactored and fixed some coding errors

    * small code move

    * small code move

    * removes aria attrs for autoinserted items

    * fixes typo, adds translators comment

    * simplifies the intserter logic

    * fix for the simplification

    * simplifies by using one selector and passing props in compose

    * small code updates

    * lint

    * renamed insertedBlock

    * small doc update

    * adds tooltip to the default button appender

    * refactores for more self documenting varnames

commit d42053413785aaf2c23400ccc86b03fd17d9bf1a
Author: Brent Swisher <[email protected]>
Date:   Tue Oct 29 02:06:40 2019 -0400

    Add Spinner component to storybook (#18145)

commit f46a6a81e74be9a839c6c6159ce360707daf7cb2
Author: Marcus Kazmierczak <[email protected]>
Date:   Mon Oct 28 22:55:52 2019 -0700

    Update ExternalLink Component to fix visually hidden text (#18142)

    * Switch screen-reader-txt to VisuallyHidden component

    * Fix core embed test snapshot, new classname

commit ff78d859458d12e475e8a61b3e6da8937d87a74c
Author: andrei draganescu <[email protected]>
Date:   Tue Oct 29 02:24:16 2019 +0200

    Add horizontal option for the block movers (#16615)

    * horizontal option for the mover, missing icons, broken hover

    * we now have icons

    * positioned the mover to the middle left

    * horizontal mover on mobile

    * vertical layout for horizontal movers

    * drop block movers into block edit to enable inline movers

    * implemented so as to not be a concern for the block implementer

    * removes useless scss variable

    * hiding the drag handle at block level

    * renamed horizontalMover to moverOptions to incorporate separation of properties

    * rafactores the mover options

    * Initial CSS work to make the menu more manageable.

    This moves to flex instead of grid, neutralizes margins, simplifies a few things.

    * Make movers inline again.

    * Further improve margins for child blocks.

    * adds proper aliases in BlockEdit

    * previxed options as experimental

    * RTL movers

    * removed the position option, marked option experimental

    * labeled as experimental new mober and block list props

    * refactored direction detection code for better readability, fixed some code alignment issues

commit 12490f242fcbe7497699bf2ea133164c93572aa5
Author: Ella van Durpe <[email protected]>
Date:   Mon Oct 28 17:16:08 2019 +0100

    Commander: switch cloning method to HTTPS (#18136)

    * Commander: switch cloning method to HTTPS

    * Add HOME env variable

commit 82085edcc77e956f2565d499e094c81ea386cd4b
Author: Sérgio Estêvão <[email protected]>
Date:   Mon Oct 28 15:48:01 2019 +0000

    Fix RN build after merge with master (#18133)

commit 757f7d6d046ec517511c6a384b2f0b0774f328fa
Author: iseulde <[email protected]>
Date:   Mon Oct 28 15:59:05 2019 +0100

    Bump plugin version to 6.8.0-rc.1

commit 96117906dd237fa5706b2db809816e240a2fcf90
Author: Jorge Costa <[email protected]>
Date:   Mon Oct 28 13:56:54 2019 +0000

    Add grandient fixtures to cover block (#18002)

commit 94b971b4a9d2790c390be14f7dafb222ff660881
Author: Ella van Durpe <[email protected]>
Date:   Mon Oct 28 13:49:48 2019 +0100

    Paste: allow list attributes (#17144)

commit 0f1ea49c10f32fadf20da8da50853ac40617fada
Author: Dave Smith <[email protected]>
Date:   Mon Oct 28 11:50:46 2019 +0000

    Add `DimensionControl` component (#16791)

    * Adds initial component

    Note this is copied wholescale from original PR https://github.com/WordPress/gutenberg/pull/16730

    * Remove redunant files. Refactors tests.

    * Updates docs

    * Checks callbacks are functions prior to calling

    * Adds temp testing example usage of component to Group Block

    * Updates to allow sizes as an (optionaly) prop dependency

    * Update default value label

    * Removes unnecessary InstanceId HOC usage

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r323906696

    * Remove unused abbreviation in size table

    * Revert "Adds temp testing example usage of component to Group Block"

    This reverts commit 6f9f3bfd2a7c1a08ecfab143384d414701f0c1e8.

    * Remove arbitrary size value from sizes list

    This is not required as we cannot know how the dimensions component will be used. Therefore sticking with relative values via the slugs is safer. These can be mapped on a case by case basis as required.

    * Remove icon label for a11y reasons

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r324103481

    * Update component docs for consistency, spelling and grammar

    * Tweak docblock formats

    * Update test snapshots to match new default value

    * Update API from onSpacingChange to more agnostic onChange

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r331622801

    * Update tests to cover onChange handler renamed

    * Update currentSize prop to value for consistency with other components

    * Removes onReset in favour of onChange with undefined for consistency

    Adddresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r331624272

    * Move component to @wordpress/components package

    * Remove invalid font sizes style import

    Accidentally included from rebase.

    * Deps update due to rebase

    * Remove unneeded doc blocks

    * Remove usage suggestion which was not helpful

    * Update readme docs to match current API

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r332692714

    * Export as experimental component

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r332694561

    * Revert "Deps update due to rebase"

    This reverts commit 95d00f39010edfaac620980e0d0e7c1001a68c98.

    Addresses https://github.com/WordPress/gutenberg/pull/16791#discussion_r332691520

commit 286ee9a3448e2aa8a5a1a7eaf6bd35cfdadd4507
Author: Riad Benguella <[email protected]>
Date:   Mon Oct 28 11:34:12 2019 +0100

    Allow travis builds in all wp/* branches

commit 7f0a81c53ce451e25ed5e291292e0234a0efafcf
Author: Riad Benguella <[email protected]>
Date:   Mon Oct 28 11:09:48 2019 +0100

    Allow media upload post processing for all 5xx responses (#18106)

commit aec39f0c7926ec4d007cb25a829a8c9d65016d44
Author: Jorge Costa <[email protected]>
Date:   Mon Oct 28 09:44:55 2019 +0000

    Add class mechanism for preset gradients. (#18008)

commit 880d1de41b4f1d0d6eed57e914f85260c1f29dbf
Author: Marcus Kazmierczak <[email protected]>
Date:   Mon Oct 28 00:06:32 2019 -0700

    Storybook: Add ColorPicker component (#18013)

    * Add color picker component to Storybook

    * Switch screen-reader-text to new VisuallyHidden

    * Update ColorPicker tests snapshots

    * Add story for showing Alpha Channel

    * Move state out of exported component

    * Lowercase story name

commit b85675d0e117bdf3daf6ea31d55d1a03102da859
Author: Jon Quach <[email protected]>
Date:   Mon Oct 28 03:01:04 2019 -0400

    Components: ExternalLink, add story (#18084)

    This update adds a story for the ExternalLink component.
    Storybook knobs were added to better demonstrate the component's
    properties.

commit 06834d909d393139fb57e1c1813721ec58baad9c
Author: Jeff Bowen <[email protected]>
Date:   Mon Oct 28 02:51:05 2019 -0400

    Tutorial: Specify block naming restrictions (#18117)

    * Tutorial: Specify block naming restrictions

    * Remove an incorrect comma

commit f49df6f25dd1b67586f6a42b0b3175ac63b2909a
Author: Robert Anderson <[email protected]>
Date:   Mon Oct 28 11:23:39 2019 +1100

    Raw handling: Fix strikethrough formatting when copy/pasting from Google Docs in Safari (#17187)

commit e93f7bb4ea07c0a8fe973964b6c5f0da9dd85e5a
Author: Robert Anderson <[email protected]>
Date:   Mon Oct 28 11:08:23 2019 +1100

    Fix overlapping controls in the Inline Image formatting toolbar (#18090)

    * Fix overlapping controls in the Inline Image formatting toolbar

    * Inline mage formatting: make Apply button same height as Width input

    * Polish.

commit a486306f6695a7b5ffcac1c94ea772c1ead4a68a
Author: tellthemachines <[email protected]>
Date:   Sun Oct 27 15:44:07 2019 -0700

    Nav menu item enhancements: display toolbar and remove dropdown (#17986)

    * Display toolbar and remove dropdown from menu item

    * Fixes block toolbar misalignment on IE.

    * Replace destination and deal with keypresses.

    * Update fixture.

    * Keydown management and attempt at close on blur.

    * Add definitive menu item icon.

    * Fix label/input styling.

    * Clean up styles after rebase.

    * Refactor stop propagation .

    * Remove duplicate dependency comments

    * Navigation Block: Rename 'destination' to 'url' in server-side code

commit 9c91f5f92cc41210ca027a5fec72c9b54c354524
Author: Jorge Costa <[email protected]>
Date:   Sat Oct 26 12:44:11 2019 +0100

    Fix: Font size picker component relies on WordPress styles (#18078)

commit 9781a027f324e093ae0970fb1c9c134333d66596
Author: Enrique Piqueras <[email protected]>
Date:   Fri Oct 25 14:25:11 2019 -0700

    Block Editor: Implement new colors hook. (#16781)

    * Block Editor: Implement new colors hook.

    * Block Library: Swap usage of the colors HOC with the colors hook in the heading edit component.

    * Use Colors: Add 'has-x-color' class names.

    * Use Colors: Avoid memory leaks by making caches limited in size, and tied to hook instances.

    * Use Colors: Support children and optional contrast checking in the color panel.

    * Use Colors: Expose colors panel without inspector slot/fill wrapper.

    * Use Colors: Mark hook as experimental.

    * Use Colors: Support custom colors.

    * Block Edit: Remove extra context values and use selectors/actions instead.

    * Heading: Remove unnecessary color class and set text color on save.

    * Use Colors: Add custom/preset color logic.

    * Use Colors: Fix panel bugs.

    * Heading Block: Detect actual background color for contrast checking.

    * Block Edit: Add new export to native file.

    * Use Colors: Change CSS "attribute" to "property".

commit 8d0e5aab1a1c75b52e636aaeda36efd48d1dc838
Author: Jorge Costa <[email protected]>
Date:   Fri Oct 25 17:53:36 2019 +0100

    Add block inspector to the Gutenberg playground. (#18077)

commit be6a8fd32d17b6f927699aa3a7baa7f91daff3a2
Author: Joen Asmussen <[email protected]>
Date:   Fri Oct 25 18:01:29 2019 +0200

    Fix checkboxes for postmeta. (#18108)

commit c4eb0ef953dfc2b7542347832f299f08c11d2c2f
Author: Matt Chowning <[email protected]>
Date:   Fri Oct 25 11:27:56 2019 -0400

    RNMobile: Add image alignment controls (#17962)

    RNMobile: Add image alignment controls

    Only handles left, center, right. Does not permit setting or displaying
    either full or wide alignments.

commit 775d00342ee635bf998e6254cdf6a777aec130a6
Author: Riad Benguella <[email protected]>
Date:   Fri Oct 25 13:13:59 2019 +0100

    Add a block selection breadcrumb to the bottom of the editor (#17838)

commit ac6dc61b0b7d2330d1a2f59fff5511ecdfc5557d
Author: Drapich Piotr <[email protected]>
Date:   Fri Oct 25 12:55:02 2019 +0200

    [rnmobile] Breadcrumbs (#17471)

    * Add breadcrumbs to floating toolbar

    * Add dark mode support

commit 21445de58278eba94ab4e4f415319a028c8f19fa
Author: Ella van Durpe <[email protected]>
Date:   Fri Oct 25 11:16:39 2019 +0200

    Preserve attributes on split (#18102)

commit 0b12ac9bab453e90c24c7d214ab4ad2eb01906bd
Author: Marcus Kazmierczak <[email protected]>
Date:   Thu Oct 24 20:40:57 2019 -0700

    Storybook: Add Color Palette Component (#17997)

    * Add Color Palette to Storybook

    * Apply suggestions from code review

    Co-Authored-By: Enrique Piqueras <[email protected]>

    * Refactor state out of story components, to own

    * Update packages/components/src/color-palette/stories/index.js

commit c16c1a907a79bf62cfb8eb8b94c368dd68da1dd1
Author: Enrique Piqueras <[email protected]>
Date:   Thu Oct 24 18:53:38 2019 -0700

    Env: Add support for running in themes. (#17732)

    * Env: Add support for running in themes.

    * Env: Optimize context detection filter.

    * Env: Update test directory structure to match convention.

commit 7a62af0cb8a280b53c0e26b6da8d0e74f04ee2f4
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Thu Oct 24 23:10:09 2019 +0200

    Storybook: Apply a set of enhancements to the existing stories (#18030)

    * Storybook: Apply a set of enhancements to the existing stories

    * Add basic knobs integration to all Button stories

commit 20b825a0bcc863c274741c942e306e1328ec0854
Author: Marcus Kazmierczak <[email protected]>
Date:   Thu Oct 24 13:53:24 2019 -0700

    Components: Add VisuallyHidden component (#18022)

    * Add ScreenReaderText component

    * Add new component readme to manifest

    * Remove CSS style loading within stories

    * Switch component name to VisuallyHidden

    - Rename directory and includes
    - Update README usage
    - Update Storybook usage

    * Switch classname to components-visually-hidden

    * Lint: newline

    * Add focus style

    * Switch to 'as' for specifying tag

    * Move renderAsRenderProps to utils.js

    * Move utils to inside component folder

    Waiting to refine the utils usage a little better before
    making it look available for other components to use.

    * Apply suggestions from code review

    Co-Authored-By: Grzegorz (Greg) Ziółkowski <[email protected]>

    * Lint: Move newline

    * Fix variable name

    * Use variable for stylesheet

commit 6c556a7c8566a286cf6f9622d0d153669db3683d
Author: Jorge Costa <[email protected]>
Date:   Thu Oct 24 21:25:18 2019 +0100

    Add gradients in cover block (#18001)

commit abf261cf780c98956a711a248de6c9dd520bd757
Author: Kerry Liu <[email protected]>
Date:   Thu Oct 24 11:25:15 2019 -0700

    List Block: Do not merge list with previous block if deleting first list item and list is not empty (#18032)

    * Do not merge list with previous block if deleting first list item and list is not empty

    * Add e2e test and clean up

    * Correct mistake

    * Adjust comment

commit 3df5109c47870ed37aa19f11978476960474c2d0
Author: Jorge Costa <[email protected]>
Date:   Thu Oct 24 18:58:46 2019 +0100

    Fix: Custom button background color not reflected on reload (#18037)

    Fixes: https://github.com/WordPress/gutenberg/issues/18012
    We had a bug where the editor may not reflect the custom button background color after a reload. That happened because the rule background: customGradient, may overwrite the background-color rule even if the custom gradient has not set.
    This PR performs a logic update to solve the issue.

commit 65c363bc392c1fed3315afc835c31eaaf8e43dc3
Author: Jorge Costa <[email protected]>
Date:   Thu Oct 24 16:42:35 2019 +0100

    Fix: End to end tests do not disable the experiments (#18093)

commit 5e13a1cccfa33c9ee18ca00c4bbcd5b642fe26f7
Author: Sérgio Estêvão <[email protected]>
Date:   Thu Oct 24 16:37:36 2019 +0100

    Add platform component (#18058)

    * Add platform component

    * Improve platform implementation in RN.

    * Add more documentation and tests.

    * Update readme file.

    * Update tests.

    * Fix filenames for native versions.

    * Add license attribution

    * Remove unnecessary lines.

    * Improve documentation

    * Remove trailing space

    * Update packages/element/src/platform.js

    Co-Authored-By: Grzegorz (Greg) Ziółkowski <[email protected]>

    * Update readme.

    * Fix lint error.

commit e829d97a6a15edfe3d38252630897f3f35ddc4cd
Author: Joen Asmussen <[email protected]>
Date:   Thu Oct 24 14:02:17 2019 +0200

    Fix regression with Gallery margin. (#18019)

    I failed to verify the Gallery block when I approved https://github.com/WordPress/gutenberg/pull/17958#issuecomment-543597183 and therefore caused a regression.

    This PR adds explicity left margins and paddings to the gallery ul to ensure there isn't any added padding and margin.

commit 0b723424f5c6e40115e12694c693b34879ba9a9f
Author: Jorge Costa <[email protected]>
Date:   Thu Oct 24 12:46:13 2019 +0100

    Chore: Fix: Do not show Gradient panel if gradients are not av… (#18091)

commit 7783eb5c788528402a050833d9a4b792bdcdc22e
Author: Miguel Fonseca <[email protected]>
Date:   Thu Oct 24 10:39:45 2019 +0100

    Local autosave: Clear after successful save (#18051)

    * Local autosave: Clear after successful save

    Presumably, somewhere in the fixing of conflicts between remote and
    local autosaves (purge local upon successful remote autosave),
    LocalAutosaveMonitor stopped purging the local autosave upon successful
    *saves*.

    * Tests: Autosave: Correctly wait for editor chrome before saving

commit a6502c1e52dfa2c223342eedc5ba8d4beeffe082
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Thu Oct 24 11:14:46 2019 +0200

    Code style: Fix ESLint warnings reported for JSDoc definitions (#18025)

    * Code style: Fix ESLint warnings reported for JSDoc definitions

    * Add WordPress type definitions to the list of names recognized by JSDoc linter

commit 31218475b3ddc7768e62123e3c3f1afb05fcb264
Author: Damián Suárez <[email protected]>
Date:   Thu Oct 24 04:17:35 2019 -0300

    url-input: ensuring value is defined on key down (#18088)

commit 1cff327cdd6e32adfa1aafd6217fafe0f973918a
Author: Felix Arntz <[email protected]>
Date:   Thu Oct 24 01:35:06 2019 +0200

    Add logic for basic (temporary) wp_template editing UI (#17625)

    * Templates: Add logic for basic temporary editing UI.

    * Templates: Fix menu filter.

    * Post Slug: Follow class name convention.

commit 29670ca35b33de231fb5a8e8c1451d35a9d0a92e
Author: Felix Arntz <[email protected]>
Date:   Wed Oct 23 22:42:36 2019 +0200

    Implement core template loader overrides to rely on wp_template posts (#17626)

    * Introduce wp_template post type.

    * Improve (temporary) admin UI for wp_template post type by exposing slug.

    * Implement template loader overrides to rely on 'wp_template' posts.

    * Render viewport meta tag.

    * Prevent deletion of fallback 'wp_template' post 'index'.

    * Scope PR to just basic wp_template post type registration.

    * Implement core template loader overrides to rely on wp_template posts instead.

    * Render title tag regardless of theme support

    Co-Authored-By: Weston Ruter <[email protected]>

    * Make getting correct wp_template post more error-proof

    Co-Authored-By: Weston Ruter <[email protected]>

    * Template Loader: Add more content filters.

    * Templates: Fix experiment flag logic.

commit 4dbe1fcd288e9a0bc6a978939eac5b5b721c9033
Author: Ella van Durpe <[email protected]>
Date:   Wed Oct 23 22:37:19 2019 +0200

    Table: remove wrapper around cells (#17711)

commit 7da1e78996bd7fa800cb4521490e60d45dd34f17
Author: Enrique Piqueras <[email protected]>
Date:   Wed Oct 23 13:28:04 2019 -0700

    Add Site Title block and required functionality. (#17207)

    * Core Data: Add a Site entity and a hook for entity saving logic.

    * Experiments: Add a Full Site Editing experiment.

    * Block Library: Add Site Title block.

    * Fixtures: Add Site Title block fixture.

    * Fixtures: Add missing transform fixtures.

    * Block Library: Remove deprecated prop usage in Site Title.

    * Site Title: Support nesting inside of a Site block.

    * Site Title: Disallow formatting in the rich text field.

    * Core Data: Make useEntitySaving experimental.

commit a50bf80d2d6c618082527847ed6ecad3d13c5bc6
Author: Mikael Korpela <[email protected]>
Date:   Wed Oct 23 13:11:39 2019 +0300

    Add `@wordpress/base-styles` package (#17883)

    - Move `assets/stylesheets/*` to the new package
    - Move admin color schemes to the new package

commit 9e5d1385d6b844c4dcae617e3966acb209b23110
Author: Marcus Kazmierczak <[email protected]>
Date:   Tue Oct 22 17:05:04 2019 -0700

    Update design-systems:dev script to build packages (#18073)

    The build-style/style.css needs to be rebuilt prior to
    running Storybook in watch mode.

    This change adds `npm run build:packages` at the start of
    the design-systems:dev script to CSS is built prior.

    Issue found in #17997

commit 40ebea70a42588782088fdc8591844ccace96e9c
Author: Damián Suárez <[email protected]>
Date:   Tue Oct 22 20:08:25 2019 -0300

    navigation-menu: Implement colors selector button. (#17832)

    Summary
    block-editor: expose ColorPaletteControl component
    navigation-menu: improve colors-selector component
    navigation-menu: compose withColors
    navigation-menu: render colors selector in bar
    navigation-menu: propagate withColor props
    navigation-menu: apply theme styles to selection
    navigation-item: populate styles to nav item
    navigation-menu: apply inline styles and CSS classes

commit d5d66a8b34de70a1290661082bf79ac104b56ac6
Author: Manzoor Wani <[email protected]>
Date:   Wed Oct 23 04:08:56 2019 +0530

    Add isInvalidDate prop to DatePicker (#17498)

commit 03414de9995870109f3f6e0e1c88605a0353aaf3
Author: Enrique Piqueras <[email protected]>
Date:   Tue Oct 22 13:18:20 2019 -0700

    Env: Add support for custom ports. (#17697)

commit 6ab0e323531bf4b0b03aaee58e02a611fc74d16b
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Tue Oct 22 12:55:17 2019 +0200

    Chore: Update the lock file to use newer version of fsevents (#18057)

    This fixes the issues when `npm install` on macOS throws several errors.

commit 869ac8de003d591e50c1c76210f879cd6d28a7b3
Author: Jonathan Goldford <[email protected]>
Date:   Tue Oct 22 05:43:51 2019 -0500

    Fix issue when providing multiple shortcode aliases for a new block (#17925)

    * Fix issue where providing multiple shortcode aliases to transform into a block only matches the first shortcode

    * Add test to ensure blocks can transform using multiple shortcode aliases

    * Simplify the approach used to find the individual shortcode being transformed

    Props jg314

commit 0c8da5b39d25d9b223239daf744ecc7091e74b91
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Tue Oct 22 11:15:11 2019 +0200

    Chore: Fix issues related to Node 12 becoming LTS (#18054)

    * Chore: Fix issues related to Node 12 becoming LTS

    * Include the root package.json file in the linting
    This commit also moves the npm-package-json-lint config to the standalone file.

    * Add changelog entries to @wordpress/scripts package

commit bf60a077465f4908e843d2537d8c31b6a11c7cfa
Author: Riad Benguella <[email protected]>
Date:   Mon Oct 21 11:20:33 2019 +0100

    chore(release): publish

     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]
     - @wordpress/[email protected]

commit 563ac7916fae4cd4f6aa17edae34c9449429e835
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Mon Oct 21 12:03:13 2019 +0200

    Tests: Clean up skipped e2e tests (#18003)

commit 952659bd93683f7262a516a6f802bcea448b9ca1
Author: Matthew Kevins <[email protected]>
Date:   Mon Oct 21 11:27:54 2019 +1000

    Fix MediaUpload README value prop description (#18039)

commit c671a3857f5094b446728a7b4996a78419687f55
Author: Anthony Burchell <[email protected]>
Date:   Sun Oct 20 20:05:13 2019 -0500

    removes decleration of Select button (#18007)

commit bf3b7f9d0a6a4a8000ad1a64df7e2e38c19d587f
Author: Phoebe Gao <[email protected]>
Date:   Sat Oct 19 05:25:19 2019 -0700

    Update MediaPlaceholder README.md (#17980)

    * Update MediaPlaceholder README.md

    This change updates the readme to properly document the `value` property.

    See issue here: https://github.com/WordPress/gutenberg/issues/17967

    * Update MediaUpload README.md

commit db2235d69be5401858794b9465d94a1906dbaae6
Author: Joen Asmussen <[email protected]>
Date:   Sat Oct 19 10:56:02 2019 +0200

    Fix Publish Button!!! (#18016)

    Fixes #18004 and thank science, that was driving me insane ever since you pointed it out.

    This PR does a couple of things:

    1. It adds `isLarge` to the Publish button. It was there for Preview, but not Publish.
    2. It simplifies a little CSS as a result of that.
    3. It also tweaks the button height as defined for the two preview publish buttons.

commit fb283f092c43c093955cb65e25a26e405e1308e5
Author: Marcus Kazmierczak <[email protected]>
Date:   Fri Oct 18 13:14:43 2019 -0700

    Add dashicon component to storybook (#18027)

commit 181042ac4be04fd6775f95f85cd3e3a7c8aa2a91
Author: Marcus Kazmierczak <[email protected]>
Date:   Fri Oct 18 06:45:25 2019 -0700

    Storybook: Add knobs to ColorIndicator (#18015)

    * Add knobs to ColorIndicator

    * Lint: new line

commit f772aede279b2eafb0793078b433304468d1989f
Author: Riad Benguella <[email protected]>
Date:   Fri Oct 18 14:41:57 2019 +0100

    Fix the performance tests (#18020)

commit fba1f85b18fe15452763229f1c8435b371c21ae9
Author: Luke Walczak <[email protected]>
Date:   Fri Oct 18 13:04:21 2019 +0200

    [RNMobile] Introduce grouping in the block settings inspector (#17703)

    * Intrdouce groupin in the block settings inspector

    * Adjust PanelBody to design

    * Adjust padding when section doesnt have title

    * Rewirte arrow function to function

    * Fix lint issue

    * Create a PanelActions component for handling action buttons in the block settings inspector

    * Remove useless separator type and fix typo

    * Refactor after CR

    * Correct label styles

    * Fix overriding mechanism on label style

commit 30d3e982d619ad6b185871f305b66c89766e5686
Author: Jarda Snajdr <[email protected]>
Date:   Fri Oct 18 12:29:40 2019 +0200

    Optimize exports of the wp/compose package (#17945)

    Adds `sideEffects:false` to `package.json` so that unused exports can be optimized away
    by the bundler.

    Moves the `compose` definition (i.e., reexport from Lodash) to its own module, so that
    we don't pull in Lodash just by importing something from `@wordpress/compose`. After this
    patch, one needs to import `compose` explicitly to trigger the Lodash import.

commit 7017152306f71486d0d65362f545252f560cb55f
Author: Jorge Costa <[email protected]>
Date:   Fri Oct 18 09:59:46 2019 +0100

    Update: Refactor button edit to use a functional component (#18006)

commit 208cc9f0d3626c81bc9f7cda61c86c2c0c1bd7ce
Author: Luke Walczak <[email protected]>
Date:   Thu Oct 17 17:17:33 2019 +0200

    Fix image native test (#17989)

commit 6d28e63d0d53e34f100cf087448c7accce86e425
Author: Enrique Piqueras <[email protected]>
Date:   Thu Oct 17 07:53:52 2019 -0700

    Playground: Add link to components storybook. (#17982)

commit b13a6fc292f91bf3545164b434bf64ad03d2c184
Author: Riad Benguella <[email protected]>
Date:   Thu Oct 17 13:54:39 2019 +0100

    Split e2e tests into multiple folders (#17990)

commit 207bf752e961bbe33fbb84ee8b5840d0a0b54cd2
Author: jbinda <[email protected]>
Date:   Thu Oct 17 09:56:30 2019 +0200

    [RNMobile] add RangeControl mobile implementation (slider) (#17282)

    * add RangeCell

commit f94dadb5b562308795a85398db2681f42bda6c6b
Author: Daniel Richards <[email protected]>
Date:   Thu Oct 17 07:38:45 2019 +0800

    Try setting a block display name for the Block Navigator. (#17519)

    * Really simple first attempt at showing a display name in the navigator

    * Strip any RichText formatting

    * Add display name for navigation menu item block

    * Refactor to use displayNameAttribute property

    * Change name of displayName options

commit 56a27599d72718df787338dfb47cb0b39c39f4d8
Author: Marcus Kazmierczak <[email protected]>
Date:   Wed Oct 16 14:37:16 2019 -0700

    Add empty line (#17981)

commit 7a2298b98989a77de67acbf66c426e248a23bf9e
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Wed Oct 16 22:35:07 2019 +0200

    Fix: Invalid import statement for deprecated in the modal component (#17969)

    * Fix: Invalid import statement for deprecated in the modal component

    * Font Size Picker: Update E2E test to work with new Core changes.

commit e5ecca57be4a068f16d7cfdcdd41ad888b50ffa0
Author: Grzegorz (Greg) Ziółkowski <[email protected]>
Date:   Wed Oct 16 16:55:17 2019 +0200

    Codeowners: Remove gziolo from some folders (#17971)

    I get too many notifications.

commit 5a055336832730a91c1e1579e8261dd6075cd176
Author: Dan Phiffer <[email protected]>
Date:   Wed Oct 16 09:01:42 2019 -0400

    Small changes to Git Workflow docs (#17662)

    * :information_desk_person: add 'upstream' remote

    * :bug: origin / remote

commit f71a7d1c3d84481b46eb05a260703981ff71f6d8
Author: Riad Benguella <[email protected]>
Date:   Wed Oct 16 12:48:10 2019 +0100

    Bump plugin version to 6.7.0

commit fb6dee80e07042745858f38978445de0e6273eee
Author: Joen Asmussen <[email protected]>
Date:   Wed Oct 16 13:39:45 2019 +0200

    Improve columns flex rule, round 2. (#17968)

commit 1e089dba0c572bd7dd71f37aa1c4759cd6aaf81b
Author: Cameron Voell <[email protected]>
Date:   Wed Oct 16 04:00:34 2019 -0700

    RNMobile Add size options to mobile  image block (#17245)

    * [RNMobile] Native mobile release v1.11.0 (#17181)

    * [RNMobile] Fix crash when adding separator

    * Build: remove global install of latest npm since we want to use the paired node/npm version (#17134)

    * Build: remove global install of latest npm since we want to use the paired node/npm version
    * Also update travis to remove --latest-npm flag

    * [RNMobile] Try dark mode (iOS) (#17067)

    * Adding dark mode component implemented on list and list block

    * Adding DarkMode handling to RichText, ToolBar and SafeArea

    * Mobile: Using DarkMode as HOC

    * iOS DarkMode: Modified colors on block list and block container

    * iOS DarkMode: Improved Header Toolbar colors

    * iOS DarkMode: Removing background from buttons

    * iOS DarkMode warning and unsupported

    * iOS DarkMode: MediaPlaceholder

    * iOS DarkMode: BottomSheets

    * iOS DarkMode: Inserter

    * iOS DarkMode: DefaultBlockAppender

    * iOS DarkMode: PostTite

    * Update hardcoded colors with variables

    * iOS DarkMode: Fix bottom-sheet cell value color

    * iOS DarkMode: More - PageBreak - Add Block Here

    * iOS DarkMode: Better text color

    * iOS Darkmode: Code block

    * iOS DarkMode: HTML View

    * iOS DarkMode: Improve colors on SafeArea

    * Fix toolbar not avoiding keyboard regression

    * Fix native unit tests

    * Fix gutenberg-mobile unit tests

    * Adding RNDarkMode mocks

    * RNMobile: Fix crash when viewing HTML on iOS

    * [RNMobile] Remove toolbar from html view

    * [RNMobile] Fix MaxListenersExceededWarning caused by dark-mode event emitter (#17186)

    * Fix MaxListenersExceededWarning caused by dark-mode event emitter

    * Checking for setMaxListeners trying to avoid CI error

    * Adding remove listener to DarkMode HOC

    * DarkMode: Binding this.onModeChanged to `this`

    * DarkMode: Adding conditional needed to pass UI Tests on CI

    * Fix focus title on new posts regression (#17180)

    * BottomSheet: Setting DashIcon color directly when theme is default (light) (#17193)

    * Activate Travis CI on rnmobile/master branch (#17229)

    * Added ability to update image size options (sizeSlug) through a new InspectorControl Cell that leads to a Picker.

    * Added a style for Size Inspector Controls cell to align it will other cells that have icons.

    * Add native support for the MediaText block (#16305)

    * First working version of the MediaText component for native mobile

    * Fix adding a block to an innerblock list

    * Disable mediaText on production

    * MediaText native: improve editor visuals

    * Move BlockToolbar from BlockList to Layout

    * Remove BlockEditorProvider from BlockList and add native version of EditorProvider to Editor. Plus support InsertionPoint and BlockListAppender

    * Update BlockMover for native to hide if locked or if it's the only block

    * Make the vertical align button work, add more styling options for toolbar buttons

    * Make sure registerCoreBlocks does not break in production

    * Copy docblock comment from the web version for registerCoreBlocks

    * Fix focusing on the media placeholder

    * Only support adding image for now

    * Update usage of MediaPlaceholder in MediaContainer

    * Enable autoScroll for just the out most block list

    * Fix JS Unit tests

    * Roll back to IconButton refactor and fix tests

    * Fix BlockVerticalAlignmentToolbar buttons style on mobile

    * Fix thing for web and ensure ariaPressed is always passed down

    * Use AriaPressed directly to style SVG on mobile

    * Update snapshots

    * Swtiched to react-native Modal onDismiss property for signaling Picker is ready to show

    * Added a prop for catching modal dismissal on Android. (onDismiss is iOS only and onModalHide works on Android but breaks on iOS)

    * Added icon for Inspector Controls size option. Removed style we no longer need.

    * Added title to size option iOS ActionSheet and left alignstyle to size options BottomSheet

    * MediaUpload and MediaPlaceholder unify props (#17145)

    * Unify media placeholder and upload props within media-text (#17268)

    * [RNMobile] Fix dismiss keyboard button for the post title (#17260)

    * Set unused functions to undefined instead of false in BottomSheet Modal props

    * Recover border colors (#17269)

    * [RNMobile] Insure tapping at end of post inserts at end

    Previously, tapping at the end of the post would insert a block
    immediately after the currently selected block. In addition, this commit
    is cleaning out a few unusued props in the block-list file.

    * Support group block on mobile (#17251)

    * First working version of the MediaText component for native mobile

    * Fix adding a block to an innerblock list

    * Disable mediaText on production

    * MediaText native: improve editor visuals

    * Move BlockToolbar from BlockList to Layout

    * Remove BlockEditorProvider from BlockList and add native version of EditorProvider to Editor. Plus support InsertionPoint and BlockListAppender

    * Update BlockMover for native to hide if locked or if it's the only block

    * Make the vertical align button work, add more styling options for toolbar buttons

    * Make sure registerCoreBlocks does not break in production

    * Copy docblock comment from the web version for registerCoreBlocks

    * Fix focusing on the media placeholder

    * Only support adding image for now

    * Update usage of MediaPlaceholder in MediaContainer

    * Enable autoScroll for just the out most block list

    * Fix JS Unit tests

    * Roll back to IconButton refactor and fix tests

    * Fix BlockVerticalAlignmentToolbar buttons style on mobile

    * Fix thing for web and ensure ariaPressed is always passed down

    * Use AriaPressed directly to style SVG on mobile

    * Update snapshots

    * Support group block on mobile

    * Extend shouldShowInsertionPoint condition to be false when group is selected

    * Code refactor

    * Update package-lock

    * Removing old style reference.

    * Moved Picker for image size options into new ImageSizePicker component. Cleaned up sizeOptionLabels.

    * Updated total left margin on Android Image size options to be 24 px instead of 28 px

    * Image Size options hidden behind __DEV__ flag

    * Remove redundant bg color within button appender (#17325)

    * [RNMobile] DarkMode improvements (#17309)

    * Remove the need to import `useStyle` and pass the theme prop on every instance that `withStyle` is used

    * Implement dark-mode refactor on all components

    * Fix broken native tests

    * Fix default block appender background color on DarkMode

    * DarkMode: Make `useStyle` a class function

    * Cleaned up default true properties and replaced code with lodash map.

    * Updated to use BottomSheetPickerCell. Eliminated code, but size options now open over top inspector controls menu.

    * Added leftalign to PickerCell.

    * [RNMobile] Add autosave to mobile apps (#17329)

    * [RNMobile] Fix crash when adding separator

    * Build: remove global install of latest npm since we want to use the paired node/npm version (#17134)

    * Build: remove global install of latest npm since we want to use the paired node/npm version
    * Also update travis to remove --latest-npm flag

    * [RNMobile] Try dark mode (iOS) (#17067)

    * Adding dark mode component implemented on list and list block

    * Adding DarkMode handling to RichText, Too…
@jorgefilipecosta jorgefilipecosta added the Needs Dev Note Requires a developer note for a major WordPress release cycle label Feb 4, 2020
@youknowriad youknowriad removed the Needs Dev Note Requires a developer note for a major WordPress release cycle label Apr 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Block API API that allows to express the block paradigm. [Feature] Extensibility The ability to extend blocks or the editing experience
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants