In the mean time, here is a version of polymer-ui-element that supports reordering via
drag and drop. Added code in blue.
<link rel="import" href="polymer-ui-elements/polymer-ui-icon/polymer-ui-icon.html">
<link rel="import" href="polymer-ui-elements/polymer-ui-theme-aware/polymer-ui-theme-aware.html">
<polymer-element name="nb-polymer-ui-menu-item"
extends="polymer-ui-theme-aware"
on-drag='{{dragStart}}' on-dragover="{{allowDrop}}"
on-drop='{{dragStop}}' attributes="src label icon item">
<template>
<link rel="stylesheet" href="polymer-ui-elements/polymer-ui-menu-item/polymer-ui-menu-item.css">
<polymer-ui-icon src="{{src}}" icon="{{icon}}" showing?="{{icon || src}}"></polymer-ui-icon>
<span id="label">{{label}}<content></content></span>
</template>
<script>
var draginfo="";
Polymer('nb-polymer-ui-menu-item', {
label: '',
// calc item's offset middle pos instead of using offsetTop/Height
// directly which requires to wait for submenu's collapsing transition to
// complete first before it can return the correct pos.
enteredView: function() {
console.log("nb menu item inserted now");
},