// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

library polymer.src.custom_tag_name;

/**
 * Returns true if this is a valid custom element name. See:
 * <https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html#dfn-custom-element-name>
 */
bool isCustomTag(String name) {
  if (name == null || !name.contains('-')) return false;

  // These names have meaning in SVG or MathML, so they aren't allowed as custom
  // tags.
  var invalidNames = const {
    'annotation-xml': '',
    'color-profile': '',
    'font-face': '',
    'font-face-src': '',
    'font-face-uri': '',
    'font-face-format': '',
    'font-face-name': '',
    'missing-glyph': '',
  };
  return !invalidNames.containsKey(name);
}
