├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .postcssrc.js
├── LICENSE
├── README.md
├── build
├── config
│ ├── dev.env.js
│ ├── index.js
│ ├── prod.env.js
│ ├── test.env.js
│ └── vue-loader.conf.js
├── semvue
│ ├── webpack.semvue.build.js
│ ├── webpack.semvue.build.min.js
│ └── webpack.semvue.conf.js
├── sitedemo
│ ├── build.js
│ ├── check-versions.js
│ ├── dev-client.js
│ ├── dev-server.js
│ ├── webpack.base.conf.js
│ ├── webpack.dev.conf.js
│ ├── webpack.prod.conf.js
│ └── webpack.test.conf.js
└── utils
│ └── index.js
├── circle.yml
├── dist
├── semvue
│ ├── README.md
│ ├── index.js
│ ├── index.js.map
│ ├── index.min.js
│ └── package.json
└── sitedemo
│ ├── index.html
│ └── static
│ ├── css
│ ├── app.e7465c88a2ce0df11016bb8d44cf1508.css
│ └── app.e7465c88a2ce0df11016bb8d44cf1508.css.map
│ ├── favicon.ico
│ ├── fonts
│ ├── icons.674f50d.eot
│ ├── icons.af7ae50.woff2
│ ├── icons.b06871f.ttf
│ └── icons.fee66e7.woff
│ ├── img
│ ├── flags.9c74e17.png
│ ├── icons.912ec66.svg
│ └── logo.412b713.png
│ └── js
│ ├── app.c9f36cd826a716f86c3a.js
│ ├── app.c9f36cd826a716f86c3a.js.map
│ ├── manifest.4fe46e2909dc8c2eaf13.js
│ ├── manifest.4fe46e2909dc8c2eaf13.js.map
│ ├── vendor.61a648d7a4f46b0cb93f.js
│ └── vendor.61a648d7a4f46b0cb93f.js.map
├── index.html
├── package.json
├── src
├── App.vue
├── assets
│ ├── favicon.ico
│ ├── favicon.png
│ ├── favicon_old.ico
│ ├── favicon_old.png
│ ├── logo.png
│ ├── logoNova.png
│ ├── logoNova2.png
│ ├── logoNovaBranca.png
│ └── logoVue.png
├── components
│ ├── AccordionDoc.vue
│ ├── AppMenu.vue
│ ├── DimmerDoc.vue
│ ├── DropdownDoc.vue
│ ├── EmbedDoc.vue
│ ├── ModalDoc.vue
│ ├── PopupDoc.vue
│ ├── ProgressDoc.vue
│ ├── RatingDoc.vue
│ └── Welcome.vue
├── main.js
├── router
│ └── index.js
├── semantic-ui
│ ├── .versions
│ ├── LICENSE
│ ├── README.md
│ ├── components
│ │ ├── accordion.css
│ │ ├── accordion.js
│ │ ├── accordion.min.css
│ │ ├── accordion.min.js
│ │ ├── ad.css
│ │ ├── ad.min.css
│ │ ├── api.js
│ │ ├── api.min.js
│ │ ├── breadcrumb.css
│ │ ├── breadcrumb.min.css
│ │ ├── button.css
│ │ ├── button.min.css
│ │ ├── card.css
│ │ ├── card.min.css
│ │ ├── checkbox.css
│ │ ├── checkbox.js
│ │ ├── checkbox.min.css
│ │ ├── checkbox.min.js
│ │ ├── colorize.js
│ │ ├── colorize.min.js
│ │ ├── comment.css
│ │ ├── comment.min.css
│ │ ├── container.css
│ │ ├── container.min.css
│ │ ├── dimmer.css
│ │ ├── dimmer.js
│ │ ├── dimmer.min.css
│ │ ├── dimmer.min.js
│ │ ├── divider.css
│ │ ├── divider.min.css
│ │ ├── dropdown.css
│ │ ├── dropdown.js
│ │ ├── dropdown.min.css
│ │ ├── dropdown.min.js
│ │ ├── embed.css
│ │ ├── embed.js
│ │ ├── embed.min.css
│ │ ├── embed.min.js
│ │ ├── feed.css
│ │ ├── feed.min.css
│ │ ├── flag.css
│ │ ├── flag.min.css
│ │ ├── form.css
│ │ ├── form.js
│ │ ├── form.min.css
│ │ ├── form.min.js
│ │ ├── grid.css
│ │ ├── grid.min.css
│ │ ├── header.css
│ │ ├── header.min.css
│ │ ├── icon.css
│ │ ├── icon.min.css
│ │ ├── image.css
│ │ ├── image.min.css
│ │ ├── input.css
│ │ ├── input.min.css
│ │ ├── item.css
│ │ ├── item.min.css
│ │ ├── label.css
│ │ ├── label.min.css
│ │ ├── list.css
│ │ ├── list.min.css
│ │ ├── loader.css
│ │ ├── loader.min.css
│ │ ├── menu.css
│ │ ├── menu.min.css
│ │ ├── message.css
│ │ ├── message.min.css
│ │ ├── modal.css
│ │ ├── modal.js
│ │ ├── modal.min.css
│ │ ├── modal.min.js
│ │ ├── nag.css
│ │ ├── nag.js
│ │ ├── nag.min.css
│ │ ├── nag.min.js
│ │ ├── popup.css
│ │ ├── popup.js
│ │ ├── popup.min.css
│ │ ├── popup.min.js
│ │ ├── progress.css
│ │ ├── progress.js
│ │ ├── progress.min.css
│ │ ├── progress.min.js
│ │ ├── rail.css
│ │ ├── rail.min.css
│ │ ├── rating.css
│ │ ├── rating.js
│ │ ├── rating.min.css
│ │ ├── rating.min.js
│ │ ├── reset.css
│ │ ├── reset.min.css
│ │ ├── reveal.css
│ │ ├── reveal.min.css
│ │ ├── search.css
│ │ ├── search.js
│ │ ├── search.min.css
│ │ ├── search.min.js
│ │ ├── segment.css
│ │ ├── segment.min.css
│ │ ├── shape.css
│ │ ├── shape.js
│ │ ├── shape.min.css
│ │ ├── shape.min.js
│ │ ├── sidebar.css
│ │ ├── sidebar.js
│ │ ├── sidebar.min.css
│ │ ├── sidebar.min.js
│ │ ├── site.css
│ │ ├── site.js
│ │ ├── site.min.css
│ │ ├── site.min.js
│ │ ├── state.js
│ │ ├── state.min.js
│ │ ├── statistic.css
│ │ ├── statistic.min.css
│ │ ├── step.css
│ │ ├── step.min.css
│ │ ├── sticky.css
│ │ ├── sticky.js
│ │ ├── sticky.min.css
│ │ ├── sticky.min.js
│ │ ├── tab.css
│ │ ├── tab.js
│ │ ├── tab.min.css
│ │ ├── tab.min.js
│ │ ├── table.css
│ │ ├── table.min.css
│ │ ├── transition.css
│ │ ├── transition.js
│ │ ├── transition.min.css
│ │ ├── transition.min.js
│ │ ├── video.css
│ │ ├── video.js
│ │ ├── video.min.css
│ │ ├── video.min.js
│ │ ├── visibility.js
│ │ ├── visibility.min.js
│ │ ├── visit.js
│ │ └── visit.min.js
│ ├── package.js
│ ├── package.json
│ ├── semantic.css
│ ├── semantic.js
│ ├── semantic.min.css
│ ├── semantic.min.js
│ └── themes
│ │ └── default
│ │ └── assets
│ │ ├── fonts
│ │ ├── icons.eot
│ │ ├── icons.otf
│ │ ├── icons.svg
│ │ ├── icons.ttf
│ │ ├── icons.woff
│ │ └── icons.woff2
│ │ └── images
│ │ └── flags.png
└── semvue
│ ├── components
│ ├── Accordion.vue
│ ├── Dimmer.vue
│ ├── Dropdown.vue
│ ├── Embed.vue
│ ├── Modal.vue
│ ├── Popup.vue
│ ├── Progress.vue
│ └── Rating.vue
│ ├── index.js
│ └── mixins
│ └── Components.js
├── static
├── .gitkeep
└── favicon.ico
├── test
├── mocks
│ └── jqueryMock.js
└── unit
│ ├── .eslintrc
│ ├── index.js
│ ├── karma.conf.js
│ └── specs
│ ├── semvue
│ ├── Accordion.spec.js
│ ├── Dimmer.spec.js
│ ├── Dropdown.spec.js
│ ├── Embed.spec.js
│ ├── Modal.spec.js
│ ├── Popup.spec.js
│ ├── Progress.spec.js
│ └── Rating.spec.js
│ └── site
│ └── components
│ ├── DimmerDoc.spec.js
│ ├── DropdownDoc.spec.js
│ ├── ModalDoc.spec.js
│ ├── PopupDoc.spec.js
│ ├── ProgressDoc.spec.js
│ └── RatingDoc.spec.js
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", { "modules": false }],
4 | "stage-2"
5 | ],
6 | "plugins": ["transform-runtime"],
7 | "comments": false,
8 | "env": {
9 | "test": {
10 | "presets": ["env", "stage-2"],
11 | "plugins": [ "istanbul" ]
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | dist/*.js
3 | config/*.js
4 | src/semantic-ui/*.js
5 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // http://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | sourceType: 'module'
8 | },
9 | env: {
10 | browser: true,
11 | jquery: true
12 | },
13 | extends: 'airbnb-base',
14 | // required to lint *.vue files
15 | plugins: [
16 | 'html'
17 | ],
18 | // check if imports actually resolve
19 | 'settings': {
20 | 'import/resolver': {
21 | 'webpack': {
22 | 'config': 'build/sitedemo/webpack.base.conf.js'
23 | }
24 | }
25 | },
26 | // add your custom rules here
27 | 'rules': {
28 | // don't require .vue extension when importing
29 | 'import/extensions': ['error', 'always', {
30 | 'js': 'never',
31 | 'vue': 'never'
32 | }],
33 | // allow optionalDependencies
34 | 'import/no-extraneous-dependencies': ['error', {
35 | 'optionalDependencies': ['test/unit/index.js']
36 | }],
37 | // allow debugger during development
38 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
39 |
40 | //custom
41 | 'linebreak-style': 0,
42 | "indent": 0,
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .vscode
3 | node_modules/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | test/unit/coverage
8 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserlist" field in package.json
6 | "autoprefixer": {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Guilherme Waess
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | ----------
12 |
13 | > Semantic-ui modules/components in you Vue project
14 |
15 | ## Using
16 |
17 | [You can see the docs and demo here](https://guilhermewaess.github.io/SemVue)
18 |
19 | ``` bash
20 | # install package
21 | npm install semvue --save
22 | ```
23 |
24 | ## Using any component
25 |
26 | Simply import in your .vue the component that you want:
27 | ``` javascript
28 | import { Modal } from 'semvue';
29 |
30 | export default {
31 | components: {
32 | Modal,
33 | },
34 | };
35 | ```
36 |
37 | ## Components so far
38 |
39 | - Accordion
40 | - Dimmer
41 | - Dropdown
42 | - Embed
43 | - Modal
44 | - Popup
45 | - Progress
46 | - Rating
47 |
48 | ## To do and improvements
49 | - [x] Accordion
50 | - [x] Basic Implementation
51 | - [x] Initialization options override
52 | - [ ] Checkbox
53 | - [x] Dimmer
54 | - [x] Basic Implementation
55 | - [x] Initialization options override
56 | - [x] Dropdown
57 | - [x] Basic Implementation
58 | - [x] Embed
59 | - [x] Modal
60 | - [x] Basic Implementation
61 | - [x] Initialization options override
62 | - [ ] Nag
63 | - [x] Popup
64 | - [x] Basic Implementation
65 | - [x] Initialization options override
66 | - [x] Progress
67 | - [x] Rating
68 | - [x] Basic Implementation
69 | - [x] Initialization options override
70 | - [ ] Search
71 | - [ ] Shape
72 | - [ ] Sidebar
73 | - [ ] Sticky
74 | - [ ] Tab
75 | ------
76 |
77 | # Site Demo/Semvue Build Setup
78 |
79 | ``` bash
80 | # install dependencies
81 | npm install
82 |
83 | # serve with hot reload at localhost:8081
84 | npm start
85 |
86 | # run unit tests
87 | npm run unit
88 |
89 | # run all tests
90 | npm test
91 | ```
92 |
--------------------------------------------------------------------------------
/build/config/dev.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var prodEnv = require('./prod.env')
3 |
4 | module.exports = merge(prodEnv, {
5 | NODE_ENV: '"development"'
6 | })
7 |
--------------------------------------------------------------------------------
/build/config/index.js:
--------------------------------------------------------------------------------
1 | // see http://vuejs-templates.github.io/webpack for documentation.
2 | var path = require('path')
3 |
4 | module.exports = {
5 | build: {
6 | env: require('./prod.env'),
7 | index: path.resolve(__dirname, '../../dist/sitedemo/index.html'),
8 | assetsRoot: path.resolve(__dirname, '../../dist/sitedemo'),
9 | assetsSubDirectory: 'static',
10 | assetsPublicPath: '/SemVue/',
11 | productionSourceMap: true,
12 | // Gzip off by default as many popular static hosts such as
13 | // Surge or Netlify already gzip all static assets for you.
14 | // Before setting to `true`, make sure to:
15 | // npm install --save-dev compression-webpack-plugin
16 | productionGzip: false,
17 | productionGzipExtensions: ['js', 'css'],
18 | // Run the build command with an extra argument to
19 | // View the bundle analyzer report after build finishes:
20 | // `npm run build --report`
21 | // Set to `true` or `false` to always turn it on or off
22 | bundleAnalyzerReport: process.env.npm_config_report
23 | },
24 | dev: {
25 | env: require('./dev.env'),
26 | port: 8081,
27 | autoOpenBrowser: true,
28 | assetsSubDirectory: 'static',
29 | assetsPublicPath: '/',
30 | proxyTable: {},
31 | // CSS Sourcemaps off by default because relative paths are "buggy"
32 | // with this option, according to the CSS-Loader README
33 | // (https://github.com/webpack/css-loader#sourcemaps)
34 | // In our experience, they generally work as expected,
35 | // just be aware of this issue when enabling this option.
36 | cssSourceMap: false
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/build/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/build/config/test.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var devEnv = require('./dev.env')
3 |
4 | module.exports = merge(devEnv, {
5 | NODE_ENV: '"testing"'
6 | })
7 |
--------------------------------------------------------------------------------
/build/config/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('../utils')
2 | var config = require('../config')
3 | var isProduction = process.env.NODE_ENV === 'production'
4 |
5 | module.exports = {
6 | loaders: utils.cssLoaders({
7 | sourceMap: isProduction
8 | ? config.build.productionSourceMap
9 | : config.dev.cssSourceMap,
10 | extract: isProduction
11 | })
12 | }
13 |
--------------------------------------------------------------------------------
/build/semvue/webpack.semvue.build.js:
--------------------------------------------------------------------------------
1 | var config = require('./webpack.semvue.conf')
2 |
3 | module.exports = config
--------------------------------------------------------------------------------
/build/semvue/webpack.semvue.build.min.js:
--------------------------------------------------------------------------------
1 | var config = require('./webpack.semvue.conf')
2 | var webpack = require('webpack')
3 |
4 | config.output.filename = config.output.filename.replace(/\.js$/, '.min.js')
5 | delete config.devtool
6 |
7 | config.plugins = [
8 | new webpack.optimize.UglifyJsPlugin({
9 | sourceMap: false,
10 | drop_console: true,
11 | compress: {
12 | warnings: false
13 | }
14 | })
15 | ]
16 |
17 | module.exports = config
--------------------------------------------------------------------------------
/build/semvue/webpack.semvue.conf.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var path = require('path');
3 | var vueLoaderConfig = require('./../config/vue-loader.conf')
4 |
5 | function resolve(dir) {
6 | return path.join(__dirname, '../..', dir)
7 | }
8 |
9 | module.exports = {
10 | entry: './src/semvue/index.js',
11 | output: {
12 | filename: 'index.js',
13 | library: 'SemVue',
14 | libraryTarget: 'umd',
15 | path: path.resolve(__dirname, '../../dist/semvue/'),
16 | publicPath: '/',
17 | },
18 | resolve: {
19 | extensions: ['.js', '.vue', '.json'],
20 | alias: {
21 | 'vue$': 'vue/dist/vue.esm.js',
22 | '@': resolve('src'),
23 | '@mocks': resolve('test/mocks')
24 | }
25 | },
26 | module: {
27 | rules: [
28 | {
29 | test: /\.(js|vue)$/,
30 | loader: 'eslint-loader',
31 | enforce: 'pre',
32 | include: [resolve('src/semvue')],
33 | options: {
34 | formatter: require('eslint-friendly-formatter')
35 | }
36 | },
37 | {
38 | test: /\.vue$/,
39 | loader: 'vue-loader',
40 | options: vueLoaderConfig
41 | },
42 | {
43 | test: /\.js$/,
44 | loader: 'babel-loader',
45 | include: [resolve('src/semvue')]
46 | },
47 | ]
48 | },
49 | devtool: 'source-map'
50 | };
--------------------------------------------------------------------------------
/build/sitedemo/build.js:
--------------------------------------------------------------------------------
1 | require('./check-versions')()
2 |
3 | process.env.NODE_ENV = 'production'
4 |
5 | var ora = require('ora')
6 | var rm = require('rimraf')
7 | var path = require('path')
8 | var chalk = require('chalk')
9 | var webpack = require('webpack')
10 | var config = require('../config')
11 | var webpackConfig = require('./webpack.prod.conf')
12 |
13 | var spinner = ora('building for production...')
14 | spinner.start()
15 |
16 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
17 | if (err) throw err
18 | webpack(webpackConfig, function (err, stats) {
19 | spinner.stop()
20 | if (err) throw err
21 | process.stdout.write(stats.toString({
22 | colors: true,
23 | modules: false,
24 | children: false,
25 | chunks: false,
26 | chunkModules: false
27 | }) + '\n\n')
28 |
29 | console.log(chalk.cyan(' Build complete.\n'))
30 | console.log(chalk.yellow(
31 | ' Tip: built files are meant to be served over an HTTP server.\n' +
32 | ' Opening index.html over file:// won\'t work.\n'
33 | ))
34 | })
35 | })
36 |
--------------------------------------------------------------------------------
/build/sitedemo/check-versions.js:
--------------------------------------------------------------------------------
1 | var chalk = require('chalk')
2 | var semver = require('semver')
3 | var packageConfig = require('../../package.json')
4 | var shell = require('shelljs')
5 | function exec (cmd) {
6 | return require('child_process').execSync(cmd).toString().trim()
7 | }
8 |
9 | var versionRequirements = [
10 | {
11 | name: 'node',
12 | currentVersion: semver.clean(process.version),
13 | versionRequirement: packageConfig.engines.node
14 | },
15 | ]
16 |
17 | if (shell.which('npm')) {
18 | versionRequirements.push({
19 | name: 'npm',
20 | currentVersion: exec('npm --version'),
21 | versionRequirement: packageConfig.engines.npm
22 | })
23 | }
24 |
25 | module.exports = function () {
26 | var warnings = []
27 | for (var i = 0; i < versionRequirements.length; i++) {
28 | var mod = versionRequirements[i]
29 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
30 | warnings.push(mod.name + ': ' +
31 | chalk.red(mod.currentVersion) + ' should be ' +
32 | chalk.green(mod.versionRequirement)
33 | )
34 | }
35 | }
36 |
37 | if (warnings.length) {
38 | console.log('')
39 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
40 | console.log()
41 | for (var i = 0; i < warnings.length; i++) {
42 | var warning = warnings[i]
43 | console.log(' ' + warning)
44 | }
45 | console.log()
46 | process.exit(1)
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/build/sitedemo/dev-client.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | require('eventsource-polyfill')
3 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
4 |
5 | hotClient.subscribe(function (event) {
6 | if (event.action === 'reload') {
7 | window.location.reload()
8 | }
9 | })
10 |
--------------------------------------------------------------------------------
/build/sitedemo/dev-server.js:
--------------------------------------------------------------------------------
1 | require('./check-versions')()
2 |
3 | var config = require('../config')
4 | if (!process.env.NODE_ENV) {
5 | process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
6 | }
7 |
8 | var opn = require('opn')
9 | var path = require('path')
10 | var express = require('express')
11 | var webpack = require('webpack')
12 | var proxyMiddleware = require('http-proxy-middleware')
13 | var webpackConfig = process.env.NODE_ENV === 'testing'
14 | ? require('./webpack.prod.conf')
15 | : require('./webpack.dev.conf')
16 |
17 | // default port where dev server listens for incoming traffic
18 | var port = process.env.PORT || config.dev.port
19 | // automatically open browser, if not set will be false
20 | var autoOpenBrowser = !!config.dev.autoOpenBrowser
21 | // Define HTTP proxies to your custom API backend
22 | // https://github.com/chimurai/http-proxy-middleware
23 | var proxyTable = config.dev.proxyTable
24 |
25 | var app = express()
26 | var compiler = webpack(webpackConfig)
27 |
28 | var devMiddleware = require('webpack-dev-middleware')(compiler, {
29 | publicPath: webpackConfig.output.publicPath,
30 | quiet: true
31 | })
32 |
33 | var hotMiddleware = require('webpack-hot-middleware')(compiler, {
34 | log: () => {}
35 | })
36 | // force page reload when html-webpack-plugin template changes
37 | compiler.plugin('compilation', function (compilation) {
38 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
39 | hotMiddleware.publish({ action: 'reload' })
40 | cb()
41 | })
42 | })
43 |
44 | // proxy api requests
45 | Object.keys(proxyTable).forEach(function (context) {
46 | var options = proxyTable[context]
47 | if (typeof options === 'string') {
48 | options = { target: options }
49 | }
50 | app.use(proxyMiddleware(options.filter || context, options))
51 | })
52 |
53 | // handle fallback for HTML5 history API
54 | app.use(require('connect-history-api-fallback')())
55 |
56 | // serve webpack bundle output
57 | app.use(devMiddleware)
58 |
59 | // enable hot-reload and state-preserving
60 | // compilation error display
61 | app.use(hotMiddleware)
62 |
63 | // serve pure static assets
64 | var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
65 | app.use(staticPath, express.static('./static'))
66 |
67 | var uri = 'http://localhost:' + port
68 |
69 | var _resolve
70 | var readyPromise = new Promise(resolve => {
71 | _resolve = resolve
72 | })
73 |
74 | console.log('> Starting dev server...')
75 | devMiddleware.waitUntilValid(() => {
76 | console.log('> Listening at ' + uri + '\n')
77 | // when env is testing, don't need open it
78 | if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
79 | opn(uri)
80 | }
81 | _resolve()
82 | })
83 |
84 | var server = app.listen(port)
85 |
86 | module.exports = {
87 | ready: readyPromise,
88 | close: () => {
89 | server.close()
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/build/sitedemo/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var utils = require('../utils')
3 | var config = require('../config')
4 | var vueLoaderConfig = require('./../config/vue-loader.conf')
5 | var webpack = require('webpack')
6 |
7 | function resolve (dir) {
8 | return path.join(__dirname, '..', dir)
9 | }
10 |
11 | module.exports = {
12 | entry: {
13 | app: './src/main.js'
14 | },
15 | output: {
16 | path: config.build.assetsRoot,
17 | filename: '[name].js',
18 | publicPath: process.env.NODE_ENV === 'production'
19 | ? config.build.assetsPublicPath
20 | : config.dev.assetsPublicPath
21 | },
22 | resolve: {
23 | extensions: ['.js', '.vue', '.json'],
24 | alias: {
25 | 'vue$': 'vue/dist/vue.esm.js',
26 | '@': resolve('../src'),
27 | '@mocks': resolve('../test/mocks')
28 | }
29 | },
30 | module: {
31 | rules: [
32 | {
33 | test: /\.(js|vue)$/,
34 | loader: 'eslint-loader',
35 | enforce: 'pre',
36 | include: [resolve('../src'), resolve('../test')],
37 | options: {
38 | formatter: require('eslint-friendly-formatter')
39 | }
40 | },
41 | {
42 | test: /\.vue$/,
43 | loader: 'vue-loader',
44 | options: vueLoaderConfig
45 | },
46 | {
47 | test: /\.js$/,
48 | loader: 'babel-loader',
49 | include: [resolve('../src'), resolve('../test')]
50 | },
51 | {
52 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
53 | loader: 'url-loader',
54 | options: {
55 | limit: 10000,
56 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
57 | }
58 | },
59 | {
60 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
61 | loader: 'url-loader',
62 | options: {
63 | limit: 10000,
64 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
65 | }
66 | }
67 | ]
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/build/sitedemo/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('../utils')
2 | var webpack = require('webpack')
3 | var config = require('../config')
4 | var merge = require('webpack-merge')
5 | var baseWebpackConfig = require('./webpack.base.conf')
6 | var HtmlWebpackPlugin = require('html-webpack-plugin')
7 | var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
8 |
9 | // add hot-reload related code to entry chunks
10 | Object.keys(baseWebpackConfig.entry).forEach(function (name) {
11 | baseWebpackConfig.entry[name] = ['./build/sitedemo/dev-client'].concat(baseWebpackConfig.entry[name])
12 | })
13 |
14 | module.exports = merge(baseWebpackConfig, {
15 | module: {
16 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
17 | },
18 | // cheap-module-eval-source-map is faster for development
19 | devtool: '#cheap-module-eval-source-map',
20 | plugins: [
21 | new webpack.DefinePlugin({
22 | 'process.env': config.dev.env
23 | }),
24 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
25 | new webpack.HotModuleReplacementPlugin(),
26 | new webpack.NoEmitOnErrorsPlugin(),
27 | // https://github.com/ampedandwired/html-webpack-plugin
28 | new HtmlWebpackPlugin({
29 | filename: 'index.html',
30 | template: 'index.html',
31 | inject: true
32 | }),
33 | new FriendlyErrorsPlugin(),
34 | new webpack.ProvidePlugin({
35 | $: "jquery",
36 | jQuery: "jquery",
37 | "window.jQuery": "jquery"
38 | })
39 | ]
40 | })
41 |
--------------------------------------------------------------------------------
/build/sitedemo/webpack.prod.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var utils = require('../utils')
3 | var webpack = require('webpack')
4 | var config = require('../config')
5 | var merge = require('webpack-merge')
6 | var baseWebpackConfig = require('./webpack.base.conf')
7 | var CopyWebpackPlugin = require('copy-webpack-plugin')
8 | var HtmlWebpackPlugin = require('html-webpack-plugin')
9 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
10 | var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
11 |
12 | var env = process.env.NODE_ENV === 'testing'
13 | ? require('../config/test.env')
14 | : config.build.env
15 |
16 | var webpackConfig = merge(baseWebpackConfig, {
17 | module: {
18 | rules: utils.styleLoaders({
19 | sourceMap: config.build.productionSourceMap,
20 | extract: true
21 | })
22 | },
23 | devtool: config.build.productionSourceMap ? '#source-map' : false,
24 | output: {
25 | path: config.build.assetsRoot,
26 | filename: utils.assetsPath('js/[name].[chunkhash].js'),
27 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
28 | },
29 | plugins: [
30 | // http://vuejs.github.io/vue-loader/en/workflow/production.html
31 | new webpack.DefinePlugin({
32 | 'process.env': env
33 | }),
34 | new webpack.optimize.UglifyJsPlugin({
35 | compress: {
36 | warnings: false
37 | },
38 | sourceMap: true
39 | }),
40 | // extract css into its own file
41 | new ExtractTextPlugin({
42 | filename: utils.assetsPath('css/[name].[contenthash].css')
43 | }),
44 | // Compress extracted CSS. We are using this plugin so that possible
45 | // duplicated CSS from different components can be deduped.
46 | new OptimizeCSSPlugin({
47 | cssProcessorOptions: {
48 | safe: true
49 | }
50 | }),
51 | // generate dist index.html with correct asset hash for caching.
52 | // you can customize output by editing /index.html
53 | // see https://github.com/ampedandwired/html-webpack-plugin
54 | new HtmlWebpackPlugin({
55 | filename: process.env.NODE_ENV === 'testing'
56 | ? 'index.html'
57 | : config.build.index,
58 | template: 'index.html',
59 | inject: true,
60 | minify: {
61 | removeComments: true,
62 | collapseWhitespace: true,
63 | removeAttributeQuotes: true
64 | // more options:
65 | // https://github.com/kangax/html-minifier#options-quick-reference
66 | },
67 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin
68 | chunksSortMode: 'dependency'
69 | }),
70 | // split vendor js into its own file
71 | new webpack.optimize.CommonsChunkPlugin({
72 | name: 'vendor',
73 | minChunks: function (module, count) {
74 | // any required modules inside node_modules are extracted to vendor
75 | return (
76 | module.resource &&
77 | /\.js$/.test(module.resource) &&
78 | module.resource.indexOf(
79 | path.join(__dirname, '../../node_modules')
80 | ) === 0
81 | )
82 | }
83 | }),
84 | // extract webpack runtime and module manifest to its own file in order to
85 | // prevent vendor hash from being updated whenever app bundle is updated
86 | new webpack.optimize.CommonsChunkPlugin({
87 | name: 'manifest',
88 | chunks: ['vendor']
89 | }),
90 | // copy custom static assets
91 | new CopyWebpackPlugin([
92 | {
93 | from: path.resolve(__dirname, '../../static'),
94 | to: config.build.assetsSubDirectory,
95 | ignore: ['.*']
96 | }
97 | ]),
98 | new webpack.ProvidePlugin({
99 | $: "jquery",
100 | jQuery: "jquery",
101 | "window.jQuery": "jquery"
102 | })
103 | ]
104 | })
105 |
106 | if (config.build.productionGzip) {
107 | var CompressionWebpackPlugin = require('compression-webpack-plugin')
108 |
109 | webpackConfig.plugins.push(
110 | new CompressionWebpackPlugin({
111 | asset: '[path].gz[query]',
112 | algorithm: 'gzip',
113 | test: new RegExp(
114 | '\\.(' +
115 | config.build.productionGzipExtensions.join('|') +
116 | ')$'
117 | ),
118 | threshold: 10240,
119 | minRatio: 0.8
120 | })
121 | )
122 | }
123 |
124 | if (config.build.bundleAnalyzerReport) {
125 | var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
126 | webpackConfig.plugins.push(new BundleAnalyzerPlugin())
127 | }
128 |
129 | module.exports = webpackConfig
130 |
--------------------------------------------------------------------------------
/build/sitedemo/webpack.test.conf.js:
--------------------------------------------------------------------------------
1 | // This is the webpack config used for unit tests.
2 |
3 | var utils = require('../utils')
4 | var webpack = require('webpack')
5 | var merge = require('webpack-merge')
6 | var baseConfig = require('./webpack.base.conf')
7 |
8 | var webpackConfig = merge(baseConfig, {
9 | // use inline sourcemap for karma-sourcemap-loader
10 | module: {
11 | rules: utils.styleLoaders()
12 | },
13 | devtool: '#inline-source-map',
14 | resolveLoader: {
15 | alias: {
16 | // necessary to to make lang="scss" work in test when using vue-loader's ?inject option
17 | // see discussion at https://github.com/vuejs/vue-loader/issues/724
18 | 'scss-loader': 'sass-loader'
19 | }
20 | },
21 | plugins: [
22 | new webpack.DefinePlugin({
23 | 'process.env': require('../config/test.env')
24 | }),
25 | new webpack.ProvidePlugin({
26 | $: "@mocks/jqueryMock",
27 | jQuery: "@mocks/jqueryMock",
28 | "window.jQuery": "@mocks/jqueryMock"
29 | })
30 | ]
31 | })
32 |
33 | // no need for app entry during tests
34 | delete webpackConfig.entry
35 |
36 | module.exports = webpackConfig
37 |
--------------------------------------------------------------------------------
/build/utils/index.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var config = require('../config')
3 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
4 |
5 | exports.assetsPath = function (_path) {
6 | var assetsSubDirectory = process.env.NODE_ENV === 'production'
7 | ? config.build.assetsSubDirectory
8 | : config.dev.assetsSubDirectory
9 | return path.posix.join(assetsSubDirectory, _path)
10 | }
11 |
12 | exports.cssLoaders = function (options) {
13 | options = options || {}
14 |
15 | var cssLoader = {
16 | loader: 'css-loader',
17 | options: {
18 | minimize: process.env.NODE_ENV === 'production',
19 | sourceMap: options.sourceMap
20 | }
21 | }
22 |
23 | // generate loader string to be used with extract text plugin
24 | function generateLoaders (loader, loaderOptions) {
25 | var loaders = [cssLoader]
26 | if (loader) {
27 | loaders.push({
28 | loader: loader + '-loader',
29 | options: Object.assign({}, loaderOptions, {
30 | sourceMap: options.sourceMap
31 | })
32 | })
33 | }
34 |
35 | // Extract CSS when that option is specified
36 | // (which is the case during production build)
37 | if (options.extract) {
38 | return ExtractTextPlugin.extract({
39 | use: loaders,
40 | fallback: 'vue-style-loader'
41 | })
42 | } else {
43 | return ['vue-style-loader'].concat(loaders)
44 | }
45 | }
46 |
47 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
48 | return {
49 | css: generateLoaders(),
50 | postcss: generateLoaders(),
51 | less: generateLoaders('less'),
52 | sass: generateLoaders('sass', { indentedSyntax: true }),
53 | scss: generateLoaders('sass'),
54 | stylus: generateLoaders('stylus'),
55 | styl: generateLoaders('stylus')
56 | }
57 | }
58 |
59 | // Generate loaders for standalone style files (outside of .vue)
60 | exports.styleLoaders = function (options) {
61 | var output = []
62 | var loaders = exports.cssLoaders(options)
63 | for (var extension in loaders) {
64 | var loader = loaders[extension]
65 | output.push({
66 | test: new RegExp('\\.' + extension + '$'),
67 | use: loader
68 | })
69 | }
70 | return output
71 | }
72 |
--------------------------------------------------------------------------------
/circle.yml:
--------------------------------------------------------------------------------
1 | machine:
2 | node:
3 | version: 7
4 |
5 | dependencies:
6 | pre:
7 | - rm -rf ./node_modules
8 | post:
9 | - npm run build
10 | cache_directories:
11 | - ~/.npm
12 |
13 | test:
14 | post:
15 | - bash <(curl -s https://codecov.io/bash)
--------------------------------------------------------------------------------
/dist/semvue/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ----------
4 |
5 | > Semantic-ui modules/components in you Vue project
6 |
7 | ## Using
8 |
9 | [You can see the docs and demo here](https://guilhermewaess.github.io/SemVue)
10 |
11 | ``` bash
12 | # install package
13 | npm install semvue --save
14 | ```
15 |
16 | ## Using any component
17 |
18 | Simply import in your .vue the component that you want:
19 | ``` javascript
20 | import { Modal } from 'semvue';
21 |
22 | export default {
23 | components: {
24 | Modal,
25 | },
26 | };
27 | ```
28 |
29 | ## Components so far
30 |
31 | - Accordion
32 | - Dimmer
33 | - Dropdown
34 | - Modal
35 | - Popup
36 | - Progress
37 | - Rating
38 |
39 | ## To do and improvements
40 | - [x] Accordion
41 | - [x] Basic Implementation
42 | - [x] Initialization options override
43 | - [ ] Checkbox
44 | - [x] Dimmer
45 | - [x] Basic Implementation
46 | - [x] Initialization options override
47 | - [x] Dropdown
48 | - [x] Basic Implementation
49 | - [x] Embed
50 | - [x] Modal
51 | - [x] Basic Implementation
52 | - [x] Initialization options override
53 | - [ ] Nag
54 | - [x] Popup
55 | - [x] Basic Implementation
56 | - [x] Initialization options override
57 | - [x] Progress
58 | - [x] Rating
59 | - [x] Basic Implementation
60 | - [x] Initialization options override
61 | - [ ] Search
62 | - [ ] Shape
63 | - [ ] Sidebar
64 | - [ ] Sticky
65 | - [ ] Tab
66 | ------
--------------------------------------------------------------------------------
/dist/semvue/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "semvue",
3 | "version": "0.6.0",
4 | "description": "A semantic-ui components implemented in VueJs",
5 | "author": "Guilherme Waess ",
6 | "license": "MIT",
7 | "private": false,
8 | "repository": {
9 | "type": "git",
10 | "url": "guilhermewaess/SemVue"
11 | },
12 | "homepage": "http://guilhermewaess.github.io/SemVue",
13 | "keywords": [
14 | "vuejs",
15 | "vue-semanticui",
16 | "vue-semantic-ui",
17 | "semantic-ui",
18 | "vue-components",
19 | "semantic components"
20 | ],
21 | "files": [
22 | "index.js",
23 | "index.js.map",
24 | "index.min.js"
25 | ],
26 | "scripts": {},
27 | "dependencies": {
28 | "lodash": "^4.17.4",
29 | "vue": "^2.3.3"
30 | },
31 | "devDependencies": {},
32 | "engines": {
33 | "node": ">= 4.0.0",
34 | "npm": ">= 3.0.0"
35 | },
36 | "browserslist": [
37 | "> 1%",
38 | "last 2 versions",
39 | "not ie <= 8"
40 | ]
41 | }
--------------------------------------------------------------------------------
/dist/sitedemo/index.html:
--------------------------------------------------------------------------------
1 | SemVue
--------------------------------------------------------------------------------
/dist/sitedemo/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/dist/sitedemo/static/favicon.ico
--------------------------------------------------------------------------------
/dist/sitedemo/static/fonts/icons.674f50d.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/dist/sitedemo/static/fonts/icons.674f50d.eot
--------------------------------------------------------------------------------
/dist/sitedemo/static/fonts/icons.af7ae50.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/dist/sitedemo/static/fonts/icons.af7ae50.woff2
--------------------------------------------------------------------------------
/dist/sitedemo/static/fonts/icons.b06871f.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/dist/sitedemo/static/fonts/icons.b06871f.ttf
--------------------------------------------------------------------------------
/dist/sitedemo/static/fonts/icons.fee66e7.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/dist/sitedemo/static/fonts/icons.fee66e7.woff
--------------------------------------------------------------------------------
/dist/sitedemo/static/img/flags.9c74e17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/dist/sitedemo/static/img/flags.9c74e17.png
--------------------------------------------------------------------------------
/dist/sitedemo/static/img/logo.412b713.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/dist/sitedemo/static/img/logo.412b713.png
--------------------------------------------------------------------------------
/dist/sitedemo/static/js/manifest.4fe46e2909dc8c2eaf13.js:
--------------------------------------------------------------------------------
1 | !function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,c,a){for(var u,i,f,s=0,l=[];s
2 |
3 |
4 |
5 | SemVue
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "semvue",
3 | "version": "0.0.1",
4 | "description": "A semantic-ui components implemented in VueJs",
5 | "author": "Guilherme Waess ",
6 | "license": "MIT",
7 | "private": false,
8 | "keywords": [
9 | "vuejs",
10 | "vue-semanticui",
11 | "vue-semantic-ui",
12 | "semantic-ui",
13 | "vue-components",
14 | "semantic components"
15 | ],
16 | "files": [
17 | "dist"
18 | ],
19 | "readme": "SEMVUE.md",
20 | "scripts": {
21 | "dev": "node build/dev-server.js",
22 | "start": "node build/sitedemo/dev-server.js",
23 | "build": "npm run build-semvue && npm run build-demo",
24 | "build-demo": "node build/sitedemo/build.js",
25 | "build-semvue": "webpack --progress --hide-modules --config build/semvue/webpack.semvue.build.js && webpack --progress --hide-modules --config build/semvue/webpack.semvue.build.min.js",
26 | "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
27 | "test": "npm run unit",
28 | "lint": "eslint --ext .js,.vue src test/unit/specs",
29 | "lint-semvue": "eslint --ext .js,.vue src/semvue test/unit/specs/semvue",
30 | "dist": "npm run lint-semvue && npm run test && npm run build-semvue && cd dist/semvue && npm publish"
31 | },
32 | "dependencies": {
33 | "lodash": "^4.17.4",
34 | "vue": "^2.5.13"
35 | },
36 | "devDependencies": {
37 | "autoprefixer": "^6.7.2",
38 | "babel-core": "^6.22.1",
39 | "babel-eslint": "^7.1.1",
40 | "babel-loader": "^6.2.10",
41 | "babel-plugin-istanbul": "^4.1.1",
42 | "babel-plugin-transform-runtime": "^6.22.0",
43 | "babel-preset-env": "^1.3.2",
44 | "babel-preset-stage-2": "^6.22.0",
45 | "babel-register": "^6.22.0",
46 | "babel-runtime": "^6.23.0",
47 | "chai": "^3.5.0",
48 | "chalk": "^1.1.3",
49 | "connect-history-api-fallback": "^1.3.0",
50 | "copy-webpack-plugin": "^4.0.1",
51 | "cross-env": "^4.0.0",
52 | "css-loader": "^0.28.0",
53 | "eslint": "^3.19.0",
54 | "eslint-config-airbnb-base": "^11.1.3",
55 | "eslint-friendly-formatter": "^2.0.7",
56 | "eslint-import-resolver-webpack": "^0.8.1",
57 | "eslint-loader": "^1.7.1",
58 | "eslint-plugin-html": "^2.0.0",
59 | "eslint-plugin-import": "^2.2.0",
60 | "eventsource-polyfill": "^0.9.6",
61 | "express": "^4.14.1",
62 | "extract-text-webpack-plugin": "^2.0.0",
63 | "file-loader": "^0.11.1",
64 | "friendly-errors-webpack-plugin": "^1.1.3",
65 | "html-webpack-plugin": "^2.28.0",
66 | "http-proxy-middleware": "^0.17.3",
67 | "inject-loader": "^3.0.0",
68 | "jquery": "^3.2.1",
69 | "karma": "^1.4.1",
70 | "karma-coverage": "^1.1.1",
71 | "karma-mocha": "^1.3.0",
72 | "karma-phantomjs-launcher": "^1.0.2",
73 | "karma-phantomjs-shim": "^1.4.0",
74 | "karma-sinon-chai": "^1.3.1",
75 | "karma-sourcemap-loader": "^0.3.7",
76 | "karma-spec-reporter": "0.0.30",
77 | "karma-webpack": "^2.0.2",
78 | "less": "^2.7.2",
79 | "less-loader": "^4.0.3",
80 | "lolex": "^1.5.2",
81 | "mocha": "^3.2.0",
82 | "opn": "^4.0.2",
83 | "optimize-css-assets-webpack-plugin": "^1.3.0",
84 | "ora": "^1.2.0",
85 | "phantomjs-prebuilt": "^2.1.14",
86 | "rimraf": "^2.6.0",
87 | "semver": "^5.3.0",
88 | "shelljs": "^0.7.6",
89 | "sinon": "^2.1.0",
90 | "sinon-chai": "^2.8.0",
91 | "url-loader": "^0.5.8",
92 | "vue-loader": "^12.1.0",
93 | "vue-router": "^2.3.1",
94 | "vue-style-loader": "^3.0.1",
95 | "vue-template-compiler": "^2.3.3",
96 | "webpack": "^2.6.1",
97 | "webpack-bundle-analyzer": "^2.2.1",
98 | "webpack-dev-middleware": "^1.10.0",
99 | "webpack-hot-middleware": "^2.18.0",
100 | "webpack-merge": "^4.1.0"
101 | },
102 | "engines": {
103 | "node": ">= 4.0.0",
104 | "npm": ">= 3.0.0"
105 | },
106 | "browserslist": [
107 | "> 1%",
108 | "last 2 versions",
109 | "not ie <= 8"
110 | ]
111 | }
112 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
27 |
28 |
55 |
56 |
--------------------------------------------------------------------------------
/src/assets/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/assets/favicon.ico
--------------------------------------------------------------------------------
/src/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/assets/favicon.png
--------------------------------------------------------------------------------
/src/assets/favicon_old.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/assets/favicon_old.ico
--------------------------------------------------------------------------------
/src/assets/favicon_old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/assets/favicon_old.png
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/assets/logo.png
--------------------------------------------------------------------------------
/src/assets/logoNova.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/assets/logoNova.png
--------------------------------------------------------------------------------
/src/assets/logoNova2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/assets/logoNova2.png
--------------------------------------------------------------------------------
/src/assets/logoNovaBranca.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/assets/logoNovaBranca.png
--------------------------------------------------------------------------------
/src/assets/logoVue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/assets/logoVue.png
--------------------------------------------------------------------------------
/src/components/AccordionDoc.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Accordion component,
5 | you can see all documentation here
6 |
7 |
8 |
9 |
10 |
11 |
12 | Item 1
13 |
14 |
15 |
Hello, I'm the first item.
16 |
17 |
18 |
19 | Item 2
20 |
21 |
22 |
Hello, I'm the second item.
23 |
24 |
25 |
26 |
27 |
28 |
29 | import { Accordion } from 'semvue';
30 |
31 | export default {
32 | components: {
33 | Accordion,
34 | },
35 | }
36 |
37 |
38 |
39 |
40 |
41 | <accordion>
42 | <div class="title">
43 | <i class="dropdown icon"></i>
44 | Item 1
45 | </div>
46 | <div class="content">
47 | <p>Hello, I'm the first item.</p>
48 | </div>
49 | <div class="title">
50 | <i class="dropdown icon"></i>
51 | Item 2
52 | </div>
53 | <div class="content">
54 | <p>Hello, I'm the second item.</p>
55 | </div>
56 | </accordion>
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | Type
66 | Required
67 | Default
68 | Description
69 |
70 |
71 |
72 |
73 | id
74 | String
75 | Yes
76 | -
77 | Is a div id for accordion
78 |
79 |
80 | curstomClass
81 | String
82 | No
83 | String empty
84 | Used to put any aditional class inside accordion div
85 | e.g. class="ui customClass accordion"
86 |
87 |
88 |
89 | options
90 | Object
91 | No
92 | Object empty
93 | Overrides component options. You can see all options here
94 |
95 |
96 |
97 |
98 |
99 |
100 |
110 |
111 |
120 |
--------------------------------------------------------------------------------
/src/components/AppMenu.vue:
--------------------------------------------------------------------------------
1 |
2 |
39 |
40 |
41 |
46 |
47 |
71 |
--------------------------------------------------------------------------------
/src/components/EmbedDoc.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Embed component,
6 | you can see all documentation here
7 |
8 |
9 |
10 |
11 | Youtube example
12 |
14 |
15 |
16 | Facebook example
17 |
19 |
20 |
21 |
22 |
23 | *<embed> is a reserved html tag, so don't forget to use sem-vue-embed tag*
24 |
25 |
26 | import { SemVueEmbed } from '@/semvue';
27 |
28 | export default {
29 | components: {
30 | SemVueEmbed,
31 | },
32 | }
33 |
34 |
35 |
36 |
37 |
38 | <SemVueEmbed id="youtube-embed" dataUrl="https://www.youtube.com/embed/lG0Ys-2d4MA"></SemVueEmbed>
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | Type
49 | Required
50 | Default
51 | Description
52 |
53 |
54 |
55 |
56 | id
57 | String
58 | Yes
59 | -
60 | Is a div id for embed
61 |
62 |
63 | dataUrl
64 | String
65 | Yes
66 | -
67 | Embed url from video
68 |
69 |
70 | dataPlaceholder
71 | String
72 | No
73 | String Empty
74 | Placeholder path to use with video
75 |
76 |
77 | autoplay
78 | Boolean
79 | No
80 | false
81 | Used to define if should play automatic on component load
82 |
83 |
84 | curstomClass
85 | String
86 | No
87 | String empty
88 | Used to put any aditional class inside progress div
89 | e.g. class="ui customClass embed"
90 |
91 |
92 |
93 | options
94 | Object
95 | No
96 | Object empty
97 | Overrides component options.
98 | You can see all options here
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
117 |
118 |
123 |
--------------------------------------------------------------------------------
/src/components/ModalDoc.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Modal component,
6 | you can see all documentation here
7 |
8 |
9 |
10 | Try standard modal
11 |
12 |
13 |
14 | Try basic modal
15 |
16 |
17 |
18 |
19 | import { Modal } from 'semvue';
20 |
21 | export default {
22 | name: 'ModalDoc',
23 | components: {
24 | Modal,
25 | },
26 | }
27 |
28 |
29 |
30 |
Note that you'll need provide a var to control the visibility of modal and configure the tree base parts of modal: header, content, actions
31 |
32 |
33 |
34 | <modal id="modal1" type="basic" :showModal.sync="showBasicModal">
35 | <div slot="header">Hello, i'm header</div>
36 | <div slot="content">Hello, i'm content</div>
37 | <div slot="footer">Hello, i'm footer</div>
38 | </modal>
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | Type
48 | Required
49 | Default
50 | Description
51 |
52 |
53 |
54 |
55 | id
56 | String
57 | Yes
58 | -
59 | Is a div id for modal
60 |
61 |
62 | showModal
63 | Boolean
64 | Yes
65 | -
66 | Used to control modal visibility
67 |
68 |
69 | type
70 | String
71 | No
72 | String empty (standard modal)
73 | The type of modal.
74 | You can see all types here
75 |
76 |
77 |
78 | closeable
79 | Boolean
80 | No
81 | true
82 | Used to define if should closed with any click out of modal or force user to take some action
83 |
84 |
85 | options
86 | Object
87 | No
88 | Object empty
89 | Overrides component options. You can see all options here
90 |
91 |
92 |
93 |
94 |
95 | Hello, i'm header
96 | Hello, i'm content
97 | Hello, i'm footer
98 |
99 |
100 |
101 | Hello, i'm header
102 | Hello, i'm content
103 | Hello, i'm footer
104 |
105 |
106 |
107 |
108 |
109 |
130 |
131 |
140 |
141 |
--------------------------------------------------------------------------------
/src/components/RatingDoc.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Rating component,
6 | you can see all documentation here
7 |
8 |
9 |
10 | Rating the stars:
11 |
12 |
13 |
14 |
15 |
16 |
17 | Heart Icons
18 | Stars Icons
19 |
20 |
21 |
32 |
33 |
34 |
35 |
36 | import { Rating } from 'semvue';
37 |
38 | export default {
39 | components: {
40 | Rating,
41 | },
42 | }
43 |
44 |
45 |
46 |
47 | <rating id="ratingDoc" :type="type" customClass="big" :currentRating.sync="currentRating" :maxRating="5"></rating>
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | Type
57 | Required
58 | Default
59 | Description
60 |
61 |
62 |
63 |
64 | id
65 | String
66 | Yes
67 | -
68 | Is a div id for rating
69 |
70 |
71 | currentRating
72 | Number
73 | Yes
74 | -
75 | Used to control current rating (also used to define initial rating)
76 |
77 |
78 | maxRating
79 | Number
80 | Yes
81 | -
82 | The max rating icons of component
83 |
84 |
85 | type
86 | String
87 | No
88 | String empty (standard rating)
89 | The type of rating.
90 | You can see all types here
91 |
92 |
93 |
94 | curstomClass
95 | String
96 | No
97 | String empty
98 | Used to put any aditional class inside rating div
99 | e.g. class="ui customClass rating"
100 |
101 |
102 |
103 | options
104 | Object
105 | No
106 | Object empty
107 | Overrides component options. You can see all options here
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
151 |
152 |
157 |
--------------------------------------------------------------------------------
/src/components/Welcome.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
Semantic-ui has dependency of jquery, so, I assume that you already have imported jquery in your project (but I hope that you never need to use that with this components :D)
12 |
With npm
13 |
14 |
15 |
16 | npm install --save semvue
17 |
18 |
19 |
20 |
Source Download
21 |
You can download files here
22 |
23 |
Soon as a possible on CDN
24 |
25 |
26 |
27 |
37 |
38 |
39 |
56 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | // @ts-check
2 | // The Vue build version to load with the `import` command
3 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
4 | import Vue from 'vue';
5 | // @ts-ignore
6 | import App from './App';
7 | import router from './router';
8 |
9 | Vue.config.productionTip = false;
10 |
11 | /* eslint-disable no-new */
12 | new Vue({
13 | el: '#app',
14 | router,
15 | template: ' ',
16 | components: { App },
17 | });
18 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Router from 'vue-router';
3 |
4 | import Welcome from '@/components/Welcome';
5 | import AccordionDoc from '@/components/AccordionDoc';
6 | import DimmerDoc from '@/components/DimmerDoc';
7 | import DropdownDoc from '@/components/DropdownDoc';
8 | import EmbedDoc from '@/components/EmbedDoc';
9 | import ModalDoc from '@/components/ModalDoc';
10 | import PopupDoc from '@/components/PopupDoc';
11 | import ProgressDoc from '@/components/ProgressDoc';
12 | import RatingDoc from '@/components/RatingDoc';
13 |
14 | Vue.use(Router);
15 |
16 | export default new Router({
17 | hashbang: false,
18 | linkActiveClass: 'active',
19 | mode: 'hash',
20 | // base: `${__dirname}/SemVue`,
21 | routes: [
22 | {
23 | path: '*',
24 | redirect: '/',
25 | },
26 | {
27 | path: '/',
28 | name: 'home',
29 | redirect: { name: 'welcome' },
30 | },
31 | {
32 | path: '/welcome',
33 | name: 'welcome',
34 | component: Welcome,
35 | },
36 | {
37 | path: '/AccordionDoc',
38 | name: 'AccordionDoc',
39 | component: AccordionDoc,
40 | },
41 | {
42 | path: '/DimmerDoc',
43 | name: 'DimmerDoc',
44 | component: DimmerDoc,
45 | },
46 | {
47 | path: '/DropDownDoc',
48 | name: 'DropDownDoc',
49 | component: DropdownDoc,
50 | },
51 | {
52 | path: '/EmbedDoc',
53 | name: 'EmbedDoc',
54 | component: EmbedDoc,
55 | },
56 | {
57 | path: '/ModalDoc',
58 | name: 'ModalDoc',
59 | component: ModalDoc,
60 | },
61 | {
62 | path: '/PopupDoc',
63 | name: 'PopupDoc',
64 | component: PopupDoc,
65 | },
66 | {
67 | path: '/ProgressDoc',
68 | name: 'ProgressDoc',
69 | component: ProgressDoc,
70 | },
71 | {
72 | path: '/RatingDoc',
73 | name: 'RatingDoc',
74 | component: RatingDoc,
75 | },
76 | ],
77 | });
78 |
--------------------------------------------------------------------------------
/src/semantic-ui/.versions:
--------------------------------------------------------------------------------
1 | jquery@1.11.3_2
2 | meteor@1.1.6
3 | semantic:ui-css@2.0.7
4 | underscore@1.0.3
5 |
--------------------------------------------------------------------------------
/src/semantic-ui/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Semantic Org
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/src/semantic-ui/README.md:
--------------------------------------------------------------------------------
1 | # CSS Distribution
2 |
3 | This repository is automatically synced with the main [Semantic UI](https://github.com/Semantic-Org/Semantic-UI) repository to provide lightweight CSS only version of Semantic UI.
4 |
5 | This package **does not support theming** and includes generated CSS files of the default theme only.
6 |
7 | You can view more on Semantic UI at [LearnSemantic.com](http://www.learnsemantic.com) and [Semantic-UI.com](http://www.semantic-ui.com)
8 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/ad.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Ad
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2013 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Advertisement
15 | *******************************/
16 |
17 | .ui.ad {
18 | display: block;
19 | overflow: hidden;
20 | margin: 1em 0em;
21 | }
22 | .ui.ad:first-child {
23 | margin: 0em;
24 | }
25 | .ui.ad:last-child {
26 | margin: 0em;
27 | }
28 | .ui.ad iframe {
29 | margin: 0em;
30 | padding: 0em;
31 | border: none;
32 | overflow: hidden;
33 | }
34 |
35 | /*--------------
36 | Common
37 | ---------------*/
38 |
39 |
40 | /* Leaderboard */
41 | .ui.leaderboard.ad {
42 | width: 728px;
43 | height: 90px;
44 | }
45 |
46 | /* Medium Rectangle */
47 | .ui[class*="medium rectangle"].ad {
48 | width: 300px;
49 | height: 250px;
50 | }
51 |
52 | /* Large Rectangle */
53 | .ui[class*="large rectangle"].ad {
54 | width: 336px;
55 | height: 280px;
56 | }
57 |
58 | /* Half Page */
59 | .ui[class*="half page"].ad {
60 | width: 300px;
61 | height: 600px;
62 | }
63 |
64 | /*--------------
65 | Square
66 | ---------------*/
67 |
68 |
69 | /* Square */
70 | .ui.square.ad {
71 | width: 250px;
72 | height: 250px;
73 | }
74 |
75 | /* Small Square */
76 | .ui[class*="small square"].ad {
77 | width: 200px;
78 | height: 200px;
79 | }
80 |
81 | /*--------------
82 | Rectangle
83 | ---------------*/
84 |
85 |
86 | /* Small Rectangle */
87 | .ui[class*="small rectangle"].ad {
88 | width: 180px;
89 | height: 150px;
90 | }
91 |
92 | /* Vertical Rectangle */
93 | .ui[class*="vertical rectangle"].ad {
94 | width: 240px;
95 | height: 400px;
96 | }
97 |
98 | /*--------------
99 | Button
100 | ---------------*/
101 |
102 | .ui.button.ad {
103 | width: 120px;
104 | height: 90px;
105 | }
106 | .ui[class*="square button"].ad {
107 | width: 125px;
108 | height: 125px;
109 | }
110 | .ui[class*="small button"].ad {
111 | width: 120px;
112 | height: 60px;
113 | }
114 |
115 | /*--------------
116 | Skyscrapers
117 | ---------------*/
118 |
119 |
120 | /* Skyscraper */
121 | .ui.skyscraper.ad {
122 | width: 120px;
123 | height: 600px;
124 | }
125 |
126 | /* Wide Skyscraper */
127 | .ui[class*="wide skyscraper"].ad {
128 | width: 160px;
129 | }
130 |
131 | /*--------------
132 | Banners
133 | ---------------*/
134 |
135 |
136 | /* Banner */
137 | .ui.banner.ad {
138 | width: 468px;
139 | height: 60px;
140 | }
141 |
142 | /* Vertical Banner */
143 | .ui[class*="vertical banner"].ad {
144 | width: 120px;
145 | height: 240px;
146 | }
147 |
148 | /* Top Banner */
149 | .ui[class*="top banner"].ad {
150 | width: 930px;
151 | height: 180px;
152 | }
153 |
154 | /* Half Banner */
155 | .ui[class*="half banner"].ad {
156 | width: 234px;
157 | height: 60px;
158 | }
159 |
160 | /*--------------
161 | Boards
162 | ---------------*/
163 |
164 |
165 | /* Leaderboard */
166 | .ui[class*="large leaderboard"].ad {
167 | width: 970px;
168 | height: 90px;
169 | }
170 |
171 | /* Billboard */
172 | .ui.billboard.ad {
173 | width: 970px;
174 | height: 250px;
175 | }
176 |
177 | /*--------------
178 | Panorama
179 | ---------------*/
180 |
181 |
182 | /* Panorama */
183 | .ui.panorama.ad {
184 | width: 980px;
185 | height: 120px;
186 | }
187 |
188 | /*--------------
189 | Netboard
190 | ---------------*/
191 |
192 |
193 | /* Netboard */
194 | .ui.netboard.ad {
195 | width: 580px;
196 | height: 400px;
197 | }
198 |
199 | /*--------------
200 | Mobile
201 | ---------------*/
202 |
203 |
204 | /* Large Mobile Banner */
205 | .ui[class*="large mobile banner"].ad {
206 | width: 320px;
207 | height: 100px;
208 | }
209 |
210 | /* Mobile Leaderboard */
211 | .ui[class*="mobile leaderboard"].ad {
212 | width: 320px;
213 | height: 50px;
214 | }
215 |
216 |
217 | /*******************************
218 | Types
219 | *******************************/
220 |
221 |
222 | /* Mobile Sizes */
223 | .ui.mobile.ad {
224 | display: none;
225 | }
226 | @media only screen and (max-width: 767px) {
227 | .ui.mobile.ad {
228 | display: block;
229 | }
230 | }
231 |
232 |
233 | /*******************************
234 | Variations
235 | *******************************/
236 |
237 | .ui.centered.ad {
238 | margin-left: auto;
239 | margin-right: auto;
240 | }
241 | .ui.test.ad {
242 | position: relative;
243 | background: #545454;
244 | }
245 | .ui.test.ad:after {
246 | position: absolute;
247 | top: 50%;
248 | left: 50%;
249 | width: 100%;
250 | text-align: center;
251 | -webkit-transform: translateX(-50%) translateY(-50%);
252 | transform: translateX(-50%) translateY(-50%);
253 | content: 'Ad';
254 | color: #FFFFFF;
255 | font-size: 1em;
256 | font-weight: bold;
257 | }
258 | .ui.mobile.test.ad:after {
259 | font-size: 0.85714286em;
260 | }
261 | .ui.test.ad[data-text]:after {
262 | content: attr(data-text);
263 | }
264 |
265 |
266 | /*******************************
267 | Theme Overrides
268 | *******************************/
269 |
270 |
271 |
272 | /*******************************
273 | User Variable Overrides
274 | *******************************/
275 |
276 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/ad.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Ad
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2013 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.ad{display:block;overflow:hidden;margin:1em 0}.ui.ad:first-child,.ui.ad:last-child{margin:0}.ui.ad iframe{margin:0;padding:0;border:none;overflow:hidden}.ui.leaderboard.ad{width:728px;height:90px}.ui[class*="medium rectangle"].ad{width:300px;height:250px}.ui[class*="large rectangle"].ad{width:336px;height:280px}.ui[class*="half page"].ad{width:300px;height:600px}.ui.square.ad{width:250px;height:250px}.ui[class*="small square"].ad{width:200px;height:200px}.ui[class*="small rectangle"].ad{width:180px;height:150px}.ui[class*="vertical rectangle"].ad{width:240px;height:400px}.ui.button.ad{width:120px;height:90px}.ui[class*="square button"].ad{width:125px;height:125px}.ui[class*="small button"].ad{width:120px;height:60px}.ui.skyscraper.ad{width:120px;height:600px}.ui[class*="wide skyscraper"].ad{width:160px}.ui.banner.ad{width:468px;height:60px}.ui[class*="vertical banner"].ad{width:120px;height:240px}.ui[class*="top banner"].ad{width:930px;height:180px}.ui[class*="half banner"].ad{width:234px;height:60px}.ui[class*="large leaderboard"].ad{width:970px;height:90px}.ui.billboard.ad{width:970px;height:250px}.ui.panorama.ad{width:980px;height:120px}.ui.netboard.ad{width:580px;height:400px}.ui[class*="large mobile banner"].ad{width:320px;height:100px}.ui[class*="mobile leaderboard"].ad{width:320px;height:50px}.ui.mobile.ad{display:none}@media only screen and (max-width:767px){.ui.mobile.ad{display:block}}.ui.centered.ad{margin-left:auto;margin-right:auto}.ui.test.ad{position:relative;background:#545454}.ui.test.ad:after{position:absolute;top:50%;left:50%;width:100%;text-align:center;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);content:'Ad';color:#FFF;font-size:1em;font-weight:700}.ui.mobile.test.ad:after{font-size:.85714286em}.ui.test.ad[data-text]:after{content:attr(data-text)}
--------------------------------------------------------------------------------
/src/semantic-ui/components/breadcrumb.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Breadcrumb
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | Breadcrumb
14 | *******************************/
15 |
16 | .ui.breadcrumb {
17 | line-height: 1;
18 | display: inline-block;
19 | margin: 0em 0em;
20 | vertical-align: middle;
21 | }
22 | .ui.breadcrumb:first-child {
23 | margin-top: 0em;
24 | }
25 | .ui.breadcrumb:last-child {
26 | margin-bottom: 0em;
27 | }
28 |
29 |
30 | /*******************************
31 | Content
32 | *******************************/
33 |
34 |
35 | /* Divider */
36 | .ui.breadcrumb .divider {
37 | display: inline-block;
38 | opacity: 0.7;
39 | margin: 0em 0.21428571rem 0em;
40 | font-size: 0.92857143em;
41 | color: rgba(0, 0, 0, 0.4);
42 | vertical-align: baseline;
43 | }
44 |
45 | /* Link */
46 | .ui.breadcrumb a {
47 | color: #4183C4;
48 | }
49 | .ui.breadcrumb a:hover {
50 | color: #1e70bf;
51 | }
52 |
53 | /* Icon Divider */
54 | .ui.breadcrumb .icon.divider {
55 | font-size: 0.85714286em;
56 | vertical-align: baseline;
57 | }
58 |
59 | /* Section */
60 | .ui.breadcrumb a.section {
61 | cursor: pointer;
62 | }
63 | .ui.breadcrumb .section {
64 | display: inline-block;
65 | margin: 0em;
66 | padding: 0em;
67 | }
68 |
69 | /* Loose Coupling */
70 | .ui.breadcrumb.segment {
71 | display: inline-block;
72 | padding: 0.78571429em 1em;
73 | }
74 |
75 |
76 | /*******************************
77 | States
78 | *******************************/
79 |
80 | .ui.breadcrumb .active.section {
81 | font-weight: bold;
82 | }
83 |
84 |
85 | /*******************************
86 | Variations
87 | *******************************/
88 |
89 | .ui.mini.breadcrumb {
90 | font-size: 0.78571429rem;
91 | }
92 | .ui.tiny.breadcrumb {
93 | font-size: 0.85714286rem;
94 | }
95 | .ui.small.breadcrumb {
96 | font-size: 0.92857143rem;
97 | }
98 | .ui.breadcrumb {
99 | font-size: 1rem;
100 | }
101 | .ui.large.breadcrumb {
102 | font-size: 1.14285714rem;
103 | }
104 | .ui.big.breadcrumb {
105 | font-size: 1.28571429rem;
106 | }
107 | .ui.huge.breadcrumb {
108 | font-size: 1.42857143rem;
109 | }
110 | .ui.massive.breadcrumb {
111 | font-size: 1.71428571rem;
112 | }
113 |
114 |
115 | /*******************************
116 | Theme Overrides
117 | *******************************/
118 |
119 |
120 |
121 | /*******************************
122 | Site Overrides
123 | *******************************/
124 |
125 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/breadcrumb.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Breadcrumb
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.breadcrumb{line-height:1;display:inline-block;margin:0;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#4183C4}.ui.breadcrumb a:hover{color:#1e70bf}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.78571429em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.mini.breadcrumb{font-size:.78571429rem}.ui.tiny.breadcrumb{font-size:.85714286rem}.ui.small.breadcrumb{font-size:.92857143rem}.ui.breadcrumb{font-size:1rem}.ui.large.breadcrumb{font-size:1.14285714rem}.ui.big.breadcrumb{font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:1.71428571rem}
--------------------------------------------------------------------------------
/src/semantic-ui/components/colorize.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Colorize
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | !function(e,n,i,t){"use strict";e.fn.colorize=function(n){var i=e.isPlainObject(n)?e.extend(!0,{},e.fn.colorize.settings,n):e.extend({},e.fn.colorize.settings),o=arguments||!1;return e(this).each(function(n){var a,r,c,s,d,g,u,l,m=e(this),f=e(" ")[0],h=e(" ")[0],p=e(" ")[0],v=new Image,w=i.colors,b=(i.paths,i.namespace),y=i.error,C=m.data("module-"+b);return l={checkPreconditions:function(){return l.debug("Checking pre-conditions"),!e.isPlainObject(w)||e.isEmptyObject(w)?(l.error(y.undefinedColors),!1):!0},async:function(e){i.async?setTimeout(e,0):e()},getMetadata:function(){l.debug("Grabbing metadata"),s=m.data("image")||i.image||t,d=m.data("name")||i.name||n,g=i.width||m.width(),u=i.height||m.height(),(0===g||0===u)&&l.error(y.undefinedSize)},initialize:function(){l.debug("Initializing with colors",w),l.checkPreconditions()&&l.async(function(){l.getMetadata(),l.canvas.create(),l.draw.image(function(){l.draw.colors(),l.canvas.merge()}),m.data("module-"+b,l)})},redraw:function(){l.debug("Redrawing image"),l.async(function(){l.canvas.clear(),l.draw.colors(),l.canvas.merge()})},change:{color:function(e,n){return l.debug("Changing color",e),w[e]===t?(l.error(y.missingColor),!1):(w[e]=n,void l.redraw())}},canvas:{create:function(){l.debug("Creating canvases"),f.width=g,f.height=u,h.width=g,h.height=u,p.width=g,p.height=u,a=f.getContext("2d"),r=h.getContext("2d"),c=p.getContext("2d"),m.append(f),a=m.children("canvas")[0].getContext("2d")},clear:function(e){l.debug("Clearing canvas"),c.fillStyle="#FFFFFF",c.fillRect(0,0,g,u)},merge:function(){return e.isFunction(a.blendOnto)?(a.putImageData(r.getImageData(0,0,g,u),0,0),void c.blendOnto(a,"multiply")):void l.error(y.missingPlugin)}},draw:{image:function(e){l.debug("Drawing image"),e=e||function(){},s?(v.src=s,v.onload=function(){r.drawImage(v,0,0),e()}):(l.error(y.noImage),e())},colors:function(){l.debug("Drawing color overlays",w),e.each(w,function(e,n){i.onDraw(c,d,e,n)})}},debug:function(e,n){i.debug&&(n!==t?console.info(i.name+": "+e,n):console.info(i.name+": "+e))},error:function(e){console.warn(i.name+": "+e)},invoke:function(n,o,a){var r;return a=a||Array.prototype.slice.call(arguments,2),"string"==typeof n&&C!==t&&(n=n.split("."),e.each(n,function(n,t){return e.isPlainObject(C[t])?(C=C[t],!0):e.isFunction(C[t])?(r=C[t],!0):(l.error(i.error.method),!1)})),e.isFunction(r)?r.apply(o,a):!1}},C!==t&&o?("invoke"==o[0]&&(o=Array.prototype.slice.call(o,1)),l.invoke(o[0],this,Array.prototype.slice.call(o,1))):void l.initialize()}),this},e.fn.colorize.settings={name:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(e,n,i,t){},async:!0,colors:{},metadata:{image:"image",name:"name"},error:{noImage:"No tracing image specified",undefinedColors:"No default colors specified.",missingColor:"Attempted to change color that does not exist",missingPlugin:"Blend onto plug-in must be included",undefinedHeight:"The width or height of image canvas could not be automatically determined. Please specify a height."}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/src/semantic-ui/components/comment.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Comment
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.comments{margin:1.5em 0;max-width:650px}.ui.comments:first-child{margin-top:0}.ui.comments:last-child{margin-bottom:0}.ui.comments .comment{position:relative;background:0 0;margin:.5em 0 0;padding:.5em 0 0;border:none;border-top:none;line-height:1.2}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .comments{margin:0 0 .5em .5em;padding:1em 0 1em 1em}.ui.comments .comment .comments:before{position:absolute;top:0;left:0}.ui.comments .comment .comments .comment{border:none;border-top:none;background:0 0}.ui.comments .comment .avatar{display:block;width:2.5em;height:auto;float:left;margin:.2em 0 0}.ui.comments .comment .avatar img,.ui.comments .comment img.avatar{display:block;margin:0 auto;width:100%;height:100%;border-radius:.25rem}.ui.comments .comment>.content{display:block}.ui.comments .comment>.avatar~.content{margin-left:3.5em}.ui.comments .comment .author{font-size:1em;color:rgba(0,0,0,.87);font-weight:700}.ui.comments .comment a.author{cursor:pointer}.ui.comments .comment a.author:hover{color:#1e70bf}.ui.comments .comment .metadata{display:inline-block;margin-left:.5em;color:rgba(0,0,0,.4);font-size:.875em}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .5em 0 0}.ui.comments .comment .metadata>:last-child{margin-right:0}.ui.comments .comment .text{margin:.25em 0 .5em;font-size:1em;word-wrap:break-word;color:rgba(0,0,0,.87);line-height:1.3}.ui.comments .comment .actions{font-size:.875em}.ui.comments .comment .actions a{cursor:pointer;display:inline-block;margin:0 .75em 0 0;color:rgba(0,0,0,.4)}.ui.comments .comment .actions a:last-child{margin-right:0}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.8)}.ui.comments>.reply.form{margin-top:1em}.ui.comments .comment .reply.form{width:100%;margin-top:1em}.ui.comments .reply.form textarea{font-size:1em;height:12em}.ui.collapsed.comments,.ui.comments .collapsed.comment,.ui.comments .collapsed.comments{display:none}.ui.threaded.comments .comment .comments{margin:-1.5em 0 -1em 1.25em;padding:3em 0 2em 2.25em;box-shadow:-1px 0 0 rgba(34,36,38,.15)}.ui.minimal.comments .comment .actions{opacity:0;position:absolute;top:0;right:0;left:auto;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;-webkit-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.mini.comments{font-size:.78571429rem}.ui.tiny.comments{font-size:.85714286rem}.ui.small.comments{font-size:.92857143rem}.ui.comments{font-size:1rem}.ui.large.comments{font-size:1.14285714rem}.ui.big.comments{font-size:1.28571429rem}.ui.huge.comments{font-size:1.42857143rem}.ui.massive.comments{font-size:1.71428571rem}
--------------------------------------------------------------------------------
/src/semantic-ui/components/container.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Container
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | Container
14 | *******************************/
15 |
16 |
17 | /* All Sizes */
18 | .ui.container {
19 | display: block;
20 | max-width: 100% !important;
21 | }
22 |
23 | /* Mobile */
24 | @media only screen and (max-width: 767px) {
25 | .ui.container {
26 | width: auto !important;
27 | margin-left: 1em !important;
28 | margin-right: 1em !important;
29 | }
30 | .ui.grid.container {
31 | width: auto !important;
32 | }
33 | .ui.relaxed.grid.container {
34 | width: auto !important;
35 | }
36 | .ui.very.relaxed.grid.container {
37 | width: auto !important;
38 | }
39 | }
40 |
41 | /* Tablet */
42 | @media only screen and (min-width: 768px) and (max-width: 991px) {
43 | .ui.container {
44 | width: 723px;
45 | margin-left: auto !important;
46 | margin-right: auto !important;
47 | }
48 | .ui.grid.container {
49 | width: calc( 723px + 2rem ) !important;
50 | }
51 | .ui.relaxed.grid.container {
52 | width: calc( 723px + 3rem ) !important;
53 | }
54 | .ui.very.relaxed.grid.container {
55 | width: calc( 723px + 5rem ) !important;
56 | }
57 | }
58 |
59 | /* Small Monitor */
60 | @media only screen and (min-width: 992px) and (max-width: 1199px) {
61 | .ui.container {
62 | width: 933px;
63 | margin-left: auto !important;
64 | margin-right: auto !important;
65 | }
66 | .ui.grid.container {
67 | width: calc( 933px + 2rem ) !important;
68 | }
69 | .ui.relaxed.grid.container {
70 | width: calc( 933px + 3rem ) !important;
71 | }
72 | .ui.very.relaxed.grid.container {
73 | width: calc( 933px + 5rem ) !important;
74 | }
75 | }
76 |
77 | /* Large Monitor */
78 | @media only screen and (min-width: 1200px) {
79 | .ui.container {
80 | width: 1127px;
81 | margin-left: auto !important;
82 | margin-right: auto !important;
83 | }
84 | .ui.grid.container {
85 | width: calc( 1127px + 2rem ) !important;
86 | }
87 | .ui.relaxed.grid.container {
88 | width: calc( 1127px + 3rem ) !important;
89 | }
90 | .ui.very.relaxed.grid.container {
91 | width: calc( 1127px + 5rem ) !important;
92 | }
93 | }
94 |
95 |
96 | /*******************************
97 | Types
98 | *******************************/
99 |
100 |
101 | /* Text Container */
102 | .ui.text.container {
103 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
104 | max-width: 700px !important;
105 | line-height: 1.5;
106 | }
107 | .ui.text.container {
108 | font-size: 1.14285714rem;
109 | }
110 |
111 | /* Fluid */
112 | .ui.fluid.container {
113 | width: 100%;
114 | }
115 |
116 |
117 | /*******************************
118 | Variations
119 | *******************************/
120 |
121 | .ui[class*="left aligned"].container {
122 | text-align: left;
123 | }
124 | .ui[class*="center aligned"].container {
125 | text-align: center;
126 | }
127 | .ui[class*="right aligned"].container {
128 | text-align: right;
129 | }
130 | .ui.justified.container {
131 | text-align: justify;
132 | -webkit-hyphens: auto;
133 | -ms-hyphens: auto;
134 | hyphens: auto;
135 | }
136 |
137 |
138 | /*******************************
139 | Theme Overrides
140 | *******************************/
141 |
142 |
143 |
144 | /*******************************
145 | Site Overrides
146 | *******************************/
147 |
148 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/container.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Container
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.container{display:block;max-width:100%!important}@media only screen and (max-width:767px){.ui.container{width:auto!important;margin-left:1em!important;margin-right:1em!important}.ui.grid.container,.ui.relaxed.grid.container,.ui.very.relaxed.grid.container{width:auto!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.container{width:723px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(723px + 2rem)!important}.ui.relaxed.grid.container{width:calc(723px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(723px + 5rem)!important}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.container{width:933px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(933px + 2rem)!important}.ui.relaxed.grid.container{width:calc(933px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(933px + 5rem)!important}}@media only screen and (min-width:1200px){.ui.container{width:1127px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(1127px + 2rem)!important}.ui.relaxed.grid.container{width:calc(1127px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(1127px + 5rem)!important}}.ui.text.container{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;max-width:700px!important;line-height:1.5;font-size:1.14285714rem}.ui.fluid.container{width:100%}.ui[class*="left aligned"].container{text-align:left}.ui[class*="center aligned"].container{text-align:center}.ui[class*="right aligned"].container{text-align:right}.ui.justified.container{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}
--------------------------------------------------------------------------------
/src/semantic-ui/components/dimmer.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Dimmer
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | Dimmer
14 | *******************************/
15 |
16 | .dimmable:not(.body) {
17 | position: relative;
18 | }
19 | .ui.dimmer {
20 | display: none;
21 | position: absolute;
22 | top: 0em !important;
23 | left: 0em !important;
24 | width: 100%;
25 | height: 100%;
26 | text-align: center;
27 | vertical-align: middle;
28 | background-color: rgba(0, 0, 0, 0.85);
29 | opacity: 0;
30 | line-height: 1;
31 | -webkit-animation-fill-mode: both;
32 | animation-fill-mode: both;
33 | -webkit-animation-duration: 0.5s;
34 | animation-duration: 0.5s;
35 | -webkit-transition: background-color 0.5s linear;
36 | transition: background-color 0.5s linear;
37 | -webkit-user-select: none;
38 | -moz-user-select: none;
39 | -ms-user-select: none;
40 | user-select: none;
41 | will-change: opacity;
42 | z-index: 1000;
43 | }
44 |
45 | /* Dimmer Content */
46 | .ui.dimmer > .content {
47 | width: 100%;
48 | height: 100%;
49 | display: table;
50 | -webkit-user-select: text;
51 | -moz-user-select: text;
52 | -ms-user-select: text;
53 | user-select: text;
54 | }
55 | .ui.dimmer > .content > * {
56 | display: table-cell;
57 | vertical-align: middle;
58 | color: #FFFFFF;
59 | }
60 |
61 | /* Loose Coupling */
62 | .ui.segment > .ui.dimmer {
63 | border-radius: inherit !important;
64 | }
65 |
66 |
67 | /*******************************
68 | States
69 | *******************************/
70 |
71 | .animating.dimmable:not(body),
72 | .dimmed.dimmable:not(body) {
73 | overflow: hidden;
74 | }
75 | .dimmed.dimmable > .ui.animating.dimmer,
76 | .dimmed.dimmable > .ui.visible.dimmer,
77 | .ui.active.dimmer {
78 | display: block;
79 | opacity: 1;
80 | }
81 | .ui.disabled.dimmer {
82 | width: 0 !important;
83 | height: 0 !important;
84 | }
85 |
86 |
87 | /*******************************
88 | Variations
89 | *******************************/
90 |
91 |
92 | /*--------------
93 | Page
94 | ---------------*/
95 |
96 | .ui.page.dimmer {
97 | position: fixed;
98 | -webkit-transform-style: '';
99 | transform-style: '';
100 | -webkit-perspective: 2000px;
101 | perspective: 2000px;
102 | -webkit-transform-origin: center center;
103 | transform-origin: center center;
104 | }
105 | body.animating.in.dimmable,
106 | body.dimmed.dimmable {
107 | overflow: hidden;
108 | }
109 | body.dimmable > .dimmer {
110 | position: fixed;
111 | }
112 |
113 | /*--------------
114 | Blurring
115 | ---------------*/
116 |
117 | .blurring.dimmable > :not(.dimmer) {
118 | -webkit-filter: blur(0px) grayscale(0);
119 | filter: blur(0px) grayscale(0);
120 | -webkit-transition: 800ms filter ease;
121 | transition: 800ms filter ease;
122 | }
123 | .blurring.dimmed.dimmable > :not(.dimmer) {
124 | -webkit-filter: blur(5px) grayscale(0.7);
125 | filter: blur(5px) grayscale(0.7);
126 | }
127 |
128 | /* Dimmer Color */
129 | .blurring.dimmable > .dimmer {
130 | background-color: rgba(0, 0, 0, 0.6);
131 | }
132 | .blurring.dimmable > .inverted.dimmer {
133 | background-color: rgba(255, 255, 255, 0.6);
134 | }
135 |
136 | /*--------------
137 | Aligned
138 | ---------------*/
139 |
140 | .ui.dimmer > .top.aligned.content > * {
141 | vertical-align: top;
142 | }
143 | .ui.dimmer > .bottom.aligned.content > * {
144 | vertical-align: bottom;
145 | }
146 |
147 | /*--------------
148 | Inverted
149 | ---------------*/
150 |
151 | .ui.inverted.dimmer {
152 | background-color: rgba(255, 255, 255, 0.85);
153 | }
154 | .ui.inverted.dimmer > .content > * {
155 | color: #FFFFFF;
156 | }
157 |
158 | /*--------------
159 | Simple
160 | ---------------*/
161 |
162 |
163 | /* Displays without javascript */
164 | .ui.simple.dimmer {
165 | display: block;
166 | overflow: hidden;
167 | opacity: 1;
168 | width: 0%;
169 | height: 0%;
170 | z-index: -100;
171 | background-color: rgba(0, 0, 0, 0);
172 | }
173 | .dimmed.dimmable > .ui.simple.dimmer {
174 | overflow: visible;
175 | opacity: 1;
176 | width: 100%;
177 | height: 100%;
178 | background-color: rgba(0, 0, 0, 0.85);
179 | z-index: 1;
180 | }
181 | .ui.simple.inverted.dimmer {
182 | background-color: rgba(255, 255, 255, 0);
183 | }
184 | .dimmed.dimmable > .ui.simple.inverted.dimmer {
185 | background-color: rgba(255, 255, 255, 0.85);
186 | }
187 |
188 |
189 | /*******************************
190 | Theme Overrides
191 | *******************************/
192 |
193 |
194 |
195 | /*******************************
196 | User Overrides
197 | *******************************/
198 |
199 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/dimmer.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Dimmer
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.dimmable:not(.body){position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;background-color:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-transition:background-color .5s linear;transition:background-color .5s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:opacity;z-index:1000}.ui.dimmer>.content{width:100%;height:100%;display:table;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.dimmer>.content>*{display:table-cell;vertical-align:middle;color:#FFF}.ui.segment>.ui.dimmer{border-radius:inherit!important}.animating.dimmable:not(body),.dimmed.dimmable:not(body){overflow:hidden}.dimmed.dimmable>.ui.animating.dimmer,.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:block;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.ui.page.dimmer{position:fixed;-webkit-transform-style:'';transform-style:'';-webkit-perspective:2000px;perspective:2000px;-webkit-transform-origin:center center;transform-origin:center center}body.animating.in.dimmable,body.dimmed.dimmable{overflow:hidden}body.dimmable>.dimmer{position:fixed}.blurring.dimmable>:not(.dimmer){-webkit-filter:blur(0) grayscale(0);filter:blur(0) grayscale(0);-webkit-transition:.8s filter ease;transition:.8s filter ease}.blurring.dimmed.dimmable>:not(.dimmer){-webkit-filter:blur(5px) grayscale(.7);filter:blur(5px) grayscale(.7)}.blurring.dimmable>.dimmer{background-color:rgba(0,0,0,.6)}.blurring.dimmable>.inverted.dimmer{background-color:rgba(255,255,255,.6)}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background-color:rgba(255,255,255,.85)}.ui.inverted.dimmer>.content>*{color:#FFF}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;width:0;height:0%;z-index:-100;background-color:rgba(0,0,0,0)}.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background-color:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,0)}.dimmed.dimmable>.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,.85)}
--------------------------------------------------------------------------------
/src/semantic-ui/components/divider.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Divider
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:rgba(0,0,0,.85);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-size:1rem}.ui.divider:not(.vertical):not(.horizontal){border-top:1px solid rgba(34,36,38,.15);border-bottom:1px solid rgba(255,255,255,.1)}.ui.grid>.column+.divider,.ui.grid>.row>.column+.divider{left:auto}.ui.horizontal.divider{display:table;white-space:nowrap;height:auto;margin:'';line-height:1;text-align:center}.ui.horizontal.divider:after,.ui.horizontal.divider:before{content:'';display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC)}.ui.horizontal.divider:before{background-position:right 1em top 50%}.ui.horizontal.divider:after{background-position:left 1em top 50%}.ui.vertical.divider{position:absolute;z-index:2;top:50%;left:50%;margin:0;padding:0;width:auto;height:50%;line-height:0;text-align:center;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.ui.vertical.divider:after,.ui.vertical.divider:before{position:absolute;left:50%;content:'';z-index:3;border-left:1px solid rgba(34,36,38,.15);border-right:1px solid rgba(255,255,255,.1);width:0;height:calc(100% - 1rem)}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider,.ui.stackable.grid .ui.vertical.divider{display:table;white-space:nowrap;height:auto;margin:'';overflow:hidden;line-height:1;text-align:center;position:static;top:0;left:0;-webkit-transform:none;transform:none}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{left:0;border-left:none;border-right:none;content:'';display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC)}.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:before{background-position:right 1em top 50%}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:after{background-position:left 1em top 50%}}.ui.divider>.icon{margin:0;font-size:1rem;height:1em;vertical-align:middle}.ui.hidden.divider{border-color:transparent!important}.ui.hidden.divider:after,.ui.hidden.divider:before{display:none}.ui.divider.inverted,.ui.horizontal.inverted.divider,.ui.vertical.inverted.divider{color:#FFF}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-top-color:rgba(34,36,38,.15)!important;border-left-color:rgba(34,36,38,.15)!important;border-bottom-color:rgba(255,255,255,.15)!important;border-right-color:rgba(255,255,255,.15)!important}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}
--------------------------------------------------------------------------------
/src/semantic-ui/components/embed.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Video
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | Types
14 | *******************************/
15 |
16 | .ui.embed {
17 | position: relative;
18 | max-width: 100%;
19 | height: 0px;
20 | overflow: hidden;
21 | background: #DCDDDE;
22 | padding-bottom: 56.25%;
23 | }
24 |
25 | /*-----------------
26 | Embedded Content
27 | ------------------*/
28 |
29 | .ui.embed iframe,
30 | .ui.embed embed,
31 | .ui.embed object {
32 | position: absolute;
33 | border: none;
34 | width: 100%;
35 | height: 100%;
36 | top: 0px;
37 | left: 0px;
38 | margin: 0em;
39 | padding: 0em;
40 | }
41 |
42 | /*-----------------
43 | Embed
44 | ------------------*/
45 |
46 | .ui.embed > .embed {
47 | display: none;
48 | }
49 |
50 | /*--------------
51 | Placeholder
52 | ---------------*/
53 |
54 | .ui.embed > .placeholder {
55 | position: absolute;
56 | cursor: pointer;
57 | top: 0px;
58 | left: 0px;
59 | display: block;
60 | width: 100%;
61 | height: 100%;
62 | background-color: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
63 | }
64 |
65 | /*--------------
66 | Icon
67 | ---------------*/
68 |
69 | .ui.embed > .icon {
70 | cursor: pointer;
71 | position: absolute;
72 | top: 0px;
73 | left: 0px;
74 | width: 100%;
75 | height: 100%;
76 | z-index: 2;
77 | }
78 | .ui.embed > .icon:after {
79 | position: absolute;
80 | top: 0%;
81 | left: 0%;
82 | width: 100%;
83 | height: 100%;
84 | z-index: 3;
85 | content: '';
86 | background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
87 | background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
88 | opacity: 0.5;
89 | -webkit-transition: opacity 0.5s ease;
90 | transition: opacity 0.5s ease;
91 | }
92 | .ui.embed > .icon:before {
93 | position: absolute;
94 | top: 50%;
95 | left: 50%;
96 | z-index: 4;
97 | -webkit-transform: translateX(-50%) translateY(-50%);
98 | transform: translateX(-50%) translateY(-50%);
99 | color: #FFFFFF;
100 | font-size: 6rem;
101 | text-shadow: 0px 2px 10px rgba(34, 36, 38, 0.2);
102 | -webkit-transition: opacity 0.5s ease, color 0.5s ease;
103 | transition: opacity 0.5s ease, color 0.5s ease;
104 | z-index: 10;
105 | }
106 |
107 |
108 | /*******************************
109 | States
110 | *******************************/
111 |
112 |
113 | /*--------------
114 | Hover
115 | ---------------*/
116 |
117 | .ui.embed .icon:hover:after {
118 | background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
119 | background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
120 | opacity: 1;
121 | }
122 | .ui.embed .icon:hover:before {
123 | color: #FFFFFF;
124 | }
125 |
126 | /*--------------
127 | Active
128 | ---------------*/
129 |
130 | .ui.active.embed > .icon,
131 | .ui.active.embed > .placeholder {
132 | display: none;
133 | }
134 | .ui.active.embed > .embed {
135 | display: block;
136 | }
137 |
138 |
139 | /*******************************
140 | Video Overrides
141 | *******************************/
142 |
143 |
144 |
145 | /*******************************
146 | Site Overrides
147 | *******************************/
148 |
149 |
150 |
151 | /*******************************
152 | Variations
153 | *******************************/
154 |
155 | .ui.square.embed {
156 | padding-bottom: 100%;
157 | }
158 | .ui[class*="4:3"].embed {
159 | padding-bottom: 75%;
160 | }
161 | .ui[class*="16:9"].embed {
162 | padding-bottom: 56.25%;
163 | }
164 | .ui[class*="21:9"].embed {
165 | padding-bottom: 42.85714286%;
166 | }
167 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/embed.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Video
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.embed{position:relative;max-width:100%;height:0;overflow:hidden;background:#DCDDDE;padding-bottom:56.25%}.ui.embed embed,.ui.embed iframe,.ui.embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.embed>.embed{display:none}.ui.embed>.placeholder{position:absolute;cursor:pointer;top:0;left:0;display:block;width:100%;height:100%;background-color:radial-gradient(transparent 45%,rgba(0,0,0,.3))}.ui.embed>.icon{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.ui.embed>.icon:after{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;content:'';background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:.5;-webkit-transition:opacity .5s ease;transition:opacity .5s ease}.ui.embed>.icon:before{position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);color:#FFF;font-size:6rem;text-shadow:0 2px 10px rgba(34,36,38,.2);-webkit-transition:opacity .5s ease,color .5s ease;transition:opacity .5s ease,color .5s ease;z-index:10}.ui.embed .icon:hover:after{background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:1}.ui.embed .icon:hover:before{color:#FFF}.ui.active.embed>.icon,.ui.active.embed>.placeholder{display:none}.ui.active.embed>.embed{display:block}.ui.square.embed{padding-bottom:100%}.ui[class*="4:3"].embed{padding-bottom:75%}.ui[class*="16:9"].embed{padding-bottom:56.25%}.ui[class*="21:9"].embed{padding-bottom:42.85714286%}
--------------------------------------------------------------------------------
/src/semantic-ui/components/feed.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Feed
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.feed{margin:1em 0}.ui.feed:first-child{margin-top:0}.ui.feed:last-child{margin-bottom:0}.ui.feed>.event{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;width:100%;padding:.21428571rem 0;margin:0;background:0 0;border-top:none}.ui.feed>.event:first-child{border-top:0;padding-top:0}.ui.feed>.event:last-child{padding-bottom:0}.ui.feed>.event>.label{display:block;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:2.5em;height:auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;text-align:left}.ui.feed>.event>.label .icon{opacity:1;font-size:1.5em;width:100%;padding:.25em;background:0 0;border:none;border-radius:none;color:rgba(0,0,0,.6)}.ui.feed>.event>.label img{width:100%;height:auto;border-radius:500rem}.ui.feed>.event>.label+.content{margin:.5em 0 .35714286em 1.14285714em}.ui.feed>.event>.content{display:block;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;text-align:left;word-wrap:break-word}.ui.feed>.event:last-child>.content{padding-bottom:0}.ui.feed>.event>.content a{cursor:pointer}.ui.feed>.event>.content .date{margin:-.5rem 0 0;padding:0;font-weight:400;font-size:1em;font-style:normal;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .summary{margin:0;font-size:1em;font-weight:700;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .summary img{display:inline-block;width:auto;height:10em;margin:-.25em .25em 0 0;border-radius:.25em;vertical-align:middle}.ui.feed>.event>.content .user{display:inline-block;font-weight:700;margin-right:0;vertical-align:baseline}.ui.feed>.event>.content .user img{margin:-.25em .25em 0 0;width:auto;height:10em;vertical-align:middle}.ui.feed>.event>.content .summary>.date{display:inline-block;float:none;font-weight:400;font-size:.85714286em;font-style:normal;margin:0 0 0 .5em;padding:0;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .extra{margin:.5em 0 0;background:0 0;padding:0;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .extra.images img{display:inline-block;margin:0 .25em 0 0;width:6em}.ui.feed>.event>.content .extra.text{padding:0;border-left:none;font-size:1em;max-width:500px;line-height:1.4285em}.ui.feed>.event>.content .meta{display:inline-block;font-size:.85714286em;margin:.5em 0 0;background:0 0;border:none;border-radius:0;box-shadow:none;padding:0;color:rgba(0,0,0,.6)}.ui.feed>.event>.content .meta>*{position:relative;margin-left:.75em}.ui.feed>.event>.content .meta>:after{content:'';color:rgba(0,0,0,.2);top:0;left:-1em;opacity:1;position:absolute;vertical-align:top}.ui.feed>.event>.content .meta .like{color:'';-webkit-transition:.2s color ease;transition:.2s color ease}.ui.feed>.event>.content .meta .like:hover .icon{color:#FF2733}.ui.feed>.event>.content .meta .active.like .icon{color:#EF404A}.ui.feed>.event>.content .meta>:first-child{margin-left:0}.ui.feed>.event>.content .meta>:first-child::after{display:none}.ui.feed>.event>.content .meta a,.ui.feed>.event>.content .meta>.icon{cursor:pointer;opacity:1;color:rgba(0,0,0,.5);-webkit-transition:color .1s ease;transition:color .1s ease}.ui.feed>.event>.content .meta a:hover,.ui.feed>.event>.content .meta a:hover .icon,.ui.feed>.event>.content .meta>.icon:hover{color:rgba(0,0,0,.95)}.ui.small.feed{font-size:.92857143rem}.ui.feed{font-size:1rem}.ui.large.feed{font-size:1.14285714rem}
--------------------------------------------------------------------------------
/src/semantic-ui/components/image.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Image
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:transparent}img.ui.image{display:block}.ui.image img,.ui.image svg{display:block;max-width:100%;height:auto}.ui.hidden.image,.ui.hidden.images{display:none}.ui.hidden.transition.image,.ui.hidden.transition.images{display:block;visibility:hidden}.ui.disabled.image,.ui.disabled.images{cursor:default;opacity:.45}.ui.inline.image,.ui.inline.image img,.ui.inline.image svg{display:inline-block}.ui.top.aligned.image,.ui.top.aligned.image img,.ui.top.aligned.image svg,.ui.top.aligned.images .image{display:inline-block;vertical-align:top}.ui.middle.aligned.image,.ui.middle.aligned.image img,.ui.middle.aligned.image svg,.ui.middle.aligned.images .image{display:inline-block;vertical-align:middle}.ui.bottom.aligned.image,.ui.bottom.aligned.image img,.ui.bottom.aligned.image svg,.ui.bottom.aligned.images .image{display:inline-block;vertical-align:bottom}.ui.rounded.image,.ui.rounded.image>*,.ui.rounded.images .image,.ui.rounded.images .image>*{border-radius:.3125em}.ui.bordered.image img,.ui.bordered.image svg,.ui.bordered.images .image,.ui.bordered.images img,.ui.bordered.images svg,img.ui.bordered.image{border:1px solid rgba(0,0,0,.1)}.ui.circular.image,.ui.circular.images{overflow:hidden}.ui.circular.image,.ui.circular.image>*,.ui.circular.images .image,.ui.circular.images .image>*{border-radius:500rem}.ui.fluid.image,.ui.fluid.image img,.ui.fluid.image svg,.ui.fluid.images,.ui.fluid.images img,.ui.fluid.images svg{display:block;width:100%;height:auto}.ui.avatar.image,.ui.avatar.image img,.ui.avatar.image svg,.ui.avatar.images .image,.ui.avatar.images img,.ui.avatar.images svg{margin-right:.25em;display:inline-block;width:2em;height:2em;border-radius:500rem}.ui.spaced.image{display:inline-block!important;margin-left:.5em;margin-right:.5em}.ui[class*="left spaced"].image{margin-left:.5em;margin-right:0}.ui[class*="right spaced"].image{margin-left:0;margin-right:.5em}.ui.floated.image,.ui.floated.images{float:left;margin-right:1em;margin-bottom:1em}.ui.right.floated.image,.ui.right.floated.images{float:right;margin-right:0;margin-bottom:1em;margin-left:1em}.ui.floated.image:last-child,.ui.floated.images:last-child{margin-bottom:0}.ui.centered.image,.ui.centered.images{margin-left:auto;margin-right:auto}.ui.mini.image,.ui.mini.images .image,.ui.mini.images img,.ui.mini.images svg{width:35px;height:auto;font-size:.78571429rem}.ui.tiny.image,.ui.tiny.images .image,.ui.tiny.images img,.ui.tiny.images svg{width:80px;height:auto;font-size:.85714286rem}.ui.small.image,.ui.small.images .image,.ui.small.images img,.ui.small.images svg{width:150px;height:auto;font-size:.92857143rem}.ui.medium.image,.ui.medium.images .image,.ui.medium.images img,.ui.medium.images svg{width:300px;height:auto;font-size:1rem}.ui.large.image,.ui.large.images .image,.ui.large.images img,.ui.large.images svg{width:450px;height:auto;font-size:1.14285714rem}.ui.big.image,.ui.big.images .image,.ui.big.images img,.ui.big.images svg{width:600px;height:auto;font-size:1.28571429rem}.ui.huge.image,.ui.huge.images .image,.ui.huge.images img,.ui.huge.images svg{width:800px;height:auto;font-size:1.42857143rem}.ui.massive.image,.ui.massive.images .image,.ui.massive.images img,.ui.massive.images svg{width:960px;height:auto;font-size:1.71428571rem}.ui.images{font-size:0;margin:0 -.25rem}.ui.images .image,.ui.images img,.ui.images svg{display:inline-block;margin:0 .25rem .5rem}
--------------------------------------------------------------------------------
/src/semantic-ui/components/loader.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Loader
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.loader{display:none;position:absolute;top:50%;left:50%;margin:0;text-align:center;z-index:1000;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.loader:before{position:absolute;content:'';top:0;left:50%;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loader:after{position:absolute;content:'';top:0;left:50%;-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}@-webkit-keyframes loader{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loader{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ui.mini.loader:after,.ui.mini.loader:before{width:1rem;height:1rem;margin:0 0 0 -.5rem}.ui.tiny.loader:after,.ui.tiny.loader:before{width:1.14285714rem;height:1.14285714rem;margin:0 0 0 -.57142857rem}.ui.small.loader:after,.ui.small.loader:before{width:1.71428571rem;height:1.71428571rem;margin:0 0 0 -.85714286rem}.ui.loader:after,.ui.loader:before{width:2.28571429rem;height:2.28571429rem;margin:0 0 0 -1.14285714rem}.ui.large.loader:after,.ui.large.loader:before{width:3.42857143rem;height:3.42857143rem;margin:0 0 0 -1.71428571rem}.ui.big.loader:after,.ui.big.loader:before{width:3.71428571rem;height:3.71428571rem;margin:0 0 0 -1.85714286rem}.ui.huge.loader:after,.ui.huge.loader:before{width:4.14285714rem;height:4.14285714rem;margin:0 0 0 -2.07142857rem}.ui.massive.loader:after,.ui.massive.loader:before{width:4.57142857rem;height:4.57142857rem;margin:0 0 0 -2.28571429rem}.ui.dimmer .loader{display:block}.ui.dimmer .ui.loader{color:rgba(255,255,255,.9)}.ui.dimmer .ui.loader:before{border-color:rgba(255,255,255,.15)}.ui.dimmer .ui.loader:after{border-color:#FFF transparent transparent}.ui.inverted.dimmer .ui.loader{color:rgba(0,0,0,.87)}.ui.inverted.dimmer .ui.loader:before{border-color:rgba(0,0,0,.1)}.ui.inverted.dimmer .ui.loader:after{border-color:#767676 transparent transparent}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.indeterminate.loader:after{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:1rem;height:1rem;font-size:.78571429em}.ui.inverted.dimmer .ui.tiny.loader,.ui.tiny.loader{width:1.14285714rem;height:1.14285714rem;font-size:.85714286em}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:1.71428571rem;height:1.71428571rem;font-size:.92857143em}.ui.inverted.dimmer .ui.loader,.ui.loader{width:2.28571429rem;height:2.28571429rem;font-size:1em}.ui.inverted.dimmer .ui.large.loader,.ui.large.loader{width:3.42857143rem;height:3.42857143rem;font-size:1.14285714em}.ui.big.loader,.ui.inverted.dimmer .ui.big.loader{width:3.71428571rem;height:3.71428571rem;font-size:1.28571429em}.ui.huge.loader,.ui.inverted.dimmer .ui.huge.loader{width:4.14285714rem;height:4.14285714rem;font-size:1.42857143em}.ui.inverted.dimmer .ui.massive.loader,.ui.massive.loader{width:4.57142857rem;height:4.57142857rem;font-size:1.71428571em}.ui.mini.text.loader{min-width:1rem;padding-top:1.78571429rem}.ui.tiny.text.loader{min-width:1.14285714rem;padding-top:1.92857143rem}.ui.small.text.loader{min-width:1.71428571rem;padding-top:2.5rem}.ui.text.loader{min-width:2.28571429rem;padding-top:3.07142857rem}.ui.large.text.loader{min-width:3.42857143rem;padding-top:4.21428571rem}.ui.big.text.loader{min-width:3.71428571rem;padding-top:4.5rem}.ui.huge.text.loader{min-width:4.14285714rem;padding-top:4.92857143rem}.ui.massive.text.loader{min-width:4.57142857rem;padding-top:5.35714286rem}.ui.inverted.loader{color:rgba(255,255,255,.9)}.ui.inverted.loader:before{border-color:rgba(255,255,255,.15)}.ui.inverted.loader:after{border-top-color:#FFF}.ui.inline.loader{position:relative;vertical-align:middle;margin:0;left:0;top:0;-webkit-transform:none;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}.ui.centered.inline.loader.active,.ui.centered.inline.loader.visible{display:block;margin-left:auto;margin-right:auto}
--------------------------------------------------------------------------------
/src/semantic-ui/components/nag.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Nag
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | Nag
14 | *******************************/
15 |
16 | .ui.nag {
17 | display: none;
18 | opacity: 0.95;
19 | position: relative;
20 | top: 0em;
21 | left: 0px;
22 | z-index: 999;
23 | min-height: 0em;
24 | width: 100%;
25 | margin: 0em;
26 | padding: 0.75em 1em;
27 | background: #555555;
28 | box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
29 | font-size: 1rem;
30 | text-align: center;
31 | color: rgba(0, 0, 0, 0.87);
32 | border-radius: 0em 0em 0.28571429rem 0.28571429rem;
33 | -webkit-transition: 0.2s background ease;
34 | transition: 0.2s background ease;
35 | }
36 | a.ui.nag {
37 | cursor: pointer;
38 | }
39 | .ui.nag > .title {
40 | display: inline-block;
41 | margin: 0em 0.5em;
42 | color: #FFFFFF;
43 | }
44 | .ui.nag > .close.icon {
45 | cursor: pointer;
46 | opacity: 0.4;
47 | position: absolute;
48 | top: 50%;
49 | right: 1em;
50 | font-size: 1em;
51 | margin: -0.5em 0em 0em;
52 | color: #FFFFFF;
53 | -webkit-transition: opacity 0.2s ease;
54 | transition: opacity 0.2s ease;
55 | }
56 |
57 |
58 | /*******************************
59 | States
60 | *******************************/
61 |
62 |
63 | /* Hover */
64 | .ui.nag:hover {
65 | background: #555555;
66 | opacity: 1;
67 | }
68 | .ui.nag .close:hover {
69 | opacity: 1;
70 | }
71 |
72 |
73 | /*******************************
74 | Variations
75 | *******************************/
76 |
77 |
78 | /*--------------
79 | Static
80 | ---------------*/
81 |
82 | .ui.overlay.nag {
83 | position: absolute;
84 | display: block;
85 | }
86 |
87 | /*--------------
88 | Fixed
89 | ---------------*/
90 |
91 | .ui.fixed.nag {
92 | position: fixed;
93 | }
94 |
95 | /*--------------
96 | Bottom
97 | ---------------*/
98 |
99 | .ui.bottom.nags,
100 | .ui.bottom.nag {
101 | border-radius: 0.28571429rem 0.28571429rem 0em 0em;
102 | top: auto;
103 | bottom: 0em;
104 | }
105 |
106 | /*--------------
107 | White
108 | ---------------*/
109 |
110 | .ui.inverted.nags .nag,
111 | .ui.inverted.nag {
112 | background-color: #F3F4F5;
113 | color: rgba(0, 0, 0, 0.85);
114 | }
115 | .ui.inverted.nags .nag .close,
116 | .ui.inverted.nags .nag .title,
117 | .ui.inverted.nag .close,
118 | .ui.inverted.nag .title {
119 | color: rgba(0, 0, 0, 0.4);
120 | }
121 |
122 |
123 | /*******************************
124 | Groups
125 | *******************************/
126 |
127 | .ui.nags .nag {
128 | border-radius: 0em !important;
129 | }
130 | .ui.nags .nag:last-child {
131 | border-radius: 0em 0em 0.28571429rem 0.28571429rem;
132 | }
133 | .ui.bottom.nags .nag:last-child {
134 | border-radius: 0.28571429rem 0.28571429rem 0em 0em;
135 | }
136 |
137 |
138 | /*******************************
139 | Theme Overrides
140 | *******************************/
141 |
142 |
143 |
144 | /*******************************
145 | User Overrides
146 | *******************************/
147 |
148 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/nag.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Nag
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1rem;text-align:center;color:rgba(0,0,0,.87);border-radius:0 0 .28571429rem .28571429rem;-webkit-transition:.2s background ease;transition:.2s background ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#FFF}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#FFF;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.28571429rem .28571429rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#F3F4F5;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.bottom.nags .nag:last-child{border-radius:.28571429rem .28571429rem 0 0}
--------------------------------------------------------------------------------
/src/semantic-ui/components/rail.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Rail
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | Rails
14 | *******************************/
15 |
16 | .ui.rail {
17 | position: absolute;
18 | top: 0%;
19 | width: 300px;
20 | height: 100%;
21 | }
22 | .ui.left.rail {
23 | left: auto;
24 | right: 100%;
25 | padding: 0em 2rem 0em 0em;
26 | margin: 0em 2rem 0em 0em;
27 | }
28 | .ui.right.rail {
29 | left: 100%;
30 | right: auto;
31 | padding: 0em 0em 0em 2rem;
32 | margin: 0em 0em 0em 2rem;
33 | }
34 |
35 |
36 | /*******************************
37 | Variations
38 | *******************************/
39 |
40 |
41 | /*--------------
42 | Internal
43 | ---------------*/
44 |
45 | .ui.left.internal.rail {
46 | left: 0%;
47 | right: auto;
48 | padding: 0em 0em 0em 2rem;
49 | margin: 0em 0em 0em 2rem;
50 | }
51 | .ui.right.internal.rail {
52 | left: auto;
53 | right: 0%;
54 | padding: 0em 2rem 0em 0em;
55 | margin: 0em 2rem 0em 0em;
56 | }
57 |
58 | /*--------------
59 | Dividing
60 | ---------------*/
61 |
62 | .ui.dividing.rail {
63 | width: 302.5px;
64 | }
65 | .ui.left.dividing.rail {
66 | padding: 0em 2.5rem 0em 0em;
67 | margin: 0em 2.5rem 0em 0em;
68 | border-right: 1px solid rgba(34, 36, 38, 0.15);
69 | }
70 | .ui.right.dividing.rail {
71 | border-left: 1px solid rgba(34, 36, 38, 0.15);
72 | padding: 0em 0em 0em 2.5rem;
73 | margin: 0em 0em 0em 2.5rem;
74 | }
75 |
76 | /*--------------
77 | Distance
78 | ---------------*/
79 |
80 | .ui.close.rail {
81 | width: calc( 300px + 1em );
82 | }
83 | .ui.close.left.rail {
84 | padding: 0em 1em 0em 0em;
85 | margin: 0em 1em 0em 0em;
86 | }
87 | .ui.close.right.rail {
88 | padding: 0em 0em 0em 1em;
89 | margin: 0em 0em 0em 1em;
90 | }
91 | .ui.very.close.rail {
92 | width: calc( 300px + 0.5em );
93 | }
94 | .ui.very.close.left.rail {
95 | padding: 0em 0.5em 0em 0em;
96 | margin: 0em 0.5em 0em 0em;
97 | }
98 | .ui.very.close.right.rail {
99 | padding: 0em 0em 0em 0.5em;
100 | margin: 0em 0em 0em 0.5em;
101 | }
102 |
103 | /*--------------
104 | Attached
105 | ---------------*/
106 |
107 | .ui.attached.left.rail,
108 | .ui.attached.right.rail {
109 | padding: 0em;
110 | margin: 0em;
111 | }
112 |
113 | /*--------------
114 | Sizing
115 | ---------------*/
116 |
117 | .ui.mini.rail {
118 | font-size: 0.78571429rem;
119 | }
120 | .ui.tiny.rail {
121 | font-size: 0.85714286rem;
122 | }
123 | .ui.small.rail {
124 | font-size: 0.92857143rem;
125 | }
126 | .ui.rail {
127 | font-size: 1rem;
128 | }
129 | .ui.large.rail {
130 | font-size: 1.14285714rem;
131 | }
132 | .ui.big.rail {
133 | font-size: 1.28571429rem;
134 | }
135 | .ui.huge.rail {
136 | font-size: 1.42857143rem;
137 | }
138 | .ui.massive.rail {
139 | font-size: 1.71428571rem;
140 | }
141 |
142 |
143 | /*******************************
144 | Theme Overrides
145 | *******************************/
146 |
147 |
148 |
149 | /*******************************
150 | Site Overrides
151 | *******************************/
152 |
153 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/rail.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Rail
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.rail{position:absolute;top:0;width:300px;height:100%}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.dividing.rail{width:302.5px}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid rgba(34,36,38,.15)}.ui.right.dividing.rail{border-left:1px solid rgba(34,36,38,.15);padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.rail{width:calc(300px + 1em)}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.rail{width:calc(300px + .5em)}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}.ui.mini.rail{font-size:.78571429rem}.ui.tiny.rail{font-size:.85714286rem}.ui.small.rail{font-size:.92857143rem}.ui.rail{font-size:1rem}.ui.large.rail{font-size:1.14285714rem}.ui.big.rail{font-size:1.28571429rem}.ui.huge.rail{font-size:1.42857143rem}.ui.massive.rail{font-size:1.71428571rem}
--------------------------------------------------------------------------------
/src/semantic-ui/components/rating.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Rating
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 | !function(e,n,t,i){"use strict";n="undefined"!=typeof n&&n.Math==Math?n:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),e.fn.rating=function(n){var t,a=e(this),o=a.selector||"",r=(new Date).getTime(),s=[],l=arguments[0],c="string"==typeof l,u=[].slice.call(arguments,1);return a.each(function(){var d,g,m=e.isPlainObject(n)?e.extend(!0,{},e.fn.rating.settings,n):e.extend({},e.fn.rating.settings),f=m.namespace,v=m.className,p=m.metadata,b=m.selector,h=(m.error,"."+f),y="module-"+f,x=this,R=e(this).data(y),C=e(this),T=C.find(b.icon);g={initialize:function(){g.verbose("Initializing rating module",m),0===T.length&&g.setup.layout(),m.interactive?g.enable():g.disable(),g.set.initialLoad(),g.set.rating(g.get.initialRating()),g.remove.initialLoad(),g.instantiate()},instantiate:function(){g.verbose("Instantiating module",m),R=g,C.data(y,g)},destroy:function(){g.verbose("Destroying previous instance",R),g.remove.events(),C.removeData(y)},refresh:function(){T=C.find(b.icon)},setup:{layout:function(){var n=g.get.maxRating(),t=e.fn.rating.settings.templates.icon(n);g.debug("Generating icon html dynamically"),C.html(t),g.refresh()}},event:{mouseenter:function(){var n=e(this);n.nextAll().removeClass(v.selected),C.addClass(v.selected),n.addClass(v.selected).prevAll().addClass(v.selected)},mouseleave:function(){C.removeClass(v.selected),T.removeClass(v.selected)},click:function(){var n=e(this),t=g.get.rating(),i=T.index(n)+1,a="auto"==m.clearable?1===T.length:m.clearable;a&&t==i?g.clearRating():g.set.rating(i)}},clearRating:function(){g.debug("Clearing current rating"),g.set.rating(0)},bind:{events:function(){g.verbose("Binding events"),C.on("mouseenter"+h,b.icon,g.event.mouseenter).on("mouseleave"+h,b.icon,g.event.mouseleave).on("click"+h,b.icon,g.event.click)}},remove:{events:function(){g.verbose("Removing events"),C.off(h)},initialLoad:function(){d=!1}},enable:function(){g.debug("Setting rating to interactive mode"),g.bind.events(),C.removeClass(v.disabled)},disable:function(){g.debug("Setting rating to read-only mode"),g.remove.events(),C.addClass(v.disabled)},is:{initialLoad:function(){return d}},get:{initialRating:function(){return C.data(p.rating)!==i?(C.removeData(p.rating),C.data(p.rating)):m.initialRating},maxRating:function(){return C.data(p.maxRating)!==i?(C.removeData(p.maxRating),C.data(p.maxRating)):m.maxRating},rating:function(){var e=T.filter("."+v.active).length;return g.verbose("Current rating retrieved",e),e}},set:{rating:function(e){var n=e-1>=0?e-1:0,t=T.eq(n);C.removeClass(v.selected),T.removeClass(v.selected).removeClass(v.active),e>0&&(g.verbose("Setting current rating to",e),t.prevAll().addBack().addClass(v.active)),g.is.initialLoad()||m.onRate.call(x,e)},initialLoad:function(){d=!0}},setting:function(n,t){if(g.debug("Changing setting",n,t),e.isPlainObject(n))e.extend(!0,m,n);else{if(t===i)return m[n];e.isPlainObject(m[n])?e.extend(!0,m[n],t):m[n]=t}},internal:function(n,t){if(e.isPlainObject(n))e.extend(!0,g,n);else{if(t===i)return g[n];g[n]=t}},debug:function(){!m.silent&&m.debug&&(m.performance?g.performance.log(arguments):(g.debug=Function.prototype.bind.call(console.info,console,m.name+":"),g.debug.apply(console,arguments)))},verbose:function(){!m.silent&&m.verbose&&m.debug&&(m.performance?g.performance.log(arguments):(g.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),g.verbose.apply(console,arguments)))},error:function(){m.silent||(g.error=Function.prototype.bind.call(console.error,console,m.name+":"),g.error.apply(console,arguments))},performance:{log:function(e){var n,t,i;m.performance&&(n=(new Date).getTime(),i=r||n,t=n-i,r=n,s.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:x,"Execution Time":t})),clearTimeout(g.performance.timer),g.performance.timer=setTimeout(g.performance.display,500)},display:function(){var n=m.name+":",t=0;r=!1,clearTimeout(g.performance.timer),e.each(s,function(e,n){t+=n["Execution Time"]}),n+=" "+t+"ms",o&&(n+=" '"+o+"'"),a.length>1&&(n+=" ("+a.length+")"),(console.group!==i||console.table!==i)&&s.length>0&&(console.groupCollapsed(n),console.table?console.table(s):e.each(s,function(e,n){console.log(n.Name+": "+n["Execution Time"]+"ms")}),console.groupEnd()),s=[]}},invoke:function(n,a,o){var r,s,l,c=R;return a=a||u,o=x||o,"string"==typeof n&&c!==i&&(n=n.split(/[\. ]/),r=n.length-1,e.each(n,function(t,a){var o=t!=r?a+n[t+1].charAt(0).toUpperCase()+n[t+1].slice(1):n;if(e.isPlainObject(c[o])&&t!=r)c=c[o];else{if(c[o]!==i)return s=c[o],!1;if(!e.isPlainObject(c[a])||t==r)return c[a]!==i?(s=c[a],!1):!1;c=c[a]}})),e.isFunction(s)?l=s.apply(o,a):s!==i&&(l=s),e.isArray(t)?t.push(l):t!==i?t=[t,l]:l!==i&&(t=l),s}},c?(R===i&&g.initialize(),g.invoke(l)):(R!==i&&R.invoke("destroy"),g.initialize())}),t!==i?t:this},e.fn.rating.settings={name:"Rating",namespace:"rating",slent:!1,debug:!1,verbose:!1,performance:!0,initialRating:0,interactive:!0,maxRating:4,clearable:"auto",fireOnInit:!1,onRate:function(e){},error:{method:"The method you called is not defined",noMaximum:"No maximum rating specified. Cannot generate HTML automatically"},metadata:{rating:"rating",maxRating:"maxRating"},className:{active:"active",disabled:"disabled",selected:"selected",loading:"loading"},selector:{icon:".icon"},templates:{icon:function(e){for(var n=1,t="";e>=n;)t+=' ',n++;return t}}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/src/semantic-ui/components/reset.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Reset
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */*,:after,:before{box-sizing:inherit}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}input[type=text],input[type=email],input[type=search],input[type=password]{-webkit-appearance:none;-moz-appearance:none}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
--------------------------------------------------------------------------------
/src/semantic-ui/components/reveal.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Reveal
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.reveal{display:inherit;position:relative!important;font-size:0!important}.ui.reveal>.visible.content{position:absolute!important;top:0!important;left:0!important;z-index:3!important;-webkit-transition:all .5s ease .1s;transition:all .5s ease .1s}.ui.reveal>.hidden.content{position:relative!important;z-index:2!important}.ui.active.reveal .visible.content,.ui.reveal:hover .visible.content{z-index:4!important}.ui.slide.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.slide.reveal>.content{display:block;width:100%;float:left;margin:0;-webkit-transition:-webkit-transform .5s ease .1s;transition:-webkit-transform .5s ease .1s;transition:transform .5s ease .1s;transition:transform .5s ease .1s,-webkit-transform .5s ease .1s}.ui.slide.reveal>.visible.content{position:relative!important}.ui.slide.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important;-webkit-transform:translateX(100%)!important;transform:translateX(100%)!important}.ui.slide.active.reveal>.visible.content,.ui.slide.reveal:hover>.visible.content{-webkit-transform:translateX(-100%)!important;transform:translateX(-100%)!important}.ui.slide.active.reveal>.hidden.content,.ui.slide.reveal:hover>.hidden.content,.ui.slide.right.reveal>.visible.content{-webkit-transform:translateX(0)!important;transform:translateX(0)!important}.ui.slide.right.reveal>.hidden.content{-webkit-transform:translateX(-100%)!important;transform:translateX(-100%)!important}.ui.slide.right.active.reveal>.visible.content,.ui.slide.right.reveal:hover>.visible.content{-webkit-transform:translateX(100%)!important;transform:translateX(100%)!important}.ui.slide.right.active.reveal>.hidden.content,.ui.slide.right.reveal:hover>.hidden.content{-webkit-transform:translateX(0)!important;transform:translateX(0)!important}.ui.slide.up.reveal>.hidden.content{-webkit-transform:translateY(100%)!important;transform:translateY(100%)!important}.ui.slide.up.active.reveal>.visible.content,.ui.slide.up.reveal:hover>.visible.content{-webkit-transform:translateY(-100%)!important;transform:translateY(-100%)!important}.ui.slide.up.active.reveal>.hidden.content,.ui.slide.up.reveal:hover>.hidden.content{-webkit-transform:translateY(0)!important;transform:translateY(0)!important}.ui.slide.down.reveal>.hidden.content{-webkit-transform:translateY(-100%)!important;transform:translateY(-100%)!important}.ui.slide.down.active.reveal>.visible.content,.ui.slide.down.reveal:hover>.visible.content{-webkit-transform:translateY(100%)!important;transform:translateY(100%)!important}.ui.slide.down.active.reveal>.hidden.content,.ui.slide.down.reveal:hover>.hidden.content{-webkit-transform:translateY(0)!important;transform:translateY(0)!important}.ui.fade.reveal>.visible.content{opacity:1}.ui.fade.active.reveal>.visible.content,.ui.fade.reveal:hover>.visible.content{opacity:0}.ui.move.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.move.reveal>.content{display:block;float:left;margin:0;-webkit-transition:-webkit-transform .5s cubic-bezier(.175,.885,.32,1) .1s;transition:-webkit-transform .5s cubic-bezier(.175,.885,.32,1) .1s;transition:transform .5s cubic-bezier(.175,.885,.32,1) .1s;transition:transform .5s cubic-bezier(.175,.885,.32,1) .1s,-webkit-transform .5s cubic-bezier(.175,.885,.32,1) .1s}.ui.move.reveal>.visible.content{position:relative!important}.ui.move.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important}.ui.move.active.reveal>.visible.content,.ui.move.reveal:hover>.visible.content{-webkit-transform:translateX(-100%)!important;transform:translateX(-100%)!important}.ui.move.right.active.reveal>.visible.content,.ui.move.right.reveal:hover>.visible.content{-webkit-transform:translateX(100%)!important;transform:translateX(100%)!important}.ui.move.up.active.reveal>.visible.content,.ui.move.up.reveal:hover>.visible.content{-webkit-transform:translateY(-100%)!important;transform:translateY(-100%)!important}.ui.move.down.active.reveal>.visible.content,.ui.move.down.reveal:hover>.visible.content{-webkit-transform:translateY(100%)!important;transform:translateY(100%)!important}.ui.rotate.reveal>.visible.content{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transform:rotate(0);transform:rotate(0)}.ui.rotate.reveal>.visible.content,.ui.rotate.right.reveal>.visible.content{-webkit-transform-origin:bottom right;transform-origin:bottom right}.ui.rotate.active.reveal>.visible.content,.ui.rotate.reveal:hover>.visible.content,.ui.rotate.right.active.reveal>.visible.content,.ui.rotate.right.reveal:hover>.visible.content{-webkit-transform:rotate(110deg);transform:rotate(110deg)}.ui.rotate.left.reveal>.visible.content{-webkit-transform-origin:bottom left;transform-origin:bottom left}.ui.rotate.left.active.reveal>.visible.content,.ui.rotate.left.reveal:hover>.visible.content{-webkit-transform:rotate(-110deg);transform:rotate(-110deg)}.ui.disabled.reveal:hover>.visible.visible.content{position:static!important;display:block!important;opacity:1!important;top:0!important;left:0!important;right:auto!important;bottom:auto!important;-webkit-transform:none!important;transform:none!important}.ui.disabled.reveal:hover>.hidden.hidden.content{display:none!important}.ui.visible.reveal{overflow:visible}.ui.instant.reveal>.content{-webkit-transition-delay:0s!important;transition-delay:0s!important}.ui.reveal>.content{font-size:1rem!important}
--------------------------------------------------------------------------------
/src/semantic-ui/components/shape.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Shape
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | Shape
14 | *******************************/
15 |
16 | .ui.shape {
17 | position: relative;
18 | vertical-align: top;
19 | display: inline-block;
20 | -webkit-perspective: 2000px;
21 | perspective: 2000px;
22 | -webkit-transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
23 | transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
24 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
25 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
26 | }
27 | .ui.shape .sides {
28 | -webkit-transform-style: preserve-3d;
29 | transform-style: preserve-3d;
30 | }
31 | .ui.shape .side {
32 | opacity: 1;
33 | width: 100%;
34 | margin: 0em !important;
35 | -webkit-backface-visibility: hidden;
36 | backface-visibility: hidden;
37 | }
38 | .ui.shape .side {
39 | display: none;
40 | }
41 | .ui.shape .side * {
42 | -webkit-backface-visibility: visible !important;
43 | backface-visibility: visible !important;
44 | }
45 |
46 |
47 | /*******************************
48 | Types
49 | *******************************/
50 |
51 | .ui.cube.shape .side {
52 | min-width: 15em;
53 | height: 15em;
54 | padding: 2em;
55 | background-color: #E6E6E6;
56 | color: rgba(0, 0, 0, 0.87);
57 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
58 | }
59 | .ui.cube.shape .side > .content {
60 | width: 100%;
61 | height: 100%;
62 | display: table;
63 | text-align: center;
64 | -webkit-user-select: text;
65 | -moz-user-select: text;
66 | -ms-user-select: text;
67 | user-select: text;
68 | }
69 | .ui.cube.shape .side > .content > div {
70 | display: table-cell;
71 | vertical-align: middle;
72 | font-size: 2em;
73 | }
74 |
75 |
76 | /*******************************
77 | Variations
78 | *******************************/
79 |
80 | .ui.text.shape.animating .sides {
81 | position: static;
82 | }
83 | .ui.text.shape .side {
84 | white-space: nowrap;
85 | }
86 | .ui.text.shape .side > * {
87 | white-space: normal;
88 | }
89 |
90 |
91 | /*******************************
92 | States
93 | *******************************/
94 |
95 |
96 | /*--------------
97 | Loading
98 | ---------------*/
99 |
100 | .ui.loading.shape {
101 | position: absolute;
102 | top: -9999px;
103 | left: -9999px;
104 | }
105 |
106 | /*--------------
107 | Animating
108 | ---------------*/
109 |
110 | .ui.shape .animating.side {
111 | position: absolute;
112 | top: 0px;
113 | left: 0px;
114 | display: block;
115 | z-index: 100;
116 | }
117 | .ui.shape .hidden.side {
118 | opacity: 0.6;
119 | }
120 |
121 | /*--------------
122 | CSS
123 | ---------------*/
124 |
125 | .ui.shape.animating .sides {
126 | position: absolute;
127 | }
128 | .ui.shape.animating .sides {
129 | -webkit-transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
130 | transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
131 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
132 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
133 | }
134 | .ui.shape.animating .side {
135 | -webkit-transition: opacity 0.6s ease-in-out;
136 | transition: opacity 0.6s ease-in-out;
137 | }
138 |
139 | /*--------------
140 | Active
141 | ---------------*/
142 |
143 | .ui.shape .active.side {
144 | display: block;
145 | }
146 |
147 |
148 | /*******************************
149 | Theme Overrides
150 | *******************************/
151 |
152 |
153 |
154 | /*******************************
155 | User Overrides
156 | *******************************/
157 |
158 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/shape.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Shape
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.shape{position:relative;vertical-align:top;display:inline-block;-webkit-perspective:2000px;perspective:2000px;-webkit-transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out}.ui.shape .sides{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none}.ui.shape .side *{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#E6E6E6;color:rgba(0,0,0,.87);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;display:block;z-index:100}.ui.shape .hidden.side{opacity:.6}.ui.shape.animating .sides{position:absolute;-webkit-transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block}
--------------------------------------------------------------------------------
/src/semantic-ui/components/site.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Site
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | Page
14 | *******************************/
15 |
16 | @import url('https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin');
17 | html,
18 | body {
19 | height: 100%;
20 | }
21 | html {
22 | font-size: 14px;
23 | }
24 | body {
25 | margin: 0px;
26 | padding: 0px;
27 | overflow-x: hidden;
28 | min-width: 320px;
29 | background: #FFFFFF;
30 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
31 | font-size: 14px;
32 | line-height: 1.4285em;
33 | color: rgba(0, 0, 0, 0.87);
34 | font-smoothing: antialiased;
35 | }
36 |
37 |
38 | /*******************************
39 | Headers
40 | *******************************/
41 |
42 | h1,
43 | h2,
44 | h3,
45 | h4,
46 | h5 {
47 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
48 | line-height: 1.28571429em;
49 | margin: calc(2rem - 0.14285714em ) 0em 1rem;
50 | font-weight: bold;
51 | padding: 0em;
52 | }
53 | h1 {
54 | min-height: 1rem;
55 | font-size: 2rem;
56 | }
57 | h2 {
58 | font-size: 1.71428571rem;
59 | }
60 | h3 {
61 | font-size: 1.28571429rem;
62 | }
63 | h4 {
64 | font-size: 1.07142857rem;
65 | }
66 | h5 {
67 | font-size: 1rem;
68 | }
69 | h1:first-child,
70 | h2:first-child,
71 | h3:first-child,
72 | h4:first-child,
73 | h5:first-child {
74 | margin-top: 0em;
75 | }
76 | h1:last-child,
77 | h2:last-child,
78 | h3:last-child,
79 | h4:last-child,
80 | h5:last-child {
81 | margin-bottom: 0em;
82 | }
83 |
84 |
85 | /*******************************
86 | Text
87 | *******************************/
88 |
89 | p {
90 | margin: 0em 0em 1em;
91 | line-height: 1.4285em;
92 | }
93 | p:first-child {
94 | margin-top: 0em;
95 | }
96 | p:last-child {
97 | margin-bottom: 0em;
98 | }
99 |
100 | /*-------------------
101 | Links
102 | --------------------*/
103 |
104 | a {
105 | color: #4183C4;
106 | text-decoration: none;
107 | }
108 | a:hover {
109 | color: #1e70bf;
110 | text-decoration: none;
111 | }
112 |
113 |
114 | /*******************************
115 | Highlighting
116 | *******************************/
117 |
118 |
119 | /* Site */
120 | ::-webkit-selection {
121 | background-color: #CCE2FF;
122 | color: rgba(0, 0, 0, 0.87);
123 | }
124 | ::-moz-selection {
125 | background-color: #CCE2FF;
126 | color: rgba(0, 0, 0, 0.87);
127 | }
128 | ::selection {
129 | background-color: #CCE2FF;
130 | color: rgba(0, 0, 0, 0.87);
131 | }
132 |
133 | /* Form */
134 | textarea::-webkit-selection,
135 | input::-webkit-selection {
136 | background-color: rgba(100, 100, 100, 0.4);
137 | color: rgba(0, 0, 0, 0.87);
138 | }
139 | textarea::-moz-selection,
140 | input::-moz-selection {
141 | background-color: rgba(100, 100, 100, 0.4);
142 | color: rgba(0, 0, 0, 0.87);
143 | }
144 | textarea::selection,
145 | input::selection {
146 | background-color: rgba(100, 100, 100, 0.4);
147 | color: rgba(0, 0, 0, 0.87);
148 | }
149 |
150 |
151 | /*******************************
152 | Global Overrides
153 | *******************************/
154 |
155 |
156 |
157 | /*******************************
158 | Site Overrides
159 | *******************************/
160 |
161 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/site.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Site
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin);body,html{height:100%}html{font-size:14px}body{margin:0;padding:0;overflow-x:hidden;min-width:320px;background:#FFF;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:14px;line-height:1.4285em;color:rgba(0,0,0,.87);font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;line-height:1.28571429em;margin:calc(2rem - .14285714em) 0 1rem;font-weight:700;padding:0}h1{min-height:1rem;font-size:2rem}h2{font-size:1.71428571rem}h3{font-size:1.28571429rem}h4{font-size:1.07142857rem}h5{font-size:1rem}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,p:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,p:last-child{margin-bottom:0}p{margin:0 0 1em;line-height:1.4285em}a{color:#4183C4;text-decoration:none}a:hover{color:#1e70bf;text-decoration:none}::-webkit-selection{background-color:#CCE2FF;color:rgba(0,0,0,.87)}::-moz-selection{background-color:#CCE2FF;color:rgba(0,0,0,.87)}::selection{background-color:#CCE2FF;color:rgba(0,0,0,.87)}input::-webkit-selection,textarea::-webkit-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::-moz-selection,textarea::-moz-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::selection,textarea::selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}
--------------------------------------------------------------------------------
/src/semantic-ui/components/sticky.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Sticky
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | Sticky
14 | *******************************/
15 |
16 | .ui.sticky {
17 | position: static;
18 | -webkit-transition: none;
19 | transition: none;
20 | z-index: 800;
21 | }
22 |
23 |
24 | /*******************************
25 | States
26 | *******************************/
27 |
28 |
29 | /* Bound */
30 | .ui.sticky.bound {
31 | position: absolute;
32 | left: auto;
33 | right: auto;
34 | }
35 |
36 | /* Fixed */
37 | .ui.sticky.fixed {
38 | position: fixed;
39 | left: auto;
40 | right: auto;
41 | }
42 |
43 | /* Bound/Fixed Position */
44 | .ui.sticky.bound.top,
45 | .ui.sticky.fixed.top {
46 | top: 0px;
47 | bottom: auto;
48 | }
49 | .ui.sticky.bound.bottom,
50 | .ui.sticky.fixed.bottom {
51 | top: auto;
52 | bottom: 0px;
53 | }
54 |
55 |
56 | /*******************************
57 | Types
58 | *******************************/
59 |
60 | .ui.native.sticky {
61 | position: -webkit-sticky;
62 | position: -moz-sticky;
63 | position: -ms-sticky;
64 | position: -o-sticky;
65 | position: sticky;
66 | }
67 |
68 |
69 | /*******************************
70 | Theme Overrides
71 | *******************************/
72 |
73 |
74 |
75 | /*******************************
76 | Site Overrides
77 | *******************************/
78 |
79 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/sticky.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Sticky
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.sticky{position:static;-webkit-transition:none;transition:none;z-index:800}.ui.sticky.bound{position:absolute;left:auto;right:auto}.ui.sticky.fixed{position:fixed;left:auto;right:auto}.ui.sticky.bound.top,.ui.sticky.fixed.top{top:0;bottom:auto}.ui.sticky.bound.bottom,.ui.sticky.fixed.bottom{top:auto;bottom:0}.ui.native.sticky{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky}
--------------------------------------------------------------------------------
/src/semantic-ui/components/tab.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Tab
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */
10 |
11 |
12 | /*******************************
13 | UI Tabs
14 | *******************************/
15 |
16 | .ui.tab {
17 | display: none;
18 | }
19 |
20 |
21 | /*******************************
22 | States
23 | *******************************/
24 |
25 |
26 | /*--------------------
27 | Active
28 | ---------------------*/
29 |
30 | .ui.tab.active,
31 | .ui.tab.open {
32 | display: block;
33 | }
34 |
35 | /*--------------------
36 | Loading
37 | ---------------------*/
38 |
39 | .ui.tab.loading {
40 | position: relative;
41 | overflow: hidden;
42 | display: block;
43 | min-height: 250px;
44 | }
45 | .ui.tab.loading * {
46 | position: relative !important;
47 | left: -10000px !important;
48 | }
49 | .ui.tab.loading:before,
50 | .ui.tab.loading.segment:before {
51 | position: absolute;
52 | content: '';
53 | top: 100px;
54 | left: 50%;
55 | margin: -1.25em 0em 0em -1.25em;
56 | width: 2.5em;
57 | height: 2.5em;
58 | border-radius: 500rem;
59 | border: 0.2em solid rgba(0, 0, 0, 0.1);
60 | }
61 | .ui.tab.loading:after,
62 | .ui.tab.loading.segment:after {
63 | position: absolute;
64 | content: '';
65 | top: 100px;
66 | left: 50%;
67 | margin: -1.25em 0em 0em -1.25em;
68 | width: 2.5em;
69 | height: 2.5em;
70 | -webkit-animation: button-spin 0.6s linear;
71 | animation: button-spin 0.6s linear;
72 | -webkit-animation-iteration-count: infinite;
73 | animation-iteration-count: infinite;
74 | border-radius: 500rem;
75 | border-color: #767676 transparent transparent;
76 | border-style: solid;
77 | border-width: 0.2em;
78 | box-shadow: 0px 0px 0px 1px transparent;
79 | }
80 |
81 |
82 | /*******************************
83 | Tab Overrides
84 | *******************************/
85 |
86 |
87 |
88 | /*******************************
89 | User Overrides
90 | *******************************/
91 |
92 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/tab.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.2.10 - Tab
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Released under the MIT license
7 | * http://opensource.org/licenses/MIT
8 | *
9 | */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}
--------------------------------------------------------------------------------
/src/semantic-ui/components/video.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Video
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Video
15 | *******************************/
16 |
17 | .ui.video {
18 | background-color: #dddddd;
19 | position: relative;
20 | max-width: 100%;
21 | padding-bottom: 56.25%;
22 | height: 0px;
23 | overflow: hidden;
24 | }
25 |
26 | /*--------------
27 | Content
28 | ---------------*/
29 |
30 |
31 | /* Placeholder Image */
32 | .ui.video .placeholder {
33 | background-color: #333333;
34 | }
35 |
36 | /* Play Icon Overlay */
37 | .ui.video .play {
38 | cursor: pointer;
39 | position: absolute;
40 | top: 0px;
41 | left: 0px;
42 | z-index: 10;
43 | width: 100%;
44 | height: 100%;
45 | background: transparent;
46 | -webkit-transition: background 0.2s ease;
47 | transition: background 0.2s ease;
48 | }
49 | .ui.video .play.icon:before {
50 | position: absolute;
51 | top: 50%;
52 | left: 50%;
53 | z-index: 11;
54 | -webkit-transform: translateX(-50%) translateY(-50%);
55 | -ms-transform: translateX(-50%) translateY(-50%);
56 | transform: translateX(-50%) translateY(-50%);
57 | color: rgba(255, 255, 255, 0.7);
58 | font-size: 7rem;
59 | text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.15);
60 | -webkit-transition: color 0.2s ease;
61 | transition: color 0.2s ease;
62 | }
63 | .ui.video .placeholder {
64 | position: absolute;
65 | top: 0px;
66 | left: 0px;
67 | display: block;
68 | width: 100%;
69 | height: 100%;
70 | }
71 |
72 | /* IFrame Embed */
73 | .ui.video .embed iframe,
74 | .ui.video .embed embed,
75 | .ui.video .embed object {
76 | position: absolute;
77 | border: none;
78 | width: 100%;
79 | height: 100%;
80 | top: 0px;
81 | left: 0px;
82 | margin: 0em;
83 | padding: 0em;
84 | }
85 |
86 |
87 | /*******************************
88 | States
89 | *******************************/
90 |
91 |
92 | /*--------------
93 | Hover
94 | ---------------*/
95 |
96 | .ui.video .play:hover {
97 | background: rgba(0, 0, 0, 0);
98 | }
99 | .ui.video .play:hover:before {
100 | color: #ffffff;
101 | }
102 |
103 | /*--------------
104 | Active
105 | ---------------*/
106 |
107 | .ui.active.video .play,
108 | .ui.active.video .placeholder {
109 | display: none;
110 | }
111 | .ui.active.video .embed {
112 | display: inline;
113 | }
114 |
115 |
116 | /*******************************
117 | Video Overrides
118 | *******************************/
119 |
120 |
121 |
122 | /*******************************
123 | Site Overrides
124 | *******************************/
125 |
126 |
--------------------------------------------------------------------------------
/src/semantic-ui/components/video.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Video
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.video{background-color:#ddd;position:relative;max-width:100%;padding-bottom:56.25%;height:0;overflow:hidden}.ui.video .placeholder{background-color:#333}.ui.video .play{cursor:pointer;position:absolute;top:0;left:0;z-index:10;width:100%;height:100%;background:0 0;-webkit-transition:background .2s ease;transition:background .2s ease}.ui.video .play.icon:before{position:absolute;top:50%;left:50%;z-index:11;-webkit-transform:translateX(-50%)translateY(-50%);-ms-transform:translateX(-50%)translateY(-50%);transform:translateX(-50%)translateY(-50%);color:rgba(255,255,255,.7);font-size:7rem;text-shadow:2px 2px 0 rgba(0,0,0,.15);-webkit-transition:color .2s ease;transition:color .2s ease}.ui.video .placeholder{position:absolute;top:0;left:0;display:block;width:100%;height:100%}.ui.video .embed embed,.ui.video .embed iframe,.ui.video .embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.video .play:hover{background:0 0}.ui.video .play:hover:before{color:#fff}.ui.active.video .placeholder,.ui.active.video .play{display:none}.ui.active.video .embed{display:inline}
--------------------------------------------------------------------------------
/src/semantic-ui/components/visit.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Visit
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | !function(e,t,i,n){"use strict";e.visit=e.fn.visit=function(i){var o,r=e(e.isFunction(this)?t:this),s=r.selector||"",a=(new Date).getTime(),c=[],u=arguments[0],l="string"==typeof u,d=[].slice.call(arguments,1);return r.each(function(){var g,m=e.isPlainObject(i)?e.extend(!0,{},e.fn.visit.settings,i):e.extend({},e.fn.visit.settings),f=m.error,p=m.namespace,v=p+"-module",h=e(this),b=e(),y=this,k=h.data(v);g={initialize:function(){m.count?g.store(m.key.count,m.count):m.id?g.add.id(m.id):m.increment&&"increment"!==l&&g.increment(),g.add.display(h),g.instantiate()},instantiate:function(){g.verbose("Storing instance of visit module",g),k=g,h.data(v,g)},destroy:function(){g.verbose("Destroying instance"),h.removeData(v)},increment:function(e){var t=g.get.count(),i=+t+1;e?g.add.id(e):(i>m.limit&&!m.surpass&&(i=m.limit),g.debug("Incrementing visits",i),g.store(m.key.count,i))},decrement:function(e){var t=g.get.count(),i=+t-1;e?g.remove.id(e):(g.debug("Removing visit"),g.store(m.key.count,i))},get:{count:function(){return+g.retrieve(m.key.count)||0},idCount:function(e){return e=e||g.get.ids(),e.length},ids:function(e){var t=[];return e=e||g.retrieve(m.key.ids),"string"==typeof e&&(t=e.split(m.delimiter)),g.verbose("Found visited ID list",t),t},storageOptions:function(e){var t={};return m.expires&&(t.expires=m.expires),m.domain&&(t.domain=m.domain),m.path&&(t.path=m.path),t}},has:{visited:function(t,i){var o=!1;return i=i||g.get.ids(),t!==n&&i&&e.each(i,function(e,i){i==t&&(o=!0)}),o}},set:{count:function(e){g.store(m.key.count,e)},ids:function(e){g.store(m.key.ids,e)}},reset:function(){g.store(m.key.count,0),g.store(m.key.ids,null)},add:{id:function(e){var t=g.retrieve(m.key.ids),i=t===n||""===t?e:t+m.delimiter+e;g.has.visited(e)?g.debug("Unique content already visited, not adding visit",e,t):e===n?g.debug("ID is not defined"):(g.debug("Adding visit to unique content",e),g.store(m.key.ids,i)),g.set.count(g.get.idCount())},display:function(t){var i=e(t);i.length>0&&!e.isWindow(i[0])&&(g.debug("Updating visit count for element",i),b=b.length>0?b.add(i):i)}},remove:{id:function(t){var i=g.get.ids(),o=[];t!==n&&i!==n&&(g.debug("Removing visit to unique content",t,i),e.each(i,function(e,i){i!==t&&o.push(i)}),o=o.join(m.delimiter),g.store(m.key.ids,o)),g.set.count(g.get.idCount())}},check:{limit:function(e){e=e||g.get.count(),m.limit&&(e>=m.limit&&(g.debug("Pages viewed exceeded limit, firing callback",e,m.limit),m.onLimit.call(y,e)),g.debug("Limit not reached",e,m.limit),m.onChange.call(y,e)),g.update.display(e)}},update:{display:function(e){e=e||g.get.count(),b.length>0&&(g.debug("Updating displayed view count",b),b.html(e))}},store:function(i,o){var r=g.get.storageOptions(o);if("localstorage"==m.storageMethod&&t.localStorage!==n)t.localStorage.setItem(i,o),g.debug("Value stored using local storage",i,o);else{if(e.cookie===n)return void g.error(f.noCookieStorage);e.cookie(i,o,r),g.debug("Value stored using cookie",i,o,r)}i==m.key.count&&g.check.limit(o)},retrieve:function(i,o){var r;return"localstorage"==m.storageMethod&&t.localStorage!==n?r=t.localStorage.getItem(i):e.cookie!==n?r=e.cookie(i):g.error(f.noCookieStorage),("undefined"==r||"null"==r||r===n||null===r)&&(r=n),r},setting:function(t,i){if(e.isPlainObject(t))e.extend(!0,m,t);else{if(i===n)return m[t];m[t]=i}},internal:function(t,i){return g.debug("Changing internal",t,i),i===n?g[t]:void(e.isPlainObject(t)?e.extend(!0,g,t):g[t]=i)},debug:function(){m.debug&&(m.performance?g.performance.log(arguments):(g.debug=Function.prototype.bind.call(console.info,console,m.name+":"),g.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?g.performance.log(arguments):(g.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),g.verbose.apply(console,arguments)))},error:function(){g.error=Function.prototype.bind.call(console.error,console,m.name+":"),g.error.apply(console,arguments)},performance:{log:function(e){var t,i,n;m.performance&&(t=(new Date).getTime(),n=a||t,i=t-n,a=t,c.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:y,"Execution Time":i})),clearTimeout(g.performance.timer),g.performance.timer=setTimeout(g.performance.display,500)},display:function(){var t=m.name+":",i=0;a=!1,clearTimeout(g.performance.timer),e.each(c,function(e,t){i+=t["Execution Time"]}),t+=" "+i+"ms",s&&(t+=" '"+s+"'"),r.length>1&&(t+=" ("+r.length+")"),(console.group!==n||console.table!==n)&&c.length>0&&(console.groupCollapsed(t),console.table?console.table(c):e.each(c,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),c=[]}},invoke:function(t,i,r){var s,a,c,u=k;return i=i||d,r=y||r,"string"==typeof t&&u!==n&&(t=t.split(/[\. ]/),s=t.length-1,e.each(t,function(i,o){var r=i!=s?o+t[i+1].charAt(0).toUpperCase()+t[i+1].slice(1):t;if(e.isPlainObject(u[r])&&i!=s)u=u[r];else{if(u[r]!==n)return a=u[r],!1;if(!e.isPlainObject(u[o])||i==s)return u[o]!==n?(a=u[o],!1):!1;u=u[o]}})),e.isFunction(a)?c=a.apply(r,i):a!==n&&(c=a),e.isArray(o)?o.push(c):o!==n?o=[o,c]:c!==n&&(o=c),a}},l?(k===n&&g.initialize(),g.invoke(u)):(k!==n&&k.invoke("destroy"),g.initialize())}),o!==n?o:this},e.fn.visit.settings={name:"Visit",debug:!1,verbose:!1,performance:!0,namespace:"visit",increment:!1,surpass:!1,count:!1,limit:!1,delimiter:"&",storageMethod:"localstorage",key:{count:"visit-count",ids:"visit-ids"},expires:30,domain:!1,path:"/",onLimit:function(){},onChange:function(){},error:{method:"The method you called is not defined",missingPersist:"Using the persist setting requires the inclusion of PersistJS",noCookieStorage:"The default storage cookie requires $.cookie to be included."}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/src/semantic-ui/package.js:
--------------------------------------------------------------------------------
1 | var
2 | where = 'client' // Adds files only to the client
3 | ;
4 |
5 | Package.describe({
6 | name : 'semantic:ui-css',
7 | summary : 'Semantic UI - CSS Release of Semantic UI',
8 | version : '2.2.10',
9 | git : 'git://github.com/Semantic-Org/Semantic-UI-CSS.git',
10 | });
11 |
12 | Package.onUse(function(api) {
13 |
14 | api.versionsFrom('1.0');
15 |
16 | api.use('jquery', 'client');
17 |
18 | api.addFiles([
19 | // icons
20 | 'themes/default/assets/fonts/icons.eot',
21 | 'themes/default/assets/fonts/icons.svg',
22 | 'themes/default/assets/fonts/icons.ttf',
23 | 'themes/default/assets/fonts/icons.woff',
24 | 'themes/default/assets/fonts/icons.woff2',
25 |
26 | // flags
27 | 'themes/default/assets/images/flags.png',
28 |
29 | // release
30 | 'semantic.css',
31 | 'semantic.js'
32 | ], 'client');
33 |
34 | });
35 |
--------------------------------------------------------------------------------
/src/semantic-ui/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "semantic-ui-css",
3 | "version": "2.2.10",
4 | "title": "Semantic UI",
5 | "description": "CSS Only distribution of Semantic UI",
6 | "homepage": "http://www.semantic-ui.com",
7 | "author": "Jack Lukic ",
8 | "license": "MIT",
9 | "main": "semantic.js",
10 | "repository": {
11 | "type": "git",
12 | "url": "git://github.com/Semantic-Org/Semantic-UI-CSS.git"
13 | },
14 | "bugs": {
15 | "url": "https://github.com/Semantic-Org/Semantic-UI/issues"
16 | },
17 | "dependencies": {
18 | "jquery": "x.*"
19 | }
20 | }
--------------------------------------------------------------------------------
/src/semantic-ui/themes/default/assets/fonts/icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/semantic-ui/themes/default/assets/fonts/icons.eot
--------------------------------------------------------------------------------
/src/semantic-ui/themes/default/assets/fonts/icons.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/semantic-ui/themes/default/assets/fonts/icons.otf
--------------------------------------------------------------------------------
/src/semantic-ui/themes/default/assets/fonts/icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/semantic-ui/themes/default/assets/fonts/icons.ttf
--------------------------------------------------------------------------------
/src/semantic-ui/themes/default/assets/fonts/icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/semantic-ui/themes/default/assets/fonts/icons.woff
--------------------------------------------------------------------------------
/src/semantic-ui/themes/default/assets/fonts/icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/semantic-ui/themes/default/assets/fonts/icons.woff2
--------------------------------------------------------------------------------
/src/semantic-ui/themes/default/assets/images/flags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/src/semantic-ui/themes/default/assets/images/flags.png
--------------------------------------------------------------------------------
/src/semvue/components/Accordion.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
24 |
25 |
--------------------------------------------------------------------------------
/src/semvue/components/Dimmer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
62 |
63 |
66 |
--------------------------------------------------------------------------------
/src/semvue/components/Dropdown.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ value.text }}
6 |
7 |
8 |
9 |
15 |
16 |
17 |
18 |
86 |
87 |
90 |
--------------------------------------------------------------------------------
/src/semvue/components/Embed.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
54 |
--------------------------------------------------------------------------------
/src/semvue/components/Modal.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 | Default Body
12 |
13 |
14 |
15 |
16 |
17 | Default Footer
18 |
19 |
20 |
21 |
22 |
23 |
83 |
--------------------------------------------------------------------------------
/src/semvue/components/Popup.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
61 |
62 |
65 |
66 |
--------------------------------------------------------------------------------
/src/semvue/components/Progress.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
169 |
--------------------------------------------------------------------------------
/src/semvue/components/Rating.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
57 |
--------------------------------------------------------------------------------
/src/semvue/index.js:
--------------------------------------------------------------------------------
1 | import Accordion from '@/semvue/components/Accordion';
2 | import Dimmer from '@/semvue/components/Dimmer';
3 | import Dropdown from '@/semvue/components/Dropdown';
4 | import SemVueEmbed from '@/semvue/components/Embed';
5 | import Modal from '@/semvue/components/Modal';
6 | import Popup from '@/semvue/components/Popup';
7 | import SemVueProgress from '@/semvue/components/Progress';
8 | import Rating from '@/semvue/components/Rating';
9 |
10 | export {
11 | Accordion,
12 | Dimmer,
13 | Dropdown,
14 | SemVueEmbed,
15 | Modal,
16 | Popup,
17 | SemVueProgress,
18 | Rating,
19 | };
20 |
--------------------------------------------------------------------------------
/src/semvue/mixins/Components.js:
--------------------------------------------------------------------------------
1 | export default {
2 | props: {
3 | id: {
4 | validator: prop => prop.length,
5 | required: true,
6 | },
7 | customClass: {
8 | type: String,
9 | default: '',
10 | },
11 | options: {
12 | type: Object,
13 | default() { return {}; },
14 | },
15 | },
16 | };
17 |
--------------------------------------------------------------------------------
/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/static/.gitkeep
--------------------------------------------------------------------------------
/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guilhermewaess/SemVue/117ceb6229369f683b6a121918a14ffe6c294d1c/static/favicon.ico
--------------------------------------------------------------------------------
/test/mocks/jqueryMock.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | const jqueryMock = {};
3 |
4 | jqueryMock.accordion = sinon.stub().returns(jqueryMock);
5 | jqueryMock.dimmer = sinon.stub().returns(jqueryMock);
6 | jqueryMock.dropdown = sinon.stub().returns(jqueryMock);
7 | jqueryMock.embed = sinon.stub().returns(jqueryMock);
8 | jqueryMock.modal = sinon.stub().returns(jqueryMock);
9 | jqueryMock.popup = sinon.stub().returns(jqueryMock);
10 | jqueryMock.progress = sinon.stub().returns(jqueryMock);
11 | jqueryMock.rating = sinon.stub().returns(jqueryMock);
12 |
13 | jqueryMock.reset = () => {
14 | jqueryMock.accordion.reset();
15 | jqueryMock.dimmer.reset();
16 | jqueryMock.dropdown.reset();
17 | jqueryMock.embed.reset();
18 | jqueryMock.modal.reset();
19 | jqueryMock.popup.reset();
20 | jqueryMock.progress.reset();
21 | jqueryMock.rating.reset();
22 | }
23 |
24 | module.exports = sinon.stub().returns(jqueryMock);
25 |
--------------------------------------------------------------------------------
/test/unit/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "mocha": true
4 | },
5 | "globals": {
6 | "expect": true,
7 | "sinon": true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/test/unit/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 |
3 | Vue.config.productionTip = false;
4 |
5 | // require all test files (files that ends with .spec.js)
6 | const testsContext = require.context('./specs', true, /\.spec$/);
7 | testsContext.keys().forEach(testsContext);
8 |
9 | // require all src files except main.js for coverage.
10 | // you can also change this to match only the subset of files that
11 | // you want coverage for.
12 | const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)*\/(?!semantic-ui*)/);
13 | srcContext.keys().forEach(srcContext);
14 |
--------------------------------------------------------------------------------
/test/unit/karma.conf.js:
--------------------------------------------------------------------------------
1 | // This is a karma config file. For more details see
2 | // http://karma-runner.github.io/0.13/config/configuration-file.html
3 | // we are also using it with karma-webpack
4 | // https://github.com/webpack/karma-webpack
5 |
6 | var webpackConfig = require('../../build/sitedemo/webpack.test.conf');
7 |
8 | module.exports = function (config) {
9 | config.set({
10 | // to run in additional browsers:
11 | // 1. install corresponding karma launcher
12 | // http://karma-runner.github.io/0.13/config/browsers.html
13 | // 2. add it to the `browsers` array below.
14 | browsers: ['PhantomJS'],
15 | frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'],
16 | reporters: ['spec', 'coverage'],
17 | files: ['./index.js'],
18 | preprocessors: {
19 | './index.js': ['webpack', 'sourcemap']
20 | },
21 | webpack: webpackConfig,
22 | webpackMiddleware: {
23 | noInfo: true,
24 | },
25 | coverageReporter: {
26 | dir: './coverage',
27 | reporters: [
28 | { type: 'lcov', subdir: '.' },
29 | { type: 'text-summary' },
30 | ]
31 | },
32 | });
33 | };
34 |
--------------------------------------------------------------------------------
/test/unit/specs/semvue/Accordion.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import { Accordion } from '@/semvue/index';
3 |
4 | let accordion;
5 | let validProps;
6 | const AccordionConstructor = Vue.extend(Accordion);
7 |
8 | describe('Accordion', () => {
9 | beforeEach((done) => {
10 | $().reset();
11 | validProps = { id: 'id' };
12 | accordion = new AccordionConstructor({ propsData: validProps }).$mount();
13 | done();
14 | });
15 | describe('when constructed', () => {
16 | beforeEach((done) => {
17 | sinon.spy(console, 'error');
18 | done();
19 | });
20 | afterEach((done) => {
21 | console.error.restore(); // eslint-disable-line
22 | done();
23 | });
24 | it('should throw exception when doesnt have id prop', (done) => {
25 | const invalidProps = {};
26 | new AccordionConstructor({ propsData: invalidProps }).$mount();
27 | expect(console.error).to.have.been.calledWithMatch('[Vue warn]: Missing required prop: "id"'); // eslint-disable-line
28 | done();
29 | });
30 | it('should have customClass as string empty', (done) => {
31 | expect(accordion.customClass).to.equal('');
32 | done();
33 | });
34 | it('should have options as object empty', (done) => {
35 | expect(accordion.options).to.deep.equal({});
36 | done();
37 | });
38 | });
39 |
40 | describe('when mounted', () => {
41 | beforeEach((done) => {
42 | accordion = new AccordionConstructor({ propsData: validProps });
43 | sinon.spy(accordion, 'startAccordion');
44 | accordion.$mount();
45 | done();
46 | });
47 | afterEach((done) => {
48 | accordion.startAccordion.restore();
49 | done();
50 | });
51 | it('should startAccordion', (done) => {
52 | accordion.$nextTick(() => {
53 | expect(accordion.startAccordion).to.have.callCount(1);
54 | done();
55 | });
56 | });
57 | });
58 |
59 | describe('when requested to start rating', () => {
60 | beforeEach((done) => {
61 | $().reset();
62 | accordion.startAccordion();
63 | done();
64 | });
65 | it('should call jquery selector with ratingId', (done) => {
66 | expect($).to.have.been.calledWith(`#${validProps.id}`);
67 | done();
68 | });
69 |
70 | describe('and have options sent on props', () => {
71 | beforeEach((done) => {
72 | $().reset();
73 | validProps.options = {
74 | optionToOverride: 'abc',
75 | };
76 | accordion = new AccordionConstructor({ propsData: validProps });
77 |
78 | accordion.startAccordion();
79 | done();
80 | });
81 | it('should configure rating with the new options', (done) => {
82 | const configurationCall = $().accordion.args[0][0];
83 | expect(configurationCall.optionToOverride).to.equal('abc');
84 | done();
85 | });
86 | });
87 | });
88 | });
89 |
--------------------------------------------------------------------------------
/test/unit/specs/semvue/Embed.spec.js:
--------------------------------------------------------------------------------
1 | /* eslint disable no-use-before-define: 0 */
2 | import Vue from 'vue';
3 | import { SemVueEmbed } from '@/semvue';
4 |
5 | let embed;
6 | let validProps;
7 | const EmbedConstructor = Vue.extend(SemVueEmbed);
8 |
9 | const helper = {
10 | createProgress() {
11 | embed = new EmbedConstructor({ propsData: validProps }).$mount();
12 | },
13 | };
14 |
15 | describe('Progress', () => {
16 | beforeEach((done) => {
17 | $().reset();
18 | validProps = { id: 'id', dataUrl: 'url' };
19 | helper.createProgress();
20 | done();
21 | });
22 | describe('when constructed', () => {
23 | beforeEach((done) => {
24 | sinon.spy(console, 'error');
25 | done();
26 | });
27 | afterEach((done) => {
28 | console.error.restore(); // eslint-disable-line
29 | done();
30 | });
31 | it('should throw exception when doesnt have id prop', (done) => {
32 | const invalidProps = { dataUrl: 'url' };
33 | new EmbedConstructor({ propsData: invalidProps }).$mount();
34 | expect(console.error).to.have.been.calledWithMatch('[Vue warn]: Missing required prop: "id"'); // eslint-disable-line
35 | done();
36 | });
37 | it('should throw exception when doesnt have dataUrl prop', (done) => {
38 | const invalidProps = { id: 'id' };
39 | new EmbedConstructor({ propsData: invalidProps }).$mount();
40 | expect(console.error).to.have.been.calledWithMatch('[Vue warn]: Missing required prop: "dataUrl"'); // eslint-disable-line
41 | done();
42 | });
43 | it('should have dataPlaceHolder as string empty', (done) => {
44 | expect(embed.dataPlaceholder).to.equal('');
45 | done();
46 | });
47 | it('should have autoplay false', (done) => {
48 | expect(embed.autoplay).to.equal(false);
49 | done();
50 | });
51 | it('should have customClass as string empty', (done) => {
52 | expect(embed.customClass).to.equal('');
53 | done();
54 | });
55 | it('should have options as object empty', (done) => {
56 | expect(embed.options).to.deep.equal({});
57 | done();
58 | });
59 | });
60 |
61 | describe('when mounted', () => {
62 | beforeEach((done) => {
63 | embed = new EmbedConstructor({ propsData: validProps });
64 | sinon.spy(embed, 'startEmbed');
65 | embed.$mount();
66 | done();
67 | });
68 | afterEach((done) => {
69 | embed.startEmbed.restore();
70 | done();
71 | });
72 | it('should startEmbed', (done) => {
73 | embed.$nextTick(() => {
74 | expect(embed.startEmbed).to.have.callCount(1);
75 | done();
76 | });
77 | });
78 | });
79 |
80 | describe('when requested to start embed', () => {
81 | beforeEach((done) => {
82 | $().reset();
83 | embed.startEmbed();
84 | done();
85 | });
86 | it('should configure embed with autoplay', (done) => {
87 | embed.$nextTick(() => {
88 | const configurationCall = $().embed.args[0][0];
89 | expect(configurationCall.autoplay).to.equal(embed.autoplay);
90 | done();
91 | });
92 | });
93 | it('should call jquery selector with id', (done) => {
94 | embed.$nextTick(() => {
95 | expect($).to.have.been.calledWith(`#${validProps.id}`);
96 | done();
97 | });
98 | });
99 | describe('and have options sent on props', () => {
100 | beforeEach((done) => {
101 | $().reset();
102 | validProps.options = {
103 | optionToOverride: 'abc',
104 | };
105 | embed = new EmbedConstructor({ propsData: validProps }).$mount();
106 |
107 | embed.startEmbed();
108 | done();
109 | });
110 | it('should configure embed with the new options', (done) => {
111 | embed.$nextTick(() => {
112 | const configurationCall = $().embed.args[0][0];
113 | expect(configurationCall.optionToOverride).to.equal('abc');
114 | done();
115 | });
116 | });
117 | });
118 | });
119 |
120 |
121 | describe('when dateUrl is changed', () => {
122 | beforeEach((done) => {
123 | sinon.spy(embed, 'startEmbed');
124 |
125 | embed.dataUrl = 'newUrl';
126 | done();
127 | });
128 | afterEach((done) => {
129 | embed.startEmbed.restore();
130 | done();
131 | });
132 | it('should startEmbed', (done) => {
133 | embed.$nextTick(() => {
134 | expect(embed.startEmbed).to.have.callCount(1);
135 | done();
136 | });
137 | });
138 | });
139 | });
140 |
--------------------------------------------------------------------------------
/test/unit/specs/site/components/DimmerDoc.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import DimmerDoc from '@/components/DimmerDoc';
3 |
4 | let dimmerDoc;
5 |
6 | describe('DimmerDoc', () => {
7 | beforeEach((done) => {
8 | dimmerDoc = new Vue(DimmerDoc);
9 | done();
10 | });
11 |
12 | describe('when constructed', () => {
13 | it('should have showBasicDimmer false', (done) => {
14 | expect(dimmerDoc.showBasicDimmer).to.equal(false);
15 | done();
16 | });
17 | it('should have showLoadingDimmer false', (done) => {
18 | expect(dimmerDoc.showLoadingDimmer).to.equal(false);
19 | done();
20 | });
21 | it('should have showContentDimmer false', (done) => {
22 | expect(dimmerDoc.showContentDimmer).to.equal(false);
23 | done();
24 | });
25 | it('should have showAllParagraphsDimmer false', (done) => {
26 | expect(dimmerDoc.showAllParagraphsDimmer).to.equal(false);
27 | done();
28 | });
29 | it('should have showHoverDimmer false', (done) => {
30 | expect(dimmerDoc.showHoverDimmer).to.equal(false);
31 | done();
32 | });
33 | it('should have hoverDimmerOptions', (done) => {
34 | const options = { on: 'hover' };
35 | expect(dimmerDoc.hoverDimmerOptions).to.deep.equal(options);
36 | done();
37 | });
38 | });
39 |
40 | describe('when requested to changeDimmerVisibility', () => {
41 | it('should change property status', () => {
42 | dimmerDoc.changeDimmerVisibility('showBasicDimmer');
43 | expect(dimmerDoc.showBasicDimmer).to.equal(true);
44 | });
45 | });
46 | });
47 |
--------------------------------------------------------------------------------
/test/unit/specs/site/components/DropdownDoc.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import DropdownDoc from '@/components/DropdownDoc';
3 |
4 | let dropdownDoc;
5 |
6 | describe('DropdownDoc', () => {
7 | beforeEach((done) => {
8 | dropdownDoc = new Vue(DropdownDoc);
9 | done();
10 | });
11 |
12 | describe('when constructed', () => {
13 | it('should have dropdownOptions with default options', (done) => {
14 | expect(dropdownDoc.dropdownOptions).to.equal(dropdownDoc.defaultOptions);
15 | done();
16 | });
17 | it('should have selectedValue with first element of defaultOptions', (done) => {
18 | expect(dropdownDoc.selectedValue).to.equal(dropdownDoc.defaultOptions[0]);
19 | done();
20 | });
21 | it('should have iconProperty with iconClass', (done) => {
22 | expect(dropdownDoc.iconProperty).to.equal('iconClass');
23 | done();
24 | });
25 | it('should have defaultOptions', (done) => {
26 | const expectedOptions = [
27 | { iconClass: 'volume control phone', value: 1, text: 'Hello, I\'m normal phone 1' },
28 | { iconClass: 'mobile', value: 2, text: 'Hello, I\'m mobile phone 2' },
29 | { iconClass: 'whatsapp', value: 3, text: 'Hello, I\'m whats phone 3' },
30 | ];
31 | expect(dropdownDoc.defaultOptions).to.deep.equal(expectedOptions);
32 | done();
33 | });
34 | it('should have anotherOptions', (done) => {
35 | const expectedOptions = [
36 | { iconClass: 'volume control phone', value: 1, text: 'Hello, I\'m THE NEW normal phone 1' },
37 | { iconClass: 'mobile', value: 2, text: 'Hello, I\'m THE NEW mobile phone 2' },
38 | { iconClass: 'whatsapp', value: 3, text: 'Hello, I\'m THE NEW whats phone 3' },
39 | ];
40 | expect(dropdownDoc.anotherOptions).to.deep.equal(expectedOptions);
41 | done();
42 | });
43 | it('should have optionsWithoutText', (done) => {
44 | const expectedOptions = [
45 | { iconClass: 'volume control phone', value: 1 },
46 | { iconClass: 'mobile', value: 2 },
47 | { iconClass: 'whatsapp', value: 3 },
48 | ];
49 | expect(dropdownDoc.optionsWithoutText).to.deep.equal(expectedOptions);
50 | done();
51 | });
52 | });
53 |
54 | describe('when requested to changeOptions', () => {
55 | beforeEach((done) => {
56 | dropdownDoc.iconProperty = '';
57 | done();
58 | });
59 | it('should change dropdownOptions with anotherOptions if actual options is defaultOptions', () => {
60 | dropdownDoc.dropdownOptions = dropdownDoc.defaultOptions;
61 | dropdownDoc.changeOptions();
62 | expect(dropdownDoc.dropdownOptions).to.deep.equal(dropdownDoc.anotherOptions);
63 | });
64 | it('should change dropdownOptions with defaultOptions if actual options is anotherOptions', () => {
65 | dropdownDoc.dropdownOptions = dropdownDoc.anotherOptions;
66 | dropdownDoc.changeOptions();
67 | expect(dropdownDoc.dropdownOptions).to.deep.equal(dropdownDoc.defaultOptions);
68 | });
69 | it('should restore iconProperty', (done) => {
70 | dropdownDoc.changeOptions();
71 | expect(dropdownDoc.iconProperty).to.equal('iconClass');
72 | done();
73 | });
74 | });
75 |
76 | describe('when requested to changeToOnlyIcons', () => {
77 | beforeEach((done) => {
78 | dropdownDoc.iconProperty = '';
79 | dropdownDoc.changeToOnlyIcons();
80 | done();
81 | });
82 | it('should change dropdownOptions with optionWithoutText', () => {
83 | expect(dropdownDoc.dropdownOptions).to.deep.equal(dropdownDoc.optionsWithoutText);
84 | });
85 | it('should restore iconProperty', (done) => {
86 | expect(dropdownDoc.iconProperty).to.equal('iconClass');
87 | done();
88 | });
89 | });
90 |
91 | describe('when requested to changeToOnlyText', () => {
92 | it('should change dropdownOptions with defaultOptions', () => {
93 | dropdownDoc.dropdownOptions = dropdownDoc.anotherOptions;
94 | dropdownDoc.changeToOnlyText();
95 | expect(dropdownDoc.dropdownOptions).to.deep.equal(dropdownDoc.defaultOptions);
96 | });
97 | it('should change iconProperty with empty string', () => {
98 | dropdownDoc.changeToOnlyText();
99 | expect(dropdownDoc.iconProperty).to.equal('');
100 | });
101 | });
102 |
103 | describe('when requested to changeToIconsAndText', () => {
104 | beforeEach((done) => {
105 | dropdownDoc.iconProperty = '';
106 | dropdownDoc.dropdownOptions = dropdownDoc.anotherOptions;
107 | dropdownDoc.changeToIconsAndText();
108 | done();
109 | });
110 | it('should change dropdownOptions with defaultOptions', () => {
111 | expect(dropdownDoc.dropdownOptions).to.deep.equal(dropdownDoc.defaultOptions);
112 | });
113 | it('should restore iconProperty', (done) => {
114 | expect(dropdownDoc.iconProperty).to.equal('iconClass');
115 | done();
116 | });
117 | });
118 | });
119 |
--------------------------------------------------------------------------------
/test/unit/specs/site/components/ModalDoc.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import ModalDoc from '@/components/ModalDoc';
3 |
4 | let modalDoc;
5 |
6 | describe('ModalDoc', () => {
7 | beforeEach((done) => {
8 | modalDoc = new Vue(ModalDoc);
9 | done();
10 | });
11 |
12 | describe('when constructed', () => {
13 | it('should have showBasicModal false', (done) => {
14 | expect(modalDoc.showBasicModal).to.equal(false);
15 | done();
16 | });
17 | it('should have showLongModal false', (done) => {
18 | expect(modalDoc.showLongModal).to.equal(false);
19 | done();
20 | });
21 | });
22 |
23 | describe('when requested to changeModalStatus', () => {
24 | it('should change property status', () => {
25 | modalDoc.changeModalStatus('showBasicModal', true);
26 | expect(modalDoc.showBasicModal).to.equal(true);
27 | });
28 | });
29 | });
30 |
--------------------------------------------------------------------------------
/test/unit/specs/site/components/PopupDoc.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import PopupDoc from '@/components/PopupDoc';
3 |
4 | let popupDoc;
5 |
6 | describe('PopupDoc', () => {
7 | beforeEach((done) => {
8 | popupDoc = new Vue(PopupDoc);
9 | done();
10 | });
11 |
12 | describe('when constructed', () => {
13 | it('should have position top left', (done) => {
14 | expect(popupDoc.position).to.deep.equal({ value: 'top left', text: 'Top Left' });
15 | done();
16 | });
17 | it('should have trigger click', (done) => {
18 | expect(popupDoc.trigger).to.deep.equal({ value: 'click', text: 'Click' });
19 | done();
20 | });
21 | it('should have transition horizontal flip', (done) => {
22 | expect(popupDoc.transition).to.deep.equal({ value: 'horizontal flip', text: 'Horizontal Flip' });
23 | done();
24 | });
25 | it('should have positions', (done) => {
26 | const expectedPositions = [
27 | { value: 'top left', text: 'Top Left' },
28 | { value: 'top center', text: 'Top Center' },
29 | { value: 'top right', text: 'Top Right' },
30 | { value: 'bottom left', text: 'Bottom Left' },
31 | { value: 'bottom center', text: 'Bottom Center' },
32 | { value: 'bottom right', text: 'Bottom Right' },
33 | { value: 'right center', text: 'Right Center' },
34 | { value: 'left center', text: 'Left Center' },
35 | ];
36 | expect(popupDoc.positions).to.deep.equal(expectedPositions);
37 | done();
38 | });
39 | it('should have transitions', (done) => {
40 | const expectedTransitions = [
41 | { value: 'horizontal flip', text: 'Horizontal Flip' },
42 | { value: 'vertical flip', text: 'Vertical Flip' },
43 | { value: 'fade up', text: 'Fade Up' },
44 | { value: 'fade', text: 'Fade' },
45 | { value: 'scale', text: 'Scale' },
46 | ];
47 | expect(popupDoc.transitions).to.deep.equal(expectedTransitions);
48 | done();
49 | });
50 | it('should have triggers', (done) => {
51 | const expectedTriggers = [
52 | { value: 'click', text: 'Click' },
53 | { value: 'hover', text: 'Hover' },
54 | ];
55 | expect(popupDoc.triggers).to.deep.equal(expectedTriggers);
56 | done();
57 | });
58 | });
59 |
60 | describe('when requested popupOptions', () => {
61 | it('should return a computed options', (done) => {
62 | const expectedOptions = {
63 | closable: false,
64 | duration: 500,
65 | position: popupDoc.position.value,
66 | transition: popupDoc.transition.value,
67 | };
68 | expect(popupDoc.popupOptions).to.deep.equal(expectedOptions);
69 | done();
70 | });
71 | });
72 | });
73 |
--------------------------------------------------------------------------------
/test/unit/specs/site/components/ProgressDoc.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import ProgressDoc from '@/components/ProgressDoc';
3 |
4 | let progressDoc;
5 |
6 | const helper = {
7 | createProgressMock() {
8 | return {
9 | increment: sinon.spy(),
10 | decrement: sinon.spy(),
11 | complete: sinon.spy(),
12 | reset: sinon.spy(),
13 | setActive: sinon.spy(),
14 | };
15 | },
16 | };
17 |
18 | describe('ProgressDoc', () => {
19 | beforeEach((done) => {
20 | progressDoc = new Vue(ProgressDoc);
21 | progressDoc.$refs.progress = helper.createProgressMock();
22 | progressDoc.$refs.topSegmentProgress = helper.createProgressMock();
23 | progressDoc.$refs.bottomSegmentProgress = helper.createProgressMock();
24 | done();
25 | });
26 | describe('when requested to increment', () => {
27 | beforeEach((done) => {
28 | progressDoc.increment();
29 | done();
30 | });
31 | it('should increment progress', () => {
32 | expect(progressDoc.$refs.progress.increment).to.have.callCount(1);
33 | });
34 | it('should increment topSegmentProgress', () => {
35 | expect(progressDoc.$refs.topSegmentProgress.increment).to.have.callCount(1);
36 | });
37 | it('should increment bottomSegmentProgress', () => {
38 | expect(progressDoc.$refs.bottomSegmentProgress.increment).to.have.callCount(1);
39 | });
40 | });
41 | describe('when requested to decrement', () => {
42 | beforeEach((done) => {
43 | progressDoc.decrement();
44 | done();
45 | });
46 | it('should decrement progress', () => {
47 | expect(progressDoc.$refs.progress.decrement).to.have.callCount(1);
48 | });
49 | it('should decrement topSegmentProgress', () => {
50 | expect(progressDoc.$refs.topSegmentProgress.decrement).to.have.callCount(1);
51 | });
52 | it('should decrement bottomSegmentProgress', () => {
53 | expect(progressDoc.$refs.bottomSegmentProgress.decrement).to.have.callCount(1);
54 | });
55 | });
56 | describe('when requested to complete', () => {
57 | beforeEach((done) => {
58 | progressDoc.complete();
59 | done();
60 | });
61 | it('should complete progress', () => {
62 | expect(progressDoc.$refs.progress.complete).to.have.callCount(1);
63 | });
64 | it('should complete topSegmentProgress', () => {
65 | expect(progressDoc.$refs.topSegmentProgress.complete).to.have.callCount(1);
66 | });
67 | it('should complete bottomSegmentProgress', () => {
68 | expect(progressDoc.$refs.bottomSegmentProgress.complete).to.have.callCount(1);
69 | });
70 | });
71 | describe('when requested to reset', () => {
72 | beforeEach((done) => {
73 | progressDoc.reset();
74 | done();
75 | });
76 | it('should reset progress', () => {
77 | expect(progressDoc.$refs.progress.reset).to.have.callCount(1);
78 | });
79 | it('should reset topSegmentProgress', () => {
80 | expect(progressDoc.$refs.topSegmentProgress.reset).to.have.callCount(1);
81 | });
82 | it('should reset bottomSegmentProgress', () => {
83 | expect(progressDoc.$refs.bottomSegmentProgress.reset).to.have.callCount(1);
84 | });
85 | });
86 | describe('when requested to setState', () => {
87 | beforeEach((done) => {
88 | progressDoc.setState('setActive');
89 | done();
90 | });
91 | it('should setState progress', () => {
92 | expect(progressDoc.$refs.progress.setActive).to.have.been.callCount(1);
93 | });
94 | it('should setState topSegmentProgress', () => {
95 | expect(progressDoc.$refs.topSegmentProgress.setActive).to.have.been.callCount(1);
96 | });
97 | it('should setState bottomSegmentProgress', () => {
98 | expect(progressDoc.$refs.bottomSegmentProgress.setActive).to.have.been.callCount(1);
99 | });
100 | });
101 | describe('when requested to setTotal', () => {
102 | it('should setTotal to 10 when actual is 100', () => {
103 | progressDoc.setTotal();
104 | expect(progressDoc.total).to.equal(10);
105 | });
106 | it('should setTotal to 100 when actual is 10', () => {
107 | progressDoc.total = 10;
108 | progressDoc.setTotal();
109 | expect(progressDoc.total).to.equal(100);
110 | });
111 | });
112 | });
113 |
--------------------------------------------------------------------------------
/test/unit/specs/site/components/RatingDoc.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import RatingDoc from '@/components/RatingDoc';
3 |
4 | let ratingDoc;
5 |
6 | describe('RatingDoc', () => {
7 | beforeEach((done) => {
8 | ratingDoc = new Vue(RatingDoc);
9 | done();
10 | });
11 |
12 | describe('when constructed', () => {
13 | it('should have currentRating 1', (done) => {
14 | expect(ratingDoc.currentRating).to.equal(1);
15 | done();
16 | });
17 | it('should have type star', (done) => {
18 | expect(ratingDoc.type).to.equal('star');
19 | done();
20 | });
21 | });
22 |
23 | describe('when requested to changeIconType', () => {
24 | it('should change the type of rating', (done) => {
25 | const newType = 'heart';
26 | ratingDoc.changeIconType(newType);
27 | expect(ratingDoc.type).to.equal(newType);
28 | done();
29 | });
30 | });
31 |
32 | describe('when requested to increaseRating', () => {
33 | beforeEach((done) => {
34 | ratingDoc.currentRating = 0;
35 | ratingDoc.increaseRating();
36 | done();
37 | });
38 | it('should increase currentRating', () => {
39 | expect(ratingDoc.currentRating).to.equal(1);
40 | });
41 | describe('and currentRating is 5', () => {
42 | beforeEach((done) => {
43 | ratingDoc.currentRating = 5;
44 | ratingDoc.increaseRating();
45 | done();
46 | });
47 | it('should set currentRating to 0', (done) => {
48 | expect(ratingDoc.currentRating).to.equal(0);
49 | done();
50 | });
51 | });
52 | });
53 |
54 | describe('when requested to decreaseRating', () => {
55 | beforeEach((done) => {
56 | ratingDoc.currentRating = 1;
57 | ratingDoc.decreaseRating();
58 | done();
59 | });
60 | it('should increase currentRating', () => {
61 | expect(ratingDoc.currentRating).to.equal(0);
62 | });
63 | describe('and currentRating is 0', () => {
64 | beforeEach((done) => {
65 | ratingDoc.currentRating = 0;
66 | ratingDoc.decreaseRating();
67 | done();
68 | });
69 | it('should set currentRating to 5', (done) => {
70 | expect(ratingDoc.currentRating).to.equal(5);
71 | done();
72 | });
73 | });
74 | });
75 | });
76 |
--------------------------------------------------------------------------------