@kano/web-components
Version:
Shared web-components for the Kano ecosystem.
139 lines (133 loc) • 5.53 kB
HTML
<html>
<head>
<meta charset="utf-8">
<script src="../../../../@webcomponents/webcomponentsjs/webcomponents-bundle.js"></script>
<script type="text/javascript">
window.Polymer = {
dom: 'shadow'
};
</script>
<script type="module" src="../../../../@polymer/iron-flex-layout/iron-flex-layout.js"></script>
<script type="module" src="../../../../@polymer/iron-demo-helpers/demo-snippet.js"></script>
<script type="module" src="../../../../@polymer/iron-demo-helpers/demo-pages-shared-styles.js"></script>
<script type="module" src="../../../../@polymer/paper-button/paper-button.js"></script>
<script type="module" src="../../kano-style/typography.js"></script>
<script type="module" src="../../kano-style/color.js"></script>
<script type="module" src="../kano-drop-down.js"></script>
<!-- FIXME(polymer-modulizer):
These imperative modules that innerHTML your HTML are
a hacky way to be sure that any mixins in included style
modules are ready before any elements that reference them are
instantiated, otherwise the CSS @apply mixin polyfill won't be
able to expand the underlying CSS custom properties.
See: https://github.com/Polymer/polymer-modulizer/issues/154
-->
<script type="module">
const $_documentContainer = document.createElement('template');
$_documentContainer.innerHTML = `<custom-style>
<style is="custom-style" include="demo-pages-shared-styles">
demo-snippet {
--demo-snippet-demo: {
position: relative;
background: #E0E0E0;
};
}
paper-button {
display: block;
}
kano-drop-down {
z-index: 1;
position: absolute;
}
kano-drop-down.four {
--kano-drop-down-background-color: var(--color-rhubarb);
--kano-drop-down-caret-padding: 4px;
}
kano-drop-down.seven {
--kano-drop-down-caret-padding: 7px;
}
ul {
list-style: none;
margin: 0;
padding: 20px;
}
</style>
</custom-style>`;
document.body.appendChild($_documentContainer.content);
</script>
</head>
<body>
<script type="module">
const $_documentContainer = document.createElement('template');
$_documentContainer.innerHTML = `<div class="vertical-section-container centered">
<h3>Aligned left</h3>
<demo-snippet class="centered">
<template>
<paper-button name="1">Toggle</paper-button>
<kano-drop-down id="1">
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</kano-drop-down>
</template>
</demo-snippet>
<h3>Aligned right</h3>
<demo-snippet class="centered">
<template>
<paper-button name="2">Toggle</paper-button>
<kano-drop-down id="2" caret-align="right">
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</kano-drop-down>
</template>
</demo-snippet>
<h3>Left caret padding of 4px</h3>
<demo-snippet class="centered">
<template>
<paper-button name="3">Toggle</paper-button>
<kano-drop-down id="3" class="four">
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</kano-drop-down>
</template>
</demo-snippet>
<h3>Right caret padding of 7px</h3>
<demo-snippet class="centered">
<template>
<paper-button name="4">Toggle</paper-button>
<kano-drop-down id="4" caret-align="right" class="seven">
<img src="http://www.top13.net/wp-content/uploads/2015/10/perfectly-timed-funny-cat-pictures-5.jpg">
</kano-drop-down>
</template>
</demo-snippet>
</div>`;
document.body.appendChild($_documentContainer.content);
</script>
<script type="module">
import '@polymer/iron-flex-layout/iron-flex-layout.js';
import '@polymer/iron-demo-helpers/demo-snippet.js';
import '@polymer/iron-demo-helpers/demo-pages-shared-styles.js';
import '@polymer/paper-button/paper-button.js';
import '../../kano-style/typography.js';
import '../../kano-style/color.js';
import '../kano-drop-down.js';
var buttons = document.getElementsByTagName('paper-button');
for (let i = 0; i < buttons.length; i++) {
buttons[i].addEventListener('tap', () => {
((button) => {
document.getElementById(button.getAttribute('name')).toggle();
})(buttons[i])
})
}
</script>
</body>
</html>