├── .eslintrc.js ├── .gitignore ├── .npmignore ├── README.md ├── demo ├── bundle-sources.js ├── run │ ├── 0119e84767402e0f4c67f4a8c1a9fa5a.png │ ├── 0be9138ffca119770ea4d88fa3c14e78.png │ ├── 23e53d522d67f377540d0ec73a4650ff.png │ ├── 400928101cd0d527bc7d8ea6c2b006fe.png │ ├── 5b01d3b1a0ae8a3302fd9146e428e3e5.png │ ├── 68ce42df0168c8fad040711ef9d96d25.png │ ├── 9c74e172f87984c48ddf5c8108cabe67.png │ ├── ad8b54f478a1957d1a6718d1be05b4e9.png │ ├── app.js │ ├── app.js.map │ ├── eeccccc747d48a22cf19f6de7a0daddc.png │ ├── font │ │ ├── a046592bac8f2fd96e994733faf3858c.woff │ │ ├── ad97afd3337e8cda302d10ff5a4026b8.ttf │ │ ├── b87b9ba532ace76ae9f6edfe9f72ded2.ttf │ │ ├── c5ebe0b32dc1b5cc449a76c4204d13bb.ttf │ │ ├── ef60a4f6c25ef7f39f2d25a748dbecfe.woff │ │ └── faff92145777a3cbaf8e7367b4807987.woff │ ├── index.html │ ├── public │ │ └── fonts │ │ │ ├── brand-icons.eot │ │ │ ├── brand-icons.svg │ │ │ ├── brand-icons.ttf │ │ │ ├── brand-icons.woff │ │ │ ├── brand-icons.woff2 │ │ │ ├── icons.eot │ │ │ ├── icons.svg │ │ │ ├── icons.ttf │ │ │ ├── icons.woff │ │ │ ├── icons.woff2 │ │ │ ├── outline-icons.eot │ │ │ ├── outline-icons.svg │ │ │ ├── outline-icons.ttf │ │ │ ├── outline-icons.woff │ │ │ └── outline-icons.woff2 │ ├── sources.js │ └── themes │ │ ├── basic │ │ └── assets │ │ │ └── fonts │ │ │ ├── icons.eot │ │ │ ├── icons.svg │ │ │ ├── icons.ttf │ │ │ └── icons.woff │ │ ├── default │ │ └── assets │ │ │ ├── fonts │ │ │ ├── icons.eot │ │ │ ├── icons.otf │ │ │ ├── icons.svg │ │ │ ├── icons.ttf │ │ │ ├── icons.woff │ │ │ └── icons.woff2 │ │ │ └── images │ │ │ └── flags.png │ │ ├── github │ │ └── assets │ │ │ └── fonts │ │ │ ├── octicons-local.ttf │ │ │ ├── octicons.svg │ │ │ ├── octicons.ttf │ │ │ └── octicons.woff │ │ └── material │ │ └── assets │ │ └── fonts │ │ ├── icons.eot │ │ ├── icons.svg │ │ ├── icons.ttf │ │ ├── icons.woff │ │ └── icons.woff2 ├── src │ ├── 3clr │ │ ├── 3clrone.png │ │ ├── 3clroneG.png │ │ ├── 3clroneO.png │ │ ├── 3clroneR.png │ │ ├── 3clrthree.png │ │ ├── 3clrthreeG.png │ │ ├── 3clrthreeO.png │ │ ├── 3clrthreeR.png │ │ └── mold.vue │ ├── app.vue │ ├── index.ts │ ├── routes.ts │ └── routes │ │ ├── buttons.vue │ │ ├── form.vue │ │ ├── inputs.vue │ │ ├── panels.vue │ │ ├── progress.vue │ │ ├── sidebars.vue │ │ └── table.vue ├── tsconfig.json └── webpack.config.js ├── docs ├── components │ ├── accordion.md │ ├── breadcrumbs.md │ ├── button.md │ ├── checkbox.md │ ├── dimm.md │ ├── flag.md │ ├── form.md │ ├── icon.md │ ├── input.md │ ├── modal.md │ ├── progress.md │ ├── select.md │ ├── table.md │ └── tabs.md ├── concepts │ ├── commanded.md │ ├── data-mold.md │ ├── form.md │ └── panel.md └── globals │ └── scrollbar.md ├── package.json ├── semantic.json ├── src ├── components.ts ├── components │ ├── accordion.vue │ ├── breadcrumbs.vue │ ├── button.vue │ ├── checkbox.vue │ ├── data │ │ ├── holders.ts │ │ ├── modeled.ts │ │ ├── molded.ts │ │ └── scope.ts │ ├── dimmable.vue │ ├── dimmer.vue │ ├── flag.vue │ ├── form │ │ ├── field.vue │ │ └── index.vue │ ├── icon.vue │ ├── input.vue │ ├── modal.vue │ ├── panel.vue │ ├── progress.vue │ ├── select │ │ ├── index.vue │ │ └── option.vue │ ├── sidebar.vue │ ├── table │ │ ├── checkbox-column.vue │ │ ├── column.vue │ │ ├── index.virtualscroll.vue │ │ ├── index.vue │ │ └── row-edit-column.vue │ └── tabs.vue ├── directives.ts ├── directives │ ├── command.ts │ ├── dimm-parts.ts │ └── loading.ts ├── index.ts └── lib │ ├── classed.ts │ ├── cssCache.ts │ ├── module.ts │ ├── render.ts │ ├── string.ts │ └── utils.ts ├── tsconfig.json └── webpack.config.js /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | 'eslint:recommended', 4 | 'plugin:vue/essential' 5 | ], 6 | env: { 7 | es6: true, 8 | browser: true, 9 | node: true 10 | }, 11 | parserOptions: { 12 | parser: 'babel-eslint', 13 | ecmaVersion: 7, 14 | sourceType: 'module', 15 | ecmaFeatures: { 16 | experimentalObjectRestSpread: true 17 | } 18 | }, 19 | rules: { 20 | 'no-unused-vars': 1 21 | } 22 | }; -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | dist 4 | .fusebox 5 | .vscode 6 | package-lock.* 7 | *.lock 8 | semantic/* -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | demo 4 | docs 5 | .* 6 | yalc.lock 7 | package-lock.* 8 | *.lock 9 | semantic 10 | fuse.* 11 | /*.json 12 | webpack.* -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # v-semantic 2 | 3 | [![npm](https://img.shields.io/npm/v/v-semantic.svg)](https://www.npmjs.com/package/v-semantic) 4 | 5 | Integration of [semantic-ui2](https://semantic-ui.com) with [vue.js2](https://vuejs.org/) 6 | 7 | > To use a version of `Vue` <2.6.0, use `v-semantic` version 1 8 | 9 | The purpose of the integration is to allow some logic-level approach - ex: the tables are defined by column and not by rows - and to integrate the `jQuery` for it to be invisible to the programer. `jQuery` of course still needs to be installed, but there is no need to use it. 10 | 11 | The css-classes specific to a component are set as boolean properties of the component. These two codes are equivalent : 12 | 13 | ```html 14 | 15 | 16 | ``` 17 | 18 | There is a [live demo/preview](https://www.gitcdn.xyz/cdn/eddow/v-semantic/78d011372985bf06320a48d55f317dc9f6839327/demo/run/index.html#/) 19 | 20 | ## Installation 21 | 22 | For usage: 23 | 24 | ```sh 25 | npm install v-semantic --save 26 | ``` 27 | 28 | ```typescript 29 | import vs from 'v-semantic' 30 | Vue.use(vs); 31 | //- or - 32 | import vs from 'v-semantic' 33 | Vue.use(vs, {prefix: 'x'}); 34 | //- or - 35 | import {Modal, Command, Button} from 'v-semantic' 36 | 37 | @Component({ 38 | components: {Modal, Button}, 39 | directives: {Command} 40 | }) 41 | ``` 42 | 43 | Requiring the main library will export each components and directives, and a `default` that lets you `Vue.install(...)`. 44 | The `prefix` (default `"s"`) option will be used before each name of component for registration ('button' --> ``) 45 | 46 | ### For development 47 | 48 | ```sh 49 | git clone 50 | npm run demo 51 | ``` 52 | 53 | This will produce `demo/run/app.js` and therefore, the file `demo/run/index.html` will be usable directly in the browser. To compile the library only, use `npm run prepack` 54 | 55 | There is no plan to have one-source-file-per-component, it's not a huge library. 56 | 57 | ## Components 58 | 59 | These should work and implement their intended final behaviour, even if details can still change 60 | 61 | - [flag](./docs/components/flag.md) 62 | - [breadcrumbs](./docs/components/breadcrumbs.md) 63 | - [icon](./docs/components/icon.md) 64 | - [button](./docs/components/button.md) 65 | - [input](./docs/components/input.md) 66 | - [select](./docs/components/select.md) 67 | - [accordion](./docs/components/accordion.md) 68 | - [modal](./docs/components/modal.md) 69 | - [checkbox](./docs/components/checkbox.md) 70 | - [dimming](./docs/components/dimm.md) 71 | - [form](./docs/components/form.md) 72 | - [progress](./docs/components/progress.md) 73 | - [table](./docs/components/table.md) 74 | - [tabs](./docs/components/tabs.md) 75 | 76 | ## Globals helpers 77 | 78 | - [scroll-bar sizes](./docs/globals/scrollbar.md) 79 | 80 | ## Concepts 81 | 82 | These have been developped deeper in this library even not completely bound to semantic. It is interwined with semantic though. 83 | 84 | - [form](./docs/concepts/form.md) 85 | - [commanded](./docs/concepts/commanded.md) 86 | - [panel](./docs/concepts/panel.md) 87 | 88 | ## Not implemented yet 89 | 90 | ### NIY - Components 91 | 92 | - menus 93 | - radios 94 | - embed (iframe) 95 | - sidebar 96 | - search 97 | - shape 98 | - rating 99 | - reveal? 100 | 101 | ### NIY - Directives 102 | 103 | - popup 104 | - visibility 105 | - messages 106 | 107 | ### No plans to implement 108 | 109 | Some of `semantic-ui` functionalities are just classes to add to some `div` for which the point of making a custom control out of is discussable. 110 | 111 | - container 112 | - divider 113 | - header 114 | - image 115 | - list 116 | - rail 117 | - segment 118 | - grid 119 | - advertisement 120 | - card 121 | - transitions (Vue has it) 122 | 123 | ### Things that might perhaps be automated 124 | 125 | - label 126 | - menu (integration with vue-router) 127 | - message (toasters? ...?) 128 | - nag 129 | - sticky 130 | - lists 131 | - labels 132 | - buttons 133 | - comments 134 | - feeds 135 | - items 136 | - statistics 137 | - steps 138 | 139 | ## Support development 140 | 141 | If you wanna help, please do. 142 | 143 | If you are interested in the development of a component, please leave a comment. -------------------------------------------------------------------------------- /demo/bundle-sources.js: -------------------------------------------------------------------------------- 1 | var fs = require("fs"), 2 | path = require('path'), 3 | glob= require('glob'); 4 | 5 | module.exports = { 6 | apply(compiler) { 7 | compiler.hooks.compile.tap('bundle-source', function bundle() { 8 | console.log('Bundling sources.'); 9 | var sourcesPath = path.resolve(__dirname, 'src/routes/*.vue'), 10 | destFile = path.resolve(__dirname, 'run/sources.js'), 11 | sources = {}; 12 | 13 | for(var src of glob.sync(sourcesPath)) { 14 | var name = /([^/]*)\.vue$/.exec(src); 15 | if(name) { 16 | sources[name[1]] = fs.readFileSync(src, "utf8"); 17 | } 18 | } 19 | fs.writeFileSync(destFile, `module.exports = ${JSON.stringify(sources)};`, 'utf8'); 20 | }); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /demo/run/0119e84767402e0f4c67f4a8c1a9fa5a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/0119e84767402e0f4c67f4a8c1a9fa5a.png -------------------------------------------------------------------------------- /demo/run/0be9138ffca119770ea4d88fa3c14e78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/0be9138ffca119770ea4d88fa3c14e78.png -------------------------------------------------------------------------------- /demo/run/23e53d522d67f377540d0ec73a4650ff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/23e53d522d67f377540d0ec73a4650ff.png -------------------------------------------------------------------------------- /demo/run/400928101cd0d527bc7d8ea6c2b006fe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/400928101cd0d527bc7d8ea6c2b006fe.png -------------------------------------------------------------------------------- /demo/run/5b01d3b1a0ae8a3302fd9146e428e3e5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/5b01d3b1a0ae8a3302fd9146e428e3e5.png -------------------------------------------------------------------------------- /demo/run/68ce42df0168c8fad040711ef9d96d25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/68ce42df0168c8fad040711ef9d96d25.png -------------------------------------------------------------------------------- /demo/run/9c74e172f87984c48ddf5c8108cabe67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/9c74e172f87984c48ddf5c8108cabe67.png -------------------------------------------------------------------------------- /demo/run/ad8b54f478a1957d1a6718d1be05b4e9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/ad8b54f478a1957d1a6718d1be05b4e9.png -------------------------------------------------------------------------------- /demo/run/eeccccc747d48a22cf19f6de7a0daddc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/eeccccc747d48a22cf19f6de7a0daddc.png -------------------------------------------------------------------------------- /demo/run/font/a046592bac8f2fd96e994733faf3858c.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/font/a046592bac8f2fd96e994733faf3858c.woff -------------------------------------------------------------------------------- /demo/run/font/ad97afd3337e8cda302d10ff5a4026b8.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/font/ad97afd3337e8cda302d10ff5a4026b8.ttf -------------------------------------------------------------------------------- /demo/run/font/b87b9ba532ace76ae9f6edfe9f72ded2.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/font/b87b9ba532ace76ae9f6edfe9f72ded2.ttf -------------------------------------------------------------------------------- /demo/run/font/c5ebe0b32dc1b5cc449a76c4204d13bb.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/font/c5ebe0b32dc1b5cc449a76c4204d13bb.ttf -------------------------------------------------------------------------------- /demo/run/font/ef60a4f6c25ef7f39f2d25a748dbecfe.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/font/ef60a4f6c25ef7f39f2d25a748dbecfe.woff -------------------------------------------------------------------------------- /demo/run/font/faff92145777a3cbaf8e7367b4807987.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/font/faff92145777a3cbaf8e7367b4807987.woff -------------------------------------------------------------------------------- /demo/run/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | V-semantic demo 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /demo/run/public/fonts/brand-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/brand-icons.eot -------------------------------------------------------------------------------- /demo/run/public/fonts/brand-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/brand-icons.ttf -------------------------------------------------------------------------------- /demo/run/public/fonts/brand-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/brand-icons.woff -------------------------------------------------------------------------------- /demo/run/public/fonts/brand-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/brand-icons.woff2 -------------------------------------------------------------------------------- /demo/run/public/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/icons.eot -------------------------------------------------------------------------------- /demo/run/public/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/icons.ttf -------------------------------------------------------------------------------- /demo/run/public/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/icons.woff -------------------------------------------------------------------------------- /demo/run/public/fonts/icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/icons.woff2 -------------------------------------------------------------------------------- /demo/run/public/fonts/outline-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/outline-icons.eot -------------------------------------------------------------------------------- /demo/run/public/fonts/outline-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/outline-icons.ttf -------------------------------------------------------------------------------- /demo/run/public/fonts/outline-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/outline-icons.woff -------------------------------------------------------------------------------- /demo/run/public/fonts/outline-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/public/fonts/outline-icons.woff2 -------------------------------------------------------------------------------- /demo/run/sources.js: -------------------------------------------------------------------------------- 1 | module.exports = {"buttons":"\r\n","form":"\r\n\r\n","inputs":"\r\n","panels":"\r\n","progress":"\r\n\r\n","sidebars":"\r\n","table":"\r\n"}; -------------------------------------------------------------------------------- /demo/run/themes/basic/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/basic/assets/fonts/icons.eot -------------------------------------------------------------------------------- /demo/run/themes/basic/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/basic/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /demo/run/themes/basic/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/basic/assets/fonts/icons.woff -------------------------------------------------------------------------------- /demo/run/themes/default/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/default/assets/fonts/icons.eot -------------------------------------------------------------------------------- /demo/run/themes/default/assets/fonts/icons.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/default/assets/fonts/icons.otf -------------------------------------------------------------------------------- /demo/run/themes/default/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/default/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /demo/run/themes/default/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/default/assets/fonts/icons.woff -------------------------------------------------------------------------------- /demo/run/themes/default/assets/fonts/icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/default/assets/fonts/icons.woff2 -------------------------------------------------------------------------------- /demo/run/themes/default/assets/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/default/assets/images/flags.png -------------------------------------------------------------------------------- /demo/run/themes/github/assets/fonts/octicons-local.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/github/assets/fonts/octicons-local.ttf -------------------------------------------------------------------------------- /demo/run/themes/github/assets/fonts/octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/github/assets/fonts/octicons.ttf -------------------------------------------------------------------------------- /demo/run/themes/github/assets/fonts/octicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/github/assets/fonts/octicons.woff -------------------------------------------------------------------------------- /demo/run/themes/material/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/material/assets/fonts/icons.eot -------------------------------------------------------------------------------- /demo/run/themes/material/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/material/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /demo/run/themes/material/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/material/assets/fonts/icons.woff -------------------------------------------------------------------------------- /demo/run/themes/material/assets/fonts/icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/run/themes/material/assets/fonts/icons.woff2 -------------------------------------------------------------------------------- /demo/src/3clr/3clrone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/src/3clr/3clrone.png -------------------------------------------------------------------------------- /demo/src/3clr/3clroneG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/src/3clr/3clroneG.png -------------------------------------------------------------------------------- /demo/src/3clr/3clroneO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/src/3clr/3clroneO.png -------------------------------------------------------------------------------- /demo/src/3clr/3clroneR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/src/3clr/3clroneR.png -------------------------------------------------------------------------------- /demo/src/3clr/3clrthree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/src/3clr/3clrthree.png -------------------------------------------------------------------------------- /demo/src/3clr/3clrthreeG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/src/3clr/3clrthreeG.png -------------------------------------------------------------------------------- /demo/src/3clr/3clrthreeO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/src/3clr/3clrthreeO.png -------------------------------------------------------------------------------- /demo/src/3clr/3clrthreeR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eddow/v-semantic/b095dfcae26647e8fdccae38f73604ebdfd9b199/demo/src/3clr/3clrthreeR.png -------------------------------------------------------------------------------- /demo/src/3clr/mold.vue: -------------------------------------------------------------------------------- 1 | 13 | 47 | 70 | -------------------------------------------------------------------------------- /demo/src/app.vue: -------------------------------------------------------------------------------- 1 | 21 | 37 | -------------------------------------------------------------------------------- /demo/src/index.ts: -------------------------------------------------------------------------------- 1 | import 'semantic-ui/dist/semantic.min.css' 2 | import 'jquery' 3 | import 'semantic-ui/dist/semantic' 4 | import Vue from 'vue' 5 | import semanticVue from 'v-semantic' 6 | Vue.use(semanticVue); 7 | import VueRouter from 'vue-router' 8 | Vue.use(VueRouter); 9 | import * as VueCodeMirror from 'vue-codemirror' 10 | Vue.use(VueCodeMirror) 11 | 12 | import 'codemirror/lib/codemirror.css' 13 | import 'codemirror/theme/base16-dark.css' 14 | import 'codemirror/mode/meta' 15 | import 'codemirror/addon/mode/overlay' 16 | import 'codemirror/addon/mode/simple' 17 | import 'codemirror/addon/selection/selection-pointer' 18 | import 'codemirror/addon/fold/foldgutter' 19 | import 'codemirror/mode/xml/xml' 20 | import 'codemirror/mode/javascript/javascript' 21 | import 'codemirror/mode/css/css' 22 | import 'codemirror/mode/handlebars/handlebars' 23 | import 'codemirror/mode/htmlmixed/htmlmixed' 24 | import 'codemirror/mode/vue/vue' 25 | 26 | import App from './app.vue' 27 | import routes from './routes' 28 | 29 | new App({ 30 | router: new VueRouter({ 31 | mode: 'hash', 32 | routes: routes 33 | }), 34 | el: 'app' 35 | }); -------------------------------------------------------------------------------- /demo/src/routes.ts: -------------------------------------------------------------------------------- 1 | 2 | const MenuContainer = { 3 | template: `` 4 | }; //used for route-group, menu groups 5 | import Panels from './routes/panels.vue' 6 | import Buttons from './routes/buttons.vue' 7 | import Form from './routes/form.vue' 8 | import Inputs from './routes/inputs.vue' 9 | import Progress from './routes/progress.vue' 10 | import Sidebars from './routes/sidebars.vue' 11 | import Table from './routes/table.vue' 12 | const comps = {Panels, Buttons, Form, Inputs, Progress, Sidebars, Table} 13 | const routes = []; 14 | for(let i in comps) { 15 | let name = i.toLowerCase(); 16 | routes.push({ 17 | name, path: '/'+name, 18 | menu: i, 19 | component: comps[i] 20 | }); 21 | } 22 | export default routes; -------------------------------------------------------------------------------- /demo/src/routes/buttons.vue: -------------------------------------------------------------------------------- 1 | 43 | -------------------------------------------------------------------------------- /demo/src/routes/form.vue: -------------------------------------------------------------------------------- 1 | 61 | 62 | -------------------------------------------------------------------------------- /demo/src/routes/inputs.vue: -------------------------------------------------------------------------------- 1 | 32 | -------------------------------------------------------------------------------- /demo/src/routes/panels.vue: -------------------------------------------------------------------------------- 1 | 60 | -------------------------------------------------------------------------------- /demo/src/routes/progress.vue: -------------------------------------------------------------------------------- 1 | 46 | 53 | -------------------------------------------------------------------------------- /demo/src/routes/sidebars.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /demo/src/routes/table.vue: -------------------------------------------------------------------------------- 1 | 42 | -------------------------------------------------------------------------------- /demo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "sourceMap": true, 4 | "declaration": false, 5 | "sourceRoot": "src", 6 | "outDir": "run", 7 | "inlineSources": true, 8 | "noImplicitAny": false, 9 | "module": "commonjs", 10 | "moduleResolution": "node", 11 | "experimentalDecorators": true, 12 | "emitDecoratorMetadata": true, 13 | "target": "es5", 14 | "lib": [ 15 | "dom", 16 | "es5", 17 | "es6", 18 | "es2015.promise" 19 | ], 20 | "allowSyntheticDefaultImports": true, 21 | "typeRoots": ["../node_modules/@types"], 22 | "baseUrl": ".", 23 | "paths": { 24 | "v-semantic": ["../src/v-semantic"] 25 | } 26 | }, 27 | "exclude": [ 28 | "**/*.spec.ts", 29 | "**/*.d.ts" 30 | ], 31 | "include": [ 32 | "./src/**/*.ts", 33 | "./src/**/*.vue" 34 | ] 35 | } -------------------------------------------------------------------------------- /demo/webpack.config.js: -------------------------------------------------------------------------------- 1 | var webpack = require("webpack"), 2 | path = require("path"), 3 | VueLoader = require('vue-loader'), 4 | bundleSources = require('./bundle-sources'); 5 | 6 | module.exports = { 7 | mode: 'development', //This is meant to be bundled afterward anyway 8 | context: path.resolve(__dirname, 'src'), 9 | entry: { 10 | app: ['./index.ts'], 11 | }, 12 | output: { 13 | filename: '[name].js', 14 | path: path.resolve(__dirname, "run"), 15 | chunkFilename: "[chunkhash].js" 16 | }, 17 | plugins: [ 18 | bundleSources, 19 | new webpack.ProvidePlugin({ 20 | $: 'jquery' 21 | }), 22 | new VueLoader.VueLoaderPlugin() 23 | ], 24 | devtool: 'source-map', 25 | module: { 26 | rules: [{ 27 | test: /\.tsx?$/, 28 | exclude: /node_modules/, 29 | loader: 'ts-loader', 30 | options: { 31 | appendTsSuffixTo: [/\.vue$/] 32 | } 33 | }, { 34 | test: /\.css$/, 35 | loader: "style-loader!css-loader" 36 | }, { 37 | enforce: 'pre', 38 | test: /\.[jt]sx?$/, 39 | exclude: /node_modules/, 40 | use: "source-map-loader" 41 | }, { 42 | test: /\.vue$/, 43 | loader: 'vue-loader', 44 | options: { 45 | loaders: { 46 | ts: 'ts-loader' 47 | } 48 | } 49 | }, { 50 | test: /\.(eot|svg|ttf|woff|woff2)$/, 51 | loader: 'file-loader?name=public/fonts/[name].[ext]' 52 | }, { 53 | test: /\.(png|jpg|gif)$/, 54 | use: [{ 55 | loader: 'file-loader', 56 | options: {} 57 | }] 58 | }, { 59 | test: require.resolve('jquery'), 60 | use: [{ 61 | loader: 'expose-loader', 62 | options: 'jQuery' 63 | }] 64 | }] 65 | }, 66 | resolve: { 67 | alias: { 68 | lib: path.resolve(__dirname, '../src/lib/'), 69 | components: path.resolve(__dirname, '../src/components/'), 70 | directives: path.resolve(__dirname, '../src/directives/'), 71 | 'v-semantic': path.resolve(__dirname, '../src/') 72 | }, 73 | extensions: [".ts", '.js', '.vue'] 74 | }, 75 | watchOptions: { 76 | ignored: /\/run\// 77 | } 78 | }; -------------------------------------------------------------------------------- /docs/components/accordion.md: -------------------------------------------------------------------------------- 1 | # [Accordion](https://semantic-ui.com/modules/accordion.html) 2 | > Nested accordions still behave chaotically! 3 | 4 | ## Exemple 5 | ```html 6 | 7 | 8 |

A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many households across the world.

9 |
10 | 11 | 12 |

There are many breeds of dogs. Each breed varies in size and temperament. Owners often select a breed of dog that they find to be compatible with their own lifestyle and desires from a companion.

13 |
14 |
15 | ``` 16 | ## Slots 17 | An `accordion` is a [panel](../concepts/panel.md) container, so panels are described in the main slot. 18 | ## Properties 19 | - `defaultIcon: string` The icon of the items. Defaulted to `'dropdown'` 20 | ### Forwarded to classes 21 | - `styled: boolean` Here defaulted to `true`! 22 | ### Forwarded to semantic configuration 23 | - `exclusive`: boolean 24 | - `on`: string 25 | - `animateChildren`: boolean 26 | - `closeNested`: boolean 27 | - `collapsible`: boolean 28 | - `duration`: number 29 | ### Model 30 | The model type depends on the `exclusive` configuration 31 | #### Exclusive = `true`/`undefined` 32 | By default, accordions are exclusive (one panel shown at a time). In this case, the model is the `{string}` name of the displayed panel or null for none. 33 | #### Exclusive = `false` 34 | In case of multi-opened accordions, the model can be a list or a hash, depending of what value is provided. Anything provided here won't be replaced but modified internally. 35 | ##### Array 36 | If an array is provided, that array is a `string[]` providing the name of the opened panels. 37 | ##### Hash 38 | If a `{[panelName: string]: boolean}` hash is provided, it will indicate with `true` or `false` whether a panel is opened by name. Note, as an input, tru-ish and fals-ish values are accepted. 39 | ## Events 40 | These events happen without arguments. Also, the events about closing only happen when a panel is explicitely closed, not when another one is exclusively opened 41 | - `opening` 42 | - `open` 43 | - `closing` 44 | - `close` 45 | - `change` -------------------------------------------------------------------------------- /docs/components/breadcrumbs.md: -------------------------------------------------------------------------------- 1 | # [Bread-crumbs](https://semantic-ui.com/collections/breadcrumb.html) 2 | Regular breadcrumb semantic-ui control 3 | 4 | ## Functionment 5 | These breadcrumbs are supposed to work with `vue-router`. They are provided with an array of crumbs and display them. 6 | 7 | A `Crumb` is a vue-router `Location` that has a `text` property. The location can provide a `name` for a named route, or a `fullPath` or whatever helps retrieve the route. 8 | 9 | ## Properties 10 | The main property is of course `crumbs`: an array of `Crumbs`, namely, a route specification with a text. 11 | 12 | With it comes the property `separator` - this is an icon class (defaulted to `'right angle'` that somewhat makes a ">") to include between the crumbs. -------------------------------------------------------------------------------- /docs/components/button.md: -------------------------------------------------------------------------------- 1 | # [Button](https://semantic-ui.com/elements/button.html) 2 | ## Examples 3 | ```html 4 | 5 | 6 | button-l 7 | 8 | 9 | button-i 10 | 11 | 12 | 13 | button-r 14 | 15 | 16 | 17 | 18 | 19 | ``` 20 | ## Slots 21 | Buttons have two slots (`prepend` and `append`) where an `icon` can be used. 22 | 23 | ## Properties 24 | - `icon`: Specifying an icon here is a shortcut to introducing in the button `` 25 | - `native-type`: ` 73 |
74 | ... 75 | ``` 76 | ```html 77 | Load ? 78 |
79 | ... 80 | ``` 81 | ### Modifiers 82 | - `blurring` 83 | - `indeterminate` 84 | - `inverted` 85 | - Size specification : `mini`, `tiny`, `small`, `medium`, `large` 86 | 87 | # dimm-parts 88 | 89 | The directive `v-dimm-parts` allow some parts of the element to be dimmed when the mouse is out of the element. 90 | ```html 91 | 92 | 93 | 94 | ``` 95 | Use a dimming-identifier if the element might contain other dimm-parts. All the sub-elements with the attribute `dimmed-part` (or `dimmed-part="identifier"` if `v-dimm-parts:identifier` has been used) will be dimmed when the mouse is out of the `dimm-part` element. 96 | 97 | Modifiers: 98 | - `inverted` to have inverted dimmers -------------------------------------------------------------------------------- /docs/components/flag.md: -------------------------------------------------------------------------------- 1 | # [Flag](https://semantic-ui.com/elements/flag.html) 2 | 3 | ## Properties 4 | - `country`: Specifies the country's flag to show. As indicated on Semantic documentation : "two digit country code, the full name, or a common alias" -------------------------------------------------------------------------------- /docs/components/form.md: -------------------------------------------------------------------------------- 1 | # [Form](https://semantic-ui.com/collections/form.html) 2 | 3 | Note: Forms can use the principle of [`data-molds`](./data-mold.md) 4 | 5 | Forms use a bit of semantic for shaping and much internal management. For example, the validation occurs through [json-schema](http://json-schema.org/) validation. and the error display is completely customizable. 6 | 7 | There is a whole [concept](../concepts/form.md) to read about it to understand the API docs. There is much more complexity than what expressed here but here is the standard usage - that can be redundant but fast to grab without learning slope. 8 | ## Internal management 9 | 10 | As `form` is [commanded](../concepts/commanded.md). Its commands will just be emitted as events (the `params` beeing the only argument). 11 | 12 | ### Fields 13 | Forms come with their component `field` that automatise a big deal of model/field management. For instance, each field can specify a `prepend` and `append` slots. If a field has no `append` (or `prepend`) slot, 14 | - the `append` slot will display the label of the field. 15 | - the `prepend` slot will display the errors of the field. 16 | 17 | The default slot just gives the input part of the field (so that the user can override the input keeping the label and error management) but one can override the whole providing a `field` slot. 18 | 19 | All these slots can be scope-less or can be provided using a scope containing only `scope.model` that will be the *form*' model. This can be useful when the form' model is complex and can raise errors while computing. 20 | ```html 21 | 22 | 23 |