| @ -0,0 +1 @@ | |||
| node_modules | |||
| @ -0,0 +1,45 @@ | |||
| import * as riot from 'riot'; | |||
| import TinyFade from './src/tiny-fade.riot'; | |||
| riot.install((component) => { | |||
| const { | |||
| onBeforeMount, | |||
| onMounted | |||
| } = component | |||
| // patch the onBeforeMount to create slots in runtime | |||
| component.onBeforeMount = (...args) => { | |||
| const html = component.root.innerHTML | |||
| if (html) { | |||
| // empty the component html | |||
| component.root.innerHTML = '' | |||
| // define slot-html to runtime | |||
| Object.defineProperty(component, 'slot-html', { | |||
| value: html, | |||
| enumerable: false, | |||
| writable: false, | |||
| configurable: true, | |||
| }) | |||
| } | |||
| // call the original onBeforeMount | |||
| onBeforeMount.apply(component, ...args) | |||
| } | |||
| component.onMounted = (...args) => { | |||
| component.$('slot-html').outerHTML = component['slot-html'] | |||
| // call the original onMounted | |||
| onMounted.apply(component, ...args) | |||
| } | |||
| return component | |||
| }) | |||
| riot.register('tiny-fade', TinyFade); | |||
| riot.mount('tiny-fade'); | |||
| @ -0,0 +1 @@ | |||
| <!doctype html><html><head lang="en"><meta charset="utf-8"><title>Tiny Fade | i386 Demo</title><link rel="shortcut icon" href="#"/><meta name="viewport" content="width=device-width,initial-scale=1"><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" rel="stylesheet"/><link href="https://cdn.jsdelivr.net/npm/reflex-grid@2.0.4/css/reflex.min.css" rel="stylesheet"/><link href="css/demo-386.css" rel="stylesheet"/></head><body><main><div class="container"><div class="grid justify-center"><div class="col-12 col-md-8"><div class="hero"><header><h1>Tiny Tags</h1></header><p>Created with <a href="https://riot.js.org" target="_blank">Riot.js</a>!</p><p>Form Field Component to add Tags to a List. Will be handled as a Select-Element with Multiple Options that are selected.</p><p></p><blockquote>npm install tiny-tags --save</blockquote><p></p><p><a href="https://github.com/tentakelfabrik/tiny-tags" target="_blank"><svg class="icon vertical-align-sub"><use xlink:href="#icon-github"/></svg></a></p></div><h2>Try me:</h2><tiny-fade data-tag="img"><img src="hammer.gif"/> <img src="hammer.gif"/> <img src="hammer.gif"/><div class="test"><img src="hammer.gif"/></div></tiny-fade></div></div></div></main><footer><p>Crafted with enthusiasm by <a target="_blank" href="https://tentakelfabrik.de">Tentakelfabrik</a></p><p><a target="_blank" href="https://github.com/tentakelfabrik"><svg class="icon"><use xlink:href="#icon-github"/></svg></a></p></footer><script src="js/demo-386.js"></script></body></html> | |||
| @ -0,0 +1,3 @@ | |||
| /* Riot v4.13.2, @license MIT */ | |||
| /*! (c) 2018 Andrea Giammarchi (ISC) */ | |||
| @ -0,0 +1,4 @@ | |||
| { | |||
| "/dist/js/demo-386.js": "/dist/js/demo-386.js", | |||
| "/dist/hammer.gif": "/dist/hammer.gif" | |||
| } | |||
| @ -0,0 +1,31 @@ | |||
| { | |||
| "name": "tiny-fade", | |||
| "version": "1.0.0", | |||
| "description": "Fade elements", | |||
| "scripts": { | |||
| "dev": "npm run development", | |||
| "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", | |||
| "watch": "npm run development -- --watch", | |||
| "watch-poll": "npm run watch -- --watch-poll", | |||
| "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", | |||
| "prod": "npm run production", | |||
| "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" | |||
| }, | |||
| "repository": { | |||
| "type": "git", | |||
| "url": "git@github.com:tentakelfabrik/tiny-fade.git" | |||
| }, | |||
| "author": "Björn Hase", | |||
| "license": "MIT", | |||
| "dependencies": { | |||
| "riot": "^4.13.2" | |||
| }, | |||
| "devDependencies": { | |||
| "@riotjs/compiler": "^4.9.2", | |||
| "@riotjs/webpack-loader": "^4.0.3", | |||
| "cross-env": "^7.0.2", | |||
| "html-webpack-plugin": "^4.3.0", | |||
| "laravel-mix": "^5.0.4", | |||
| "vue-template-compiler": "^2.6.11" | |||
| } | |||
| } | |||
| @ -0,0 +1,67 @@ | |||
| <!DOCTYPE html> | |||
| <html> | |||
| <head lang="en"> | |||
| <meta charset="utf-8"> | |||
| <title>Tiny Fade | i386 Demo</title> | |||
| <link rel="shortcut icon" href="#" /> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="https://cdn.jsdelivr.net/npm/reflex-grid@2.0.4/css/reflex.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="css/demo-386.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <body> | |||
| <%= htmlWebpackPlugin.options.svg %> | |||
| <main> | |||
| <div class="container"> | |||
| <div class="grid justify-center"> | |||
| <div class="col-12 col-md-8"> | |||
| <div class="hero"> | |||
| <header> | |||
| <h1>Tiny Tags</h1> | |||
| </header> | |||
| <p> | |||
| Created with <a href="https://riot.js.org" target="_blank">Riot.js</a>! | |||
| </p> | |||
| <p> | |||
| Form Field Component to add Tags to a List. Will be handled as a Select-Element | |||
| with Multiple Options that are selected. | |||
| </p> | |||
| <p> | |||
| <blockquote> | |||
| npm install tiny-tags --save | |||
| </blockquote> | |||
| </p> | |||
| <p> | |||
| <a href="https://github.com/tentakelfabrik/tiny-tags" target="_blank"> | |||
| <svg class="icon vertical-align-sub"><use xlink:href="#icon-github" /></svg> | |||
| </a> | |||
| </p> | |||
| </div> | |||
| <h2>Try me:</h2> | |||
| <tiny-fade data-tag="img"> | |||
| <img src="hammer.gif" /> | |||
| <img src="hammer.gif" /> | |||
| <img src="hammer.gif" /> | |||
| <div class="test"> | |||
| <img src="hammer.gif" /> | |||
| </div> | |||
| </tiny-fade> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </main> | |||
| <footer> | |||
| <p> | |||
| Crafted with enthusiasm by <a target="_blank" href="https://tentakelfabrik.de">Tentakelfabrik</a> | |||
| </p> | |||
| <p> | |||
| <a target="_blank" href="https://github.com/tentakelfabrik"> | |||
| <svg class="icon"><use xlink:href="#icon-github" /></svg> | |||
| </a> | |||
| </p> | |||
| </footer> | |||
| <script src="js/demo-386.js"></script> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,19 @@ | |||
| <tiny-fade> | |||
| <div class="tiny-fade"> | |||
| <div class="yield"></div> | |||
| </div> | |||
| <script> | |||
| export default { | |||
| onBeforeMount() { | |||
| this.content = this.root.innerHTML; | |||
| this.root.innerHTML = ''; | |||
| }, | |||
| onMounted() { | |||
| this.$('.yield').innerHTML = this.content; | |||
| } | |||
| } | |||
| </script> | |||
| </tiny-fade> | |||
| @ -0,0 +1,62 @@ | |||
| <tiny-fade> | |||
| <div class="tiny-fade"> | |||
| <slot-html /> | |||
| </div> | |||
| <script> | |||
| /** | |||
| * | |||
| * | |||
| * | |||
| */ | |||
| export default { | |||
| state: { | |||
| show: 2, | |||
| interval: 1000 | |||
| }, | |||
| /** | |||
| * | |||
| * | |||
| */ | |||
| onMounted() { | |||
| const elements = this.$$('.tiny-fade > *') | |||
| elements.forEach((element, index) => { | |||
| element.classList.add('tiny-fade__item') | |||
| if (this.state.show > index) { | |||
| element.classList.add('tiny-fade__item--active') | |||
| } | |||
| }) | |||
| const timer = setInterval(() => { | |||
| this.toggle() | |||
| }, this.state.interval) | |||
| }, | |||
| /** | |||
| * | |||
| * | |||
| */ | |||
| toggle() { | |||
| const elements = this.$('.tiny-fade__item--active:last-child') | |||
| console.log(elements) | |||
| //elements.forEach((element, index) => { | |||
| //if (element.classList.contains('tiny-fade__item--active')) { | |||
| // element.classList.remove('tiny-fade__item--active') | |||
| //} | |||
| //})*/ | |||
| } | |||
| } | |||
| </script> | |||
| <style> | |||
| </style> | |||
| </tiny-fade> | |||
| @ -0,0 +1,40 @@ | |||
| const mix = require('laravel-mix'); | |||
| const HtmlWebpackPlugin = require('html-webpack-plugin'); | |||
| const fs = require('fs'); | |||
| /* | |||
| |-------------------------------------------------------------------------- | |||
| | Mix Asset Management | |||
| |-------------------------------------------------------------------------- | |||
| | | |||
| | Mix provides a clean, fluent API for defining some Webpack build steps | |||
| | for your Laravel application. By default, we are compiling the Sass | |||
| | file for the application as well as bundling up all the JS files. | |||
| | | |||
| */ | |||
| mix.webpackConfig({ | |||
| plugins: [ | |||
| new HtmlWebpackPlugin({ | |||
| filename: 'dist/index.html', | |||
| template: 'src/assets/html/index.html.ejs', | |||
| inject: false | |||
| }) | |||
| ], | |||
| module: { | |||
| rules: [{ | |||
| test: /\.riot$/, | |||
| exclude: /node_modules/, | |||
| use: [{ | |||
| loader: '@riotjs/webpack-loader', | |||
| query: { | |||
| hot: false | |||
| } | |||
| }] | |||
| } | |||
| ]} | |||
| }); | |||
| mix.js('demo-386.js', 'dist/js') | |||
| .copy('src/assets/img/*', 'dist'); | |||