+ { BLOCK_BINDINGS_ALLOWED_BLOCKS[ props.name ].map(
+ ( attribute ) => (
+
+
+ { activeAttribute === attribute && (
+ <>
+
+ { /* Sources can fill this slot */ }
+
+ { ( fills ) => {
+ if ( ! fills.length ) {
+ return null;
+ }
+
+ return (
+ <>
+ { fills.map(
+ ( fill, index ) => {
+ // TODO: Check better way to get the source and label.
+ const source =
+ fill[ 0 ].props
+ .children
+ .props
+ .source;
+ const sourceLabel =
+ fill[ 0 ].props
+ .children
+ .props
+ .label;
+ const isSourceSelected =
+ activeSource ===
+ source;
+
+ return (
+
+
+ { isSourceSelected &&
+ fill }
+
+ );
+ }
+ ) }
+ >
+ );
+ } }
+
+
+
+ >
+ ) }
+
+ )
+ ) }
+
+ );
+}
+
+function RemoveBindingButton( props ) {
+ return (
+