uki 1.1.1 → 1.1.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 (144) hide show
  1. data/VERSION +1 -1
  2. data/bin/uki +1 -1
  3. data/frameworks/uki/README.rdoc +1 -1
  4. data/frameworks/uki/examples/core-examples/controls/controls.js +6 -6
  5. data/frameworks/uki/examples/core-examples/flow/flow.js +4 -4
  6. data/frameworks/uki/examples/core-examples/linearGradient/gradient.svg +11 -0
  7. data/frameworks/uki/examples/core-examples/linearGradient/linearGradient.js +87 -0
  8. data/frameworks/uki/examples/core-examples/popup/popup.js +23 -10
  9. data/frameworks/uki/examples/core-examples/resizeToContents/resizeToContents.js +12 -1
  10. data/frameworks/uki/examples/core-examples/slider/slider.js +1 -1
  11. data/frameworks/uki/examples/core-examples/splitPaneExtended/splitPaneExtended.js +1 -1
  12. data/frameworks/uki/examples/core-examples/table/table.js +19 -2
  13. data/frameworks/uki/examples/core-examples/wave/wave-theme.js +1 -1
  14. data/frameworks/uki/examples/core-examples/wave/wave.js +1 -1
  15. data/frameworks/uki/examples/more-examples/radioButton/radioButton.js +3 -3
  16. data/frameworks/uki/examples/more-examples/select/select.js +35 -0
  17. data/frameworks/uki/examples/touch-examples/scrollPane/scrollPane.js +53 -0
  18. data/frameworks/uki/spec/unit/background.spec.js +1 -1
  19. data/frameworks/uki/spec/unit/selector.spec.js +28 -12
  20. data/frameworks/uki/spec/unit/utils.spec.js +14 -0
  21. data/frameworks/uki/src/uki-core.js +3 -1
  22. data/frameworks/uki/src/uki-core/after.js +57 -0
  23. data/frameworks/uki/src/uki-core/attachment.js +15 -6
  24. data/frameworks/uki/src/uki-core/background.js +4 -3
  25. data/frameworks/uki/src/uki-core/background/css.js +1 -0
  26. data/frameworks/uki/src/uki-core/background/cssBox.js +5 -3
  27. data/frameworks/uki/src/uki-core/background/linearGradient.js +112 -0
  28. data/frameworks/uki/src/uki-core/background/multi.js +2 -2
  29. data/frameworks/uki/src/uki-core/background/rows.js +1 -0
  30. data/frameworks/uki/src/uki-core/background/sliced9.js +5 -2
  31. data/frameworks/uki/src/uki-core/builder.js +5 -4
  32. data/frameworks/uki/src/uki-core/collection.js +18 -13
  33. data/frameworks/uki/src/uki-core/dom/browser.js +114 -0
  34. data/frameworks/uki/src/uki-core/dom/event.js +3 -0
  35. data/frameworks/uki/src/uki-core/image.js +1 -26
  36. data/frameworks/uki/src/uki-core/selector.js +5 -0
  37. data/frameworks/uki/src/uki-core/theme.js +24 -23
  38. data/frameworks/uki/src/uki-core/theme/template.js +1 -1
  39. data/frameworks/uki/src/uki-core/uki.js +7 -4
  40. data/frameworks/uki/src/uki-core/utils.js +51 -26
  41. data/frameworks/uki/src/uki-core/view.js +6 -3
  42. data/frameworks/uki/src/uki-core/view/base.js +16 -1
  43. data/frameworks/uki/src/uki-core/view/container.js +15 -5
  44. data/frameworks/uki/src/uki-core/view/focusable.js +17 -4
  45. data/frameworks/uki/src/uki-core/view/observable.js +15 -2
  46. data/frameworks/uki/src/uki-core/view/styleable.js +4 -11
  47. data/frameworks/uki/src/uki-data/ajax.js +4 -30
  48. data/frameworks/uki/src/uki-data/json.js +191 -0
  49. data/frameworks/uki/src/uki-data/localStore.js +37 -0
  50. data/frameworks/uki/src/uki-data/model.js +1 -1
  51. data/frameworks/uki/src/uki-more.js +4 -0
  52. data/frameworks/uki/src/uki-more/more/background.js +2 -0
  53. data/frameworks/uki/src/uki-more/more/color.js +168 -0
  54. data/frameworks/uki/src/uki-more/more/utils.js +5 -12
  55. data/frameworks/uki/src/uki-more/more/view.js +3 -1
  56. data/frameworks/uki/src/uki-more/more/view/form.js +30 -0
  57. data/frameworks/uki/src/uki-more/more/view/hTile.js +59 -0
  58. data/frameworks/uki/src/uki-more/more/view/nativeButton.js +3 -0
  59. data/frameworks/uki/src/uki-more/more/view/nativeCheckbox.js +38 -0
  60. data/frameworks/uki/src/uki-more/more/view/nativeControl.js +40 -0
  61. data/frameworks/uki/src/uki-more/more/view/nativeInput.js +78 -0
  62. data/frameworks/uki/src/uki-more/more/view/nativeSelect.js +29 -0
  63. data/frameworks/uki/src/uki-more/more/view/radioButton.js +1 -1
  64. data/frameworks/uki/src/uki-more/more/view/select-theme.js +55 -0
  65. data/frameworks/uki/src/uki-more/more/view/select.js +208 -0
  66. data/frameworks/uki/src/uki-theme/airport.js +145 -88
  67. data/frameworks/uki/src/uki-theme/airport/i/table/a-down.png +0 -0
  68. data/frameworks/uki/src/uki-theme/airport/i/table/a-up.png +0 -0
  69. data/frameworks/uki/src/uki-touch.js +2 -0
  70. data/frameworks/uki/src/uki-touch/touch.js +1 -0
  71. data/frameworks/uki/src/uki-touch/touch/const.js +24 -0
  72. data/frameworks/uki/src/uki-touch/touch/setup.js +52 -0
  73. data/frameworks/uki/src/uki-touch/touch/view.js +4 -0
  74. data/frameworks/uki/src/uki-touch/touch/view/scrollPane.js +505 -0
  75. data/frameworks/uki/src/uki-touch/touch/view/scrollableList.js +27 -0
  76. data/frameworks/uki/src/uki-view/view/box.js +9 -0
  77. data/frameworks/uki/src/uki-view/view/button.js +36 -1
  78. data/frameworks/uki/src/uki-view/view/checkbox.js +32 -3
  79. data/frameworks/uki/src/uki-view/view/flow.js +37 -9
  80. data/frameworks/uki/src/uki-view/view/image.js +14 -1
  81. data/frameworks/uki/src/uki-view/view/label.js +72 -11
  82. data/frameworks/uki/src/uki-view/view/list.js +143 -13
  83. data/frameworks/uki/src/uki-view/view/list/render.js +1 -0
  84. data/frameworks/uki/src/uki-view/view/popup.js +46 -2
  85. data/frameworks/uki/src/uki-view/view/radio.js +19 -4
  86. data/frameworks/uki/src/uki-view/view/scrollPane.js +91 -33
  87. data/frameworks/uki/src/uki-view/view/slider.js +67 -54
  88. data/frameworks/uki/src/uki-view/view/splitPane.js +102 -9
  89. data/frameworks/uki/src/uki-view/view/table.js +59 -2
  90. data/frameworks/uki/src/uki-view/view/table/column.js +45 -17
  91. data/frameworks/uki/src/uki-view/view/table/header.js +40 -12
  92. data/frameworks/uki/src/uki-view/view/table/render.js +4 -0
  93. data/frameworks/uki/src/uki-view/view/textField.js +75 -21
  94. data/frameworks/uki/src/uki-view/view/toolbar.js +16 -0
  95. data/lib/uki/builder.rb +1 -1
  96. data/lib/uki/include_js.rb +2 -2
  97. data/lib/uki/project.rb +14 -14
  98. data/templates/index.html.erb +2 -2
  99. data/templates/myapp.js.erb +2 -2
  100. data/uki.gemspec +34 -48
  101. metadata +44 -47
  102. data/frameworks/uki/src/uki-core/dom/nativeLayout.js +0 -18
  103. data/frameworks/uki/src/uki-theme/airport/i/button/down-c.gif +0 -0
  104. data/frameworks/uki/src/uki-theme/airport/i/button/down-c.png +0 -0
  105. data/frameworks/uki/src/uki-theme/airport/i/button/down-h.gif +0 -0
  106. data/frameworks/uki/src/uki-theme/airport/i/button/down-h.png +0 -0
  107. data/frameworks/uki/src/uki-theme/airport/i/button/down-m.png +0 -0
  108. data/frameworks/uki/src/uki-theme/airport/i/button/down-v.png +0 -0
  109. data/frameworks/uki/src/uki-theme/airport/i/button/focusRing-c.png +0 -0
  110. data/frameworks/uki/src/uki-theme/airport/i/button/focusRing-h.png +0 -0
  111. data/frameworks/uki/src/uki-theme/airport/i/button/focusRing-m.png +0 -0
  112. data/frameworks/uki/src/uki-theme/airport/i/button/focusRing-v.png +0 -0
  113. data/frameworks/uki/src/uki-theme/airport/i/button/focusRing.png +0 -0
  114. data/frameworks/uki/src/uki-theme/airport/i/button/hover-c.gif +0 -0
  115. data/frameworks/uki/src/uki-theme/airport/i/button/hover-c.png +0 -0
  116. data/frameworks/uki/src/uki-theme/airport/i/button/hover-h.gif +0 -0
  117. data/frameworks/uki/src/uki-theme/airport/i/button/hover-h.png +0 -0
  118. data/frameworks/uki/src/uki-theme/airport/i/button/hover-m.png +0 -0
  119. data/frameworks/uki/src/uki-theme/airport/i/button/hover-v.png +0 -0
  120. data/frameworks/uki/src/uki-theme/airport/i/button/hover.png +0 -0
  121. data/frameworks/uki/src/uki-theme/airport/i/button/normal-c.gif +0 -0
  122. data/frameworks/uki/src/uki-theme/airport/i/button/normal-c.png +0 -0
  123. data/frameworks/uki/src/uki-theme/airport/i/button/normal-h.gif +0 -0
  124. data/frameworks/uki/src/uki-theme/airport/i/button/normal-h.png +0 -0
  125. data/frameworks/uki/src/uki-theme/airport/i/button/normal-m.png +0 -0
  126. data/frameworks/uki/src/uki-theme/airport/i/button/normal-v.png +0 -0
  127. data/frameworks/uki/src/uki-theme/airport/i/button/normal.png +0 -0
  128. data/frameworks/uki/src/uki-theme/airport/i/panel/dark-h.gif +0 -0
  129. data/frameworks/uki/src/uki-theme/airport/i/panel/dark-h.png +0 -0
  130. data/frameworks/uki/src/uki-theme/airport/i/panel/dark-m.png +0 -0
  131. data/frameworks/uki/src/uki-theme/airport/i/panel/dark.png +0 -0
  132. data/frameworks/uki/src/uki-theme/airport/i/popup/normal.png +0 -0
  133. data/frameworks/uki/src/uki-theme/airport/i/shadow/large-c.png +0 -0
  134. data/frameworks/uki/src/uki-theme/airport/i/shadow/large-h.png +0 -0
  135. data/frameworks/uki/src/uki-theme/airport/i/shadow/large-m.png +0 -0
  136. data/frameworks/uki/src/uki-theme/airport/i/shadow/large-v.png +0 -0
  137. data/frameworks/uki/src/uki-theme/airport/i/shadow/large.png +0 -0
  138. data/frameworks/uki/src/uki-theme/airport/i/slider/bar-m.gif +0 -0
  139. data/frameworks/uki/src/uki-theme/airport/i/slider/bar-m.png +0 -0
  140. data/frameworks/uki/src/uki-theme/airport/i/slider/bar-v.gif +0 -0
  141. data/frameworks/uki/src/uki-theme/airport/i/slider/bar-v.png +0 -0
  142. data/frameworks/uki/src/uki-theme/airport/i/slider/bar.png +0 -0
  143. data/frameworks/uki/src/uki-theme/airport/i/slider/focus.png +0 -0
  144. data/frameworks/uki/src/uki-theme/airport/i/slider/handle.gif +0 -0
@@ -1,5 +1,9 @@
1
1
  include('../list/render.js');
2
2
 
3
+ /**
4
+ * @class
5
+ * @extends uki.view.list.Render
6
+ */
3
7
  uki.view.table.Render = uki.newClass(uki.view.list.Render, new function() {
4
8
  this.init = function(table) {
5
9
  this._table = table;
@@ -1,40 +1,60 @@
1
+ /**
2
+ * Editable Text Field
3
+ *
4
+ * @author voloko
5
+ * @name uki.view.TextField
6
+ * @class
7
+ * @extends uki.view.Base
8
+ * @implements uki.view.Focusable
9
+ */
1
10
  uki.view.declare('uki.view.TextField', uki.view.Base, uki.view.Focusable, function(Base, Focusable) {
2
11
  var emptyInputHeight = {};
3
12
 
4
- function getEmptyInputHeight (fontSize) {
5
- if (!emptyInputHeight[fontSize]) {
6
- var node = uki.createElement('input', Base.defaultCss + "border:none;padding:0;border:0;overflow:hidden;font-size:"+fontSize+";left:-999em;top:0");
13
+ function getEmptyInputHeight (css) {
14
+ if (!emptyInputHeight[css]) {
15
+ var node = uki.createElement('input', Base.defaultCss + "border:none;padding:0;border:0;margin:0;overflow:hidden;left:-999em;top:0;line-height:1;" + css);
7
16
  uki.dom.probe(
8
17
  node,
9
18
  function(probe) {
10
- emptyInputHeight[fontSize] = probe.offsetHeight;
19
+ emptyInputHeight[css] = probe.offsetHeight;
11
20
  }
12
21
  );
13
22
  }
14
- return emptyInputHeight[fontSize];
23
+ return emptyInputHeight[css];
15
24
  }
16
25
 
17
26
  function nativePlaceholder (node) {
18
27
  return typeof node.placeholder == 'string';
19
28
  }
29
+
30
+ this._backgroundPrefix = '';
31
+ this._tagName = 'input';
32
+ this._type = 'text';
20
33
 
21
34
  this._setup = function() {
22
35
  Base._setup.apply(this, arguments);
23
36
  uki.extend(this, {
24
37
  _value: '',
25
38
  _multiline: false,
26
- _placeholder: '',
27
- _backgroundPrefix: '',
28
- _tagName: 'input',
29
- _type: 'text'
39
+ _placeholder: ''
30
40
  });
31
- this.defaultCss += "margin:0;border:none;outline:none;padding:0;left:2px;top:0;z-index:100;resize:none;background: url(" + uki.theme.imageSrc('x') + ");" + uki.theme.style('input');
41
+ this.defaultCss += "margin:0;border:none;outline:none;padding:0;left:2px;top:0;z-index:100;-moz-resize:none;resize:none;background: url(" + uki.theme.imageSrc('x') + ");" + uki.theme.style('input');
32
42
  };
33
43
 
34
44
  this._updateBg = function() {
35
45
  this._input.style.color = this._disabled ? '#999' : '#000';
36
46
  };
37
47
 
48
+ /**
49
+ * @function
50
+ * @name uki.view.TextField#name
51
+ */
52
+ uki.delegateProp(this, 'name', '_input');
53
+
54
+ /**
55
+ * @function
56
+ * @name uki.view.TextField#value
57
+ */
38
58
  this.value = function(value) {
39
59
  if (value === undefined) return this._input.value;
40
60
 
@@ -43,6 +63,11 @@ uki.view.declare('uki.view.TextField', uki.view.Base, uki.view.Focusable, functi
43
63
  return this;
44
64
  };
45
65
 
66
+ /**
67
+ * Cross browser placeholder implementation
68
+ * @function
69
+ * @name uki.view.TextField#placeholder
70
+ */
46
71
  this.placeholder = uki.newProp('_placeholder', function(v) {
47
72
  this._placeholder = v;
48
73
  if (!this._multiline && nativePlaceholder(this._input)) {
@@ -54,7 +79,7 @@ uki.view.declare('uki.view.TextField', uki.view.Base, uki.view.Focusable, functi
54
79
  this._dom.appendChild(this._placeholderDom);
55
80
  this._updatePlaceholderVis();
56
81
  uki.each(['fontSize', 'fontFamily', 'fontWeight'], function(i, name) {
57
- this._placeholderDom.style[name] = this.style(name);
82
+ this._placeholderDom.style[name] = this._input.style[name];
58
83
  }, this);
59
84
 
60
85
  uki.dom.bind(this._placeholderDom, 'mousedown', uki.proxy(function(e) {
@@ -68,20 +93,31 @@ uki.view.declare('uki.view.TextField', uki.view.Base, uki.view.Focusable, functi
68
93
  });
69
94
 
70
95
  this._style = function(name, value) {
71
- if (value === undefined) return this._input.style[name];
72
- this._input.style[name] = value;
73
- if (this._placeholderDom) this._placeholderDom.style[name] = value;
74
- return this;
96
+ if (uki.inArray(name, uki.browser.textStyles) != -1) {
97
+ if (value === undefined) return this._input.style[name];
98
+ this._input.style[name] = value;
99
+ if (this._placeholderDom) this._placeholderDom.style[name] = value;
100
+ }
101
+ return Base._style.call(this, name, value);
75
102
  };
76
103
 
104
+ /**
105
+ * @function
106
+ * @name uki.view.TextField#backgroundPrefix
107
+ */
77
108
  uki.addProps(this, ['backgroundPrefix']);
78
109
 
110
+ /**
111
+ * @function
112
+ * @name uki.view.TextField#defaultBackground
113
+ */
79
114
  this.defaultBackground = function() {
80
115
  return uki.theme.background(this._backgroundPrefix + 'input');
81
116
  };
82
117
 
83
118
  this._createDom = function() {
84
- this._dom = uki.createElement('div', Base.defaultCss + ';cursor:text;overflow:visible');
119
+ this._dom = uki.createElement('div', Base.defaultCss + ';cursor:text;overflow:visible;');
120
+ this._initClassName();
85
121
  this._input = uki.createElement(this._tagName, this.defaultCss + (this._multiline ? '' : ';overflow:hidden;'));
86
122
 
87
123
  this._input.value = this._value;
@@ -108,11 +144,11 @@ uki.view.declare('uki.view.TextField', uki.view.Base, uki.view.Focusable, functi
108
144
  this._input.style.top = 2 + PX;
109
145
  margin = '2px 0';
110
146
  } else {
111
- var o = (this._rect.height - getEmptyInputHeight(this.style('fontSize'))) / 2;
147
+ var o = (this._rect.height - getEmptyInputHeight( 'font-size:' + this.style('fontSize') + ';font-family:' + this.style('fontFamily') )) / 2;
112
148
  margin = CEIL(o) + 'px 0 ' + FLOOR(o) + 'px 0';
113
- this._input.style.margin = margin;
149
+ this._input.style.padding = margin;
114
150
  }
115
- if (this._placeholderDom) this._placeholderDom.style.margin = margin;
151
+ if (this._placeholderDom) this._placeholderDom.style.padding = margin;
116
152
  };
117
153
 
118
154
  this._updatePlaceholderVis = function() {
@@ -137,15 +173,32 @@ uki.view.declare('uki.view.TextField', uki.view.Base, uki.view.Focusable, functi
137
173
  };
138
174
  });
139
175
 
176
+ /**
177
+ * Multiline Editable Text Field (textarea)
178
+ *
179
+ * @author voloko
180
+ * @name uki.view.MultilineTextField
181
+ * @class
182
+ * @extends uki.view.TextField
183
+ */
140
184
  uki.view.declare('uki.view.MultilineTextField', uki.view.TextField, function(Base) {
185
+ this._tagName = 'textarea';
186
+ this._type = '';
187
+
141
188
  this._setup = function() {
142
189
  Base._setup.call(this);
143
- this._tagName = 'textarea';
144
- this._type = '';
145
190
  this._multiline = true;
146
191
  };
147
192
  });
148
193
 
194
+ /**
195
+ * Password Field
196
+ *
197
+ * @author voloko
198
+ * @name uki.view.PasswordTextField
199
+ * @class
200
+ * @extends uki.view.TextField
201
+ */
149
202
  uki.view.declare('uki.view.PasswordTextField', uki.view.TextField, function(Base) {
150
203
  this._setup = function() {
151
204
  Base._setup.call(this);
@@ -153,3 +206,4 @@ uki.view.declare('uki.view.PasswordTextField', uki.view.TextField, function(Base
153
206
  };
154
207
  });
155
208
 
209
+ uki.Collection.addAttrs(['placeholder']);
@@ -3,6 +3,14 @@ include('flow.js');
3
3
 
4
4
  uki.view.toolbar = {};
5
5
 
6
+ /**
7
+ * Toolbar
8
+ *
9
+ * @author voloko
10
+ * @name uki.view.Toolbar
11
+ * @class
12
+ * @extends uki.view.Container
13
+ */
6
14
  uki.view.declare('uki.view.Toolbar', uki.view.Container, function(Base) {
7
15
 
8
16
  this.typeName = function() { return 'uki.view.Toolbar'; };
@@ -15,6 +23,10 @@ uki.view.declare('uki.view.Toolbar', uki.view.Container, function(Base) {
15
23
  this._widths = [];
16
24
  };
17
25
 
26
+ /**
27
+ * @function
28
+ * @name uki.view.Toolbar#buttons
29
+ */
18
30
  this.buttons = uki.newProp('_buttons', function(b) {
19
31
  this._buttons = b;
20
32
  var buttons = uki.build(uki.map(this._buttons, this._createButton, this)).resizeToContents('width');
@@ -22,6 +34,10 @@ uki.view.declare('uki.view.Toolbar', uki.view.Container, function(Base) {
22
34
  this._totalWidth = uki.reduce(0, this._flow.childViews(), function(s, v) { return s + v.rect().width; });
23
35
  });
24
36
 
37
+ /**
38
+ * @function
39
+ * @name uki.view.Toolbar#moreWidth
40
+ */
25
41
  uki.moreWidth = uki.newProp('_moreWidth', function(v) {
26
42
  this._moreWidth = v;
27
43
  this._updateMoreVisible();
data/lib/uki/builder.rb CHANGED
@@ -22,7 +22,7 @@ module Uki
22
22
  def compressed_code
23
23
  unless @compressed_code
24
24
  code = Uki.include_js(path) do |path|
25
- if path.match(/.css$/)
25
+ if path.match(/\.css$/)
26
26
  compiled_css path
27
27
  else
28
28
  File.read(path)
@@ -24,7 +24,7 @@ module Uki
24
24
  else
25
25
  include_path = File.expand_path File.join(base, $2)
26
26
  unless included[include_path]
27
- $1 + include_js(include_path, included, stack + [include_path]) + $3
27
+ $1 + include_js(include_path, included, stack + [include_path], &block) + $3
28
28
  else
29
29
  $1 + $3
30
30
  end
@@ -40,7 +40,7 @@ module Uki
40
40
  else
41
41
  File.read(path)
42
42
  end
43
- JSON.dump code
43
+ (code || '').to_json
44
44
  end
45
45
 
46
46
  def self.extract_includes path
data/lib/uki/project.rb CHANGED
@@ -15,10 +15,14 @@ class Uki::Project
15
15
  @dest = dest
16
16
  end
17
17
 
18
+ # def name
19
+ # File.basename File.expand_path(dest)
20
+ # end
21
+
18
22
  def name
19
- File.basename File.expand_path(dest)
23
+ File.basename(File.expand_path(dest)).sub(/[^a-z0-9_$]+/, '_')
20
24
  end
21
-
25
+
22
26
  def create options
23
27
  verify_empty
24
28
  init_dest
@@ -161,9 +165,9 @@ class Uki::Project
161
165
  end
162
166
 
163
167
  def init_dest
164
- FileUtils.mkdir_p File.join(dest, project_name)
165
- ['view', 'model', 'layout', 'controller'].each do |name|
166
- FileUtils.mkdir_p File.join(dest, project_name, name)
168
+ FileUtils.mkdir_p File.join(dest, name)
169
+ ['view', 'model', 'layout', 'controller'].each do |n|
170
+ FileUtils.mkdir_p File.join(dest, name, n)
167
171
  end
168
172
  end
169
173
 
@@ -171,25 +175,21 @@ class Uki::Project
171
175
  File.open(File.join(dest, 'index.html'), 'w') do |f|
172
176
  f.write template('index.html').result(binding)
173
177
  end
174
- File.open(File.join(dest, "#{project_name}.js"), 'w') do |f|
178
+ File.open(File.join(dest, "#{name}.js"), 'w') do |f|
175
179
  f.write template('myapp.js').result(binding)
176
180
  end
177
181
 
178
- create_function 'layout.js', "#{project_name}.layout.main"
182
+ create_function 'layout.js', "#{name}.layout.main"
179
183
 
180
- ['view', 'model', 'layout', 'controller'].each do |name|
181
- File.open(File.join(dest, project_name, "#{name}.js"), 'w') do |f|
182
- package_name = "#{project_name}.#{name}"
184
+ ['view', 'model', 'layout', 'controller'].each do |n|
185
+ File.open(File.join(dest, name, "#{n}.js"), 'w') do |f|
186
+ package_name = "#{name}.#{n}"
183
187
  f.write template('package.js').result(binding)
184
188
  end
185
189
  end
186
190
 
187
191
  end
188
192
 
189
- def project_name
190
- File.basename dest
191
- end
192
-
193
193
  def copy_frameworks
194
194
  FileUtils.mkdir_p File.join(dest, 'frameworks')
195
195
  frameworks_dest = File.join(dest, 'frameworks', 'uki')
@@ -1,10 +1,10 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
- <title><%= project_name.capitalize %></title>
4
+ <title><%= name.capitalize %></title>
5
5
  <style>body, html { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden };</style>
6
6
  </head>
7
7
  <body>
8
- <script src="<%= project_name %>.cjs"></script>
8
+ <script src="<%= name %>.cjs"></script>
9
9
  </body>
10
10
  </html>
@@ -1,6 +1,6 @@
1
1
  (function() {
2
2
  // define namespace
3
- <%= project_name %> = {};
3
+ <%= name %> = {};
4
4
 
5
5
  // all core modules
6
6
  include('frameworks/uki/uki-core.js');
@@ -34,7 +34,7 @@ uki.theme.airport.imagePath = 'i/';
34
34
  // skip interface creation if we're testing
35
35
  if (window.TESTING) return;
36
36
 
37
- <%= project_name %>.layout.main().attachTo(window, '300 62');
37
+ <%= name %>.layout.main().attachTo(window, '300 62');
38
38
 
39
39
  uki('Button').click(function() {
40
40
  alert(this.text());
data/uki.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{uki}
8
- s.version = "1.1.1"
8
+ s.version = "1.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Vladimir Kolesnikov"]
12
- s.date = %q{2010-05-04}
12
+ s.date = %q{2010-10-18}
13
13
  s.default_executable = %q{uki}
14
14
  s.description = %q{Project creation, dev server, testing, building for uki apps}
15
15
  s.email = %q{voloko@gmail.com}
@@ -44,6 +44,8 @@ Gem::Specification.new do |s|
44
44
  "frameworks/uki/examples/core-examples/controls/controls.js",
45
45
  "frameworks/uki/examples/core-examples/dnd/dnd.js",
46
46
  "frameworks/uki/examples/core-examples/flow/flow.js",
47
+ "frameworks/uki/examples/core-examples/linearGradient/gradient.svg",
48
+ "frameworks/uki/examples/core-examples/linearGradient/linearGradient.js",
47
49
  "frameworks/uki/examples/core-examples/list/list.js",
48
50
  "frameworks/uki/examples/core-examples/popup/popup.js",
49
51
  "frameworks/uki/examples/core-examples/resizeToContents/resizeToContents.js",
@@ -168,12 +170,14 @@ Gem::Specification.new do |s|
168
170
  "frameworks/uki/examples/css/index.css",
169
171
  "frameworks/uki/examples/css/reset.css",
170
172
  "frameworks/uki/examples/more-examples/radioButton/radioButton.js",
173
+ "frameworks/uki/examples/more-examples/select/select.js",
171
174
  "frameworks/uki/examples/more-examples/splitTable/library.js",
172
175
  "frameworks/uki/examples/more-examples/splitTable/searchable.js",
173
176
  "frameworks/uki/examples/more-examples/splitTable/splitTable.js",
174
177
  "frameworks/uki/examples/more-examples/toggleButton/toggleButton.js",
175
178
  "frameworks/uki/examples/more-examples/treeList/i/arrows.png",
176
179
  "frameworks/uki/examples/more-examples/treeList/treeList.js",
180
+ "frameworks/uki/examples/touch-examples/scrollPane/scrollPane.js",
177
181
  "frameworks/uki/examples/views/example.haml",
178
182
  "frameworks/uki/examples/views/exampleList.haml",
179
183
  "frameworks/uki/server.rb",
@@ -204,10 +208,12 @@ Gem::Specification.new do |s|
204
208
  "frameworks/uki/spec/unit/view/container.spec.js",
205
209
  "frameworks/uki/src/airport.js",
206
210
  "frameworks/uki/src/uki-core.js",
211
+ "frameworks/uki/src/uki-core/after.js",
207
212
  "frameworks/uki/src/uki-core/attachment.js",
208
213
  "frameworks/uki/src/uki-core/background.js",
209
214
  "frameworks/uki/src/uki-core/background/css.js",
210
215
  "frameworks/uki/src/uki-core/background/cssBox.js",
216
+ "frameworks/uki/src/uki-core/background/linearGradient.js",
211
217
  "frameworks/uki/src/uki-core/background/multi.js",
212
218
  "frameworks/uki/src/uki-core/background/null.js",
213
219
  "frameworks/uki/src/uki-core/background/rows.js",
@@ -216,9 +222,9 @@ Gem::Specification.new do |s|
216
222
  "frameworks/uki/src/uki-core/collection.js",
217
223
  "frameworks/uki/src/uki-core/const.js",
218
224
  "frameworks/uki/src/uki-core/dom.js",
225
+ "frameworks/uki/src/uki-core/dom/browser.js",
219
226
  "frameworks/uki/src/uki-core/dom/dnd.js",
220
227
  "frameworks/uki/src/uki-core/dom/event.js",
221
- "frameworks/uki/src/uki-core/dom/nativeLayout.js",
222
228
  "frameworks/uki/src/uki-core/dom/offset.js",
223
229
  "frameworks/uki/src/uki-core/dom/w3cdnd.js",
224
230
  "frameworks/uki/src/uki-core/geometry.js",
@@ -239,14 +245,27 @@ Gem::Specification.new do |s|
239
245
  "frameworks/uki/src/uki-data.js",
240
246
  "frameworks/uki/src/uki-data/ajax.js",
241
247
  "frameworks/uki/src/uki-data/data.js",
248
+ "frameworks/uki/src/uki-data/json.js",
249
+ "frameworks/uki/src/uki-data/localStore.js",
242
250
  "frameworks/uki/src/uki-data/model.js",
243
251
  "frameworks/uki/src/uki-data/observable.js",
244
252
  "frameworks/uki/src/uki-more.js",
245
253
  "frameworks/uki/src/uki-more/more.js",
254
+ "frameworks/uki/src/uki-more/more/background.js",
255
+ "frameworks/uki/src/uki-more/more/color.js",
246
256
  "frameworks/uki/src/uki-more/more/utils.js",
247
257
  "frameworks/uki/src/uki-more/more/view.js",
258
+ "frameworks/uki/src/uki-more/more/view/form.js",
259
+ "frameworks/uki/src/uki-more/more/view/hTile.js",
248
260
  "frameworks/uki/src/uki-more/more/view/listContainer.js",
261
+ "frameworks/uki/src/uki-more/more/view/nativeButton.js",
262
+ "frameworks/uki/src/uki-more/more/view/nativeCheckbox.js",
263
+ "frameworks/uki/src/uki-more/more/view/nativeControl.js",
264
+ "frameworks/uki/src/uki-more/more/view/nativeInput.js",
265
+ "frameworks/uki/src/uki-more/more/view/nativeSelect.js",
249
266
  "frameworks/uki/src/uki-more/more/view/radioButton.js",
267
+ "frameworks/uki/src/uki-more/more/view/select-theme.js",
268
+ "frameworks/uki/src/uki-more/more/view/select.js",
250
269
  "frameworks/uki/src/uki-more/more/view/splitTable.js",
251
270
  "frameworks/uki/src/uki-more/more/view/splitTable/render.js",
252
271
  "frameworks/uki/src/uki-more/more/view/toggleButton.js",
@@ -254,59 +273,19 @@ Gem::Specification.new do |s|
254
273
  "frameworks/uki/src/uki-more/more/view/treeList/render.js",
255
274
  "frameworks/uki/src/uki-theamless.js",
256
275
  "frameworks/uki/src/uki-theme/airport.js",
257
- "frameworks/uki/src/uki-theme/airport/i/button/down-c.gif",
258
- "frameworks/uki/src/uki-theme/airport/i/button/down-c.png",
259
- "frameworks/uki/src/uki-theme/airport/i/button/down-h.gif",
260
- "frameworks/uki/src/uki-theme/airport/i/button/down-h.png",
261
- "frameworks/uki/src/uki-theme/airport/i/button/down-m.png",
262
- "frameworks/uki/src/uki-theme/airport/i/button/down-v.png",
263
- "frameworks/uki/src/uki-theme/airport/i/button/focusRing-c.png",
264
- "frameworks/uki/src/uki-theme/airport/i/button/focusRing-h.png",
265
- "frameworks/uki/src/uki-theme/airport/i/button/focusRing-m.png",
266
- "frameworks/uki/src/uki-theme/airport/i/button/focusRing-v.png",
267
- "frameworks/uki/src/uki-theme/airport/i/button/focusRing.png",
268
- "frameworks/uki/src/uki-theme/airport/i/button/hover-c.gif",
269
- "frameworks/uki/src/uki-theme/airport/i/button/hover-c.png",
270
- "frameworks/uki/src/uki-theme/airport/i/button/hover-h.gif",
271
- "frameworks/uki/src/uki-theme/airport/i/button/hover-h.png",
272
- "frameworks/uki/src/uki-theme/airport/i/button/hover-m.png",
273
- "frameworks/uki/src/uki-theme/airport/i/button/hover-v.png",
274
- "frameworks/uki/src/uki-theme/airport/i/button/hover.png",
275
- "frameworks/uki/src/uki-theme/airport/i/button/normal-c.gif",
276
- "frameworks/uki/src/uki-theme/airport/i/button/normal-c.png",
277
- "frameworks/uki/src/uki-theme/airport/i/button/normal-h.gif",
278
- "frameworks/uki/src/uki-theme/airport/i/button/normal-h.png",
279
- "frameworks/uki/src/uki-theme/airport/i/button/normal-m.png",
280
- "frameworks/uki/src/uki-theme/airport/i/button/normal-v.png",
281
- "frameworks/uki/src/uki-theme/airport/i/button/normal.png",
282
276
  "frameworks/uki/src/uki-theme/airport/i/checkbox/checkbox.png",
283
277
  "frameworks/uki/src/uki-theme/airport/i/checkbox/focus.png",
284
278
  "frameworks/uki/src/uki-theme/airport/i/checkbox/normal.gif",
285
279
  "frameworks/uki/src/uki-theme/airport/i/checkbox/normal.png",
286
- "frameworks/uki/src/uki-theme/airport/i/panel/dark-h.gif",
287
- "frameworks/uki/src/uki-theme/airport/i/panel/dark-h.png",
288
- "frameworks/uki/src/uki-theme/airport/i/panel/dark-m.png",
289
- "frameworks/uki/src/uki-theme/airport/i/panel/dark.png",
290
- "frameworks/uki/src/uki-theme/airport/i/popup/normal.png",
291
280
  "frameworks/uki/src/uki-theme/airport/i/radio/focus.png",
292
281
  "frameworks/uki/src/uki-theme/airport/i/radio/normal.gif",
293
282
  "frameworks/uki/src/uki-theme/airport/i/radio/normal.png",
294
283
  "frameworks/uki/src/uki-theme/airport/i/radio/radio.png",
295
- "frameworks/uki/src/uki-theme/airport/i/shadow/large-c.png",
296
- "frameworks/uki/src/uki-theme/airport/i/shadow/large-h.png",
297
- "frameworks/uki/src/uki-theme/airport/i/shadow/large-m.png",
298
- "frameworks/uki/src/uki-theme/airport/i/shadow/large-v.png",
299
- "frameworks/uki/src/uki-theme/airport/i/shadow/large.png",
300
- "frameworks/uki/src/uki-theme/airport/i/slider/bar-m.gif",
301
- "frameworks/uki/src/uki-theme/airport/i/slider/bar-m.png",
302
- "frameworks/uki/src/uki-theme/airport/i/slider/bar-v.gif",
303
- "frameworks/uki/src/uki-theme/airport/i/slider/bar-v.png",
304
- "frameworks/uki/src/uki-theme/airport/i/slider/bar.png",
305
- "frameworks/uki/src/uki-theme/airport/i/slider/focus.png",
306
- "frameworks/uki/src/uki-theme/airport/i/slider/handle.gif",
307
284
  "frameworks/uki/src/uki-theme/airport/i/splitPane/horizontal.gif",
308
285
  "frameworks/uki/src/uki-theme/airport/i/splitPane/horizontal.png",
309
286
  "frameworks/uki/src/uki-theme/airport/i/splitPane/vertical.gif",
287
+ "frameworks/uki/src/uki-theme/airport/i/table/a-down.png",
288
+ "frameworks/uki/src/uki-theme/airport/i/table/a-up.png",
310
289
  "frameworks/uki/src/uki-theme/airport/i/x.gif",
311
290
  "frameworks/uki/src/uki-theme/aristo.js",
312
291
  "frameworks/uki/src/uki-theme/aristo/i/button/down-c.gif",
@@ -352,6 +331,13 @@ Gem::Specification.new do |s|
352
331
  "frameworks/uki/src/uki-theme/aristo/i/splitPane/horizontal.png",
353
332
  "frameworks/uki/src/uki-theme/aristo/i/splitPane/vertical.gif",
354
333
  "frameworks/uki/src/uki-theme/aristo/i/x.gif",
334
+ "frameworks/uki/src/uki-touch.js",
335
+ "frameworks/uki/src/uki-touch/touch.js",
336
+ "frameworks/uki/src/uki-touch/touch/const.js",
337
+ "frameworks/uki/src/uki-touch/touch/setup.js",
338
+ "frameworks/uki/src/uki-touch/touch/view.js",
339
+ "frameworks/uki/src/uki-touch/touch/view/scrollPane.js",
340
+ "frameworks/uki/src/uki-touch/touch/view/scrollableList.js",
355
341
  "frameworks/uki/src/uki-view.js",
356
342
  "frameworks/uki/src/uki-view/view/box.js",
357
343
  "frameworks/uki/src/uki-view/view/button.js",
@@ -395,14 +381,14 @@ Gem::Specification.new do |s|
395
381
  s.homepage = %q{http://github.com/voloko/uki}
396
382
  s.rdoc_options = ["--charset=UTF-8"]
397
383
  s.require_paths = ["lib"]
398
- s.rubygems_version = %q{1.3.6}
384
+ s.rubygems_version = %q{1.3.7}
399
385
  s.summary = %q{uki development tools}
400
386
 
401
387
  if s.respond_to? :specification_version then
402
388
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
403
389
  s.specification_version = 3
404
390
 
405
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
391
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
406
392
  s.add_runtime_dependency(%q<sinatra>, [">= 0"])
407
393
  s.add_runtime_dependency(%q<commander>, [">= 4.0.1"])
408
394
  s.add_runtime_dependency(%q<jspec>, [">= 3.3.2"])