uniform-ui 3.0.0.beta5 → 3.0.0.beta8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9c19f2b7e166d8cb8cd35a19c4877d5a4390a87628cad12f178b3a6942c4dbb
4
- data.tar.gz: de18040c3185a8b9fce633138e333eaee457e03d78ddb27fba5d3dbee7f38c36
3
+ metadata.gz: 412523e9eff8e56b4f3874670f9b43dd0fe8deea00dc41fc59d9ca57e1f4b808
4
+ data.tar.gz: 91e4e049712982119860f56e3942f02d6bbc622bc9af779027100b7eeab6c66a
5
5
  SHA512:
6
- metadata.gz: 67e01f1258d4dcfc24ac562d635405e8bad692acd9b0d438909d77e9a81b8bce83d885d0bf7eb1add4dc82cc420ccc5c970957504b367737ea5b4e03479050df
7
- data.tar.gz: 422ce65464546fea0681323a46e007756f7d451174b6d558e4a5b2d6b7d82d6339278cffde5035562336a3a15a68a51f5265343b753a677d88c81884a49a254f
6
+ metadata.gz: dfe6402b702439be8cfe35a287d7dcffcb2eab8fa899a9bd2dceb0a10e4fc937e40580379242a7e94d62c57e2bf6bfb65aea1b4b9b2bf5a7a8d0b4c7e60d628f
7
+ data.tar.gz: e8394e0e62e9d03691ff63799387101f9b892e6715cead997885e530c73da034532422fc71fe07e6c0413fb924f88cec2f06cf90016dc5b7a68b4942025e542c
@@ -12,7 +12,14 @@ export default class Component {
12
12
  options = options || {};
13
13
  this.eventListens = new Array();
14
14
  this.eventListeners = new Array();
15
- this.el = options.el || createElement('div', options); //TODO filter options to HTML_ATTRIBUTES
15
+ const htmlAttributes = {}
16
+ Object.keys(options).forEach(key => {
17
+ if (HTML_ATTRIBUTES.includes(key)) {
18
+ htmlAttributes[key] = options[key]
19
+ }
20
+ })
21
+ delete htmlAttributes.content;
22
+ this.el = options.el || createElement('div', htmlAttributes);
16
23
  this.cid = uniqueId('c');
17
24
 
18
25
  this.on = function (type, handler) {
@@ -25,7 +25,7 @@ export default class FloatingLabel extends Component {
25
25
  }
26
26
 
27
27
  render () {
28
- if(!isVisible(this.input)) return;
28
+ if(!isVisible(this.input)) return this;
29
29
 
30
30
  let internalHeight = parseInt(css(this.input, 'height')) - parseInt(css(this.input, 'borderTopWidth')) - parseInt(css(this.input, 'borderBottomWidth'));
31
31
  this.input.style.lineHeight = 1;
@@ -49,6 +49,8 @@ export default class FloatingLabel extends Component {
49
49
  if(this.input.value != ""){
50
50
  this.focus()
51
51
  }
52
+
53
+ return this;
52
54
  }
53
55
 
54
56
  focus (e) {
@@ -1,5 +1,5 @@
1
1
  import Component from './component';
2
- import {css, trigger, append} from 'dolla';
2
+ import {css, trigger, append, createElement} from 'dolla';
3
3
 
4
4
  /* UniformModal.initialize
5
5
  Options
@@ -30,11 +30,8 @@ export default class Modal extends Component {
30
30
  var that = this;
31
31
 
32
32
  this.highest_z_index = 0;
33
- this.overlay = document.createElement('div');
34
- this.overlay.classList.add('uniformModal-overlay');
35
-
36
- this.blur = document.createElement('div');
37
- this.blur.classList.add('uniformModal-blur');
33
+ this.overlay = createElement('div', {class: 'uniformModal-overlay'});
34
+ this.blur = createElement('div', {class: 'uniformModal-blur'});
38
35
 
39
36
  this.original_scroll = window.scrollY;
40
37
  this.blur.style.top = 0 - this.original_scroll + "px";
@@ -46,8 +43,6 @@ export default class Modal extends Component {
46
43
  this.el.style.zIndex = this.highest_z_index + 2;
47
44
  }
48
45
 
49
- this.el.appendChild(this.overlay);
50
-
51
46
  let next_element = document.body.children[0]
52
47
  while(next_element){
53
48
  const element = next_element;
@@ -61,18 +56,24 @@ export default class Modal extends Component {
61
56
  document.body.appendChild(this.blur);
62
57
  document.body.appendChild(this.el);
63
58
 
64
- var container = document.createElement('div');
65
- container.classList.add('uniformModal-container');
66
-
67
- append(container, this.content);
68
-
69
- var closeButton = document.createElement('div');
70
- closeButton.classList.add('uniformModal-close');
71
- this.el.appendChild(closeButton);
72
-
73
59
  this.el.style.top = window.scrollY;
74
60
  this.listenTo(this.overlay, 'click', this.close);
75
- this.el.appendChild(container);
61
+
62
+ const container = createElement('div', {
63
+ class: 'uniformModal-container',
64
+ children: this.content
65
+ });
66
+
67
+ const closeButton = createElement('div', {
68
+ class: 'uniformModal-close-container',
69
+ children: {
70
+ class: 'uniformModal-close'
71
+ }
72
+ });
73
+
74
+ this.el.append(this.overlay);
75
+ this.el.append(container);
76
+ this.el.append(closeButton);
76
77
 
77
78
  if (this.options.klass) container.classList.add(this.options.klass);
78
79
  if (this.content.innerHTML) trigger(this.content, 'rendered');
@@ -82,8 +83,9 @@ export default class Modal extends Component {
82
83
  }
83
84
 
84
85
  checkCloseButton (e) {
85
- if(e.target.classList.contains('uniformModal-close'))
86
- this.close();
86
+ if(e.target.classList.contains('uniformModal-close')){
87
+ this.close();
88
+ }
87
89
  }
88
90
 
89
91
  close () {
@@ -117,7 +117,8 @@ export default class Popover extends Component {
117
117
  if(leftAlign == 'left'){
118
118
  position.right = outerWidth(container) - anchorOffset.left;
119
119
  } else if(leftAlign == 'center'){
120
- position.left = anchorOffset.left + outerWidth(this.options.anchor) / 2 - outerWidth(this.el) / 2;
120
+ position.left = anchorOffset.left + outerWidth(this.options.anchor) / 2;
121
+ position.transform = "translateX(-50%)";
121
122
  } else if (leftAlign == 'right'){
122
123
  position.left = anchorOffset.left + outerWidth(this.options.anchor);
123
124
  } else if (leftAlign.includes("px")){
@@ -2,10 +2,6 @@
2
2
  @import 'uniform/variables';
3
3
  @import 'uniform/mixins';
4
4
  *{
5
- --bg-opacity: 1.0;
6
- --shadow-opacity: 0.1;
7
- --border-opacity: 1.0;
8
- --border-color: #{red(color('gray'))}, #{green(color('gray'))}, #{blue(color('gray'))};
9
5
  border-width: 0;
10
6
  border-style: solid;
11
7
  border-color: rgba(var(--border-color), var(--border-opacity));
@@ -19,4 +15,8 @@
19
15
 
20
16
  body{
21
17
  --breakpoints: #{mapToString($breakpoints)};
18
+ --bg-opacity: 1.0;
19
+ --shadow-opacity: 0.1;
20
+ --border-opacity: 1.0;
21
+ --border-color: #{red(color('gray'))}, #{green(color('gray'))}, #{blue(color('gray'))};
22
22
  }
@@ -17,6 +17,11 @@
17
17
  padding-right: 0.5em;
18
18
  }
19
19
  }
20
+
21
+ *:focus {
22
+ box-shadow: none;
23
+ }
24
+
20
25
  input,
21
26
  .input{
22
27
  flex: 1 1 auto;
@@ -27,4 +32,8 @@
27
32
  padding: 0.5em;
28
33
  box-shadow: none;
29
34
  }
35
+
36
+ .uniformInput {
37
+ border: none !important;
38
+ }
30
39
  }
@@ -12,46 +12,29 @@
12
12
  position: absolute;
13
13
  top: 0;
14
14
  width: 100%;
15
- text-align:center;
16
15
  padding: 2em;
17
16
  z-index: 9999;
17
+ display: flex;
18
+ justify-content: center;
19
+ & > * {
20
+ z-index: 2;
21
+ }
18
22
  }
19
23
 
20
- .uniformModal-container{
21
- display:inline-block;
22
- text-align:left;
23
- position:relative;
24
- margin: auto;
25
- background: white;
26
- border-radius: 0.25em;
27
- max-width: 90%;
28
- z-index: 2;
29
- &.-fill{
30
- width: 90%;
31
- }
32
- &.-reset{
33
- margin: -2em;
34
- max-width: none;
35
- border-radius: 0;
36
- &.-fill{
37
- width: 100%;
38
- }
39
- }
24
+ .uniformModal-close-container {
25
+ position: relative;
26
+ width: 0;
40
27
  }
41
28
 
42
29
  .uniformModal-close{
43
30
  z-index: 2;
44
- position: absolute;
45
- padding: 0.3em;
46
- top: 0;
47
- right: 0;
48
- font-size:1.5em;
49
31
  color: white;
50
- opacity: 0.5;
51
- line-height:1;
52
32
  cursor: pointer;
53
- height: 2rem;
54
- width: 2rem;
33
+ position: absolute;
34
+ bottom: 100%;
35
+ height: 2em;
36
+ width: 2em;
37
+ opacity: 0.5;
55
38
  &:hover{
56
39
  opacity: 1;
57
40
  }
@@ -59,19 +42,21 @@
59
42
  &:before{
60
43
  content: "";
61
44
  width: 1px;
62
- height: 1.5rem;
63
- transform-origin: 50% 50%;
64
- transform: rotate(-45deg);
65
- background: white;
45
+ height: 1.5em;
46
+ background: currentColor;
66
47
  position:absolute;
67
48
  left: 50%;
68
- top: 15%;
49
+ top: 50%;
50
+ transform-origin: 50% 50%;
51
+ transform: translateY(-50%) rotate(-45deg);
69
52
  }
70
53
  &:before{
71
- transform: rotate(45deg);
54
+ transform: translateY(-50%) rotate(45deg);
72
55
  }
73
56
  }
74
57
 
58
+ // TODO replace with backdrop-filter: blur(4px);
59
+ // when supported by Firefox https://caniuse.com/css-backdrop-filter
75
60
  .uniformModal-blur{
76
61
  top: 0;
77
62
  left: 0;
@@ -15,6 +15,12 @@
15
15
  box-shadow: 0 0 0 2px rgba(var(--focus-color), 1);
16
16
  }
17
17
  }
18
+
19
+ select.uniformInput {
20
+ padding-right: 1em;
21
+ background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>') no-repeat center right;
22
+ }
23
+
18
24
  @include color-rule('.focus') using ($color) {
19
25
  --focus-color: #{red($color)}, #{green($color)}, #{blue($color)};
20
26
  }
@@ -124,6 +124,8 @@
124
124
  center
125
125
  stretch
126
126
  baseline
127
+ flex-start
128
+ flex-end
127
129
  ) {
128
130
  @include responsive-rule('justify-#{$selector}') {
129
131
  justify-items: $selector;
@@ -139,13 +141,15 @@
139
141
  end
140
142
  center
141
143
  stretch
144
+ flex-start
145
+ flex-end
142
146
  ) {
143
147
  .flex,
144
148
  .grid{
145
- @include responsive-rule('justify-#{$selector}') {
149
+ @include responsive-rule('justify-self-#{$selector}') {
146
150
  justify-self: $selector;
147
151
  }
148
- @include responsive-rule('align-#{$selector}') {
152
+ @include responsive-rule('align-self-#{$selector}') {
149
153
  align-self: $selector;
150
154
  }
151
155
  }
@@ -32,6 +32,12 @@
32
32
  @include responsive-rule(".min-width-#{$i * 5}-vw"){ min-width: $i * 5vw };
33
33
  @include responsive-rule(".max-width-#{$i * 5}-vw"){ max-width: $i * 5vw };
34
34
  }
35
+
36
+ @for $i from 0 through 20 {
37
+ @include responsive-rule(".height-#{$i * 5}-vh"){ height: $i * 5vh };
38
+ @include responsive-rule(".min-height-#{$i * 5}-vh"){ min-height: $i * 5vh };
39
+ @include responsive-rule(".max-height-#{$i * 5}-vh"){ max-height: $i * 5vh };
40
+ }
35
41
  @include responsive-rule(".height-100-vh"){ height: 100vh; };
36
42
  @include responsive-rule(".min-height-100-vh"){ min-height: 100vh; };
37
43
  @include responsive-rule(".max-height-100-vh"){ max-height: 100vh; };
@@ -41,14 +47,14 @@
41
47
  //----------------------------------------------------------------
42
48
  @include responsive-rule(".height-auto"){ height: auto; };
43
49
  @include responsive-rule(".height-full"){ height: 100%; };
44
- @include responsive-rule(".max-height-auto"){ height: auto; };
45
- @include responsive-rule(".max-height-full"){ height: 100%; };
46
- @include responsive-rule(".min-height-auto"){ height: auto; };
47
- @include responsive-rule(".min-height-full"){ height: 100%; };
50
+ @include responsive-rule(".max-height-auto"){ max-height: auto; };
51
+ @include responsive-rule(".max-height-full"){ max-height: 100%; };
52
+ @include responsive-rule(".min-height-auto"){ min-height: auto; };
53
+ @include responsive-rule(".min-height-full"){ min-height: 100%; };
48
54
 
49
55
  @include responsive-rule(".width-auto"){ width: auto; };
50
56
  @include responsive-rule(".width-full"){ width: 100%; };
51
- @include responsive-rule(".max-width-auto"){ width: auto; };
52
- @include responsive-rule(".max-width-full"){ width: 100%; };
53
- @include responsive-rule(".min-width-auto"){ width: auto; };
54
- @include responsive-rule(".min-width-full"){ width: 100%; };
57
+ @include responsive-rule(".max-width-auto"){ max-width: auto; };
58
+ @include responsive-rule(".max-width-full"){ max-width: 100%; };
59
+ @include responsive-rule(".min-width-auto"){ min-width: auto; };
60
+ @include responsive-rule(".min-width-full"){ min-width: 100%; };
@@ -13,6 +13,12 @@
13
13
  margin-top: $size
14
14
  }
15
15
  }
16
+ @include size-rule('.space') using ($size) {
17
+ & > * + * {
18
+ margin-top: $size;
19
+ margin-left: $size;
20
+ }
21
+ }
16
22
 
17
23
  //----------------------------------------------------------------
18
24
  // Margin
@@ -108,6 +108,8 @@ $sizes: map-merge((
108
108
  "sm": 0.9rem,
109
109
  "lg": 1.2rem,
110
110
  "xl": 1.4rem,
111
+ "2x": 2rem,
112
+ "4x": 4rem,
111
113
  ),
112
114
  pad: (
113
115
  '' : 1rem,
@@ -1,3 +1,3 @@
1
1
  module Uniform
2
- VERSION = "3.0.0.beta5"
2
+ VERSION = "3.0.0.beta8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uniform-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.beta5
4
+ version: 3.0.0.beta8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Ehmke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-09 00:00:00.000000000 Z
11
+ date: 2021-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  - !ruby/object:Gem::Version
111
111
  version: 1.3.1
112
112
  requirements: []
113
- rubygems_version: 3.2.3
113
+ rubygems_version: 3.2.15
114
114
  signing_key:
115
115
  specification_version: 4
116
116
  summary: Sass UI