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,5 +1,5 @@
1
- %sub{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %sub{ 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::Sub
2
2
  class Sub < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
- %summary{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %summary{ 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::Summary
2
2
  class Summary < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
- %sup{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %sup{ 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::Sup
2
2
  class Sup < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
@@ -1,3 +1,3 @@
1
- %table{@tag_attributes}
1
+ %table{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Table
2
2
  class Table < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,3 +1,3 @@
1
- %tbody{@tag_attributes}
1
+ %tbody{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Tbody
2
2
  class Tbody < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,5 +1,5 @@
1
- %td{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %td{ 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::Td
2
2
  class Td < Matestack::Ui::Core::Component::Static
3
-
3
+ html_attributes :colspan, :headers, :rowspan
4
+ optional :text
4
5
  end
5
6
  end
@@ -1,3 +1,3 @@
1
- %template{@tag_attributes}
1
+ %template{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,2 +1,5 @@
1
1
  %textarea{ html_attributes }
2
- = text if text
2
+ - if text.nil? && block_given?
3
+ = yield
4
+ - else
5
+ = text
@@ -1,3 +1,3 @@
1
- %tfoot{@tag_attributes}
1
+ %tfoot{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Tfoot
2
2
  class Tfoot < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,5 +1,5 @@
1
- %th{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %th{ 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::Th
2
2
  class Th < Matestack::Ui::Core::Component::Static
3
-
3
+ html_attributes :abbr, :colspan, :headers, :rowspan, :scope
4
+ optional :text
4
5
  end
5
6
  end
@@ -1,3 +1,3 @@
1
- %thead{@tag_attributes}
1
+ %thead{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Thead
2
2
  class Thead < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,3 +1,3 @@
1
- %time{@tag_attributes}
1
+ %time{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,11 +1,5 @@
1
1
  module Matestack::Ui::Core::Time
2
2
  class Time < Matestack::Ui::Core::Component::Static
3
-
4
- def setup
5
- @tag_attributes.merge!({
6
- "datetime": options[:datetime] ||= nil
7
- })
8
- end
9
-
3
+ html_attributes :datetime
10
4
  end
11
5
  end
@@ -1,2 +1,2 @@
1
- %div{@tag_attributes.merge(class: "matestack-toggle-component-root")}
1
+ %div{ toggle_attributes }
2
2
  = yield
@@ -1,12 +1,11 @@
1
1
  module Matestack::Ui::Core::Toggle
2
2
  class Toggle < Matestack::Ui::Core::Component::Dynamic
3
-
4
3
  vue_js_component_name "matestack-ui-core-toggle"
5
4
 
6
- def initialize(*args)
7
- super
8
- @tag_attributes.merge!({
9
- "v-if": "showing"
5
+ def toggle_attributes
6
+ html_attributes.merge({
7
+ "v-if": "showing",
8
+ class: "matestack-toggle-component-root #{options[:class]}".strip
10
9
  })
11
10
  end
12
11
 
@@ -1,3 +1,3 @@
1
- %tr{@tag_attributes}
1
+ %tr{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Tr
2
2
  class Tr < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,5 +1,5 @@
1
- %a{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %a{ transition_attributes }
2
+ - if text.nil? && block_given?
3
3
  = yield
4
4
  - else
5
- = options[:text]
5
+ = text
@@ -2,29 +2,35 @@ module Matestack::Ui::Core::Transition
2
2
  class Transition < Matestack::Ui::Core::Component::Dynamic
3
3
  vue_js_component_name "matestack-ui-core-transition"
4
4
 
5
+ requires :path
6
+ optional :text, params: { as: :transition_params }
7
+
5
8
  def setup
6
9
  @component_config[:link_path] = link_path
7
- @tag_attributes.merge!({
10
+ end
11
+
12
+ def transition_attributes
13
+ html_attributes.merge(
8
14
  "href": link_path,
9
15
  "@click.prevent": navigate_to(link_path),
10
16
  "v-bind:class": "{ active: isActive, 'active-child': isChildActive }"
11
- })
17
+ )
12
18
  end
13
19
 
14
20
  def link_path
15
- if options[:path].is_a?(Symbol)
21
+ if path.is_a?(Symbol)
16
22
  return resolve_path
17
23
  end
18
- if options[:path].is_a?(String)
19
- return options[:path]
24
+ if path.is_a?(String)
25
+ return path
20
26
  end
21
27
  end
22
28
 
23
29
  def resolve_path
24
30
  begin
25
- return ::Rails.application.routes.url_helpers.send(options[:path], options[:params])
31
+ return ::Rails.application.routes.url_helpers.send(path, transition_params)
26
32
  rescue => e
27
- raise "path '#{options[:path]}' not found, using params: #{options[:params]}"
33
+ raise "path '#{path}' not found, using params: #{transition_params}"
28
34
  end
29
35
  end
30
36
 
@@ -1,5 +1,5 @@
1
- %u{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %u{ 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::U
2
2
  class U < Matestack::Ui::Core::Component::Static
3
-
3
+ optional :text
4
4
  end
5
5
  end
6
6
 
@@ -1,3 +1,3 @@
1
- %ul{@tag_attributes}
1
+ %ul{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -1,5 +1,4 @@
1
1
  module Matestack::Ui::Core::Ul
2
2
  class Ul < Matestack::Ui::Core::Component::Static
3
-
4
3
  end
5
4
  end
@@ -1,7 +1,9 @@
1
1
  module Matestack::Ui::Core::Unescaped
2
2
  class Unescaped < Matestack::Ui::Core::Component::Static
3
+
3
4
  def show
4
5
  @argument.html_safe
5
6
  end
7
+
6
8
  end
7
9
  end
@@ -1,5 +1,5 @@
1
- %var{@tag_attributes}
2
- - if options[:text].nil? && block_given?
1
+ %var{ 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::Var
2
2
  class Var < Matestack::Ui::Core::Component::Static
3
+ optional :text
3
4
  end
4
5
  end
@@ -1,3 +1,3 @@
1
- %video{@tag_attributes}
2
- %source{:src => @source, :type => @type}
1
+ %video{ html_attributes }
2
+ %source{ src: @source, type: @type}
3
3
  Your browser does not support the video tag.
@@ -1,22 +1,12 @@
1
1
  module Matestack::Ui::Core::Video
2
2
  class Video < Matestack::Ui::Core::Component::Static
3
+ html_attributes :autoplay, :controls, :height, :loop, :muted, :poster, :preload, :src, :width
3
4
 
4
5
  requires :path, :type
5
6
 
6
7
  def setup
7
- @tag_attributes.merge!({
8
- autoplay: options[:autoplay],
9
- controls: options[:controls],
10
- height: options[:height],
11
- loop: options[:loop],
12
- muted: options[:muted],
13
- playsinline: options[:playsinline],
14
- preload: options[:preload],
15
- width: options[:width]
16
- })
17
-
18
- @source = ActionController::Base.helpers.asset_path(options[:path])
19
- @type = "video/#{@options[:type]}"
8
+ @source = ActionController::Base.helpers.asset_path(path)
9
+ @type = "video/#{type}"
20
10
  end
21
11
 
22
12
  end
@@ -1 +1,5 @@
1
- %wbr{@tag_attributes}
1
+ %wbr{ html_attributes }
2
+ - if text.nil? && block_given?
3
+ = yield
4
+ - else
5
+ = text
@@ -1,4 +1,5 @@
1
1
  module Matestack::Ui::Core::Wbr
2
2
  class Wbr < Matestack::Ui::Core::Component::Static
3
+ optional :text
3
4
  end
4
5
  end
@@ -1 +1 @@
1
- %iframe{@tag_attributes}
1
+ %iframe{ youtube_attributes }
@@ -1,25 +1,27 @@
1
1
  module Matestack::Ui::Core::Youtube
2
2
  class Youtube < Matestack::Ui::Core::Component::Static
3
+ html_attributes :allow, :allowfullscreen, :allowpaymentrequest, :height, :name,
4
+ :referrerpolicy, :sandbox, :src, :srcdoc, :width
3
5
 
4
- requires :yt_id, :height, :width
6
+ requires :youtube_id
7
+ optional :privacy_mode, :no_controls, :start_at
5
8
 
6
9
  def setup
7
- url = 'https://www.youtube.com/embed/'
8
- url = 'https://www.youtube-nocookie.com/embed/' if options[:privacy_mode] == true
9
- url << options[:yt_id]
10
- url << '?' unless options[:no_controls] != true and options[:start_at].nil?
11
- url << 'controls=0' if options[:no_controls] == true
12
- url << '&amp;' if (options[:no_controls] != nil) and (options[:start_at] != nil)
13
- url << "start=#{options[:start_at]}" unless options[:start_at].nil?
10
+ url = privacy_mode ? 'https://www.youtube-nocookie.com/embed/' : 'https://www.youtube.com/embed/'
11
+ @uri = URI("#{url}#{youtube_id}")
12
+ @uri.query = {
13
+ controls: (no_controls ? 0 : 1),
14
+ start: start_at
15
+ }.to_query
16
+ end
14
17
 
15
- @tag_attributes.merge!({
16
- 'src': url,
17
- 'allow': 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture',
18
- 'allowfullscreen': '',
19
- 'frameborder': 0,
20
- 'height': options[:height],
21
- 'width': options[:width]
22
- })
18
+ def youtube_attributes
19
+ html_attributes.merge(
20
+ src: @uri.to_s,
21
+ allow: 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture',
22
+ allowfullscreen: '',
23
+ frameborder: 0,
24
+ )
23
25
  end
24
26
 
25
27
  end
@@ -14,6 +14,7 @@ module Matestack
14
14
  def self.included(base)
15
15
  base.extend(ClassMethods)
16
16
  end
17
+
17
18
  module ClassMethods
18
19
  def matestack_app _class
19
20
  @matestack_app_class = _class
@@ -10,7 +10,6 @@ module Matestack::Ui::Core::HtmlAttributes
10
10
  :onoffline, :ononline, :onpagehide, :onpageshow, :onpopstate, :onresize, :onstorage, :onunload
11
11
  ]
12
12
 
13
- # prepend the initializer and add class methods
14
13
  def self.included(base)
15
14
  base.class_eval do
16
15
  extend ClassMethods
@@ -20,6 +19,7 @@ module Matestack::Ui::Core::HtmlAttributes
20
19
  module ClassMethods
21
20
 
22
21
  def inherited(subclass)
22
+ super
23
23
  subclass.html_attributes *self.allowed_html_attributes
24
24
  end
25
25