searchkit-rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/README.md +121 -1
  4. data/Rakefile +36 -0
  5. data/lib/assets/searchkit-source/development/searchkit.js +66547 -0
  6. data/lib/assets/searchkit-source/production/searchkit.js +61 -0
  7. data/lib/assets/stylesheets/searchkit.scss +1 -0
  8. data/lib/assets/stylesheets/searchkit/components.scss +42 -0
  9. data/lib/assets/stylesheets/searchkit/components/_actions.scss +20 -0
  10. data/lib/assets/stylesheets/searchkit/components/_arrows.scss +15 -0
  11. data/lib/assets/stylesheets/searchkit/components/_filter-group.scss +110 -0
  12. data/lib/assets/stylesheets/searchkit/components/_filter-item.scss +40 -0
  13. data/lib/assets/stylesheets/searchkit/components/_hierarchical-menu-filter.scss +32 -0
  14. data/lib/assets/stylesheets/searchkit/components/_hierarchical-refinement-filter.scss +27 -0
  15. data/lib/assets/stylesheets/searchkit/components/_hits-stats.scss +8 -0
  16. data/lib/assets/stylesheets/searchkit/components/_input-filter.scss +64 -0
  17. data/lib/assets/stylesheets/searchkit/components/_item-list.scss +58 -0
  18. data/lib/assets/stylesheets/searchkit/components/_loader.scss +28 -0
  19. data/lib/assets/stylesheets/searchkit/components/_menu-filter.scss +24 -0
  20. data/lib/assets/stylesheets/searchkit/components/_no-hits.scss +20 -0
  21. data/lib/assets/stylesheets/searchkit/components/_numeric-refinement-list-filter.scss +28 -0
  22. data/lib/assets/stylesheets/searchkit/components/_pagination.scss +12 -0
  23. data/lib/assets/stylesheets/searchkit/components/_panel.scss +61 -0
  24. data/lib/assets/stylesheets/searchkit/components/_range-filter.scss +55 -0
  25. data/lib/assets/stylesheets/searchkit/components/_range-histogram.scss +22 -0
  26. data/lib/assets/stylesheets/searchkit/components/_range-input.scss +37 -0
  27. data/lib/assets/stylesheets/searchkit/components/_range-slider.scss +25 -0
  28. data/lib/assets/stylesheets/searchkit/components/_refinement-list-filter.scss +27 -0
  29. data/lib/assets/stylesheets/searchkit/components/_reset-filters.scss +19 -0
  30. data/lib/assets/stylesheets/searchkit/components/_search-box.scss +54 -0
  31. data/lib/assets/stylesheets/searchkit/components/_search-icon.scss +3 -0
  32. data/lib/assets/stylesheets/searchkit/components/_select.scss +38 -0
  33. data/lib/assets/stylesheets/searchkit/components/_selected-filters.scss +45 -0
  34. data/lib/assets/stylesheets/searchkit/components/_sorting-selector.scss +38 -0
  35. data/lib/assets/stylesheets/searchkit/components/_table.scss +80 -0
  36. data/lib/assets/stylesheets/searchkit/components/_tabs.scss +54 -0
  37. data/lib/assets/stylesheets/searchkit/components/_tag-cloud.scss +55 -0
  38. data/lib/assets/stylesheets/searchkit/components/_tag-filter.scss +22 -0
  39. data/lib/assets/stylesheets/searchkit/components/_toggle.scss +61 -0
  40. data/lib/assets/stylesheets/searchkit/components/_view-switcher.scss +39 -0
  41. data/lib/assets/stylesheets/searchkit/images/search.svg +25 -0
  42. data/lib/assets/stylesheets/searchkit/theme.scss +369 -0
  43. data/lib/assets/stylesheets/searchkit/vars.scss +39 -0
  44. data/lib/generators/searchkit/install_generator.rb +56 -0
  45. data/lib/generators/templates/.keep +0 -0
  46. data/lib/searchkit/rails.rb +83 -1
  47. data/lib/searchkit/rails/asset_variant.rb +13 -0
  48. data/lib/searchkit/rails/engine.rb +11 -0
  49. data/lib/searchkit/rails/railtie.rb +29 -0
  50. data/lib/searchkit/rails/version.rb +1 -1
  51. data/searchkit-builds/package.json +10 -0
  52. data/searchkit-builds/searchkit.js +3 -0
  53. data/searchkit-builds/webpack.config.js +30 -0
  54. data/searchkit-rails.gemspec +15 -2
  55. data/spec/dummy/README.rdoc +3 -0
  56. data/spec/dummy/Rakefile +6 -0
  57. data/spec/dummy/app/assets/images/.keep +0 -0
  58. data/spec/dummy/app/assets/javascripts/application.js +0 -0
  59. data/spec/dummy/app/assets/stylesheets/application.css +2 -0
  60. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  61. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  62. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  63. data/spec/dummy/config.ru +4 -0
  64. data/spec/dummy/config/application.rb +28 -0
  65. data/spec/dummy/config/boot.rb +5 -0
  66. data/spec/dummy/config/environment.rb +5 -0
  67. data/spec/dummy/config/environments/development.rb +23 -0
  68. data/spec/dummy/config/environments/production.rb +82 -0
  69. data/spec/dummy/config/environments/test.rb +38 -0
  70. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  71. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  72. data/spec/dummy/config/initializers/inflections.rb +16 -0
  73. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  74. data/spec/dummy/config/initializers/secret_token.rb +18 -0
  75. data/spec/dummy/config/initializers/session_store.rb +3 -0
  76. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  77. data/spec/dummy/config/locales/en.yml +3 -0
  78. data/spec/dummy/config/locales/es.yml +3 -0
  79. data/spec/dummy/config/routes.rb +3 -0
  80. data/spec/dummy/log/.keep +0 -0
  81. data/spec/dummy/log/test.log +0 -0
  82. data/spec/searchkit/rails/rails_spec.rb +1 -1
  83. data/spec/spec_helper.rb +14 -2
  84. metadata +248 -7
@@ -0,0 +1,28 @@
1
+ .sk-spinning-loader {
2
+ font-size: 10px;
3
+ position: relative;
4
+ text-indent: -9999em;
5
+ border-top: 2px solid rgba(0, 0, 0, 0.2);
6
+ border-right: 2px solid rgba(0, 0, 0, 0.2);
7
+ border-bottom: 2px solid rgba(0, 0, 0, 0.2);
8
+ border-left: 2px solid #000;
9
+ transform: translateZ(0);
10
+ animation: spinning-loader 1.1s infinite linear;
11
+ }
12
+ .sk-spinning-loader,
13
+ .sk-spinning-loader:after {
14
+ border-radius: 50%;
15
+ width: 20px;
16
+ height: 20px;
17
+ }
18
+
19
+ @keyframes spinning-loader {
20
+ 0% {
21
+ -webkit-transform: rotate(0deg);
22
+ transform: rotate(0deg);
23
+ }
24
+ 100% {
25
+ -webkit-transform: rotate(360deg);
26
+ transform: rotate(360deg);
27
+ }
28
+ }
@@ -0,0 +1,24 @@
1
+ @import "filter-item.scss";
2
+ @import "../vars.scss";
3
+
4
+ .sk-menu-list {
5
+
6
+ &__header {
7
+ margin-bottom: 5px;
8
+ font-weight: $sk-bold-weight;
9
+ font-size: $sk-heading-font-size;
10
+ }
11
+
12
+ &__options {
13
+
14
+ }
15
+
16
+ &__items {
17
+
18
+ }
19
+
20
+ &-option {
21
+ @include filter-option;
22
+ }
23
+
24
+ }
@@ -0,0 +1,20 @@
1
+ @import "../vars.scss";
2
+ @import "actions.scss";
3
+
4
+ .sk-no-hits {
5
+ text-align:center;
6
+ margin-top:60px;
7
+ color: $sk-text-color;
8
+
9
+ &__info {
10
+ font-size:$sk-heading-font-size;
11
+ }
12
+
13
+ &__steps {
14
+ margin-top:20px;
15
+ }
16
+
17
+ &__step-action {
18
+ @extend .sk-action-button;
19
+ }
20
+ }
@@ -0,0 +1,28 @@
1
+ @import "filter-item.scss";
2
+ @import "../vars.scss";
3
+
4
+ .sk-numeric-refinement-list {
5
+
6
+ &__header {
7
+ margin-bottom: 5px;
8
+ font-weight: $sk-bold-weight;
9
+ font-size: $sk-heading-font-size;
10
+ }
11
+
12
+ &.is-disabled {
13
+ display:none;
14
+ }
15
+
16
+ &__options {
17
+
18
+ }
19
+
20
+ &__items {
21
+
22
+ }
23
+
24
+ &-option {
25
+ @include filter-option;
26
+ }
27
+
28
+ }
@@ -0,0 +1,12 @@
1
+ @import "../vars.scss";
2
+
3
+ .sk-pagination-select {
4
+ }
5
+
6
+ .sk-pagination-navigation {
7
+
8
+ .sk-toggle-option:first-child,
9
+ .sk-toggle-option:last-child {
10
+ flex: 4;
11
+ }
12
+ }
@@ -0,0 +1,61 @@
1
+ @import "../vars.scss";
2
+
3
+ .sk-layout__filters {
4
+ .sk-panel {
5
+ margin-bottom: 16px;
6
+ }
7
+ }
8
+
9
+ .sk-action-bar {
10
+ .sk-panel {
11
+ &__header {
12
+ display: none;
13
+ }
14
+ }
15
+ }
16
+
17
+ .sk-panel {
18
+ width: 100%;
19
+
20
+ &__header {
21
+ color: $sk-title-color;
22
+ margin-bottom: 5px;
23
+ font-weight: $sk-bold-weight;
24
+ font-size: $sk-heading-font-size;
25
+
26
+ &.is-collapsable {
27
+ cursor: pointer;
28
+ user-select: none;
29
+ padding-left:15px;
30
+ position: relative;
31
+
32
+ &:after {
33
+ content:"";
34
+ display:block;
35
+ position:absolute;
36
+ top:50%;
37
+ margin-top:-3px;
38
+ left: -1px;
39
+ @include sk-arrow-down(5px);
40
+ }
41
+
42
+ &.is-collapsed:after {
43
+ @include sk-arrow-right(5px);
44
+ margin-top:-5px;
45
+ left: 0;
46
+ }
47
+
48
+ }
49
+
50
+ }
51
+
52
+ &__content {
53
+ &.is-collapsed {
54
+ display:none;
55
+ }
56
+ }
57
+
58
+ &.is-disabled {
59
+ display:none;
60
+ }
61
+ }
@@ -0,0 +1,55 @@
1
+ @import "~rc-slider/assets/index.css";
2
+ @import "../vars.scss";
3
+
4
+ .sk-range-filter {
5
+
6
+ &__header {
7
+ margin-bottom: 5px;
8
+ font-weight: $sk-bold-weight;
9
+ font-size: $sk-heading-font-size;
10
+ }
11
+
12
+ &.is-disabled {
13
+ display:none;
14
+ }
15
+
16
+ &.is-no-histogram .bar-chart {
17
+ margin-top:15px;
18
+ }
19
+
20
+ &-value-labels {
21
+ display:flex;
22
+ justify-content: space-between;
23
+ margin-top:5px;
24
+
25
+ &__min {
26
+ align-self: flex-start;
27
+ font-size:$sk-list-secondary-font-size;
28
+ }
29
+ &__max {
30
+ align-self: flex-end;
31
+ font-size:$sk-list-secondary-font-size;
32
+ }
33
+ }
34
+
35
+ }
36
+
37
+ .bar-chart {
38
+ height:50px;
39
+ flex-flow: row nowrap;
40
+ justify-content: space-around;
41
+ display:flex;
42
+ align-items: flex-end;
43
+
44
+ &__bar {
45
+ background:rgba(156,162,153,0.5);
46
+ flex:1;
47
+
48
+ &.is-out-of-bounds {
49
+ background:rgba(156,162,153,0.3);
50
+ }
51
+ }
52
+
53
+
54
+
55
+ }
@@ -0,0 +1,22 @@
1
+ @import "../vars.scss";
2
+
3
+ .sk-range-histogram {
4
+ height:50px;
5
+ flex-flow: row nowrap;
6
+ justify-content: space-around;
7
+ display:flex;
8
+ align-items: flex-end;
9
+
10
+ &__bar {
11
+ background:rgba(156,162,153,0.5);
12
+ flex:1;
13
+
14
+ &.is-out-of-bounds {
15
+ background:rgba(156,162,153,0.3);
16
+ }
17
+ }
18
+ }
19
+
20
+ .rc-tooltip {
21
+ font-family: $sk-font-family;
22
+ }
@@ -0,0 +1,37 @@
1
+ @import "../vars.scss";
2
+
3
+ .sk-range-input {
4
+ width: 100%;
5
+ display:flex;
6
+ align-content: center;
7
+
8
+ &__input {
9
+ flex:0 0 60px;
10
+ display: inline-block;
11
+ width: 60px;
12
+ border-radius: $sk-border-radius;
13
+ border: 1px solid $sk-border-color;
14
+ height:30px;
15
+ padding:0 10px;
16
+
17
+ &.is-error {
18
+ border-color: $sk-remove-action-color;
19
+ }
20
+ }
21
+
22
+ &__submit {
23
+ flex:0 0 auto;
24
+ @extend .sk-action-button;
25
+ background:white;
26
+ height:30px;
27
+ padding:0 10px;
28
+ margin-left:10px;
29
+ }
30
+
31
+ &__to-label {
32
+ line-height:30px;
33
+ margin: 0 10px;
34
+ color: $sk-text-color;
35
+ font-size: $sk-text-font-size;
36
+ }
37
+ }
@@ -0,0 +1,25 @@
1
+ @import "../vars.scss";
2
+
3
+ .sk-range-slider {
4
+ padding-bottom: 16px; // Take into account marks
5
+
6
+ .rc-slider-handle {
7
+ border-color: $sk-border-color;
8
+ }
9
+ .rc-slider-track {
10
+ background-color: rgba(156, 162, 153, 0.5);
11
+ }
12
+
13
+ .rc-slider-mark-text-active {
14
+ color: $sk-list-secondary-text-color;
15
+ }
16
+
17
+ .rc-slider-mark-text {
18
+ position: absolute;
19
+ display: inline-block;
20
+ vertical-align: middle;
21
+ text-align: center;
22
+ cursor: pointer;
23
+ color: $sk-list-secondary-text-color;
24
+ }
25
+ }
@@ -0,0 +1,27 @@
1
+ @import "filter-item.scss";
2
+ @import "../vars.scss";
3
+
4
+ .sk-refinement-list {
5
+
6
+ &__header {
7
+ margin-bottom:5px;
8
+ font-weight:$sk-bold-weight;
9
+ font-size: $sk-heading-font-size;
10
+ }
11
+
12
+ &.is-disabled {
13
+ display:none;
14
+ }
15
+
16
+ &__view-more-action {
17
+ font-size:$sk-list-secondary-font-size;
18
+ color:$sk-action-text-color;
19
+ cursor:pointer;
20
+ margin-top:5px;
21
+ }
22
+
23
+ &-option {
24
+ @include filter-option;
25
+ }
26
+
27
+ }
@@ -0,0 +1,19 @@
1
+ @import "../vars.scss";
2
+
3
+ .sk-reset-filters {
4
+ text-align:center;
5
+ border-radius:$sk-border-radius;
6
+ padding:10px 20px;
7
+ cursor:pointer;
8
+ color: $sk-active-bg-color;
9
+
10
+ &.is-disabled {
11
+ cursor:default;
12
+ color:$sk-disabled-text-color;
13
+ }
14
+
15
+ &__text {
16
+ font-size:$sk-list-secondary-font-size;
17
+ }
18
+
19
+ }
@@ -0,0 +1,54 @@
1
+ @import "../vars.scss";
2
+ @import "./search-icon.scss";
3
+
4
+ .sk-search-box {
5
+ flex:auto;
6
+
7
+ form {
8
+ display:flex;
9
+ margin:0;
10
+ position:relative;
11
+ }
12
+
13
+ &__icon {
14
+ flex:0 20px 20px;
15
+ margin-top:10px;
16
+ margin-left:10px;
17
+ &:before {
18
+ content:"";
19
+ @include search-icon;
20
+ background-size: contain;
21
+ height:20px;
22
+ width:20px;
23
+ display: block;
24
+ }
25
+ opacity:0.3;
26
+ }
27
+
28
+ &__text {
29
+ padding:10px 20px;
30
+ width:100%;
31
+ flex:3;
32
+ font-size:18px;
33
+ border:none;
34
+ &:focus {
35
+ outline:0;
36
+ }
37
+ }
38
+
39
+ &__action {
40
+ height:40px;
41
+ visibility: hidden;
42
+ }
43
+
44
+ &__loader {
45
+ flex:0 20px 20px;
46
+ align-self: flex-end;
47
+ margin:10px;
48
+
49
+ &.is-hidden {
50
+ display:none;
51
+ }
52
+ }
53
+
54
+ }
@@ -0,0 +1,3 @@
1
+ @mixin search-icon {
2
+ background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KCgo8IS0tIFRoZSBpY29uIGNhbiBiZSB1c2VkIGZyZWVseSBpbiBib3RoIHBlcnNvbmFsIGFuZCBjb21tZXJjaWFsIHByb2plY3RzIHdpdGggbm8gYXR0cmlidXRpb24gcmVxdWlyZWQsIGJ1dCBhbHdheXMgYXBwcmVjaWF0ZWQuIApZb3UgbWF5IE5PVCBzdWItbGljZW5zZSwgcmVzZWxsLCByZW50LCByZWRpc3RyaWJ1dGUgb3Igb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBpY29uIHdpdGhvdXQgZXhwcmVzcyB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBpY29ubW9uc3RyLmNvbSAtLT4KCgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgoKPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoKCSB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KCjxwYXRoIGlkPSJtYWduaWZpZXItMi1pY29uIiBkPSJNNDYwLjM1NSw0MjEuNTlMMzUzLjg0NCwzMTUuMDc4YzIwLjA0MS0yNy41NTMsMzEuODg1LTYxLjQzNywzMS44ODUtOTguMDM3CgoJQzM4NS43MjksMTI0LjkzNCwzMTAuNzkzLDUwLDIxOC42ODYsNTBDMTI2LjU4LDUwLDUxLjY0NSwxMjQuOTM0LDUxLjY0NSwyMTcuMDQxYzAsOTIuMTA2LDc0LjkzNiwxNjcuMDQxLDE2Ny4wNDEsMTY3LjA0MQoKCWMzNC45MTIsMCw2Ny4zNTItMTAuNzczLDk0LjE4NC0yOS4xNThMNDE5Ljk0NSw0NjJMNDYwLjM1NSw0MjEuNTl6IE0xMDAuNjMxLDIxNy4wNDFjMC02NS4wOTYsNTIuOTU5LTExOC4wNTYsMTE4LjA1NS0xMTguMDU2CgoJYzY1LjA5OCwwLDExOC4wNTcsNTIuOTU5LDExOC4wNTcsMTE4LjA1NmMwLDY1LjA5Ni01Mi45NTksMTE4LjA1Ni0xMTguMDU3LDExOC4wNTZDMTUzLjU5LDMzNS4wOTcsMTAwLjYzMSwyODIuMTM3LDEwMC42MzEsMjE3LjA0MQoKCXoiLz4KCjwvc3ZnPgoK) no-repeat top left;
3
+ }
@@ -0,0 +1,38 @@
1
+ @import "../vars.scss";
2
+
3
+ .sk-select {
4
+ position:relative;
5
+ cursor:pointer;
6
+ max-height:30px;
7
+ display:inline-block;
8
+
9
+ &.is-disabled {
10
+ display:none
11
+ }
12
+
13
+ select {
14
+ -webkit-appearance: none;
15
+ -moz-appearance: none;
16
+ appearance: none;
17
+ background:$sk-selector-background;
18
+ padding:6px 10px;
19
+ padding-right: 30px;
20
+ border:1px solid $sk-selector-border-color;
21
+ outline:0;
22
+ font-weight:$sk-bold-weight;
23
+ font-size:$sk-text-font-size;
24
+ border-radius:$sk-border-radius;
25
+ color:$sk-selector-text-color;
26
+ }
27
+
28
+ &:after {
29
+ content:"";
30
+ position:absolute;
31
+ top:50%;
32
+ margin-top:-3px;
33
+ right:10px;
34
+ @include sk-arrow-down(6px);
35
+ pointer-events: none;
36
+ }
37
+
38
+ }