# AUTO GENERATED FILE - DO NOT EDIT

from dash.development.base_component import Component, _explicitize_args


class ClipPath(Component):
    """A ClipPath component.
ClipPath is a wrapper for the <clipPath> SVG element.
For detailed attribute info see:
https://developer.mozilla.org/en-US/docs/Web/SVG/Element/clipPath

Keyword arguments:

- children (a list of or a singular dash component, string or number; optional):
    The children of this component.

- id (string; optional):
    The ID of this component, used to identify dash components in
    callbacks. The ID needs to be unique across all of the components
    in an app.

- aria-* (string; optional):
    A wildcard aria attribute.

- className (string; optional):
    Often used with CSS to style elements with common properties.

- clipPath (string; optional):
    The clip-path presentation attribute defines or associates a
    clipping path with the element it is related to.Note:  As a
    presentation attribute clip-path can be used as a  CSS
    property.You can use this attribute with the following  SVG
    elements:An extra information to tell how a <basic-shape>  is
    applied to an element: fill-box indicates to use the  object
    bounding box; stroke-box indicates to use the object  bounding box
    extended with the stroke; view-box indicates  to use the nearest
    SVG viewport as the reference box.Note:  For more details on the
    clip-path syntax, see the CSS  property clip-path reference
    page.BCD tables only load  in the browser.

- clipPathUnits (string | number; optional):
    The clipPathUnits attribute indicates which coordinate system  to
    use for the contents of the <clipPath> element.You  can use this
    attribute with the following SVG elements:For  <clipPath>,
    clipPathUnits define the coordinate system  in use for the content
    of the element.This value indicates  that all coordinates inside
    the <clipPath> element refer  to the user coordinate system as
    defined when the clipping  path was created.This value indicates
    that all coordinates  inside the <clipPath> element are relative
    to the bounding  box of the element the clipping path is applied
    to. It  means that the origin of the coordinate system is the  top
    left corner of the object bounding box and the width  and height
    of the object bounding box are considered to  have a length of 1
    unit value.

- colorInterpolation (string | number; optional):
    The color-interpolation attribute specifies the color space for
    gradient interpolations, color animations, and alpha
    compositing.Note:  For filter effects, the
    color-interpolation-filters property  controls which color space
    is used.The color-interpolation  property chooses between color
    operations occurring in  the sRGB color space or in a (light
    energy linear) linearized  RGB color space. Having chosen the
    appropriate color space,  component-wise linear interpolation is
    used.When a child  element is blended into a background, the value
    of the  color-interpolation property on the child determines the
    type of blending, not the value of the color-interpolation  on the
    parent. For gradients which make use of the href  or the
    deprecated xlink:href attribute to reference another  gradient,
    the gradient uses the property's value from  the gradient element
    which is directly referenced by the  fill or stroke property. When
    animating colors, color  interpolation is performed according to
    the value of the  color-interpolation property on the element
    being animated.Note:  As a presentation attribute,
    color-interpolation can be  used as a CSS property.You can use
    this attribute with  the following SVG elements:Indicates that the
    user agent  can choose either the sRGB or linearRGB spaces for
    color  interpolation. This option indicates that the author
    doesn't  require that color interpolation occur in a particular
    color space.Indicates that color interpolation should  occur in
    the sRGB color space.Indicates that color interpolation  should
    occur in the linearized RGB color space as described  in the sRGB
    specification.BCD tables only load in the  browser.

- colorRendering (string | number; optional):
    Deprecated: This feature is no longer recommended. Though some
    browsers might still support it, it may have already been  removed
    from the relevant web standards, may be in the  process of being
    dropped, or may only be kept for compatibility  purposes. Avoid
    using it, and update existing code if  possible; see the
    compatibility table at the bottom of  this page to guide your
    decision. Be aware that this feature  may cease to work at any
    time.The color-rendering attribute  provides a hint to the SVG
    user agent about how to optimize  its color interpolation and
    compositing operations.color-rendering  takes precedence over
    color-interpolation-filters. For  example, assume color-rendering:
    optimizeSpeed and color-interpolation-filters:  linearRGB. In this
    case, the SVG user agent should perform  color operations in a way
    that optimizes performance,  which might mean sacrificing the
    color interpolation precision  as specified by through the
    linearRGB value for color-interpolation-filters.Note:  As a
    presentation attribute, color-rendering can be used  as a CSS
    property.You can use this attribute with the  following SVG
    elements:Indicates that the user agent shall  make appropriate
    tradeoffs to balance speed and quality,  but quality shall be
    given more importance than speed.Indicates  that the user agent
    shall emphasize rendering speed over  quality. For RGB display
    devices, this option will sometimes  cause the user agent to
    perform color interpolation and  compositing in the device RGB
    color space.Indicates that  the user agent shall emphasize quality
    over rendering  speed.BCD tables only load in the browser.

- data-* (string; optional):
    A wildcard data attribute.

- key (string; optional):
    A unique identifier for the component, used to improve performance
    by React.js while rendering components See
    https://reactjs.org/docs/lists-and-keys.html for more info.

- loading_state (dict; optional):
    Object that holds the loading state object coming from
    dash-renderer.

    `loading_state` is a dict with keys:

    - component_name (string; optional):
        Holds the name of the component that is loading.

    - is_loading (boolean; optional):
        Determines if the component is loading or not.

    - prop_name (string; optional):
        Holds which property is loading.

- mask (string; optional):
    The mask attribute is a presentation attribute mainly used to
    bind a given <mask> element with the element the attribute
    belongs to.Note: As a presentation attribute mask can  be used as
    a CSS property.You can use this attribute with  the following SVG
    elements:Since SVG2, the mask attribute  is defined as a css
    property and is a shorthand for many  other properties:
    mask-image, mask-mode, mask-repeat,  mask-position, mask-clip,
    mask-origin, mask-size, and  mask-composite.BCD tables only load
    in the browser.

- n_clicks (number; default 0):
    An integer that represents the number of times that this element
    has been clicked on.

- n_clicks_timestamp (number; default -1):
    An integer that represents the time (in ms since 1970) at which
    n_clicks changed. This can be used to tell which button was
    changed most recently.

- pointerEvents (string | number; optional):
    The pointer-events attribute is a presentation attribute that
    allows defining whether or when an element may be the  target of a
    mouse event.Note: As a presentation attribute  pointer-events can
    be used as a CSS property.You can use  this attribute with the
    following SVG elements:For a detailed  explanation of each
    possible value, have a look at the  CSS  pointer-events
    documentation.BCD tables only load  in the browser.

- requiredFeatures (string | number; optional):
    Deprecated: This feature is no longer recommended. Though some
    browsers might still support it, it may have already been  removed
    from the relevant web standards, may be in the  process of being
    dropped, or may only be kept for compatibility  purposes. Avoid
    using it, and update existing code if  possible; see the
    compatibility table at the bottom of  this page to guide your
    decision. Be aware that this feature  may cease to work at any
    time.The requiredFeatures attribute  takes a list of feature
    strings, with the individual strings  separated by white space. It
    determines whether or not  all of the named features are supported
    by the browser;  if all of them are supported, the attribute
    evaluates  to True end the element is rendered; otherwise, the
    attribute  evaluates to False and the current element and its
    children  are skipped and thus will not be rendered. This provides
    a way to design SVG that gracefully falls back when features
    aren't available.If the attribute is not present, then  its
    implicit evaluated value is True. If a None string  or empty
    string value is given to attribute requiredFeatures,  the
    attribute is evaluate to False.requiredFeatures is  often used in
    conjunction with the <switch> element. If  requiredFeatures is
    used in other situations, it represents  a simple switch on the
    given element whether to render  the element or not.To detect
    availability of an SVG feature  from script, there is the (also
    deprecated) DOMImplementation.hasFeature()  method.You can use
    this attribute with the following SVG  elements:This is a list of
    feature strings, separated  using white space. Determines whether
    all of the named  features are supported by the browser. See
    Feature strings  below for a list of allowed values.The following
    are the  feature strings for the requiredFeatures attribute. These
    same feature strings apply to the hasFeature method call  that is
    part of the SVG DOM's support for the DOMImplementation
    interface. In some cases the feature strings map directly  to a
    set of attributes, properties or elements, in others  they
    represent some functionality of the browser. Note  that the format
    and naming for feature strings changed  from SVG 1.0 to SVG 1.1.
    The SVG 1.0 feature strings are  not listed here but can be found
    in the SVG Specification.  Some browser support SVG 1.0 Feature
    strings for compatibility  reasons. However, the SVG 1.0 feature
    strings are considered  deprecated.At least one of the following
    feature is supported:At  least one of the following feature is
    supported:The browser  supports all the following features:The
    browser supports  all of the DOM interfaces and methods that
    correspond  to the language features for
    http://www.w3.org/TR/SVG11/feature#SVG-static.The  browser
    supports all of the language features from
    http://www.w3.org/TR/SVG11/feature#SVG-static  plus the feature
    http://www.w3.org/TR/SVG11/feature#Animation.The  browser supports
    all of the DOM interfaces and methods  that correspond to the
    language features for
    http://www.w3.org/TR/SVG11/feature#SVG-animation.The  browser
    supports all of the language features from
    http://www.w3.org/TR/SVG11/feature#SVG-animation  plus the
    following features:The browser supports all of  the DOM interfaces
    and methods that correspond to the  language features for
    http://www.w3.org/TR/SVG11/feature#SVG-dynamic.The  browser
    supports the id, xml:base, xml:lang and xml:space  attributesThe
    browser supports <svg>, <g>, <defs>, <desc>,  <title>, <metadata>,
    <symbol> and <use> elements.The browser  supports <svg>, <g>,
    <defs>, <desc>, <title>, <metadata>  and <use> elements.The
    browser supports the enable-background  attributeThe browser
    supports the <switch> element, and  the requiredFeatures,
    requiredExtensions, systemLanguage  attributesThe browser supports
    the <image> element.The  browser supports the <style> element.The
    browser supports  the clip and overflow attributes.The browser
    supports  the <rect>, <circle>, <line>, <polyline>, <polygon>,
    <ellipse>  and <path> elements.The browser supports the <text>,
    <tspan>,  <tref>, <textPath>, <altGlyph>, <altGlyphDef>,
    <altGlyphItem>  and <glyphRef> elements.The browser supports the
    <text>  elementThe browser supports the color, fill, fill-rule,
    stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap,
    stroke-linejoin, stroke-miterlimit, stroke-width,
    color-interpolation  and color-rendering attributesThe browser
    supports the  color, fill, fill-rule, stroke, stroke-dasharray,
    stroke-dashoffset,  stroke-linecap, stroke-linejoin,
    stroke-miterlimit, stroke-width  and color-rendering attributesThe
    browser supports the  opacity, stroke-opacity and fill-opacity
    attributesThe  browser supports the display, image-rendering,
    pointer-events,  shape-rendering, text-rendering and visibility
    attributesThe  browser supports the display and visibility
    attributesThe  browser supports the <marker> elementThe browser
    supports  the <linearGradient>, <radialGradient> and <stop>
    elementsThe  browser supports the <pattern> elementThe browser
    supports  the <clipPath> element and the clip-path, clip-rule
    attributesThe  browser supports the <clipPath> element and the
    clip-path  attributeThe browser supports the <mask> elementThe
    browser  supports the <filter>, <feBlend>, <feColorMatrix>,
    <feComponentTransfer>,  <feComposite>, <feConvolveMatrix>,
    <feDiffuseLighting>,  <feDisplacementMap>, <feFlood>,
    <feGaussianBlur>, <feImage>,  <feMerge>, <feMergeNode>,
    <feMorphology>, <feOffset>,  <feSpecularLighting>, <feTile>,
    <feDistantLight>, <fePointLight>,  <feSpotLight>, <feFuncR>,
    <feFuncG>, <feFuncB> and <feFuncA>  elementsThe browser supports
    the <filter>, <feBlend>,  <feColorMatrix>, <feComponentTransfer>,
    <feComposite>,  <feFlood>, <feGaussianBlur>, <feImage>, <feMerge>,
    <feMergeNode>,  <feOffset>, <feTile>, <feFuncR>, <feFuncG>,
    <feFuncB>  and <feFuncA> elementsThe browser supports the
    onunload,  onabort, onerror, onresize, onscroll and onzoom
    attributesThe  browser supports the onfocusin, onfocusout,
    onactivate,  onclick, onmousedown, onmouseup, onmouseover,
    onmousemove,  onmouseout and onload attributesThe browser supports
    the  onbegin, onend, onrepeat and onload attributesThe browser
    supports the <cursor> elementThe browser supports the  <a>
    elementThe browser supports the xlink:type, xlink:href,
    xlink:role, xlink:arcrole, xlink:title, xlink:show and
    xlink:actuate attributesThe browser supports the <view>
    elementThe browser supports the <script> elementThe browser
    supports the <animate>, <set>, <animateMotion>,
    <animateTransform>,  <animateColor> and <mpath> elementsThe
    browser supports  the <font>, <font-face>, <glyph>,
    <missing-glyph>, <hkern>,  <vkern>, <font-face-src>,
    <font-face-uri>, <font-face-format>  and <font-face-name>
    elementsThe browser supports the  <font>, <font-face>, <glyph>,
    <missing-glyph>, <hkern>,  <font-face-src> and <font-face-name>
    elementsThe browser  supports the <foreignObject> elementSee also
    requiredFeatures.svgBCD  tables only load in the browser.

- role (string; optional):
    The ARIA role attribute.

- systemLanguage (string | number; optional):
    The systemLanguage attribute represents a list of supported
    language  tags. This list is matched against the language defined
    in the user preferences.You can use this attribute with  the
    following SVG elements:The value is a set of comma-separated
    tokens, each of which must be a language tag, as defined  in RFC
    5646: Tags for Identifying Languages (also known  as BCP
    47).systemLanguage is often used in conjunction  with the <switch>
    element. If the attribute is used in  other situations, then it
    represents a simple switch on  the given element whether to render
    the element or not.Note:  If several alternative language objects
    are enclosed in  a <switch> and none of them matches, this may
    lead to  situations where no content is displayed. It is thus
    recommended  to include a \"catch-all\" choice at the end of such
    a <switch>  which is acceptable in all cases.The attribute
    evaluates  to \"True\" if one of the language tags indicated by
    user  preferences is a case-insensitive match or prefix (followed
    by a \"-\") of one of the language tags given in the value  of
    this parameter. Otherwise it evaluates to \"False\".Note:  The
    prefix matching rule does not imply that if a user  understands a
    language with a certain tag, that the user  will also understand
    all languages with the tag as prefix.If  the attribute is not
    present, then it implicitly evaluates  to \"True\". If a None
    string or empty string value is given,  the attribute evaluates to
    \"False\".The prefix rule allows  the use of prefix tags if this
    is the case.Multiple languages  may be listed for content that is
    intended for multiple  audiences. For example, content that is
    presented simultaneously  in the original Maori and English
    versions, would call  for:However, just because multiple languages
    are present  within the object on which the systemLanguage test
    attribute  is placed, this does not mean that it is intended for
    multiple linguistic audiences. An example would be a beginner's
    language primer, such as \"A First Lesson in Latin,\" which  is
    clearly intended to be used by an English-literate  audience. In
    this case, the attribute should only include  en.BCD tables only
    load in the browser."""
    @_explicitize_args
    def __init__(self, children=None, id=Component.UNDEFINED, n_clicks=Component.UNDEFINED, n_clicks_timestamp=Component.UNDEFINED, key=Component.UNDEFINED, role=Component.UNDEFINED, clipPathUnits=Component.UNDEFINED, clipPath=Component.UNDEFINED, colorInterpolation=Component.UNDEFINED, colorRendering=Component.UNDEFINED, mask=Component.UNDEFINED, pointerEvents=Component.UNDEFINED, requiredFeatures=Component.UNDEFINED, systemLanguage=Component.UNDEFINED, className=Component.UNDEFINED, loading_state=Component.UNDEFINED, **kwargs):
        self._prop_names = ['children', 'id', 'aria-*', 'className', 'clipPath', 'clipPathUnits', 'colorInterpolation', 'colorRendering', 'data-*', 'key', 'loading_state', 'mask', 'n_clicks', 'n_clicks_timestamp', 'pointerEvents', 'requiredFeatures', 'role', 'systemLanguage']
        self._type = 'ClipPath'
        self._namespace = 'dash_svg'
        self._valid_wildcard_attributes =            ['data-', 'aria-']
        self.available_properties = ['children', 'id', 'aria-*', 'className', 'clipPath', 'clipPathUnits', 'colorInterpolation', 'colorRendering', 'data-*', 'key', 'loading_state', 'mask', 'n_clicks', 'n_clicks_timestamp', 'pointerEvents', 'requiredFeatures', 'role', 'systemLanguage']
        self.available_wildcard_properties =            ['data-', 'aria-']
        _explicit_args = kwargs.pop('_explicit_args')
        _locals = locals()
        _locals.update(kwargs)  # For wildcard attrs
        args = {k: _locals[k] for k in _explicit_args if k != 'children'}
        for k in []:
            if k not in args:
                raise TypeError(
                    'Required argument `' + k + '` was not specified.')
        super(ClipPath, self).__init__(children=children, **args)
