function u() {
          return (0, c.jsxs)(r.WI, {
            title: 'Icons',
            lead: 'Material icons use geometric shapes to visually represent core ideas, capabilities, or topics.',
            module: '@rmwc/icon',
            styles: ['@rmwc/icon/icon.css'],
            docsLink: 'https://material.io/icons',
            examples: a,
            children: [
              (0, c.jsx)(r.sb, { children: 'Setup' }),
              (0, c.jsx)(r.PJ, {
                children:
                  "Icons are not part of the official material-components-web spec, but they are referenced many times in the documentation. RMWC provides a declarative way to use icons. Note that RMWC does not ship with any icons of its own. Make sure you include an icon set! You can use any one you want, but Google's Material Icons are available through open source. Follow Google's developer guide to get them setup with your app. https://google.github.io/material-design-icons/"
              }),
              (0, c.jsx)(r.PJ, {
                children:
                  "There are lots of different strategies for implementing icons on the web, and the Icon component is flexible for most of them. Use ligatures, classNames, inline SVGs, HTML, or URLs to get icons into your app. The default strategy is 'ligature' which works with the material.io font icon set."
              }),
              (0, c.jsx)(r.sb, { children: 'Basic Usage' }),
              (0, c.jsx)(r.PJ, {
                children:
                  'The Icon component, (really the icon prop itself) can accept a variety of formats. Anywhere you see a component prop like `icon` or `trailingIcon` will inherit the same behavior.'
              }),
              (0, c.jsx)(r.q3, {
                label: 'String',
                children: (0, c.jsx)(o.J, { icon: 'favorite' })
              }),
              (0, c.jsx)(r.q3, {
                label: 'Child Component',
                children: (0, c.jsx)(o.J, {
                  icon: (0, c.jsx)('div', {
                    style: {
                      background: 'green',
                      width: '24px',
                      height: '24px',
                      borderRadius: '100px'
                    }
                  })
                })
              }),
              (0, c.jsx)(r.q3, {
                label: 'Passing Options',
                children: (0, c.jsxs)(c.Fragment, {
                  children: [
                    (0, c.jsx)(o.J, {
                      icon: { icon: 'star', strategy: 'ligature' }
                    }),
                    (0, c.jsx)(s.z, {
                      label: 'Hello!',
                      icon: {
                        icon: 'add',
                        onMouseOver: function () {
                          return console.log('OVER');
                        }
                      }
                    })
                  ]
                })
              }),
              (0, c.jsx)(r.sb, { children: 'Icon Sizing' }),
              (0, c.jsx)(r.PJ, {
                children:
                  "The Material spec details multiple sizes for icons. The Icon component doesn't assign a size by default, but these are available to you to force a size. Please note, this will only work if you've included the RMWC icon css file."
              }),
              (0, c.jsx)(r.q3, {
                children: (0, c.jsxs)(c.Fragment, {
                  children: [
                    (0, c.jsx)(o.J, {
                      icon: { icon: 'favorite', size: 'xsmall' }
                    }),
                    (0, c.jsx)(o.J, {
                      icon: { icon: 'favorite', size: 'small' }
                    }),
                    (0, c.jsx)(o.J, {
                      icon: { icon: 'favorite', size: 'medium' }
                    }),
                    (0, c.jsx)(o.J, {
                      icon: { icon: 'favorite', size: 'large' }
                    }),
                    (0, c.jsx)(o.J, {
                      icon: { icon: 'favorite', size: 'xlarge' }
                    })
                  ]
                })
              }),
              (0, c.jsx)(r.sb, { children: 'Ligatures' }),
              (0, c.jsx)(r.PJ, {
                children:
                  "This is for icon fonts that support ligatures like material-icons. This is the default strategy if nothing is set and doesn't require any additional setup if you are using material-icons."
              }),
              (0, c.jsx)(r.q3, {
                children: (0, c.jsxs)(c.Fragment, {
                  children: [
                    (0, c.jsx)(o.J, { icon: 'favorite' }),
                    (0, c.jsx)(o.J, { icon: 'favorite_outline' }),
                    (0, c.jsx)(o.J, {
                      icon: { icon: 'star', strategy: 'ligature' }
                    })
                  ]
                })
              }),
              (0, c.jsx)(r.sb, { children: 'URLs' }),
              (0, c.jsx)(r.PJ, {
                children:
                  'This is for icons that are accessible via HTTP(S) and will be loaded directly into an `img` tag. This can be auto-detected for things that look like urls. The image will be set as a backgroundImage of the icon. Make sure you impor the RMWC icon css file for this to work properly.'
              }),
              (0, c.jsx)(r.q3, {
                children: (0, c.jsxs)(c.Fragment, {
                  children: [
                    (0, c.jsx)(o.J, { icon: 'images/icons/twitter.png' }),
                    (0, c.jsx)(o.J, {
                      icon: {
                        icon: 'images/icons/twitter.png',
                        strategy: 'url'
                      }
                    })
                  ]
                })
              }),
              (0, c.jsx)(r.sb, { children: 'Components / Inline SVGs' }),
              (0, c.jsx)(r.PJ, {
                children:
                  'This will render a child component inside of the icon. This is useful for all sorts of customization and for rendering inline SVGs. The following example shows rendering an SVG, as well as an arbitrary `div`.'
              }),
              (0, c.jsx)(r.q3, {
                children: (0, c.jsxs)(c.Fragment, {
                  children: [
                    (0, c.jsx)(o.J, {
                      icon: (0, c.jsx)('div', {
                        style: {
                          background: 'green',
                          width: '24px',
                          height: '24px',
                          borderRadius: '100px'
                        }
                      })
                    }),
                    (0, c.jsx)(o.J, {
                      icon: {
                        strategy: 'component',
                        icon: (0, c.jsx)('svg', {
                          style: { width: '24px', height: '24px' },
                          viewBox: '0 0 24 24',
                          children: (0, c.jsx)('path', {
                            fill: '#4285F4',
                            d: 'M21.35,11.1H12.18V13.83H18.69C18.36,17.64 15.19,19.27 12.19,19.27C8.36,19.27 5,16.25 5,12C5,7.9 8.2,4.73 12.2,4.73C15.29,4.73 17.1,6.7 17.1,6.7L19,4.72C19,4.72 16.56,2 12.1,2C6.42,2 2.03,6.8 2.03,12C2.03,17.05 6.16,22 12.25,22C17.6,22 21.5,18.33 21.5,12.91C21.5,11.76 21.35,11.1 21.35,11.1V11.1Z'
                          })
                        })
                      }
                    })
                  ]
                })
              }),
              (0, c.jsx)(r.sb, { children: 'Classnames' }),
              (0, c.jsx)(r.PJ, {
                children:
                  "Some font icon sets like Ion Icons and Glyph Icons render based on a className that is set. RMWC docs doesn't include extra icon fonts so there is no example to render, but the below code should give you an approximation."
              }),
              (0, c.jsx)(r.PJ, {
                children:
                  "**THIS CANNOT BE AUTO DETECTED**. You'll have to explicitly set the strategy directly on the Icon or specify it globally via the RMWCProvider."
              }),
              (0, c.jsx)(r.q3, {
                codeOnly: !0,
                children: (0, c.jsxs)(c.Fragment, {
                  children: [
                    (0, c.jsx)(o.J, {
                      icon: {
                        icon: 'star',
                        strategy: 'className',
                        basename: 'icon',
                        prefix: 'ion-'
                      }
                    }),
                    (0, c.jsx)(l.pK, {
                      icon: {
                        strategy: 'className',
                        basename: 'glyphicons',
                        prefix: 'glyphicons-'
                      },
                      children: (0, c.jsx)(o.J, { icon: 'heart' })
                    })
                  ]
                })
              }),
              (0, c.jsx)(r.sb, { children: 'Custom Rendering' }),
              (0, c.jsx)(r.PJ, {
                children:
                  'Sometimes, you just need to do your own thing. Maybe you have a legacy project that already has icons and you want to incorporate them with RMWC. If none of the other strategies are what you need, then you can hijack the whole thing and delegate it to your own render function.'
              }),
              (0, c.jsx)(r.q3, {
                label: 'Simple Example',
                children: (0, c.jsx)(o.J, {
                  icon: {
                    icon: 'favorite',
                    strategy: 'custom',
                    render: function (e) {
                      var t = e.content;
                      return (0, c.jsxs)('div', { children: ['Hello + ', t] });
                    }
                  }
                })
              }),
              (0, c.jsx)(r.PJ, {
                children:
                  "A more relevant example involves an app that has a custom / existing icon component. There are a litany of reasons why your app might need one, but if you've found this section of the docs you likely know what problem you need to solve."
              }),
              (0, c.jsx)(r.q3, {
                codeOnly: !0,
                children:
                  "\n          // 1) Your app has an icon component you use\n          import { MyIconComponent } from '@rmwc/icon';\n          <MyIconComponent name=\"search\" />\n\n          // 2) Now you are using RMWC, lots of components are instances of Icons\n          // You need to be able to delegate the handling of an icon prop to your own component\n          import { TextField } from '@rmwc/textField';\n          import { Chip } from '@rmwc/chip';\n          <TextField icon=\"favorite\" />\n          <Chip icon=\"favorite\" />\n\n          // 3) Instead, you should set the custom strategy to be your default\n          // and add your own handling with RMWCProvider\n          import React from 'react';\n          import * as ReactDOM from 'react-dom';\n          import App from './App'; // your main app component\n          import { RMWCProvider } from '@rmwc/provider';\n          import { MyIconComponent } from '@rmwc/icon';\n\n          const iconRenderHandler = ({ content, className, ...rest }) => {\n            // content is whatever was passed to the icon prop\n\n            // className is the fully processed className taking into account the basename and prefix defaults\n            // it's important to include this because MDC often has classes like text-field-icon directly\n            // on the component for alignment\n\n            // rest is just any other props\n            return <MyIconComponent className={className} name={content} {...rest} />\n          };\n\n          ReactDOM.render(\n            <RMWCProvider icon={{strategy: 'custom', render: iconRenderHandler}}>\n              <App />\n            </RMWCProvider>,\n            document.getElementById('root')\n          );\n\n          // 4) Now anywhere in your app that an Icon instance is used, it will be\n          // delegated to your handler and render your custom component\n          import { TextFieldIcon } from '@rmwc/textfield';\n          <TextFieldIcon icon=\"search\" />\n        "
              }),
              (0, c.jsx)(r.PQ, {
                src: i,
                components: [{ displayName: 'Icon', component: o.J }]
              })
            ]
          });
        }
\\n   * Set the option globally throug RMWCProvider\\n   * Glyphicons <span class=\\\"glyphicons glyphicons-heart\\\"></span>\\n   *