fleetio_spark 0.2.48 → 1.0.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spark/_icons.js +1 -1
  3. data/app/assets/javascripts/spark/components/app/sidebar/_fix.js +4 -4
  4. data/app/assets/javascripts/spark/components/app/sidebar/_toggle.js +1 -1
  5. data/app/assets/javascripts/spark/components/layout/_auto-grid.js +5 -5
  6. data/app/assets/javascripts/spark/components/nav/_toggle.js +16 -7
  7. data/app/assets/javascripts/spark/components/ui/_sticky_panel.js +2 -2
  8. data/app/assets/javascripts/spark/components/ui/_toast.js +3 -6
  9. data/app/assets/javascripts/spark/shims/_dataset.js +241 -0
  10. data/app/assets/javascripts/spark/spark.js +18 -16
  11. data/app/assets/stylesheets/spark/_index.scss +0 -1
  12. data/app/assets/stylesheets/spark/components/_index.scss +11 -5
  13. data/app/assets/stylesheets/spark/components/app/_header.scss +15 -28
  14. data/app/assets/stylesheets/spark/components/app/_layout.scss +2 -2
  15. data/app/assets/stylesheets/spark/components/app/_sidebar.scss +19 -47
  16. data/app/assets/stylesheets/spark/components/app/sidebar/_header.scss +44 -48
  17. data/app/assets/stylesheets/spark/components/app/sidebar/_toggle.scss +5 -2
  18. data/app/assets/stylesheets/spark/components/button/_button.scss +48 -53
  19. data/app/assets/stylesheets/spark/components/button/_button_group.scss +10 -16
  20. data/app/assets/stylesheets/spark/components/button/_size.scss +17 -8
  21. data/app/assets/stylesheets/spark/components/icon/_badge.scss +41 -0
  22. data/app/assets/stylesheets/spark/{_icons.scss → components/icon/_icon.scss} +0 -0
  23. data/app/assets/stylesheets/spark/components/{form → input}/_switch.scss +20 -20
  24. data/app/assets/stylesheets/spark/components/layout/_block.scss +44 -0
  25. data/app/assets/stylesheets/spark/components/layout/_grid.scss +26 -29
  26. data/app/assets/stylesheets/spark/components/layout/_media_block.scss +76 -0
  27. data/app/assets/stylesheets/spark/components/layout/_page.scss +54 -0
  28. data/app/assets/stylesheets/spark/components/{app → messaging}/_banner.scss +3 -3
  29. data/app/assets/stylesheets/spark/components/messaging/_trial-notice.scss +20 -0
  30. data/app/assets/stylesheets/spark/components/nav/_item.scss +6 -30
  31. data/app/assets/stylesheets/spark/components/nav/_sidebar.scss +11 -48
  32. data/app/assets/stylesheets/spark/components/nav/_tabs.scss +5 -5
  33. data/app/assets/stylesheets/spark/components/nav/sidebar/_theme-default.scss +59 -0
  34. data/app/assets/stylesheets/spark/components/nav/sidebar/_theme-primary.scss +69 -0
  35. data/app/assets/stylesheets/spark/components/nav/tree/_group.scss +1 -6
  36. data/app/assets/stylesheets/spark/components/ui/_card.scss +57 -0
  37. data/app/assets/stylesheets/spark/components/ui/_header.scss +55 -55
  38. data/app/assets/stylesheets/spark/components/ui/_placeholder.scss +8 -22
  39. data/app/assets/stylesheets/spark/components/ui/_toolbar.scss +1 -27
  40. data/app/assets/stylesheets/spark/components_old/_dropdown.scss +117 -114
  41. data/app/assets/stylesheets/spark/components_old/_index.scss +1 -1
  42. data/app/assets/stylesheets/spark/components_old/header/_index.scss +0 -1
  43. data/app/assets/stylesheets/spark/components_old/header/_search.scss +2 -0
  44. data/app/assets/stylesheets/spark/core/_vars.scss +6 -3
  45. data/app/components/spark/badge.html.slim +4 -0
  46. data/app/components/spark/badge.rb +15 -0
  47. data/app/components/spark/banner.html.slim +7 -0
  48. data/app/components/spark/banner.rb +28 -0
  49. data/app/components/spark/button.html.slim +9 -0
  50. data/app/components/spark/button.rb +68 -0
  51. data/app/components/spark/button/group.html.slim +4 -0
  52. data/app/components/spark/button/group.rb +22 -0
  53. data/app/components/spark/card.html.slim +7 -0
  54. data/app/components/spark/card.rb +13 -0
  55. data/app/components/spark/checklist.html.slim +14 -0
  56. data/app/components/spark/checklist.rb +49 -0
  57. data/app/components/spark/checklist/container.html.slim +14 -0
  58. data/app/components/spark/checklist/container.rb +51 -0
  59. data/app/components/spark/checklist/item.html.slim +9 -0
  60. data/app/components/spark/checklist/item.rb +24 -0
  61. data/app/components/spark/checklist/trigger.html.slim +6 -0
  62. data/app/components/spark/checklist/trigger.rb +13 -0
  63. data/app/components/spark/component/base.rb +27 -0
  64. data/app/components/spark/embed/wistia_media.html.slim +11 -0
  65. data/app/components/spark/embed/wistia_media.rb +22 -0
  66. data/app/components/spark/embed/wistia_media_component.rb +22 -36
  67. data/app/components/spark/grid.html.slim +4 -0
  68. data/app/components/spark/grid.rb +31 -0
  69. data/app/components/spark/grid/column.html.slim +1 -0
  70. data/app/components/spark/grid/column.rb +34 -0
  71. data/app/components/spark/icon.html.slim +1 -0
  72. data/app/components/spark/icon.rb +34 -0
  73. data/app/components/spark/icon/placeholder.html.slim +20 -0
  74. data/app/components/spark/icon/placeholder.rb +139 -0
  75. data/app/components/spark/input/base.html.slim +1 -0
  76. data/app/components/spark/input/base.rb +17 -0
  77. data/app/components/spark/input/checkbox.html.slim +2 -0
  78. data/app/components/spark/input/checkbox.rb +14 -0
  79. data/app/components/spark/input/label.html.slim +4 -0
  80. data/app/components/spark/input/label.rb +13 -0
  81. data/app/components/spark/input/switch.html.slim +5 -0
  82. data/app/components/spark/input/switch.rb +24 -0
  83. data/app/components/spark/layout/block.html.slim +13 -0
  84. data/app/components/spark/layout/block.rb +62 -0
  85. data/app/components/spark/layout/media_block.html.slim +11 -0
  86. data/app/components/spark/layout/media_block.rb +29 -0
  87. data/app/components/spark/layout/page.html.slim +15 -0
  88. data/app/components/spark/layout/page.rb +37 -0
  89. data/app/components/spark/nav/group.html.slim +5 -0
  90. data/app/components/spark/nav/group.rb +31 -0
  91. data/app/components/spark/nav/item.html.slim +12 -0
  92. data/app/components/spark/nav/item.rb +36 -0
  93. data/app/components/spark/nav/sidebar.html.slim +14 -0
  94. data/app/components/spark/nav/sidebar.rb +60 -0
  95. data/app/components/spark/nav/tab_panels.html.slim +6 -0
  96. data/app/components/spark/nav/tab_panels.rb +42 -0
  97. data/app/components/spark/nav/tabs.html.slim +8 -0
  98. data/app/components/spark/nav/tabs.rb +36 -0
  99. data/app/components/spark/nav/toggle.html.slim +9 -0
  100. data/app/components/spark/nav/toggle.rb +20 -0
  101. data/app/components/spark/nav/tree.html.slim +9 -0
  102. data/app/components/spark/nav/tree.rb +53 -0
  103. data/app/components/spark/nav/tree/group.html.slim +9 -0
  104. data/app/components/spark/nav/tree/group.rb +26 -0
  105. data/app/components/spark/sticky_panel.html.slim +2 -0
  106. data/app/components/spark/sticky_panel.rb +12 -0
  107. data/app/components/spark/toolbar.html.slim +7 -0
  108. data/app/components/spark/toolbar.rb +14 -0
  109. data/app/components/spark/tooltip.html.slim +3 -0
  110. data/app/components/spark/tooltip.rb +13 -0
  111. data/app/components/spark/trial_notice.html.slim +3 -0
  112. data/app/components/spark/trial_notice.rb +35 -0
  113. data/app/components/spark/widget_card.html.slim +5 -0
  114. data/app/components/spark/widget_card.rb +12 -0
  115. data/app/helpers/spark/application_helper.rb +9 -0
  116. data/lib/fleetio_spark.rb +6 -6
  117. data/lib/fleetio_spark/version.rb +1 -1
  118. data/public/code-1.0.0.rc.1.js +2 -0
  119. data/public/code-1.0.0.rc.1.js.gz +0 -0
  120. data/public/code-1.0.0.rc.1.js.map +1 -0
  121. data/public/spark-1.0.0.rc.1.css +1 -0
  122. data/public/spark-1.0.0.rc.1.css.gz +0 -0
  123. data/public/spark-1.0.0.rc.1.js +2 -0
  124. data/public/spark-1.0.0.rc.1.js.gz +0 -0
  125. data/public/spark-1.0.0.rc.1.js.map +1 -0
  126. metadata +110 -75
  127. data/app/assets/stylesheets/spark/components/layout/_base.scss +0 -0
  128. data/app/assets/stylesheets/spark/components/layout/_header.scss +0 -55
  129. data/app/assets/stylesheets/spark/components/page/_header.scss +0 -9
  130. data/app/assets/stylesheets/spark/components/page/_main.scss +0 -62
  131. data/app/assets/stylesheets/spark/components_old/header/_trial-status.scss +0 -61
  132. data/app/components/spark/app/banner_component.rb +0 -32
  133. data/app/components/spark/app/content_component.rb +0 -32
  134. data/app/components/spark/app/header_component.rb +0 -59
  135. data/app/components/spark/app/layout_component.rb +0 -92
  136. data/app/components/spark/app/modal_component.rb +0 -5
  137. data/app/components/spark/app/sidebar/header_component.rb +0 -39
  138. data/app/components/spark/app/sidebar_component.rb +0 -20
  139. data/app/components/spark/button/add_component.rb +0 -9
  140. data/app/components/spark/button/base_component.rb +0 -39
  141. data/app/components/spark/button/cancel_component.rb +0 -8
  142. data/app/components/spark/button/danger_component.rb +0 -8
  143. data/app/components/spark/button/group_component.rb +0 -24
  144. data/app/components/spark/button/icon_component.rb +0 -14
  145. data/app/components/spark/button/primary_component.rb +0 -8
  146. data/app/components/spark/button/text_component.rb +0 -8
  147. data/app/components/spark/form/checkbox_component.rb +0 -16
  148. data/app/components/spark/form/input_component.rb +0 -9
  149. data/app/components/spark/form/label_component.rb +0 -12
  150. data/app/components/spark/form/switch_component.rb +0 -32
  151. data/app/components/spark/layout/base_component.rb +0 -2
  152. data/app/components/spark/layout/grid/column_component.rb +0 -32
  153. data/app/components/spark/layout/grid_component.rb +0 -37
  154. data/app/components/spark/layout/header_component.rb +0 -26
  155. data/app/components/spark/layout/page_component.rb +0 -31
  156. data/app/components/spark/nav/breadcrumbs_component.rb +0 -2
  157. data/app/components/spark/nav/group_component.rb +0 -36
  158. data/app/components/spark/nav/item_component.rb +0 -44
  159. data/app/components/spark/nav/pills_component.rb +0 -28
  160. data/app/components/spark/nav/sidebar_component.rb +0 -59
  161. data/app/components/spark/nav/tab_panels/panel_component.rb +0 -37
  162. data/app/components/spark/nav/tab_panels/tab_component.rb +0 -13
  163. data/app/components/spark/nav/tab_panels_component.rb +0 -28
  164. data/app/components/spark/nav/tabs_component.rb +0 -59
  165. data/app/components/spark/nav/toggle_component.rb +0 -28
  166. data/app/components/spark/nav/tree/group_component.rb +0 -35
  167. data/app/components/spark/nav/tree_component.rb +0 -56
  168. data/app/components/spark/page/layout_component.rb +0 -32
  169. data/app/components/spark/page/main_component.rb +0 -39
  170. data/app/components/spark/ui/card_component.rb +0 -16
  171. data/app/components/spark/ui/checklist/container_component.rb +0 -56
  172. data/app/components/spark/ui/checklist/item_component.rb +0 -37
  173. data/app/components/spark/ui/checklist_trigger_component.rb +0 -20
  174. data/app/components/spark/ui/icon/_icon.html.erb +0 -0
  175. data/app/components/spark/ui/icon_component.rb +0 -30
  176. data/app/components/spark/ui/placeholder_component.rb +0 -105
  177. data/app/components/spark/ui/sticky_panel_component.rb +0 -9
  178. data/app/components/spark/ui/toolbar_component.rb +0 -17
  179. data/app/components/spark/ui/tooltip_component.rb +0 -13
  180. data/app/components/spark/ui/widget_card_component.rb +0 -13
  181. data/lib/fleetio_spark/component.rb +0 -36
  182. data/public/code-0.2.48.js +0 -2
  183. data/public/code-0.2.48.js.gz +0 -0
  184. data/public/code-0.2.48.js.map +0 -1
  185. data/public/spark-0.2.48.css +0 -1
  186. data/public/spark-0.2.48.css.gz +0 -0
  187. data/public/spark-0.2.48.js +0 -2
  188. data/public/spark-0.2.48.js.gz +0 -0
  189. data/public/spark-0.2.48.js.map +0 -1
@@ -1,28 +0,0 @@
1
- class Nav::PillsComponent < SparkComponents::Component
2
- base_class "spark-nav-pills"
3
- root_attr role: "navigation"
4
- attribute layout: :flush
5
-
6
- aria_attr :label
7
- validates :label, presence: true
8
- validates_choice :layout, %i[padded flush]
9
-
10
- element :item, multiple: true, component: "nav/item"
11
-
12
- def before_render
13
- add_class %(layout-#{layout})
14
- end
15
-
16
- def render
17
- return if items.empty?
18
- content_tag(:nav, tag_attrs) do
19
- content_tag(:div, class: "nav-pills-wrapper") {
20
- concat content_tag(:ul, class: "spark-nav-group") {
21
- items.each { |item|
22
- concat content_tag(:li, item, class: "nav-pill-wrapper #{item.active? ? "active" : nil}")
23
- }
24
- }
25
- }
26
- end
27
- end
28
- end
@@ -1,59 +0,0 @@
1
- class Nav::SidebarComponent < SparkComponents::Component
2
- aria_attr :label
3
- validates :label, presence: true
4
-
5
- base_class "spark-nav-sidebar"
6
-
7
- element :header
8
- element :footer
9
- element :group, component: "nav/group", multiple: true do
10
- attribute :title
11
-
12
- def render
13
- @view.capture do
14
- concat content_tag(:h4, title, class: parent.join_class("title")) unless title.blank?
15
- concat super
16
- end
17
- end
18
- end
19
-
20
- def before_render
21
- data_attr nav_id: unique_id
22
- end
23
-
24
- def render
25
- content_tag(:nav, tag_attrs) do
26
- concat sidebar_toggle_tag
27
- concat content_tag(:div, class: join_class("wrapper")) {
28
- concat header_tag unless header.blank?
29
- groups.each { |group| concat group }
30
- concat footer_tag unless footer.blank?
31
- }
32
- end
33
- end
34
-
35
- private
36
-
37
- def header_tag
38
- content_tag(:div, header, class: join_class("header"))
39
- end
40
-
41
- def footer_tag
42
- content_tag(:div, footer, class: join_class("footer"))
43
- end
44
-
45
- def sidebar_toggle_tag
46
- component("nav/toggle", target: selector(:data, :nav_id), class: join_class("toggle"), text: sidebar_button_text)
47
- end
48
-
49
- # Tries to find the text for the active nav item, otherwise shows sidebar label text
50
- def sidebar_button_text
51
- # Find any navs which have active items
52
- active_nav = groups.find { |group|
53
- group.active_item
54
- }
55
-
56
- # Use the active item text or the label for the sidebar
57
- active_nav&.active_item&.text || label
58
- end
59
- end
@@ -1,37 +0,0 @@
1
- class Nav::TabPanels::PanelComponent < SparkComponents::Component
2
- attribute :href, :text, :icon
3
-
4
- element :tab, component: "nav/tab_panels/tab"
5
-
6
- def after_init
7
- root_attr id: unique_id("panel"), role: "tabpanel"
8
- aria_attr labeledby: tab_id
9
- end
10
-
11
- def active=(bool)
12
- if bool
13
- add_class 'active'
14
- else
15
- root_attr(hidden: true)
16
- end
17
- end
18
-
19
- def tab_id
20
- "tab-for-#{root_attr[:id]}"
21
- end
22
-
23
- def tab_wrapper_id
24
- "wrapper-for-#{tab_id}"
25
- end
26
-
27
- def new_tab(active: false)
28
- tab = Nav::TabPanels::TabComponent.new(@view, text: text, href: href, icon: icon, active: active)
29
- tab.parent = self
30
- tab.before_render
31
- tab.render
32
- end
33
-
34
- def render
35
- @yield
36
- end
37
- end
@@ -1,13 +0,0 @@
1
- class Nav::TabPanels::TabComponent < Nav::ItemComponent
2
- root_attr role: 'tab', href: "#"
3
-
4
- def before_render
5
- aria_attr controls: parent.tag_attrs[:id], selected: !!active
6
- data_attr anchor: href, add_class: "active"
7
- add_class "active" if active
8
- end
9
-
10
- def render
11
- content_tag(:li, id: parent.tab_wrapper_id, class: "nav-tab-wrapper #{active ? "active" : nil}") { super }
12
- end
13
- end
@@ -1,28 +0,0 @@
1
- class Nav::TabPanelsComponent < Nav::TabsComponent
2
- element :panel, multiple: true, component: "nav/tab_panels/panel"
3
-
4
- def render
5
- panels.each_with_index { |panel, index|
6
- items << panel.new_tab(active: index == 0)
7
- }
8
-
9
- content_tag(:div, class: "nav-tab-panels") do
10
- concat super
11
- panels.each_with_index { |panel, index|
12
- panel.active = index == 0
13
- concat content_tag(:div, panel.yield, panel.tag_attrs)
14
- }
15
- end
16
- end
17
-
18
- def active_item_text
19
- panels.first.text
20
- end
21
-
22
- private
23
-
24
- def tab_group(options={}, &block)
25
- options.merge!({ role: "tablist" })
26
- super(options, &block)
27
- end
28
- end
@@ -1,59 +0,0 @@
1
- class Nav::TabsComponent < SparkComponents::Component
2
- LAYOUT = %i[flush padded]
3
-
4
- base_class "spark-nav-tabs"
5
- root_attr role: "navigation"
6
- attribute layout: :flush
7
-
8
- aria_attr :label
9
- validates :label, presence: true
10
- validates_choice :layout, LAYOUT
11
-
12
- element :item, multiple: true, component: "nav/item" do
13
- def render
14
- content_tag(:li, class: "nav-tab-wrapper") { super }
15
- end
16
- end
17
-
18
- def before_render
19
- add_class %(layout-#{layout})
20
- data_attr nav_id: unique_id
21
- end
22
-
23
- def render
24
- return if items.empty?
25
-
26
- content_tag(:nav, tag_attrs) do
27
- concat toggle_button
28
- concat content_tag(:div, class: "nav-tabs-wrapper") {
29
- concat tab_group {
30
- items.each { |item| concat item }
31
- }
32
- }
33
- end
34
- end
35
-
36
- private
37
-
38
- def toggle_button
39
- component("nav/toggle", target: selector(:data, :nav_id), class: join_class("toggle"), text: active_item_text)
40
- end
41
-
42
- def active_item_text
43
- if active_item = items.find(&:active?)
44
- active_item.text
45
- else
46
- "Menu"
47
- end
48
- end
49
-
50
- def tab_wrapper(options={}, &block)
51
- options[:class] = "nav-tab-wrapper #{options[:class]}"
52
- content_tag(:li, options, &block)
53
- end
54
-
55
- def tab_group(options={}, &block)
56
- options[:class] = "spark-nav-group #{options[:class]}"
57
- content_tag(:ul, options, &block)
58
- end
59
- end
@@ -1,28 +0,0 @@
1
- class Nav::ToggleComponent < SparkComponents::Component
2
- base_class "nav-toggle"
3
-
4
- attribute :target, :text, :id, :menu_icon, icon: 'chevron-down'
5
- validates :target, presence: true
6
-
7
- def render
8
- root_attr type: "button", id: @id || unique_id
9
- aria_attr hidden: true
10
-
11
- # When toggled on, adds an active class to itself and `nav-active` to `target` selector.
12
- data_attr nav_toggle: "#{target}"
13
-
14
- content_tag(:button, tag_attrs) do
15
- concat content_tag(:span, text, class: join_class("text")) if text
16
- if icon == 'nav-menu'
17
- concat content_tag(:span, class: join_class("icon-wrapper")) {
18
- content_tag(:span, nil, class: join_class("menu-icon"))
19
- }
20
- else
21
- concat content_tag(:span, class: join_class("icon")) {
22
- @view.use_svg(icon, width: '12px', class: join_class("svg")) if icon
23
- }
24
- end
25
- end
26
- end
27
- end
28
-
@@ -1,35 +0,0 @@
1
- class Nav::Tree::GroupComponent < Nav::GroupComponent
2
- attribute :icon, :text, expanded: false
3
- attribute :group_icon_size
4
- base_class "nav-item-wrapper"
5
-
6
- def before_render
7
- super
8
- add_class "tree-node"
9
- data_attr(node: node)
10
- aria_attr(expanded: expanded?)
11
- @item_role = item.respond_to?(:href) ? "none" : "treeitem"
12
- end
13
-
14
- def render
15
- unless items.empty?
16
- root_attr role: "treeitem"
17
- content_tag(:li, tag_attrs) do
18
- concat component("nav/item", text: text, icon: icon, icon_size: group_icon_size, class: "tree-trigger", tabindex: 0, href: "#") { expand_icon }
19
- concat super
20
- end
21
- end
22
- end
23
-
24
- def expand_icon
25
- @view.use_svg( 'chevron-down', class: "expand-icon", width: "9px" )
26
- end
27
-
28
- def node
29
- @node ||= text.strip.downcase.gsub(/[\W,-]+/, '_')
30
- end
31
-
32
- def expanded?
33
- @expanded || active?
34
- end
35
- end
@@ -1,56 +0,0 @@
1
- class Nav::TreeComponent < SparkComponents::Component
2
- base_class "nav-tree"
3
- root_attr :id, role: "tree"
4
- aria_attr :label
5
- attribute root_icon_size: :small
6
-
7
- def before_render
8
- data_attr tree: id
9
- end
10
-
11
- element :item, multiple: true, component: "nav/item" do
12
- add_class "tree-node"
13
-
14
- def before_render
15
- @icon_size = parent.root_icon_size
16
- super
17
- end
18
- end
19
-
20
- element :group, component: "nav/tree/group" do
21
-
22
- def before_render
23
- @group_icon_size = parent.root_icon_size
24
- add_class "active" if active?
25
- super
26
- end
27
-
28
- def render
29
- parent.items << super unless items.empty?
30
- end
31
-
32
- def expanded?
33
- parent.group_expanded?(node) || active? || expanded
34
- end
35
- end
36
-
37
- def render
38
- content_tag(:ul, tag_attrs) do
39
- items.each { |item|
40
- # Wrap links in `<li>`s if it's a link
41
- item = content_tag(:li, item, class: "nav-item-wrapper", role: "none") if item.respond_to?(:href)
42
- concat item
43
- }
44
- end
45
- end
46
-
47
- def group_expanded?(node)
48
- @_cookie ||= begin
49
- @view.parse_cookie( id )
50
- rescue
51
- nil
52
- end
53
-
54
- @_cookie && !!@_cookie[ node ]
55
- end
56
- end
@@ -1,32 +0,0 @@
1
- class Page::LayoutComponent < SparkComponents::Component
2
- base_class "spark-page"
3
- element :nav
4
- element :title
5
- element :header
6
- element :body
7
- element :footer
8
- element :main, component: "page/main"
9
- element :action, multiple: true
10
-
11
- def render
12
- @view.capture do
13
- if title || nav || header
14
- concat content_tag(:div, class: join_class("header")) {
15
- concat if_content_tag(:div, nav, join_class: "header-nav")
16
- concat(component("layout/header", title: title) { |h|
17
- actions.each { |a| h.action { a.yield }}
18
- })
19
- concat if_content_tag(:div, header, join_class: "header-body")
20
- }
21
- end
22
- concat if_content_tag(:div, main, join_class: "main-wrapper")
23
- concat if_content_tag(:div, body, join_class: "body")
24
- concat if_content_tag(:div, footer, join_class: "footer")
25
- concat content_for(:modal)
26
- end
27
- end
28
-
29
- def modal(&block)
30
- content_for(:modals, &block)
31
- end
32
- end
@@ -1,39 +0,0 @@
1
- class Page::MainComponent < SparkComponents::Component
2
- base_class "spark-page-main"
3
- element :nav
4
- element :header
5
- element :sidebar
6
- element :column, multiple: true
7
- element :body
8
- element :footer
9
-
10
- def render
11
- add_class("with-sidebar") unless sidebar.blank?
12
-
13
- content_tag(:div, tag_attrs) do
14
- unless sidebar.blank?
15
- concat content_tag(:div, class: join_class("sidebar")) {
16
- concat sidebar
17
- }
18
- end
19
- concat content_tag(:div, class: join_class("content")) {
20
- concat element_template("nav", nav)
21
- concat element_template("header", header)
22
-
23
- unless columns.empty?
24
- concat content_tag(:div, class: join_class("columns")) {
25
- columns.each { |column| concat element_template("column", column) }
26
- }
27
- end
28
-
29
- concat content_tag(:div, body, class: join_class("body")) unless body.blank?
30
- concat element_template("footer", footer)
31
- }
32
- end
33
- end
34
-
35
- # Simplify wrapping elements in divs with modular classnames if content is passed
36
- def element_template(name, content)
37
- content_tag(:div, content, class: join_class(name)) unless content.blank?
38
- end
39
- end
@@ -1,16 +0,0 @@
1
- class Ui::CardComponent < SparkComponents::Component
2
- base_class "spark-card"
3
-
4
- element :header, component: "layout/header" do
5
- add_class "spark-card-header"
6
- end
7
-
8
- element :body
9
-
10
- def render
11
- content_tag(:div, tag_attrs) do
12
- concat header
13
- concat if_content_tag(:div, body, join_class: 'content')
14
- end
15
- end
16
- end