webshims-rails 1.12.0 → 1.12.2

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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +440 -440
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +132 -91
  5. data/vendor/assets/javascripts/webshims/shims/combos/10.js +248 -91
  6. data/vendor/assets/javascripts/webshims/shims/combos/11.js +237 -84
  7. data/vendor/assets/javascripts/webshims/shims/combos/15.js +21 -8
  8. data/vendor/assets/javascripts/webshims/shims/combos/16.js +21 -8
  9. data/vendor/assets/javascripts/webshims/shims/combos/17.js +237 -84
  10. data/vendor/assets/javascripts/webshims/shims/combos/18.js +237 -84
  11. data/vendor/assets/javascripts/webshims/shims/combos/19.js +11 -7
  12. data/vendor/assets/javascripts/webshims/shims/combos/2.js +18 -8
  13. data/vendor/assets/javascripts/webshims/shims/combos/20.js +11 -7
  14. data/vendor/assets/javascripts/webshims/shims/combos/21.js +1 -1
  15. data/vendor/assets/javascripts/webshims/shims/combos/22.js +1 -1
  16. data/vendor/assets/javascripts/webshims/shims/combos/24.js +9 -6
  17. data/vendor/assets/javascripts/webshims/shims/combos/25.js +11 -7
  18. data/vendor/assets/javascripts/webshims/shims/combos/26.js +11 -7
  19. data/vendor/assets/javascripts/webshims/shims/combos/28.js +10 -1
  20. data/vendor/assets/javascripts/webshims/shims/combos/3.js +11 -7
  21. data/vendor/assets/javascripts/webshims/shims/combos/30.js +18 -8
  22. data/vendor/assets/javascripts/webshims/shims/combos/31.js +18 -8
  23. data/vendor/assets/javascripts/webshims/shims/combos/32.js +7 -1
  24. data/vendor/assets/javascripts/webshims/shims/combos/33.js +7 -1
  25. data/vendor/assets/javascripts/webshims/shims/combos/4.js +11 -7
  26. data/vendor/assets/javascripts/webshims/shims/combos/5.js +237 -84
  27. data/vendor/assets/javascripts/webshims/shims/combos/6.js +244 -85
  28. data/vendor/assets/javascripts/webshims/shims/combos/7.js +18 -8
  29. data/vendor/assets/javascripts/webshims/shims/combos/8.js +11 -7
  30. data/vendor/assets/javascripts/webshims/shims/combos/9.js +255 -92
  31. data/vendor/assets/javascripts/webshims/shims/details.js +1 -1
  32. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +10 -7
  33. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +53 -56
  34. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +7 -1
  35. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +175 -60
  36. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +3 -0
  37. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +6 -6
  38. data/vendor/assets/javascripts/webshims/shims/form-validation.js +77 -28
  39. data/vendor/assets/javascripts/webshims/shims/form-validators.js +24 -16
  40. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +40 -68
  41. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +4 -4
  42. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +13 -6
  43. data/vendor/assets/javascripts/webshims/shims/range-ui.js +61 -24
  44. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +278 -95
  45. data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
  46. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +203 -0
  47. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +115 -0
  48. data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +18 -2
  49. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +227 -113
  50. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +168 -159
  51. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +106 -69
  52. metadata +4 -7
  53. data/vendor/assets/javascripts/webshims/shims/styles/details-arrows.png +0 -0
  54. data/vendor/assets/javascripts/webshims/shims/styles/polyfill-loader.gif +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/styles/range-track.png +0 -0
  56. data/vendor/assets/javascripts/webshims/shims/styles/vertical-range.png +0 -0
  57. data/vendor/assets/javascripts/webshims/shims/swf/localStorage.swf +0 -0
@@ -1,16 +1,16 @@
1
1
  webshims.validityMessages.pl = {
2
2
  "typeMismatch": {
3
3
  "defaultMessage": "Wprowadź poprawną wartość.",
4
- "email": "Wprowadź adres e-mail.",
5
- "url": "Wprowadź adres URL."
4
+ "email": "Wprowadź poprawny adres e-mail.",
5
+ "url": "Wprowadź poprawny adres URL."
6
6
  },
7
7
  "badInput": {
8
8
  "defaultMessage": "Wprowadź poprawną wartość.",
9
9
  "number": "Wprowadź numer.",
10
10
  "date": "Wprowadź datę.",
11
11
  "time": "Wprowadź czas.",
12
- "range": "Invalid input.",
13
- "month": "Wprowadź prawidłową wartość.",
12
+ "range": "Niepoprawny zakres.",
13
+ "month": "Wprowadź poprawny miesiąc.",
14
14
  "datetime-local": "Wprowadź datę i czas."
15
15
  },
16
16
  "rangeUnderflow": {
@@ -1,20 +1,24 @@
1
1
  webshims.validityMessages.sv = {
2
2
  "typeMismatch": {
3
+ "defaultMessage": "Fyll i det här fältet.",
3
4
  "email": "Fyll i en e-postadress.",
4
5
  "url": "Fyll i en URL."
5
6
  },
6
7
  "badInput": {
8
+ "defaultMessage": "Fyll i det här fältet.",
7
9
  "number": "Fyll i ett nummer.",
8
- "date": "Fyll i ett datum.",
10
+ "date": "Fyll i en datum.",
9
11
  "time": "Fyll i en tid.",
10
12
  "range": "Felaktig inmatning.",
13
+ "month": "Fyll i en månad.",
11
14
  "datetime-local": "Fyll i datum och tid."
12
15
  },
13
- "tooLong": "Fyll i max {%maxlength} tecken. Du fyllde i {%valueLen} tecken.",
16
+ "tooLong": "Fyll i max {%maxlength} tecken. Du fyllde i {%valueLen}.",
17
+ "tooShort": "Fyll i minst {%minlength} tecken. Du fyllde i {%valueLen}.",
14
18
  "patternMismatch": "Felaktig inmatning. {%title}",
15
19
  "valueMissing": {
16
20
  "defaultMessage": "Fyll i detta fält.",
17
- "checkbox": "Bocka dennaa ruta för att gå vidare.",
21
+ "checkbox": "Bocka denna ruta för att gå vidare.",
18
22
  "select": "Välj något ur listan.",
19
23
  "radio": "Välj ett av valen."
20
24
  },
@@ -22,13 +26,15 @@ webshims.validityMessages.sv = {
22
26
  "defaultMessage": "Värdet måste vara större eller lika med {%min}.",
23
27
  "date": "Datumet måste vara efter eller lika med {%min}.",
24
28
  "time": "Tiden måste vara efter eller lika med {%min}.",
25
- "datetime-local": "Värdet måste vara efter eller lika med {%min}."
29
+ "datetime-local": "Värdet måste vara efter eller lika med {%min}.",
30
+ "month": "Värdet måste vara efter eller lika med {%min}."
26
31
  },
27
32
  "rangeOverflow": {
28
33
  "defaultMessage": "Värdet måste vara mindre eller lika med {%max}.",
29
34
  "date": "Datumet måste vara före eller lika med {%max}.",
30
35
  "time": "Tiden måste vara före eller lika med {%max}.",
31
- "datetime-local": "Värdet måste vara före eller lika med {%max}."
36
+ "datetime-local": "Värdet måste vara före eller lika med {%max}.",
37
+ "month": "Värdet måste vara före eller lika med {%max}."
32
38
  },
33
39
  "stepMismatch": "Felaktig inmatning."
34
40
  };
@@ -46,6 +52,7 @@ webshims.formcfg.sv = {
46
52
  },
47
53
  date: {
48
54
  closeText: 'Stäng',
55
+ clear: "Rensa",
49
56
  prevText: '«Förra',
50
57
  nextText: 'Nästa»',
51
58
  currentText: 'Idag',
@@ -63,4 +70,4 @@ webshims.formcfg.sv = {
63
70
  showMonthAfterYear: false,
64
71
  yearSuffix: ''
65
72
  }
66
- };
73
+ };
@@ -15,8 +15,7 @@
15
15
  _create: function(){
16
16
  var i;
17
17
 
18
-
19
- this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb" /></span>');
18
+ this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span data-value="" data-valuetext="" /></span></span>');
20
19
  this.trail = $('.ws-range-track', this.element);
21
20
  this.range = $('.ws-range-progress', this.element);
22
21
  this.thumb = $('.ws-range-thumb', this.trail);
@@ -38,7 +37,7 @@
38
37
  },
39
38
  value: $.noop,
40
39
  _value: function(val, _noNormalize, animate){
41
- var left, posDif, textValue;
40
+ var left, posDif;
42
41
  var o = this.options;
43
42
  var oVal = val;
44
43
  var thumbStyle = {};
@@ -54,7 +53,7 @@
54
53
  left = 100 * ((val - o.min) / (o.max - o.min));
55
54
 
56
55
  if(this._init && val == o.value && oVal == val){return;}
57
- this.options.value = val;
56
+ o.value = val;
58
57
 
59
58
  if($.fn.stop){
60
59
  this.thumb.stop();
@@ -62,6 +61,7 @@
62
61
  }
63
62
 
64
63
  rangeStyle[this.dirs.width] = left+'%';
64
+
65
65
  if(this.vertical){
66
66
  left = Math.abs(left - 100);
67
67
  }
@@ -88,15 +88,26 @@
88
88
  this.options._change(val);
89
89
  }
90
90
 
91
- textValue = this.options.textValue ? this.options.textValue(this.options.value) : this.options.options[this.options.value] || this.options.value;
91
+ this._setValueMarkup();
92
+ },
93
+ _setValueMarkup: function(){
94
+ var o = this.options;
95
+ var textValue = o.textValue ? o.textValue(this.options.value) : o.options[o.value] || o.value;
92
96
  this.element.attr({
93
97
  'aria-valuenow': this.options.value,
94
98
  'aria-valuetext': textValue
95
99
  });
96
- this.thumb.attr({
100
+ $('span', this.thumb).attr({
97
101
  'data-value': this.options.value,
98
102
  'data-valuetext': textValue
99
103
  });
104
+ if(o.selectedOption){
105
+ $(o.selectedOption).removeClass('ws-selected-option');
106
+ o.selectedOption = null;
107
+ }
108
+ if(o.value in o.options){
109
+ o.selectedOption = $('[data-value="'+o.value+'"].ws-range-ticks').addClass('ws-selected-option');
110
+ }
100
111
  },
101
112
  initDataList: function(){
102
113
  if(this.orig){
@@ -139,9 +150,9 @@
139
150
  $.each(o.options, function(val, label){
140
151
  if(!isNumber(val) || val < min || val > max){return;}
141
152
  var left = 100 * ((val - min) / (max - min));
142
- var attr = '';
153
+ var attr = 'data-value="'+val+'"';
143
154
  if(label){
144
- attr += 'data-label="'+label+'"';
155
+ attr += ' data-label="'+label+'"';
145
156
  if(o.showLabels){
146
157
  attr += ' title="'+label+'"';
147
158
  }
@@ -154,6 +165,9 @@
154
165
  $('<span class="ws-range-ticks"'+ attr +' style="'+(that.dirs.left)+': '+left+'%;" />').appendTo(trail)
155
166
  );
156
167
  });
168
+ if(o.value in o.options){
169
+ this._setValueMarkup();
170
+ }
157
171
  },
158
172
  readonly: function(val){
159
173
  val = !!val;
@@ -197,12 +211,13 @@
197
211
  var step = val == 'any' ? 'any' : retDefault(val, 1);
198
212
 
199
213
  if(o.stepping){
200
- if(step != 'any' && o.stepping % step){
201
- webshims.error('wrong stepping value for type range:'+ (o.stepping % step));
202
- } else {
203
- step = o.stepping;
204
- }
214
+ webshims.error('stepping was removed. Use stepfactor instead.');
205
215
  }
216
+
217
+ if(o.stepfactor && step != 'any'){
218
+ step *= o.stepfactor;
219
+ }
220
+
206
221
  o.step = step;
207
222
  this.value(this.options.value);
208
223
  },
@@ -240,11 +255,11 @@
240
255
  var val, valModStep, alignValue, step;
241
256
 
242
257
  if(pos <= 0){
243
- val = this.options[this.dirs.min];
258
+ val = this.options[this.dirs[this.isRtl ? 'max' : 'min']];
244
259
  } else if(pos > 100) {
245
- val = this.options[this.dirs.max];
260
+ val = this.options[this.dirs[this.isRtl ? 'min' : 'max']];
246
261
  } else {
247
- if(this.vertical){
262
+ if(this.vertical || this.isRtl){
248
263
  pos = Math.abs(pos - 100);
249
264
  }
250
265
  val = ((this.options.max - this.options.min) * (pos / 100)) + this.options.min;
@@ -329,17 +344,20 @@
329
344
  return e;
330
345
  };
331
346
  })();
347
+ var updateValue = function(val, animate){
348
+ if(val != o.value){
349
+ that.value(val, false, animate);
350
+ eventTimer.call('input', val);
351
+ }
352
+ };
332
353
  var setValueFromPos = function(e, animate){
333
354
  if(e.type == 'touchmove'){
334
355
  e.preventDefault();
335
356
  normalizeTouch(e);
336
357
  }
337
358
 
338
- var val = that.getStepedValueFromPos((e[that.dirs.mouse] - leftOffset) * widgetUnits);
339
- if(val != o.value){
340
- that.value(val, false, animate);
341
- eventTimer.call('input', val);
342
- }
359
+ updateValue(that.getStepedValueFromPos((e[that.dirs.mouse] - leftOffset) * widgetUnits), animate);
360
+
343
361
  if(e && e.type == 'mousemove'){
344
362
  e.preventDefault();
345
363
  }
@@ -377,7 +395,12 @@
377
395
  outerWidth = that.thumb[that.dirs.outerWidth]();
378
396
  leftOffset = leftOffset[that.dirs.pos];
379
397
  widgetUnits = 100 / widgetUnits;
380
- setValueFromPos(e, o.animate);
398
+
399
+ if(e.target.className == 'ws-range-ticks'){
400
+ updateValue(e.target.getAttribute('data-value'), o.animate);
401
+ } else {
402
+ setValueFromPos(e, o.animate);
403
+ }
381
404
  isActive = true;
382
405
  $(document)
383
406
  .on(e.type == 'touchstart' ?
@@ -423,6 +446,13 @@
423
446
  var step = true;
424
447
  var code = e.keyCode;
425
448
  if(!o.readonly && !o.disabled){
449
+ if(that.isRtl){
450
+ if(code == 39){
451
+ code = 37;
452
+ } else if(code == 37){
453
+ code = 39;
454
+ }
455
+ }
426
456
  if (code == 39 || code == 38) {
427
457
  that.doStep(1);
428
458
  } else if (code == 37 || code == 40) {
@@ -522,10 +552,17 @@
522
552
  {mouse: 'pageY', pos: 'top', min: 'max', max: 'min', left: 'top', right: 'bottom', width: 'height', innerWidth: 'innerHeight', innerHeight: 'innerWidth', outerWidth: 'outerHeight', outerHeight: 'outerWidth', marginTop: 'marginLeft', marginLeft: 'marginTop'} :
523
553
  {mouse: 'pageX', pos: 'left', min: 'min', max: 'max', left: 'left', right: 'right', width: 'width', innerWidth: 'innerWidth', innerHeight: 'innerHeight', outerWidth: 'outerWidth', outerHeight: 'outerHeight', marginTop: 'marginTop', marginLeft: 'marginLeft'}
524
554
  ;
555
+ if(!this.vertical && this.element.css('direction') == 'rtl'){
556
+ this.isRtl = true;
557
+ this.dirs.left = 'right';
558
+ this.dirs.right = 'left';
559
+ this.dirs.marginLeft = 'marginRight';
560
+ }
525
561
  this.element
526
562
  [this.vertical ? 'addClass' : 'removeClass']('vertical-range')
527
- [this.vertical ? 'addClass' : 'removeClass']('horizontal-range')
563
+ [this.isRtl ? 'addClass' : 'removeClass']('ws-is-rtl')
528
564
  ;
565
+ this.updateMetrics = this.posCenter;
529
566
  this.posCenter();
530
567
  }
531
568
  };
@@ -562,4 +599,4 @@
562
599
  if(window.webshims && webshims.isReady){
563
600
  webshims.isReady('range-ui', true);
564
601
  }
565
- })(window.webshims ? webshims.$ : jQuery);
602
+ })(window.webshims ? webshims.$ : jQuery);
@@ -5,11 +5,131 @@
5
5
  clear: both;
6
6
  content: ' '; }
7
7
 
8
+ .ws-range .ws-range-thumb, .ws-inline-picker {
9
+ -moz-box-sizing: content-box;
10
+ box-sizing: content-box; }
11
+ .ws-range .ws-range-thumb *, .ws-inline-picker *, .ws-range .ws-range-thumb:before, .ws-inline-picker:before, .ws-range .ws-range-thumb:after, .ws-inline-picker:after,
12
+ .ws-range .ws-range-thumb :after,
13
+ .ws-inline-picker :after,
14
+ .ws-range .ws-range-thumb :before,
15
+ .ws-inline-picker :before {
16
+ -moz-box-sizing: content-box;
17
+ box-sizing: content-box; }
18
+
19
+ /* style picker api */
20
+ .input-picker[data-class~="show-week"] .ws-week,
21
+ .show-week .input-picker .ws-week {
22
+ display: table-cell; }
23
+
24
+ .input-picker[data-class~="show-yearbtns"] .ws-picker-header,
25
+ .show-yearbtns .input-picker .ws-picker-header {
26
+ margin: 0 4.23077em; }
27
+ .input-picker[data-class~="show-yearbtns"] button.ws-year-btn,
28
+ .show-yearbtns .input-picker button.ws-year-btn {
29
+ display: inline-block; }
30
+
31
+ .input-picker[data-class~="hide-btnrow"] .ws-button-row,
32
+ .hide-btnrow .input-picker .ws-button-row {
33
+ display: none; }
34
+
35
+ .input-picker[data-class~="show-selectnav"] .ws-picker-header > button:after,
36
+ .show-selectnav .input-picker .ws-picker-header > button:after, .input-picker[data-class~="show-uparrow"] .ws-picker-header > button:after,
37
+ .show-uparrow .input-picker .ws-picker-header > button:after {
38
+ display: inline-block; }
39
+
40
+ .input-picker[data-class~="show-selectnav"] .ws-picker-header > select,
41
+ .show-selectnav .input-picker .ws-picker-header > select {
42
+ display: inline-block; }
43
+ .input-picker[data-class~="show-selectnav"] .ws-picker-header > button,
44
+ .show-selectnav .input-picker .ws-picker-header > button {
45
+ width: auto; }
46
+ .input-picker[data-class~="show-selectnav"] .ws-picker-header > button > span,
47
+ .show-selectnav .input-picker .ws-picker-header > button > span {
48
+ display: none; }
49
+
50
+ /* btn api */
51
+ .hide-spinbtns + .input-buttons > .step-controls,
52
+ .hide-spinbtns .input-buttons > .step-controls {
53
+ display: none; }
54
+ .hide-spinbtns::-webkit-inner-spin-button,
55
+ .hide-spinbtns ::-webkit-inner-spin-button {
56
+ display: none; }
57
+
58
+ .hide-dropdownbtn + .input-buttons > .ws-popover-opener,
59
+ .hide-dropdownbtn .input-buttons > .ws-popover-opener {
60
+ display: none; }
61
+
62
+ .hide-inputbtns + .input-buttons,
63
+ .hide-inputbtns .input-buttons {
64
+ display: none; }
65
+ .hide-inputbtns::-webkit-inner-spin-button,
66
+ .hide-inputbtns ::-webkit-inner-spin-button {
67
+ display: none; }
68
+
69
+ .a11yhide-inputbtns + .input-buttons,
70
+ .a11yhide-inputbtns .input-buttons {
71
+ width: 0;
72
+ margin: 0;
73
+ overflow: visible; }
74
+ .a11yhide-inputbtns + .input-buttons > .step-controls,
75
+ .a11yhide-inputbtns .input-buttons > .step-controls {
76
+ display: none; }
77
+ .a11yhide-inputbtns + .input-buttons > .ws-popover-opener,
78
+ .a11yhide-inputbtns .input-buttons > .ws-popover-opener {
79
+ height: 0;
80
+ width: 0;
81
+ overflow: hidden; }
82
+ .a11yhide-inputbtns + .input-buttons > .ws-popover-opener:focus, .a11yhide-inputbtns + .input-buttons > .ws-popover-opener:active,
83
+ .a11yhide-inputbtns .input-buttons > .ws-popover-opener:focus,
84
+ .a11yhide-inputbtns .input-buttons > .ws-popover-opener:active {
85
+ height: 19px;
86
+ width: 19px; }
87
+
88
+ .inputbtns-outside + span.input-buttons,
89
+ .inputbtns-outside span.input.input-buttons {
90
+ margin-left: 2px; }
91
+ .inputbtns-outside + span.input-buttons.ws-is-rtl,
92
+ .inputbtns-outside span.input.input-buttons.ws-is-rtl {
93
+ margin-left: 0;
94
+ margin-right: 2px; }
95
+
96
+ .show-ticklabels .ws-range-ticks[data-label]:after {
97
+ display: inline-block; }
98
+
99
+ .show-tickvalues .ws-range-ticks:before {
100
+ display: inline-block; }
101
+
102
+ .hide-ticks .ws-range-ticks {
103
+ display: none; }
104
+
105
+ .show-valuetooltip span.ws-range-thumb > span, .show-valuetooltip span.ws-range-thumb > span:after {
106
+ display: inline-block; }
107
+
108
+ .ws-active.show-activevaluetooltip span.ws-range-thumb > span, .ws-active.show-activevaluetooltip span.ws-range-thumb > span:after,
109
+ .show-activevaluetooltip .ws-range.ws-active span.ws-range-thumb > span,
110
+ .show-activevaluetooltip .ws-range.ws-active span.ws-range-thumb > span:after {
111
+ display: inline-block; }
112
+
113
+ .show-labeltooltip span.ws-range-thumb > span, .show-labeltooltip span.ws-range-thumb > span:before {
114
+ display: inline-block; }
115
+
116
+ .ws-active.show-activelabeltooltip span.ws-range-thumb > span, .ws-active.show-activelabeltooltip span.ws-range-thumb > span:before,
117
+ .show-activelabeltooltip .ws-range.ws-active span.ws-range-thumb > span,
118
+ .show-activelabeltooltip .ws-range.ws-active span.ws-range-thumb > span:before {
119
+ display: inline-block; }
120
+
8
121
  /* spinner control for time, number (usable for date, datetime-local) */
9
122
  .has-input-buttons,
10
123
  html > body input.ws-inputreplace.has-input-buttons,
11
124
  span.has-input-buttons {
12
- display: inline-block; }
125
+ display: inline-block;
126
+ vertical-align: middle; }
127
+
128
+ .ws-inputreplace[readonly][aria-readonly="false"] {
129
+ cursor: pointer; }
130
+ .ws-inputreplace[readonly][aria-readonly="false"][disabled] {
131
+ cursor: default;
132
+ cursor: not-allowed; }
13
133
 
14
134
  .input-buttons,
15
135
  .step-controls,
@@ -17,9 +137,7 @@ span.has-input-buttons {
17
137
  zoom: 1;
18
138
  overflow: hidden;
19
139
  display: inline-block;
20
- font-size: 0;
21
140
  vertical-align: middle;
22
- margin-top: -3px;
23
141
  margin-left: -20px; }
24
142
 
25
143
  .step-controls,
@@ -29,6 +147,9 @@ span.has-input-buttons {
29
147
  margin: 0;
30
148
  height: 19px;
31
149
  width: 15px; }
150
+ .ws-is-rtl .step-controls, .ws-is-rtl
151
+ .ws-popover-opener {
152
+ float: right; }
32
153
 
33
154
  .ws-popover-opener {
34
155
  position: relative;
@@ -39,6 +160,8 @@ span.has-input-buttons {
39
160
  border-radius: 3px;
40
161
  cursor: pointer;
41
162
  background: #ccc; }
163
+ .ws-is-rtl .ws-popover-opener {
164
+ margin: 0 2px 0 0; }
42
165
  .ws-popover-opener span {
43
166
  display: block;
44
167
  position: absolute;
@@ -58,23 +181,32 @@ span.has-input-buttons {
58
181
  background: none; }
59
182
 
60
183
  input[type="color"] {
61
- width: 6.5em; }
184
+ width: 7.5em; }
62
185
 
63
186
  .input-buttons {
64
187
  text-align: left; }
65
188
  .input-buttons.color-input-buttons {
66
189
  margin-left: 2px; }
67
- .input-buttons.input-button-size-1.month-input-buttons, .input-buttons.input-button-size-1.date-input-buttons {
68
- margin-left: -24px; }
69
- .input-buttons.input-button-size-2 {
70
- margin-left: -39px; }
71
190
  .input-buttons.ws-disabled {
72
191
  opacity: 0.95; }
73
192
  .input-buttons.ws-disabled *, .input-buttons.ws-readonly * {
74
193
  cursor: default; }
75
194
 
195
+ .input-button-size-1.month-input-buttons, .input-button-size-1.date-input-buttons, .input-button-size-1.datetime-local-input-buttons {
196
+ margin-left: -24px; }
197
+ .input-button-size-1.month-input-buttons.ws-is-rtl, .input-button-size-1.date-input-buttons.ws-is-rtl, .input-button-size-1.datetime-local-input-buttons.ws-is-rtl {
198
+ margin-left: 0;
199
+ margin-right: -24px; }
200
+
201
+ .input-button-size-2 {
202
+ margin-left: -39px; }
203
+ .input-button-size-2.ws-is-rtl {
204
+ margin-left: 0;
205
+ margin-right: -39px; }
206
+
76
207
  .step-controls span {
77
208
  position: absolute;
209
+ left: 0;
78
210
  display: inline-block;
79
211
  overflow: hidden;
80
212
  margin: 0 !important;
@@ -104,6 +236,7 @@ input[type="color"] {
104
236
  .ws-disabled .step-controls span.step-down {
105
237
  background-position: -205px 0; }
106
238
 
239
+ /* helper classes to hide show/hide specific btn features features */
107
240
  .ws-input {
108
241
  letter-spacing: -0.31em;
109
242
  word-spacing: -0.43em; }
@@ -111,6 +244,8 @@ input[type="color"] {
111
244
  text-align: center;
112
245
  letter-spacing: normal;
113
246
  word-spacing: normal; }
247
+ .ws-input > * > option {
248
+ text-align: left; }
114
249
  .ws-input .ws-input-seperator {
115
250
  vertical-align: middle;
116
251
  width: 2%;
@@ -124,6 +259,9 @@ input[type="color"] {
124
259
  text-align: center;
125
260
  display: inline-block; }
126
261
 
262
+ span.ws-input {
263
+ display: inline-block; }
264
+
127
265
  .ws-date .mm,
128
266
  .ws-date .dd {
129
267
  width: 23.5%;
@@ -151,7 +289,7 @@ input[type="color"] {
151
289
  position: relative;
152
290
  display: inline-block;
153
291
  vertical-align: middle;
154
- margin: 5px 0 10px;
292
+ margin: 0.57692em 0;
155
293
  zoom: 1;
156
294
  border: none;
157
295
  height: 0.61538em;
@@ -164,36 +302,44 @@ input[type="color"] {
164
302
  transition: background-color 400ms, border-color 400ms;
165
303
  background-color: #ddd;
166
304
  box-shadow: 0 -0.07692em 0.11538em rgba(0, 0, 0, 0.2) inset; }
305
+ [list] + .ws-range {
306
+ margin: 0.19231em 0 0.96154em; }
167
307
  .ws-range .ws-range-thumb {
168
308
  top: 0;
169
309
  position: absolute;
170
310
  display: block;
171
311
  z-index: 4;
172
- margin: -0.61538em 0 0 -0.61538em;
173
- height: 1.23077em;
174
- width: 1.23077em;
312
+ margin: -0.46154em 0 0 -0.76923em;
313
+ height: 1.53846em;
314
+ width: 1.53846em;
175
315
  border-radius: 50%;
176
316
  background: #ccc;
177
317
  border: 0.07692em solid #aaaaaa;
178
318
  cursor: pointer;
179
319
  transition: background-color 400ms, border-color 400ms; }
180
- .ws-range .ws-range-thumb:after, .ws-range .ws-range-thumb:before {
320
+ .ws-range .ws-range-thumb > span {
181
321
  position: absolute;
182
- top: -2.15385em;
183
- left: -.3em;
184
- display: inline-block;
185
- content: attr(data-value);
186
- padding: 0.23077em 0.07692em;
187
- min-width: 2em;
322
+ margin: 0 0 3px -90px;
323
+ padding: 0;
324
+ border: 0;
325
+ left: 50%;
326
+ bottom: 1.61538em;
188
327
  visibility: hidden;
328
+ width: 180px;
189
329
  text-align: center;
190
- background: #fff;
191
- border: 0.07692em solid #cccccc;
192
- transition: all 400ms; }
193
- .ws-range .ws-range-thumb:after {
194
- content: attr(data-value); }
195
- .ws-range .ws-range-thumb:before {
196
- content: attr(data-valuetext); }
330
+ background: none; }
331
+ .ws-range .ws-range-thumb > span:after, .ws-range .ws-range-thumb > span:before {
332
+ content: attr(data-value);
333
+ padding: 0.07692em 0.26923em;
334
+ text-align: center;
335
+ background: #fff;
336
+ border: 0.07692em solid #cccccc;
337
+ border-radius: 0.30769em;
338
+ visibility: visible; }
339
+ .ws-range .ws-range-thumb > span:after {
340
+ content: attr(data-value); }
341
+ .ws-range .ws-range-thumb > span:before {
342
+ content: attr(data-valuetext); }
197
343
  .ws-range.ws-focus .ws-range-thumb {
198
344
  background: #eee;
199
345
  border-color: #999; }
@@ -231,55 +377,65 @@ input[type="color"] {
231
377
  box-shadow: 0 0.11538em 0.26923em rgba(255, 255, 255, 0.2) inset; }
232
378
  .ws-range .ws-range-ticks {
233
379
  position: absolute;
234
- bottom: -0.57692em;
380
+ bottom: -0.76923em;
235
381
  left: 0;
236
- height: 0.52308em;
237
- width: 0.11538em;
238
- margin: 0 0 0 -0.15385em;
239
- background: #ccc; }
240
- .ws-range .ws-range-ticks[data-label]:after {
241
- visibility: hidden;
242
- content: attr(data-label);
243
- display: inline-block;
244
- font-size: 0.69231em;
245
- min-width: 2em;
246
- text-align: center;
247
- margin: 0.53846em 0 0 -1em; }
382
+ height: 0.61538em;
383
+ width: 0.07692em;
384
+ margin: 0 0 0 -0.07692em;
385
+ background: #ccc;
386
+ transition: background-color 400ms, color 400ms; }
387
+ .ws-range .ws-range-ticks.ws-selected-option {
388
+ background: #09c;
389
+ color: #09c; }
390
+ .ws-range.ws-is-rtl .ws-range-progress {
391
+ left: auto;
392
+ right: 0; }
393
+ .ws-range.ws-is-rtl .ws-range-ticks {
394
+ left: auto;
395
+ right: 0; }
248
396
  .ws-range.vertical-range {
249
- background: url(vertical-range.png) center bottom no-repeat;
250
- width: 20px; }
251
- .ws-range.vertical-range .ws-range-thumb {
252
- top: 0;
253
- left: 3px;
397
+ width: 0.61538em;
398
+ margin: 0 10px 0 5px; }
399
+ .ws-range.vertical-range .ws-range-ticks {
254
400
  bottom: auto;
255
- background: url(vertical-range.png) 0 -51px no-repeat;
256
- margin: -6px 0 0 0;
257
- height: 11px;
258
- width: 22px; }
259
- .ws-range.vertical-range .ws-range-thumb:hover, .ws-range.vertical-range.ws-focus .ws-range-thumb {
260
- background-position: 0 -34px; }
261
- .ws-range.vertical-range.ws-active .ws-range-thumb {
262
- background-position: 0 -17px; }
263
- .ws-range.vertical-range[aria-disabled="true"] .ws-range-thumb {
264
- background-position: 0 0; }
401
+ left: auto;
402
+ margin: -0.05769em 0 0 0;
403
+ right: -0.57692em;
404
+ height: 0.11538em;
405
+ width: 0.52308em; }
265
406
  .ws-range.vertical-range .ws-range-progress {
266
407
  top: auto;
267
408
  bottom: 1px;
268
409
  left: 0;
269
- width: 1px;
410
+ width: 100%;
270
411
  height: 0; }
271
- .ws-range.vertical-range .ws-range-rail {
272
- top: 5px;
273
- left: 0;
274
- right: 0;
275
- bottom: 5px; }
276
- .ws-range.vertical-range .ws-range-ticks {
277
- bottom: auto;
278
- left: auto;
279
- right: 0;
280
- height: 1px;
281
- width: 4px; }
282
412
 
413
+ .ws-range-ticks[data-label]:after,
414
+ .ws-range-ticks:before {
415
+ display: none;
416
+ content: attr(data-label);
417
+ font-size: 0.76923em;
418
+ min-width: 2em;
419
+ text-align: center;
420
+ margin: 0.69231em 0 0 -0.95em; }
421
+ .ws-is-rtl .ws-range-ticks[data-label]:after, .ws-is-rtl
422
+ .ws-range-ticks:before {
423
+ margin: 0.69231em -0.95em 0 0; }
424
+ .vertical-range .ws-range-ticks[data-label]:after, .vertical-range
425
+ .ws-range-ticks:before {
426
+ margin: 0 0 0 5px;
427
+ position: relative;
428
+ top: -0.7em;
429
+ left: 0.53846em;
430
+ min-width: 0; }
431
+
432
+ .ws-range-ticks:before {
433
+ content: attr(data-value); }
434
+
435
+ .ws-range-thumb > span, .ws-range-thumb > span:after, .ws-range-thumb > span:before {
436
+ display: none; }
437
+
438
+ /* helper classes to hide show/hide specific range features features */
283
439
  .input-picker .ws-button-row button {
284
440
  border-radius: 0.30769em;
285
441
  background: #ccc;
@@ -287,22 +443,25 @@ input[type="color"] {
287
443
  display: inline-block;
288
444
  border: 0.07692em solid transparent; }
289
445
 
446
+ .ws-inline-picker {
447
+ position: relative;
448
+ z-index: 99; }
449
+
290
450
  .input-picker {
291
451
  overflow: visible;
292
452
  font-size: 13px;
293
453
  outline: none;
294
454
  text-align: center;
295
455
  font-family: sans-serif;
296
- width: 25.38462em;
297
- max-width: 100%;
456
+ width: 27.69231em;
298
457
  min-width: 23.07692em;
299
458
  /* Selector API: */ }
300
459
  .input-picker .ws-po-outerbox {
301
460
  -webkit-transform: translate(0, 30%);
302
461
  transform: translate(0, 30%); }
303
- [data-vertical="bottom"] .input-picker .ws-po-outerbox {
304
- -webkit-transform: translate(0, -3%);
305
- transform: translate(0, -30%); }
462
+ .input-picker[data-vertical="bottom"] .ws-po-outerbox {
463
+ -webkit-transform: translate(0, -30%);
464
+ transform: translate(0, -30%); }
306
465
  .input-picker.time-popover, .input-picker.datetime-local-popover {
307
466
  width: 31.92308em; }
308
467
  .input-picker.time-popover .ws-prev,
@@ -329,12 +488,13 @@ input[type="color"] {
329
488
  outline: 1px dotted black; }
330
489
  .input-picker .ws-po-box {
331
490
  position: relative;
332
- padding: 0.76923em 1.53846em 1.15385em;
333
- border-radius: 5px;
334
- box-shadow: 0 0 2px rgba(0, 0, 0, 0.3); }
491
+ padding: 1.15385em 1.53846em;
492
+ border-radius: 0.38462em;
493
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
494
+ direction: ltr; }
335
495
  .input-picker .ws-picker-controls {
336
496
  position: absolute;
337
- top: 0.76923em; }
497
+ top: 1.15385em; }
338
498
  .input-picker .ws-picker-controls > button {
339
499
  border: 0.07692em solid #cccccc;
340
500
  border-radius: 0.38462em;
@@ -349,7 +509,8 @@ input[type="color"] {
349
509
  content: " ";
350
510
  width: 0px;
351
511
  height: 0px;
352
- border-style: solid; }
512
+ border-style: solid;
513
+ margin-top: 0.29231em; }
353
514
  .input-picker .ws-picker-controls > button span {
354
515
  display: none; }
355
516
  .input-picker .ws-picker-controls > button:hover {
@@ -359,32 +520,47 @@ input[type="color"] {
359
520
  opacity: 0.4;
360
521
  border-color: #eee;
361
522
  color: #ddd; }
362
- .input-picker .prev-controls {
363
- left: 1.53846em; }
364
- .input-picker .prev-controls .ws-super-prev:after,
365
- .input-picker .prev-controls .ws-super-prev:before,
366
- .input-picker .prev-controls .ws-prev:before {
523
+ .input-picker .prev-controls,
524
+ .input-picker .ws-po-box[dir="rtl"] .next-controls {
525
+ left: 1.53846em;
526
+ right: auto; }
527
+ .input-picker .prev-controls [class*="ws-super-"]:after,
528
+ .input-picker .prev-controls button:before,
529
+ .input-picker .ws-po-box[dir="rtl"] .next-controls [class*="ws-super-"]:after,
530
+ .input-picker .ws-po-box[dir="rtl"] .next-controls button:before {
367
531
  border-width: 0.35em 0.6em 0.35em 0;
368
532
  border-color: transparent #333333 transparent transparent;
369
533
  margin-left: -0.1em; }
370
- .input-picker .prev-controls .ws-super-prev {
371
- margin-right: 0.23077em; }
372
- .input-picker .prev-controls .ws-super-prev[disabled] {
534
+ .input-picker .prev-controls [class*="ws-super-"],
535
+ .input-picker .ws-po-box[dir="rtl"] .next-controls [class*="ws-super-"] {
536
+ margin-right: 0.23077em;
537
+ margin-left: 0; }
538
+ .input-picker .prev-controls [class*="ws-super-"][disabled],
539
+ .input-picker .ws-po-box[dir="rtl"] .next-controls [class*="ws-super-"][disabled] {
373
540
  display: none; }
374
- .input-picker .next-controls {
375
- right: 1.53846em; }
376
- .input-picker .next-controls button:before {
541
+ .input-picker .next-controls,
542
+ .input-picker .ws-po-box[dir="rtl"] .prev-controls {
543
+ right: 1.53846em;
544
+ left: auto; }
545
+ .input-picker .next-controls button:before,
546
+ .input-picker .ws-po-box[dir="rtl"] .prev-controls button:before {
377
547
  margin-left: 0.11538em; }
378
- .input-picker .next-controls .ws-super-next:before,
379
- .input-picker .next-controls .ws-super-next:after,
380
- .input-picker .next-controls .ws-next:before {
548
+ .input-picker .next-controls [class*="ws-super-"]:after,
549
+ .input-picker .next-controls button:before,
550
+ .input-picker .ws-po-box[dir="rtl"] .prev-controls [class*="ws-super-"]:after,
551
+ .input-picker .ws-po-box[dir="rtl"] .prev-controls button:before {
381
552
  border-width: 0.35em 0 0.35em 0.6em;
382
553
  border-color: transparent transparent transparent #333333;
383
554
  margin-right: -0.1em; }
384
- .input-picker .next-controls .ws-super-next {
385
- margin-left: 0.23077em; }
386
- .input-picker .next-controls .ws-super-next[disabled] {
555
+ .input-picker .next-controls [class*="ws-super-"],
556
+ .input-picker .ws-po-box[dir="rtl"] .prev-controls [class*="ws-super-"] {
557
+ margin-left: 0.23077em;
558
+ margin-right: 0; }
559
+ .input-picker .next-controls [class*="ws-super-"][disabled],
560
+ .input-picker .ws-po-box[dir="rtl"] .prev-controls [class*="ws-super-"][disabled] {
387
561
  display: none; }
562
+ .input-picker .ws-po-box[dir="rtl"] {
563
+ direction: rtl; }
388
564
  .input-picker.time-popover .ws-picker-body {
389
565
  padding-top: 2.76923em; }
390
566
  .input-picker .ws-picker-body {
@@ -410,6 +586,10 @@ input[type="color"] {
410
586
  float: left; }
411
587
  .input-picker .ws-button-row button.ws-empty {
412
588
  float: right; }
589
+ .input-picker .ws-po-box[dir="rtl"] .ws-button-row button {
590
+ float: right; }
591
+ .input-picker .ws-po-box[dir="rtl"] .ws-button-row button.ws-empty {
592
+ float: left; }
413
593
  .input-picker[data-currentview="setMonthList"] .ws-picker-header > select, .input-picker[data-currentview="setYearList"] .ws-picker-header > select {
414
594
  max-width: 90%; }
415
595
  .input-picker[data-currentview="setDayList"] .ws-picker-header > select {
@@ -425,7 +605,7 @@ input[type="color"] {
425
605
  top: -3.07692em;
426
606
  right: 0;
427
607
  left: 0;
428
- margin: 0 4.23077em; }
608
+ margin: 0 2.69231em; }
429
609
  .input-picker .ws-picker-header > button {
430
610
  display: inline-block;
431
611
  width: 100%;
@@ -503,7 +683,8 @@ input[type="color"] {
503
683
  width: 100%;
504
684
  margin: 0;
505
685
  border: 0 none;
506
- border-collapse: collapse; }
686
+ border-collapse: collapse;
687
+ table-layout: fixed; }
507
688
  .input-picker .picker-list th,
508
689
  .input-picker .picker-list td.week-cell {
509
690
  font-size: 1em;
@@ -556,3 +737,5 @@ input[type="color"] {
556
737
 
557
738
  .ws-picker-header select {
558
739
  display: none; }
740
+
741
+ /* helper classes to hide show/hide specific picker features */