innoq-ui-components 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +33 -0
- data/Rakefile +27 -0
- data/app/components/amount/rails_helper.rb +8 -0
- data/app/components/button-group/rails_helper.rb +5 -0
- data/app/components/icon/rails_helper.rb +5 -0
- data/app/components/main-layout/rails_helper.rb +8 -0
- data/app/components/navbar/rails_helper.rb +36 -0
- data/app/components/page-category/rails_helper.rb +7 -0
- data/app/components/progress-bar/rails_helper.rb +13 -0
- data/app/components/squishable/rails_helper.rb +8 -0
- data/app/components/tabelle-toggler/rails_helper.rb +14 -0
- data/app/components/tabelle/rails_helper.rb +45 -0
- data/app/components/table-responsive/rails_helper.rb +32 -0
- data/app/components/table/rails_helper.rb +8 -0
- data/app/helpers/component_helper.rb +3 -0
- data/lib/innoq/ui/components.rb +9 -0
- data/lib/innoq/ui/components/helper.rb +19 -0
- data/lib/innoq/ui/components/railtie.rb +8 -0
- data/lib/innoq/ui/components/version.rb +7 -0
- metadata +77 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e9eaaac4837558420ad1cfef85a9897ba005224ad68017128e0f33475012af12
|
4
|
+
data.tar.gz: bde213cda510475b42b80dfd59154bcdd481e2fe8ef6cc34d7288bafda8d58d4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 33a4264d0065263c3fe099fe7b656f377270fec6710c1913cd3e3b0e61f04cf5de8364dd5ba7c0267036472a4ebd68b46ecef64c4de7173457611e2c28ccdf75
|
7
|
+
data.tar.gz: bf3bcf825469df6bf6f87f9e6e6aa3ec304dbd57335a6d80e62835129a16545db4d9820f4b870cedb506299caf46f1484426e3758f86c9a3a28c21b79a864344
|
data/README.md
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# Example Project for Software Architecture Summit
|
2
|
+
|
3
|
+
Example project for [our talk at Software Architecture
|
4
|
+
Summit](https://software-architecture-summit.de/softwarearchitektur/moderne-frontend-entwicklung/).
|
5
|
+
The main objective is to show component-based development. We will also show
|
6
|
+
some of our favorite tools:
|
7
|
+
|
8
|
+
* complate
|
9
|
+
* faucet
|
10
|
+
* aiur
|
11
|
+
* eslint
|
12
|
+
* stylelint
|
13
|
+
* prettier
|
14
|
+
* tabelle
|
15
|
+
* Custom Elements
|
16
|
+
|
17
|
+
## Setup
|
18
|
+
|
19
|
+
[Install Node.js](https://nodejs.org/en/download/)
|
20
|
+
|
21
|
+
In this directory run:
|
22
|
+
|
23
|
+
```
|
24
|
+
npm i
|
25
|
+
```
|
26
|
+
|
27
|
+
Now you need to run:
|
28
|
+
|
29
|
+
```
|
30
|
+
npm start
|
31
|
+
```
|
32
|
+
|
33
|
+
Visit http://localhost:3000 to visit the app, and http://localhost:4001 to visit the pattern library.
|
data/Rakefile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'Innoq::Ui::Components'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.md')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
require 'bundler/gem_tasks'
|
18
|
+
|
19
|
+
require 'rake/testtask'
|
20
|
+
|
21
|
+
Rake::TestTask.new(:test) do |t|
|
22
|
+
t.libs << 'test'
|
23
|
+
t.pattern = 'test/**/*_test.rb'
|
24
|
+
t.verbose = false
|
25
|
+
end
|
26
|
+
|
27
|
+
task default: :test
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# require '../icon/rails_helper', __file__
|
2
|
+
|
3
|
+
module ComponentHelper
|
4
|
+
|
5
|
+
def navbar_layout_tag(*args, &block)
|
6
|
+
content_tag :div, class: 'navbar-layout', &block
|
7
|
+
end
|
8
|
+
|
9
|
+
def navbar_tag(*args, &block)
|
10
|
+
content_tag :nav, class: 'navbar', &block
|
11
|
+
end
|
12
|
+
|
13
|
+
def secondary_navbar_tag(*args, &block)
|
14
|
+
content_tag :nav, class: 'secondary-navbar', &block
|
15
|
+
end
|
16
|
+
|
17
|
+
# NOTE: this differs in nearly all conceivable ways from the JSX version.
|
18
|
+
def navbar_item_tag(href, current: false, symbol:, label:, &block)
|
19
|
+
link_to href, class: "navbar-item #{'current' if current}" do
|
20
|
+
raw <<~EOS
|
21
|
+
<div class="symbol">#{icon_tag symbol}</div>
|
22
|
+
<div class="label">#{label}</div>
|
23
|
+
EOS
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# NOTE: this differs in nearly all conceivable ways from the JSX version.
|
28
|
+
def navbar_brand_tag(href, symbol:, label:, &block)
|
29
|
+
link_to href, class: 'navbar-item brand' do
|
30
|
+
raw <<~EOS
|
31
|
+
<div class="symbol">#{icon_tag symbol}</div>
|
32
|
+
<div class="label">#{label}</div>
|
33
|
+
EOS
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module ComponentHelper
|
2
|
+
|
3
|
+
def progress_bar_tag(value:, max:, modifier: nil)
|
4
|
+
label = yield if block_given?
|
5
|
+
label ||= value / max unless max == 0
|
6
|
+
label ||= '0'
|
7
|
+
|
8
|
+
label_tag class: "progress-bar #{modifier}" do
|
9
|
+
content_tag :progress, label, value: value, max: max
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
|
2
|
+
module ComponentHelper
|
3
|
+
def tabelle_toggler_tag(expanded, label_expand:, label_collapse:)
|
4
|
+
button_tag is: 'tabelle-toggler', hidden: true, 'aria-expanded': (expanded ? 'true' : 'false') do
|
5
|
+
content_tag :span, class: 'expand', title: label_expand do
|
6
|
+
content_tag :span, label_expand, class: 'sr-only'
|
7
|
+
end
|
8
|
+
|
9
|
+
content_tag :span, class: 'collapse', title: label_collapse do
|
10
|
+
content_tag :span, label_collapse, class: 'sr-only'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# require '../squishable/rails_helper', __file__
|
2
|
+
|
3
|
+
module ComponentHelper
|
4
|
+
|
5
|
+
# TODO: I18n for labels
|
6
|
+
def tabelle_arrows_tag(name, label, sorted)
|
7
|
+
raw <<~EOS
|
8
|
+
<input class="tabelle-arrow" id="#{name}_asc" type="radio" name="sort" value="#{name}_asc" checked=#{sorted == 'asc'} />
|
9
|
+
<label class="tabelle-arrow--asc" for="#{name}_asc">
|
10
|
+
<span class="sr-only">Sort #{label} Ascending</span>
|
11
|
+
</label>
|
12
|
+
|
13
|
+
<input class="tabelle-arrow" id="#{name}_desc" type="radio" name="sort" value="#{name}_desc" checked=#{sorted == 'desc'} />
|
14
|
+
<label class="tabelle-arrow--desc" for="#{name}_desc">
|
15
|
+
<span class="sr-only">Sort #{label} Descending</span>
|
16
|
+
</label>
|
17
|
+
EOS
|
18
|
+
end
|
19
|
+
|
20
|
+
# TODO: I18n for labels
|
21
|
+
def tabelle_filter_tag(name, label, value)
|
22
|
+
text_field name, class: 'tabelle-input', value: value, 'aria-label': "Filter #{label}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def tabelle_header_tag(name, label:, short_label: nil, value: nil, sorted: false)
|
26
|
+
header = short_label ? squishable_tag(label, short_label) : label
|
27
|
+
|
28
|
+
raw <<~EOS
|
29
|
+
<th scope="col" role="columnheader" aria-label=#{label}>
|
30
|
+
<div class="tabelle-header">
|
31
|
+
<span class="header #{'truncatable' if short_label}" id="#{name}_group" aria-hidden="true">#{raw header}</span>
|
32
|
+
#{raw tabelle_arrows_tag name, label, sorted}
|
33
|
+
#{raw tabelle_filter_tag name, label, value}
|
34
|
+
</div>
|
35
|
+
</th>
|
36
|
+
EOS
|
37
|
+
end
|
38
|
+
|
39
|
+
def tabelle_tag(id: 'TabelleId', action:, &block)
|
40
|
+
content_tag 'ta-belle', id: id, 'change-uri': true do
|
41
|
+
form_tag method: :get, url: action, &block
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# require "../tabelle-toggler/rails_helper", __file__
|
2
|
+
|
3
|
+
module ComponentHelper
|
4
|
+
def thead_tag(*args, &block)
|
5
|
+
content_tag :thead, role: 'rowgroup', &block
|
6
|
+
end
|
7
|
+
|
8
|
+
def tbody_tag(*args, &block)
|
9
|
+
content_tag :tbody, role: 'rowgroup', &block
|
10
|
+
end
|
11
|
+
|
12
|
+
def tr_tag(*args, &block)
|
13
|
+
content_tag :tr, role: 'row', &block
|
14
|
+
end
|
15
|
+
|
16
|
+
def td_tag(column:, modifier: nil, &block)
|
17
|
+
content_tag :td, role: 'cell', class: modifier, data: {column: column}, &block
|
18
|
+
end
|
19
|
+
|
20
|
+
def collapser_th_tag(label, *args)
|
21
|
+
content_tag :th, class: 'table-toggler-cell', scope: 'col', role: 'columnheader' do
|
22
|
+
content_tag :span, label, class: 'sr-only'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def collapser_td_tag(expanded, label_expand:, label_collapse:)
|
27
|
+
content_tag :td, class: 'table-toggler-cell', role: 'cell' do
|
28
|
+
tabelle_toggler_tag expanded, label_expand: label_expand, label_collapse: label_collapse
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
$:.push File.expand_path("../../../../app", __dir__)
|
2
|
+
|
3
|
+
%w(amount button-group icon main-layout page-category navbar progress-bar squishable tabelle tabelle-toggler table table-responsive).each do |component|
|
4
|
+
# puts "Trying to load component #{component}"
|
5
|
+
require "components/#{component}/rails_helper"
|
6
|
+
end
|
7
|
+
|
8
|
+
puts "loaded all components."
|
9
|
+
|
10
|
+
module Innoq
|
11
|
+
module Ui
|
12
|
+
module Components
|
13
|
+
module Helper
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: innoq-ui-components
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Willem van Kerkhof
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-03-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 5.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 5.0.0
|
27
|
+
description: innoQ UI components for use in internal applications
|
28
|
+
email:
|
29
|
+
- wvk@innoq.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- README.md
|
35
|
+
- Rakefile
|
36
|
+
- app/components/amount/rails_helper.rb
|
37
|
+
- app/components/button-group/rails_helper.rb
|
38
|
+
- app/components/icon/rails_helper.rb
|
39
|
+
- app/components/main-layout/rails_helper.rb
|
40
|
+
- app/components/navbar/rails_helper.rb
|
41
|
+
- app/components/page-category/rails_helper.rb
|
42
|
+
- app/components/progress-bar/rails_helper.rb
|
43
|
+
- app/components/squishable/rails_helper.rb
|
44
|
+
- app/components/tabelle-toggler/rails_helper.rb
|
45
|
+
- app/components/tabelle/rails_helper.rb
|
46
|
+
- app/components/table-responsive/rails_helper.rb
|
47
|
+
- app/components/table/rails_helper.rb
|
48
|
+
- app/helpers/component_helper.rb
|
49
|
+
- lib/innoq/ui/components.rb
|
50
|
+
- lib/innoq/ui/components/helper.rb
|
51
|
+
- lib/innoq/ui/components/railtie.rb
|
52
|
+
- lib/innoq/ui/components/version.rb
|
53
|
+
homepage: https://innoq.com
|
54
|
+
licenses:
|
55
|
+
- MIT
|
56
|
+
metadata: {}
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options: []
|
59
|
+
require_paths:
|
60
|
+
- lib
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
requirements: []
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 2.7.7
|
74
|
+
signing_key:
|
75
|
+
specification_version: 4
|
76
|
+
summary: Collection of innoQ UI components
|
77
|
+
test_files: []
|