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,7 +1,7 @@
1
1
  - if input_label
2
2
  %label= input_label
3
3
 
4
- %select{html_attributes.merge(vue_attributes)}
4
+ %select{ html_attributes.merge(vue_attributes) }
5
5
  - if placeholder
6
6
  %option{value: 'null', disabled: true, selected: init_value.nil?}= placeholder
7
7
  - select_options.to_a.each do |item|
@@ -13,26 +13,6 @@ module Matestack::Ui::Core::Form::Select
13
13
  label: { as: :input_label },
14
14
  options: { as: :select_options }
15
15
 
16
- # def response
17
- # radio_options.to_a.each do |item|
18
- # input html_attributes.merge(
19
- # attributes: vue_attributes.merge(ref: "select.#{attr_key}"),
20
- # type: :radio,
21
- # id: "#{id_for_item(item_value(item))}",
22
- # name: item_name(item),
23
- # value: item_value(item),
24
- # )
25
- # label text: item_label(item), for: id_for_item(item_value(item))
26
- # end
27
- # render_errors
28
- # end
29
-
30
- # def html_options
31
- # html_attributes.merge(
32
- # attributes: vue_attributes,
33
- # )
34
- # end
35
-
36
16
  def vue_attributes
37
17
  (options[:attributes] || {}).merge({
38
18
  "@change": change_event,
@@ -1,3 +1,3 @@
1
- %span{@tag_attributes}
1
+ %span{ submit_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,11 +1,11 @@
1
1
  module Matestack::Ui::Core::Form::Submit
2
2
  class Submit < Matestack::Ui::Core::Component::Static
3
3
 
4
- def setup
5
- @tag_attributes.merge!({
4
+ def submit_attributes
5
+ html_attributes.merge!({
6
6
  "@click.prevent": "perform",
7
7
  "v-bind:class": "{ 'loading': loading }"
8
- })
8
+ })
9
9
  end
10
10
 
11
11
  end
@@ -1,3 +1,3 @@
1
- %header{@tag_attributes}
1
+ %header{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Header
2
2
  class Header < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,50 +1,5 @@
1
- - case options[:size]
2
- - when 1
3
- %h1{@tag_attributes}
4
- - if options[:text].blank?
5
- - if block_given?
6
- = yield
7
- - else
8
- = options[:text]
9
- - when 2
10
- %h2{@tag_attributes}
11
- - if options[:text].blank?
12
- - if block_given?
13
- = yield
14
- - else
15
- = options[:text]
16
- - when 3
17
- %h3{@tag_attributes}
18
- - if options[:text].blank?
19
- - if block_given?
20
- = yield
21
- - else
22
- = options[:text]
23
- - when 4
24
- %h4{@tag_attributes}
25
- - if options[:text].blank?
26
- - if block_given?
27
- = yield
28
- - else
29
- = options[:text]
30
- - when 5
31
- %h5{@tag_attributes}
32
- - if options[:text].blank?
33
- - if block_given?
34
- = yield
35
- - else
36
- = options[:text]
37
- - when 6
38
- %h6{@tag_attributes}
39
- - if options[:text].blank?
40
- - if block_given?
41
- = yield
42
- - else
43
- = options[:text]
1
+ - if text.blank? && block_given?
2
+ = content_tag("h#{size || 1}", html_attributes) do
3
+ = yield
44
4
  - else
45
- %h1{@tag_attributes}
46
- - if options[:text].blank?
47
- - if block_given?
48
- = yield
49
- - else
50
- = options[:text]
5
+ = content_tag("h#{size || 1}", text, html_attributes)
@@ -1,7 +1,5 @@
1
1
  module Matestack::Ui::Core::Heading
2
2
  class Heading < Matestack::Ui::Core::Component::Static
3
-
4
- attr_reader :argument, :options
5
-
3
+ optional :text, :size
6
4
  end
7
5
  end
@@ -1 +1 @@
1
- %hr{@tag_attributes}
1
+ %hr{ html_attributes }
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Hr
2
2
  class Hr < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,5 +1,5 @@
1
- %i{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %i{ 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::Icon
2
2
  class Icon < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
- %iframe{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %iframe{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,14 +1,7 @@
1
1
  module Matestack::Ui::Core::Iframe
2
2
  class Iframe < Matestack::Ui::Core::Component::Static
3
-
4
- def setup
5
- @tag_attributes.merge!({
6
- src: options[:src],
7
- height: options[:height],
8
- width: options[:width],
9
- srcdoc: options[:srcdoc]
10
- })
11
- end
12
-
3
+ html_attributes :allow, :allowfullscreen, :allowpaymentrequest, :height, :name,
4
+ :referrerpolicy, :sandbox, :src, :srcdoc, :width
5
+ optional :text
13
6
  end
14
7
  end
@@ -1 +1 @@
1
- %img{@tag_attributes}
1
+ %img{ img_attributes }
@@ -1,14 +1,14 @@
1
1
  module Matestack::Ui::Core::Img
2
2
  class Img < Matestack::Ui::Core::Component::Static
3
+ html_attributes :alt, :crossorigin, :height, :ismap, :longdesc, :referrerpolicy,
4
+ :sizes, :src, :srcset, :usemap, :width
3
5
 
4
- def setup
5
- @tag_attributes.merge!({
6
- src: ActionController::Base.helpers.asset_path(options[:path]),
7
- height: options[:height],
8
- width: options[:width],
9
- usemap: options[:usemap],
10
- alt: options[:alt]
11
- })
6
+ optional :path
7
+
8
+ def img_attributes
9
+ html_attributes.tap do |attributes|
10
+ attributes[:src] = ActionController::Base.helpers.asset_path(path) if path
11
+ end
12
12
  end
13
13
 
14
14
  end
@@ -5,9 +5,5 @@ module Matestack::Ui::Core::Input
5
5
  :formenctype, :formmethod, :formnovalidate, :formtarget, :height, :list, :max, :maxlength, :min, :minlength,
6
6
  :multiple, :name, :pattern, :placeholder, :readonly, :required, :size, :src, :step, :type, :value, :width
7
7
 
8
- def type
9
- options[:type]
10
- end
11
-
12
8
  end
13
9
  end
@@ -1,5 +1,5 @@
1
- %ins{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %ins{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,10 +1,6 @@
1
1
  module Matestack::Ui::Core::Ins
2
2
  class Ins < Matestack::Ui::Core::Component::Static
3
- def setup
4
- @tag_attributes.merge!({
5
- cite: options[:cite],
6
- datetime: options[:datetime]
7
- })
8
- end
3
+ html_attributes :cite, :datetime
4
+ optional :text
9
5
  end
10
6
  end
@@ -1,2 +1,2 @@
1
- %div{@tag_attributes.merge(class: "matestack-isolated-component-root")}
1
+ %div{ html_attributes.merge(class: "matestack-isolated-component-root") }
2
2
  =yield
@@ -4,7 +4,7 @@ module Matestack::Ui::Core::Isolated
4
4
 
5
5
  def initialize(*args)
6
6
  super
7
- @public_options = args.map { |hash| hash[:public_options] }[0]
7
+ @public_options = args.map { |hash| hash&.dig(:public_options) }[0]
8
8
  end
9
9
 
10
10
  def public_options
@@ -1,5 +1,5 @@
1
- %kbd{@tag_attributes}
2
- - if options[:text].blank? && block_given?
1
+ %kbd{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,4 +1,5 @@
1
1
  module Matestack::Ui::Core::Kbd
2
2
  class Kbd < Matestack::Ui::Core::Component::Static
3
+ optional :text
3
4
  end
4
5
  end
@@ -1,5 +1,5 @@
1
- %label{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %label{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,10 +1,6 @@
1
1
  module Matestack::Ui::Core::Label
2
2
  class Label < Matestack::Ui::Core::Component::Static
3
- def setup
4
- @tag_attributes.merge!({
5
- for: options[:for],
6
- form: options[:form]
7
- })
8
- end
3
+ html_attributes :for, :form
4
+ optional :text
9
5
  end
10
6
  end
@@ -1,5 +1,5 @@
1
- %legend{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %legend{ 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::Legend
2
2
  class Legend < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
- %li{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %li{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,5 +1,6 @@
1
1
  module Matestack::Ui::Core::Li
2
2
  class Li < Matestack::Ui::Core::Component::Static
3
-
3
+ html_attributes :value
4
+ optional :text
4
5
  end
5
6
  end
@@ -1,5 +1,5 @@
1
- %a{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %a{ link_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,25 +1,21 @@
1
1
  module Matestack::Ui::Core::Link
2
2
  class Link < Matestack::Ui::Core::Component::Static
3
+ html_attributes :download, :href, :hreflang, :media, :ping, :referrerpolicy, :rel, :target, :type
3
4
 
4
- requires :path
5
+ optional :text, :path, params: { as: :link_params }
5
6
 
6
- def setup
7
- @tag_attributes.merge!({
8
- class: options[:class],
9
- id: component_id,
10
- method: options[:method],
11
- target: options[:target] ||= nil,
12
- href: link_path,
13
- title: options[:title]
14
- })
7
+ def link_attributes
8
+ html_attributes.tap do |attributes|
9
+ attributes[:href] = link_path if path
10
+ end
15
11
  end
16
12
 
17
13
  def link_path
18
- if options[:path].is_a?(Symbol)
19
- return ::Rails.application.routes.url_helpers.send(options[:path], options[:params])
14
+ if path.is_a?(Symbol)
15
+ return ::Rails.application.routes.url_helpers.send(path, link_params)
20
16
  end
21
- if options[:path].is_a?(String)
22
- return options[:path]
17
+ if path.is_a?(String)
18
+ return path
23
19
  end
24
20
  end
25
21
 
@@ -1,3 +1,3 @@
1
- %main{@tag_attributes}
1
+ %main{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Main
2
2
  class Main < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,3 +1,3 @@
1
- %map{@tag_attributes}
1
+ %map{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,11 +1,5 @@
1
1
  module Matestack::Ui::Core::Map
2
2
  class Map < Matestack::Ui::Core::Component::Static
3
- requires :name
4
-
5
- def setup
6
- @tag_attributes.merge!({
7
- name: options[:name]
8
- })
9
- end
3
+ html_attributes :name
10
4
  end
11
5
  end
@@ -1,5 +1,5 @@
1
- %mark{@tag_attributes}
2
- - if options[:text].blank? && block_given?
1
+ %mark{ html_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -1,4 +1,5 @@
1
1
  module Matestack::Ui::Core::Mark
2
2
  class Mark < Matestack::Ui::Core::Component::Static
3
+ optional :text
3
4
  end
4
5
  end
@@ -1,4 +1,4 @@
1
- %meter{@tag_attributes}
1
+ %meter{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
4
4