matestack-ui-core 1.0.0.rc.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/app/concepts/matestack/ui/core/abbr/abbr.haml +1 -1
  4. data/app/concepts/matestack/ui/core/abbr/abbr.rb +0 -8
  5. data/app/concepts/matestack/ui/core/action/action.haml +1 -1
  6. data/app/concepts/matestack/ui/core/actionview/dynamic.haml +4 -4
  7. data/app/concepts/matestack/ui/core/address/address.haml +2 -2
  8. data/app/concepts/matestack/ui/core/area/area.haml +1 -1
  9. data/app/concepts/matestack/ui/core/area/area.rb +2 -16
  10. data/app/concepts/matestack/ui/core/article/article.haml +3 -3
  11. data/app/concepts/matestack/ui/core/article/article.rb +1 -1
  12. data/app/concepts/matestack/ui/core/aside/aside.haml +1 -1
  13. data/app/concepts/matestack/ui/core/aside/aside.rb +0 -1
  14. data/app/concepts/matestack/ui/core/async/async.rb +4 -1
  15. data/app/concepts/matestack/ui/core/async/children_wrapper.haml +1 -1
  16. data/app/concepts/matestack/ui/core/b/b.haml +3 -3
  17. data/app/concepts/matestack/ui/core/b/b.rb +1 -1
  18. data/app/concepts/matestack/ui/core/bdi/bdi.haml +3 -3
  19. data/app/concepts/matestack/ui/core/bdi/bdi.rb +1 -0
  20. data/app/concepts/matestack/ui/core/bdo/bdo.haml +3 -3
  21. data/app/concepts/matestack/ui/core/bdo/bdo.rb +2 -7
  22. data/app/concepts/matestack/ui/core/blockquote/blockquote.haml +3 -3
  23. data/app/concepts/matestack/ui/core/blockquote/blockquote.rb +2 -7
  24. data/app/concepts/matestack/ui/core/br/br.haml +4 -4
  25. data/app/concepts/matestack/ui/core/br/br.rb +1 -1
  26. data/app/concepts/matestack/ui/core/button/button.haml +3 -3
  27. data/app/concepts/matestack/ui/core/button/button.rb +3 -7
  28. data/app/concepts/matestack/ui/core/caption/caption.haml +3 -3
  29. data/app/concepts/matestack/ui/core/caption/caption.rb +1 -1
  30. data/app/concepts/matestack/ui/core/cite/cite.haml +3 -3
  31. data/app/concepts/matestack/ui/core/cite/cite.rb +1 -1
  32. data/app/concepts/matestack/ui/core/code/code.haml +3 -3
  33. data/app/concepts/matestack/ui/core/code/code.rb +1 -1
  34. data/app/concepts/matestack/ui/core/collection/content/content.rb +3 -5
  35. data/app/concepts/matestack/ui/core/collection/content/next/next.haml +1 -1
  36. data/app/concepts/matestack/ui/core/collection/content/page/link/link.haml +1 -1
  37. data/app/concepts/matestack/ui/core/collection/content/page/link/link.rb +1 -1
  38. data/app/concepts/matestack/ui/core/collection/content/previous/previous.haml +1 -1
  39. data/app/concepts/matestack/ui/core/collection/filter/filter.rb +1 -1
  40. data/app/concepts/matestack/ui/core/collection/filter/input/input.rb +11 -8
  41. data/app/concepts/matestack/ui/core/collection/filter/reset/reset.haml +1 -1
  42. data/app/concepts/matestack/ui/core/collection/filter/select/select.haml +6 -6
  43. data/app/concepts/matestack/ui/core/collection/filter/select/select.rb +10 -9
  44. data/app/concepts/matestack/ui/core/collection/filter/submit/submit.haml +1 -1
  45. data/app/concepts/matestack/ui/core/collection/order/order.rb +1 -1
  46. data/app/concepts/matestack/ui/core/collection/order/toggle/indicator/indicator.rb +5 -2
  47. data/app/concepts/matestack/ui/core/collection/order/toggle/toggle.haml +1 -1
  48. data/app/concepts/matestack/ui/core/collection/order/toggle/toggle.rb +0 -1
  49. data/app/concepts/matestack/ui/core/component/dynamic.rb +1 -0
  50. data/app/concepts/matestack/ui/core/data/data.haml +3 -3
  51. data/app/concepts/matestack/ui/core/data/data.rb +2 -5
  52. data/app/concepts/matestack/ui/core/datalist/datalist.haml +2 -2
  53. data/app/concepts/matestack/ui/core/datalist/datalist.rb +1 -2
  54. data/app/concepts/matestack/ui/core/dd/dd.haml +3 -3
  55. data/app/concepts/matestack/ui/core/dd/dd.rb +1 -1
  56. data/app/concepts/matestack/ui/core/del/del.haml +3 -3
  57. data/app/concepts/matestack/ui/core/del/del.rb +2 -0
  58. data/app/concepts/matestack/ui/core/details/details.haml +1 -1
  59. data/app/concepts/matestack/ui/core/details/details.rb +1 -1
  60. data/app/concepts/matestack/ui/core/dfn/dfn.haml +3 -3
  61. data/app/concepts/matestack/ui/core/dfn/dfn.rb +1 -1
  62. data/app/concepts/matestack/ui/core/dialog/dialog.haml +3 -3
  63. data/app/concepts/matestack/ui/core/dialog/dialog.rb +2 -5
  64. data/app/concepts/matestack/ui/core/div/div.haml +1 -1
  65. data/app/concepts/matestack/ui/core/div/div.rb +0 -1
  66. data/app/concepts/matestack/ui/core/dl/dl.haml +3 -3
  67. data/app/concepts/matestack/ui/core/dl/dl.rb +2 -2
  68. data/app/concepts/matestack/ui/core/dt/dt.haml +3 -3
  69. data/app/concepts/matestack/ui/core/dt/dt.rb +1 -1
  70. data/app/concepts/matestack/ui/core/em/em.haml +3 -3
  71. data/app/concepts/matestack/ui/core/em/em.rb +1 -1
  72. data/app/concepts/matestack/ui/core/fieldset/fieldset.haml +4 -4
  73. data/app/concepts/matestack/ui/core/fieldset/fieldset.rb +3 -6
  74. data/app/concepts/matestack/ui/core/figure/figure.haml +1 -1
  75. data/app/concepts/matestack/ui/core/figure/figure.rb +0 -1
  76. data/app/concepts/matestack/ui/core/footer/footer.haml +1 -1
  77. data/app/concepts/matestack/ui/core/footer/footer.rb +0 -1
  78. data/app/concepts/matestack/ui/core/form/form.haml +1 -1
  79. data/app/concepts/matestack/ui/core/form/form.rb +34 -28
  80. data/app/concepts/matestack/ui/core/form/select/select.haml +1 -1
  81. data/app/concepts/matestack/ui/core/form/select/select.rb +0 -20
  82. data/app/concepts/matestack/ui/core/form/submit/submit.haml +1 -1
  83. data/app/concepts/matestack/ui/core/form/submit/submit.rb +3 -3
  84. data/app/concepts/matestack/ui/core/header/header.haml +1 -1
  85. data/app/concepts/matestack/ui/core/header/header.rb +0 -1
  86. data/app/concepts/matestack/ui/core/heading/heading.haml +4 -49
  87. data/app/concepts/matestack/ui/core/heading/heading.rb +1 -3
  88. data/app/concepts/matestack/ui/core/hr/hr.haml +1 -1
  89. data/app/concepts/matestack/ui/core/hr/hr.rb +0 -1
  90. data/app/concepts/matestack/ui/core/icon/icon.haml +3 -3
  91. data/app/concepts/matestack/ui/core/icon/icon.rb +1 -1
  92. data/app/concepts/matestack/ui/core/iframe/iframe.haml +3 -3
  93. data/app/concepts/matestack/ui/core/iframe/iframe.rb +3 -10
  94. data/app/concepts/matestack/ui/core/img/img.haml +1 -1
  95. data/app/concepts/matestack/ui/core/img/img.rb +8 -8
  96. data/app/concepts/matestack/ui/core/input/input.rb +0 -4
  97. data/app/concepts/matestack/ui/core/ins/ins.haml +3 -3
  98. data/app/concepts/matestack/ui/core/ins/ins.rb +2 -6
  99. data/app/concepts/matestack/ui/core/isolated/children_wrapper.haml +1 -1
  100. data/app/concepts/matestack/ui/core/isolated/isolated.rb +1 -1
  101. data/app/concepts/matestack/ui/core/kbd/kbd.haml +3 -3
  102. data/app/concepts/matestack/ui/core/kbd/kbd.rb +1 -0
  103. data/app/concepts/matestack/ui/core/label/label.haml +3 -3
  104. data/app/concepts/matestack/ui/core/label/label.rb +2 -6
  105. data/app/concepts/matestack/ui/core/legend/legend.haml +3 -3
  106. data/app/concepts/matestack/ui/core/legend/legend.rb +1 -1
  107. data/app/concepts/matestack/ui/core/li/li.haml +3 -3
  108. data/app/concepts/matestack/ui/core/li/li.rb +2 -1
  109. data/app/concepts/matestack/ui/core/link/link.haml +3 -3
  110. data/app/concepts/matestack/ui/core/link/link.rb +10 -14
  111. data/app/concepts/matestack/ui/core/main/main.haml +1 -1
  112. data/app/concepts/matestack/ui/core/main/main.rb +0 -1
  113. data/app/concepts/matestack/ui/core/map/map.haml +1 -1
  114. data/app/concepts/matestack/ui/core/map/map.rb +1 -7
  115. data/app/concepts/matestack/ui/core/mark/mark.haml +3 -3
  116. data/app/concepts/matestack/ui/core/mark/mark.rb +1 -0
  117. data/app/concepts/matestack/ui/core/meter/meter.haml +1 -1
  118. data/app/concepts/matestack/ui/core/meter/meter.rb +1 -10
  119. data/app/concepts/matestack/ui/core/nav/nav.haml +1 -1
  120. data/app/concepts/matestack/ui/core/nav/nav.rb +0 -1
  121. data/app/concepts/matestack/ui/core/noscript/noscript.haml +3 -3
  122. data/app/concepts/matestack/ui/core/noscript/noscript.rb +1 -1
  123. data/app/concepts/matestack/ui/core/object/object.haml +1 -1
  124. data/app/concepts/matestack/ui/core/object/object.rb +1 -11
  125. data/app/concepts/matestack/ui/core/ol/ol.haml +1 -1
  126. data/app/concepts/matestack/ui/core/ol/ol.rb +1 -1
  127. data/app/concepts/matestack/ui/core/onclick/onclick.haml +1 -1
  128. data/app/concepts/matestack/ui/core/optgroup/optgroup.haml +1 -1
  129. data/app/concepts/matestack/ui/core/optgroup/optgroup.rb +1 -6
  130. data/app/concepts/matestack/ui/core/option/option.haml +3 -3
  131. data/app/concepts/matestack/ui/core/option/option.rb +2 -8
  132. data/app/concepts/matestack/ui/core/output/output.haml +3 -3
  133. data/app/concepts/matestack/ui/core/output/output.rb +2 -7
  134. data/app/concepts/matestack/ui/core/page/content/content.rb +0 -1
  135. data/app/concepts/matestack/ui/core/page/page.haml +1 -1
  136. data/app/concepts/matestack/ui/core/paragraph/paragraph.haml +3 -3
  137. data/app/concepts/matestack/ui/core/paragraph/paragraph.rb +1 -1
  138. data/app/concepts/matestack/ui/core/param/param.haml +1 -1
  139. data/app/concepts/matestack/ui/core/param/param.rb +1 -6
  140. data/app/concepts/matestack/ui/core/partial/partial.rb +0 -1
  141. data/app/concepts/matestack/ui/core/picture/picture.haml +1 -1
  142. data/app/concepts/matestack/ui/core/pre/pre.haml +3 -3
  143. data/app/concepts/matestack/ui/core/pre/pre.rb +1 -1
  144. data/app/concepts/matestack/ui/core/progress/progress.haml +1 -1
  145. data/app/concepts/matestack/ui/core/progress/progress.rb +1 -10
  146. data/app/concepts/matestack/ui/core/q/q.haml +3 -3
  147. data/app/concepts/matestack/ui/core/q/q.rb +2 -7
  148. data/app/concepts/matestack/ui/core/rp/rp.haml +3 -3
  149. data/app/concepts/matestack/ui/core/rp/rp.rb +1 -1
  150. data/app/concepts/matestack/ui/core/rt/rt.haml +3 -3
  151. data/app/concepts/matestack/ui/core/rt/rt.rb +1 -1
  152. data/app/concepts/matestack/ui/core/ruby/ruby.haml +3 -3
  153. data/app/concepts/matestack/ui/core/ruby/ruby.rb +1 -1
  154. data/app/concepts/matestack/ui/core/s/s.haml +3 -3
  155. data/app/concepts/matestack/ui/core/s/s.rb +1 -1
  156. data/app/concepts/matestack/ui/core/samp/samp.haml +3 -3
  157. data/app/concepts/matestack/ui/core/samp/samp.rb +1 -0
  158. data/app/concepts/matestack/ui/core/section/section.haml +1 -1
  159. data/app/concepts/matestack/ui/core/section/section.rb +0 -1
  160. data/app/concepts/matestack/ui/core/slot/slot.rb +0 -1
  161. data/app/concepts/matestack/ui/core/small/small.haml +3 -3
  162. data/app/concepts/matestack/ui/core/small/small.rb +1 -1
  163. data/app/concepts/matestack/ui/core/span/span.haml +3 -3
  164. data/app/concepts/matestack/ui/core/span/span.rb +1 -1
  165. data/app/concepts/matestack/ui/core/strong/strong.haml +3 -3
  166. data/app/concepts/matestack/ui/core/strong/strong.rb +1 -1
  167. data/app/concepts/matestack/ui/core/sub/sub.haml +3 -3
  168. data/app/concepts/matestack/ui/core/sub/sub.rb +1 -1
  169. data/app/concepts/matestack/ui/core/summary/summary.haml +3 -3
  170. data/app/concepts/matestack/ui/core/summary/summary.rb +1 -1
  171. data/app/concepts/matestack/ui/core/sup/sup.haml +3 -3
  172. data/app/concepts/matestack/ui/core/sup/sup.rb +1 -1
  173. data/app/concepts/matestack/ui/core/table/table.haml +1 -1
  174. data/app/concepts/matestack/ui/core/table/table.rb +0 -1
  175. data/app/concepts/matestack/ui/core/tbody/tbody.haml +1 -1
  176. data/app/concepts/matestack/ui/core/tbody/tbody.rb +0 -1
  177. data/app/concepts/matestack/ui/core/td/td.haml +3 -3
  178. data/app/concepts/matestack/ui/core/td/td.rb +2 -1
  179. data/app/concepts/matestack/ui/core/template/template.haml +1 -1
  180. data/app/concepts/matestack/ui/core/textarea/textarea.haml +4 -1
  181. data/app/concepts/matestack/ui/core/tfoot/tfoot.haml +1 -1
  182. data/app/concepts/matestack/ui/core/tfoot/tfoot.rb +0 -1
  183. data/app/concepts/matestack/ui/core/th/th.haml +3 -3
  184. data/app/concepts/matestack/ui/core/th/th.rb +2 -1
  185. data/app/concepts/matestack/ui/core/thead/thead.haml +1 -1
  186. data/app/concepts/matestack/ui/core/thead/thead.rb +0 -1
  187. data/app/concepts/matestack/ui/core/time/time.haml +1 -1
  188. data/app/concepts/matestack/ui/core/time/time.rb +1 -7
  189. data/app/concepts/matestack/ui/core/toggle/toggle.haml +1 -1
  190. data/app/concepts/matestack/ui/core/toggle/toggle.rb +4 -5
  191. data/app/concepts/matestack/ui/core/tr/tr.haml +1 -1
  192. data/app/concepts/matestack/ui/core/tr/tr.rb +0 -1
  193. data/app/concepts/matestack/ui/core/transition/transition.haml +3 -3
  194. data/app/concepts/matestack/ui/core/transition/transition.rb +13 -7
  195. data/app/concepts/matestack/ui/core/u/u.haml +3 -3
  196. data/app/concepts/matestack/ui/core/u/u.rb +1 -1
  197. data/app/concepts/matestack/ui/core/ul/ul.haml +1 -1
  198. data/app/concepts/matestack/ui/core/ul/ul.rb +0 -1
  199. data/app/concepts/matestack/ui/core/unescaped/unescaped.rb +2 -0
  200. data/app/concepts/matestack/ui/core/var/var.haml +3 -3
  201. data/app/concepts/matestack/ui/core/var/var.rb +1 -0
  202. data/app/concepts/matestack/ui/core/video/video.haml +2 -2
  203. data/app/concepts/matestack/ui/core/video/video.rb +3 -13
  204. data/app/concepts/matestack/ui/core/wbr/wbr.haml +5 -1
  205. data/app/concepts/matestack/ui/core/wbr/wbr.rb +1 -0
  206. data/app/concepts/matestack/ui/core/youtube/youtube.haml +1 -1
  207. data/app/concepts/matestack/ui/core/youtube/youtube.rb +18 -16
  208. data/app/helpers/matestack/ui/core/application_helper.rb +1 -0
  209. data/app/lib/matestack/ui/core/html_attributes.rb +1 -1
  210. data/app/lib/matestack/ui/core/properties.rb +95 -22
  211. data/lib/matestack/ui/core/components.rb +2 -1
  212. data/lib/matestack/ui/core/version.rb +1 -1
  213. data/vendor/assets/javascripts/dist/manifest.json +10 -6
  214. metadata +4 -6
  215. data/app/concepts/matestack/ui/core/collection/filter/input/input.haml +0 -2
  216. data/vendor/assets/javascripts/dist/manifest.json.br +0 -0
@@ -1,10 +1,10 @@
1
1
  - if options[:type] == :dropdown
2
2
 
3
- %select{@tag_attributes}
4
- %option{disabled: true}= options[:placeholder]
5
- - if @options[:options].is_a?(Hash)
6
- - @options[:options].each do |key, value|
3
+ %select{ select_attributes }
4
+ %option{disabled: true}= placeholder
5
+ - if select_options.is_a?(Hash)
6
+ - select_options.each do |key, value|
7
7
  %option{value: key}=value
8
- - if @options[:options].is_a?(Array)
9
- - @options[:options].each do |option|
8
+ - if select_options.is_a?(Array)
9
+ - select_options.each do |option|
10
10
  %option{value: option}=option
@@ -1,28 +1,29 @@
1
1
  module Matestack::Ui::Core::Collection::Filter::Select
2
2
  class Select < Matestack::Ui::Core::Component::Static
3
3
 
4
+ requires :key
5
+ optional :placeholder, options: { as: :select_options }
6
+
4
7
  def setup
5
8
  if options[:type].nil?
6
9
  options[:type] = :dropdown #nothing else supported at the moment
7
10
  end
8
- @tag_attributes.merge!({
11
+ end
12
+
13
+ def select_attributes
14
+ html_attributes.merge!({
9
15
  "v-model#{'.number' if options[:type] == :number}": input_key,
10
16
  type: options[:type],
11
- class: options[:class],
12
17
  id: component_id,
13
18
  "@keyup.enter": "submitFilter()",
14
19
  "@change": "$forceUpdate()",
15
- ref: "filter.#{attr_key}",
16
- placeholder: options[:placeholder]
20
+ ref: "filter.#{key.to_s}",
21
+ placeholder: placeholder
17
22
  })
18
23
  end
19
24
 
20
25
  def input_key
21
- 'filter["' + options[:key].to_s + '"]'
22
- end
23
-
24
- def attr_key
25
- return options[:key].to_s
26
+ 'filter["' + key.to_s + '"]'
26
27
  end
27
28
 
28
29
  end
@@ -1,3 +1,3 @@
1
- %a{@tag_attributes, "@click": "submitFilter()"}
1
+ %a{ html_attributes, "@click": "submitFilter()" }
2
2
  - if block_given?
3
3
  = yield
@@ -7,7 +7,7 @@ module Matestack::Ui::Core::Collection::Order
7
7
  end
8
8
 
9
9
  def response
10
- div @tag_attributes do
10
+ div html_attributes do
11
11
  yield_components
12
12
  end
13
13
  end
@@ -2,10 +2,13 @@ module Matestack::Ui::Core::Collection::Order::Toggle::Indicator
2
2
  class Indicator < Matestack::Ui::Core::Component::Static
3
3
 
4
4
  def response
5
- span @tag_attributes do
5
+ span html_attributes do
6
6
  span attributes: {"v-if": "ordering['#{@component_config[:key]}'] === undefined"}, text: @component_config[:default]
7
7
  unescaped "{{
8
- orderIndicator('#{@component_config[:key]}', { asc: '#{@component_config[:asc]}', desc: '#{@component_config[:desc]}'})
8
+ orderIndicator(
9
+ '#{@component_config[:key]}',
10
+ { asc: '#{@component_config[:asc]}', desc: '#{@component_config[:desc]}'}
11
+ )
9
12
  }}"
10
13
  end
11
14
  end
@@ -1,3 +1,3 @@
1
- %a{@tag_attributes, "@click": "toggleOrder(\"#{@component_config[:key]}\")"}
1
+ %a{ html_attributes, "@click": "toggleOrder(\"#{@component_config[:key]}\")" }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Collection::Order::Toggle
2
2
  class Toggle < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -30,6 +30,7 @@ module Matestack::Ui::Core::Component
30
30
  class << self
31
31
 
32
32
  def inherited(subclass)
33
+ super # do not overwrite inherited implementation of Base
33
34
  subclass.vue_js_component_name vue_js_name unless self == Matestack::Ui::Core::Component::Dynamic
34
35
  end
35
36
 
@@ -1,5 +1,5 @@
1
- %data{@tag_attributes}
2
- - if options[:text].blank? && block_given?
1
+ %data{ html_attributes }
2
+ - if text.blank? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,9 +1,6 @@
1
1
  module Matestack::Ui::Core::Data
2
2
  class Data < Matestack::Ui::Core::Component::Static
3
- def setup
4
- @tag_attributes.merge!({
5
- "value": options[:value] ||= nil
6
- })
7
- end
3
+ html_attributes :value
4
+ optional :text
8
5
  end
9
6
  end
@@ -1,3 +1,3 @@
1
- %datalist{@tag_attributes}
1
+ %datalist{ html_attributes }
2
2
  - if block_given?
3
- = yield
3
+ = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Datalist
2
2
  class Datalist < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
- end
4
+ end
@@ -1,5 +1,5 @@
1
- %dd{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %dd{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,5 +1,5 @@
1
1
  module Matestack::Ui::Core::Dd
2
2
  class Dd < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
- %del{@tag_attributes.merge({:cite => options[:cite], :datetime => options[:datetime]})}
2
- - if options[:text].nil? && block_given?
1
+ %del{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,4 +1,6 @@
1
1
  module Matestack::Ui::Core::Del
2
2
  class Del < Matestack::Ui::Core::Component::Static
3
+ html_attributes :cite, :datetime
4
+ optional :text
3
5
  end
4
6
  end
@@ -1,3 +1,3 @@
1
- %details{@tag_attributes}
1
+ %details{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,5 @@
1
1
  module Matestack::Ui::Core::Details
2
2
  class Details < Matestack::Ui::Core::Component::Static
3
-
3
+ html_attributes :open
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
- %dfn{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %dfn{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,6 +1,6 @@
1
1
  module Matestack::Ui::Core::Dfn
2
2
  class Dfn < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
6
6
 
@@ -1,5 +1,5 @@
1
- %dialog{@tag_attributes}
2
- - if options[:text].blank? && block_given?
1
+ %dialog{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,9 +1,6 @@
1
1
  module Matestack::Ui::Core::Dialog
2
2
  class Dialog < Matestack::Ui::Core::Component::Static
3
- def setup
4
- @tag_attributes.merge!({
5
- "open": options[:open] ||= nil
6
- })
7
- end
3
+ html_attributes :open
4
+ optional :text
8
5
  end
9
6
  end
@@ -1,3 +1,3 @@
1
- %div{@tag_attributes}
1
+ %div{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Div
2
2
  class Div < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,5 +1,5 @@
1
- %dl{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %dl{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,5 +1,5 @@
1
1
  module Matestack::Ui::Core::Dl
2
2
  class Dl < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
- end
5
+ end
@@ -1,5 +1,5 @@
1
- %dt{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %dt{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,5 +1,5 @@
1
1
  module Matestack::Ui::Core::Dt
2
2
  class Dt < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
- %em{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %em{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,5 +1,5 @@
1
1
  module Matestack::Ui::Core::Em
2
2
  class Em < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
- %fieldset{@tag_attributes}
2
- -if options[:text].nil? && block_given?
1
+ %fieldset{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
- - else
5
- = options[:text]
4
+ - else
5
+ = text
@@ -1,9 +1,6 @@
1
1
  module Matestack::Ui::Core::Fieldset
2
2
  class Fieldset < Matestack::Ui::Core::Component::Static
3
- def setup
4
- @tag_attributes.merge!({
5
- disabled: options[:disabled]
6
- })
7
- end
3
+ html_attributes :disabled, :form, :name
4
+ optional :text
8
5
  end
9
- end
6
+ end
@@ -1,3 +1,3 @@
1
- %figure{@tag_attributes}
1
+ %figure{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Figure
2
2
  class Figure < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,3 +1,3 @@
1
- %footer{@tag_attributes}
1
+ %footer{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Footer
2
2
  class Footer < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,2 +1,2 @@
1
- %form{@tag_attributes}
1
+ %form{ form_attributes }
2
2
  = yield
@@ -1,49 +1,55 @@
1
1
  module Matestack::Ui::Core::Form
2
2
  class Form < Matestack::Ui::Core::Component::Dynamic
3
3
  vue_js_component_name "matestack-ui-core-form"
4
+
5
+ html_attributes :'accept-charset', :action, :autocomplete, :enctype, :method, :name, :novalidate, :rel, :target
4
6
 
5
- requires :for, :path, method: { as: :form_method }
7
+ requires :path, for: { as: :for_option }, method: { as: :form_method }
8
+ optional :success, :failure, :multipart, params: { as: :form_params }
6
9
 
7
10
  def setup
8
11
  begin
9
12
  @component_config[:for] = form_wrapper
10
13
  @component_config[:submit_path] = submit_path
11
- @component_config[:method] = options[:method]
12
- @component_config[:success] = options[:success]
13
- @component_config[:multipart] = options[:multipart] == true
14
- unless options[:success].nil?
15
- unless options[:success][:transition].nil?
16
- @component_config[:success][:transition][:path] = transition_path options[:success]
14
+ @component_config[:method] = form_method
15
+ @component_config[:success] = success
16
+ @component_config[:multipart] = multipart == true
17
+ unless success.nil?
18
+ unless success[:transition].nil?
19
+ @component_config[:success][:transition][:path] = transition_path success
17
20
  end
18
- unless options[:success][:redirect].nil?
19
- @component_config[:success][:redirect][:path] = redirect_path options[:success]
21
+ unless success[:redirect].nil?
22
+ @component_config[:success][:redirect][:path] = redirect_path success
20
23
  end
21
24
  end
22
- @component_config[:failure] = options[:failure]
23
- unless options[:failure].nil?
24
- unless options[:failure][:transition].nil?
25
- @component_config[:failure][:transition][:path] = transition_path options[:failure]
25
+ @component_config[:failure] = failure
26
+ unless failure.nil?
27
+ unless failure[:transition].nil?
28
+ @component_config[:failure][:transition][:path] = transition_path failure
26
29
  end
27
- unless options[:failure][:redirect].nil?
28
- @component_config[:failure][:redirect][:path] = redirect_path options[:failure]
30
+ unless failure[:redirect].nil?
31
+ @component_config[:failure][:redirect][:path] = redirect_path failure
29
32
  end
30
33
  end
31
- @tag_attributes.merge!({
32
- "@submit.prevent": true,
33
- "class": "matestack-form #{options[:class]}",
34
- "v-bind:class": "{ 'has-errors': hasErrors(), 'loading': loading }"
35
- })
36
34
  rescue => e
37
35
  raise "Form component could not be setted up. Reason: #{e}"
38
36
  end
39
37
  end
40
38
 
39
+ def form_attributes
40
+ html_attributes.merge({
41
+ "@submit.prevent": true,
42
+ "class": "matestack-form #{options[:class]}",
43
+ "v-bind:class": "{ 'has-errors': hasErrors(), 'loading': loading }"
44
+ })
45
+ end
46
+
41
47
  def submit_path
42
48
  begin
43
- if options[:path].is_a?(Symbol)
44
- return ::Rails.application.routes.url_helpers.send(options[:path], options[:params])
49
+ if path.is_a?(Symbol)
50
+ return ::Rails.application.routes.url_helpers.send(path, form_params)
45
51
  else
46
- return options[:path]
52
+ return path
47
53
  end
48
54
  rescue
49
55
  raise "Submit path not found"
@@ -81,15 +87,15 @@ module Matestack::Ui::Core::Form
81
87
  end
82
88
 
83
89
  def form_wrapper
84
- case options[:for]
90
+ case for_option
85
91
  when Symbol
86
- return options[:for]
92
+ return for_option
87
93
  when String
88
- return options[:for]
94
+ return for_option
89
95
  end
90
96
 
91
- if options[:for].respond_to?(:model_name)
92
- return options[:for].model_name.singular
97
+ if for_option.respond_to?(:model_name)
98
+ return for_option.model_name.singular
93
99
  end
94
100
  end
95
101