fleetio_spark 0.2.48 → 1.0.0.rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spark/_icons.js +1 -1
- data/app/assets/javascripts/spark/components/app/sidebar/_fix.js +4 -4
- data/app/assets/javascripts/spark/components/app/sidebar/_toggle.js +1 -1
- data/app/assets/javascripts/spark/components/layout/_auto-grid.js +5 -5
- data/app/assets/javascripts/spark/components/nav/_toggle.js +16 -7
- data/app/assets/javascripts/spark/components/ui/_sticky_panel.js +2 -2
- data/app/assets/javascripts/spark/components/ui/_toast.js +3 -6
- data/app/assets/javascripts/spark/shims/_dataset.js +241 -0
- data/app/assets/javascripts/spark/spark.js +18 -16
- data/app/assets/stylesheets/spark/_index.scss +0 -1
- data/app/assets/stylesheets/spark/components/_index.scss +11 -5
- data/app/assets/stylesheets/spark/components/app/_header.scss +15 -28
- data/app/assets/stylesheets/spark/components/app/_layout.scss +2 -2
- data/app/assets/stylesheets/spark/components/app/_sidebar.scss +19 -47
- data/app/assets/stylesheets/spark/components/app/sidebar/_header.scss +44 -48
- data/app/assets/stylesheets/spark/components/app/sidebar/_toggle.scss +5 -2
- data/app/assets/stylesheets/spark/components/button/_button.scss +48 -53
- data/app/assets/stylesheets/spark/components/button/_button_group.scss +10 -16
- data/app/assets/stylesheets/spark/components/button/_size.scss +17 -8
- data/app/assets/stylesheets/spark/components/icon/_badge.scss +41 -0
- data/app/assets/stylesheets/spark/{_icons.scss → components/icon/_icon.scss} +0 -0
- data/app/assets/stylesheets/spark/components/{form → input}/_switch.scss +20 -20
- data/app/assets/stylesheets/spark/components/layout/_block.scss +44 -0
- data/app/assets/stylesheets/spark/components/layout/_grid.scss +26 -29
- data/app/assets/stylesheets/spark/components/layout/_media_block.scss +76 -0
- data/app/assets/stylesheets/spark/components/layout/_page.scss +54 -0
- data/app/assets/stylesheets/spark/components/{app → messaging}/_banner.scss +3 -3
- data/app/assets/stylesheets/spark/components/messaging/_trial-notice.scss +20 -0
- data/app/assets/stylesheets/spark/components/nav/_item.scss +6 -30
- data/app/assets/stylesheets/spark/components/nav/_sidebar.scss +11 -48
- data/app/assets/stylesheets/spark/components/nav/_tabs.scss +5 -5
- data/app/assets/stylesheets/spark/components/nav/sidebar/_theme-default.scss +59 -0
- data/app/assets/stylesheets/spark/components/nav/sidebar/_theme-primary.scss +69 -0
- data/app/assets/stylesheets/spark/components/nav/tree/_group.scss +1 -6
- data/app/assets/stylesheets/spark/components/ui/_card.scss +57 -0
- data/app/assets/stylesheets/spark/components/ui/_header.scss +55 -55
- data/app/assets/stylesheets/spark/components/ui/_placeholder.scss +8 -22
- data/app/assets/stylesheets/spark/components/ui/_toolbar.scss +1 -27
- data/app/assets/stylesheets/spark/components_old/_dropdown.scss +117 -114
- data/app/assets/stylesheets/spark/components_old/_index.scss +1 -1
- data/app/assets/stylesheets/spark/components_old/header/_index.scss +0 -1
- data/app/assets/stylesheets/spark/components_old/header/_search.scss +2 -0
- data/app/assets/stylesheets/spark/core/_vars.scss +6 -3
- data/app/components/spark/badge.html.slim +4 -0
- data/app/components/spark/badge.rb +15 -0
- data/app/components/spark/banner.html.slim +7 -0
- data/app/components/spark/banner.rb +28 -0
- data/app/components/spark/button.html.slim +9 -0
- data/app/components/spark/button.rb +68 -0
- data/app/components/spark/button/group.html.slim +4 -0
- data/app/components/spark/button/group.rb +22 -0
- data/app/components/spark/card.html.slim +7 -0
- data/app/components/spark/card.rb +13 -0
- data/app/components/spark/checklist.html.slim +14 -0
- data/app/components/spark/checklist.rb +49 -0
- data/app/components/spark/checklist/container.html.slim +14 -0
- data/app/components/spark/checklist/container.rb +51 -0
- data/app/components/spark/checklist/item.html.slim +9 -0
- data/app/components/spark/checklist/item.rb +24 -0
- data/app/components/spark/checklist/trigger.html.slim +6 -0
- data/app/components/spark/checklist/trigger.rb +13 -0
- data/app/components/spark/component/base.rb +27 -0
- data/app/components/spark/embed/wistia_media.html.slim +11 -0
- data/app/components/spark/embed/wistia_media.rb +22 -0
- data/app/components/spark/embed/wistia_media_component.rb +22 -36
- data/app/components/spark/grid.html.slim +4 -0
- data/app/components/spark/grid.rb +31 -0
- data/app/components/spark/grid/column.html.slim +1 -0
- data/app/components/spark/grid/column.rb +34 -0
- data/app/components/spark/icon.html.slim +1 -0
- data/app/components/spark/icon.rb +34 -0
- data/app/components/spark/icon/placeholder.html.slim +20 -0
- data/app/components/spark/icon/placeholder.rb +139 -0
- data/app/components/spark/input/base.html.slim +1 -0
- data/app/components/spark/input/base.rb +17 -0
- data/app/components/spark/input/checkbox.html.slim +2 -0
- data/app/components/spark/input/checkbox.rb +14 -0
- data/app/components/spark/input/label.html.slim +4 -0
- data/app/components/spark/input/label.rb +13 -0
- data/app/components/spark/input/switch.html.slim +5 -0
- data/app/components/spark/input/switch.rb +24 -0
- data/app/components/spark/layout/block.html.slim +13 -0
- data/app/components/spark/layout/block.rb +62 -0
- data/app/components/spark/layout/media_block.html.slim +11 -0
- data/app/components/spark/layout/media_block.rb +29 -0
- data/app/components/spark/layout/page.html.slim +15 -0
- data/app/components/spark/layout/page.rb +37 -0
- data/app/components/spark/nav/group.html.slim +5 -0
- data/app/components/spark/nav/group.rb +31 -0
- data/app/components/spark/nav/item.html.slim +12 -0
- data/app/components/spark/nav/item.rb +36 -0
- data/app/components/spark/nav/sidebar.html.slim +14 -0
- data/app/components/spark/nav/sidebar.rb +60 -0
- data/app/components/spark/nav/tab_panels.html.slim +6 -0
- data/app/components/spark/nav/tab_panels.rb +42 -0
- data/app/components/spark/nav/tabs.html.slim +8 -0
- data/app/components/spark/nav/tabs.rb +36 -0
- data/app/components/spark/nav/toggle.html.slim +9 -0
- data/app/components/spark/nav/toggle.rb +20 -0
- data/app/components/spark/nav/tree.html.slim +9 -0
- data/app/components/spark/nav/tree.rb +53 -0
- data/app/components/spark/nav/tree/group.html.slim +9 -0
- data/app/components/spark/nav/tree/group.rb +26 -0
- data/app/components/spark/sticky_panel.html.slim +2 -0
- data/app/components/spark/sticky_panel.rb +12 -0
- data/app/components/spark/toolbar.html.slim +7 -0
- data/app/components/spark/toolbar.rb +14 -0
- data/app/components/spark/tooltip.html.slim +3 -0
- data/app/components/spark/tooltip.rb +13 -0
- data/app/components/spark/trial_notice.html.slim +3 -0
- data/app/components/spark/trial_notice.rb +35 -0
- data/app/components/spark/widget_card.html.slim +5 -0
- data/app/components/spark/widget_card.rb +12 -0
- data/app/helpers/spark/application_helper.rb +9 -0
- data/lib/fleetio_spark.rb +6 -6
- data/lib/fleetio_spark/version.rb +1 -1
- data/public/code-1.0.0.rc.1.js +2 -0
- data/public/code-1.0.0.rc.1.js.gz +0 -0
- data/public/code-1.0.0.rc.1.js.map +1 -0
- data/public/spark-1.0.0.rc.1.css +1 -0
- data/public/spark-1.0.0.rc.1.css.gz +0 -0
- data/public/spark-1.0.0.rc.1.js +2 -0
- data/public/spark-1.0.0.rc.1.js.gz +0 -0
- data/public/spark-1.0.0.rc.1.js.map +1 -0
- metadata +110 -75
- data/app/assets/stylesheets/spark/components/layout/_base.scss +0 -0
- data/app/assets/stylesheets/spark/components/layout/_header.scss +0 -55
- data/app/assets/stylesheets/spark/components/page/_header.scss +0 -9
- data/app/assets/stylesheets/spark/components/page/_main.scss +0 -62
- data/app/assets/stylesheets/spark/components_old/header/_trial-status.scss +0 -61
- data/app/components/spark/app/banner_component.rb +0 -32
- data/app/components/spark/app/content_component.rb +0 -32
- data/app/components/spark/app/header_component.rb +0 -59
- data/app/components/spark/app/layout_component.rb +0 -92
- data/app/components/spark/app/modal_component.rb +0 -5
- data/app/components/spark/app/sidebar/header_component.rb +0 -39
- data/app/components/spark/app/sidebar_component.rb +0 -20
- data/app/components/spark/button/add_component.rb +0 -9
- data/app/components/spark/button/base_component.rb +0 -39
- data/app/components/spark/button/cancel_component.rb +0 -8
- data/app/components/spark/button/danger_component.rb +0 -8
- data/app/components/spark/button/group_component.rb +0 -24
- data/app/components/spark/button/icon_component.rb +0 -14
- data/app/components/spark/button/primary_component.rb +0 -8
- data/app/components/spark/button/text_component.rb +0 -8
- data/app/components/spark/form/checkbox_component.rb +0 -16
- data/app/components/spark/form/input_component.rb +0 -9
- data/app/components/spark/form/label_component.rb +0 -12
- data/app/components/spark/form/switch_component.rb +0 -32
- data/app/components/spark/layout/base_component.rb +0 -2
- data/app/components/spark/layout/grid/column_component.rb +0 -32
- data/app/components/spark/layout/grid_component.rb +0 -37
- data/app/components/spark/layout/header_component.rb +0 -26
- data/app/components/spark/layout/page_component.rb +0 -31
- data/app/components/spark/nav/breadcrumbs_component.rb +0 -2
- data/app/components/spark/nav/group_component.rb +0 -36
- data/app/components/spark/nav/item_component.rb +0 -44
- data/app/components/spark/nav/pills_component.rb +0 -28
- data/app/components/spark/nav/sidebar_component.rb +0 -59
- data/app/components/spark/nav/tab_panels/panel_component.rb +0 -37
- data/app/components/spark/nav/tab_panels/tab_component.rb +0 -13
- data/app/components/spark/nav/tab_panels_component.rb +0 -28
- data/app/components/spark/nav/tabs_component.rb +0 -59
- data/app/components/spark/nav/toggle_component.rb +0 -28
- data/app/components/spark/nav/tree/group_component.rb +0 -35
- data/app/components/spark/nav/tree_component.rb +0 -56
- data/app/components/spark/page/layout_component.rb +0 -32
- data/app/components/spark/page/main_component.rb +0 -39
- data/app/components/spark/ui/card_component.rb +0 -16
- data/app/components/spark/ui/checklist/container_component.rb +0 -56
- data/app/components/spark/ui/checklist/item_component.rb +0 -37
- data/app/components/spark/ui/checklist_trigger_component.rb +0 -20
- data/app/components/spark/ui/icon/_icon.html.erb +0 -0
- data/app/components/spark/ui/icon_component.rb +0 -30
- data/app/components/spark/ui/placeholder_component.rb +0 -105
- data/app/components/spark/ui/sticky_panel_component.rb +0 -9
- data/app/components/spark/ui/toolbar_component.rb +0 -17
- data/app/components/spark/ui/tooltip_component.rb +0 -13
- data/app/components/spark/ui/widget_card_component.rb +0 -13
- data/lib/fleetio_spark/component.rb +0 -36
- data/public/code-0.2.48.js +0 -2
- data/public/code-0.2.48.js.gz +0 -0
- data/public/code-0.2.48.js.map +0 -1
- data/public/spark-0.2.48.css +0 -1
- data/public/spark-0.2.48.css.gz +0 -0
- data/public/spark-0.2.48.js +0 -2
- data/public/spark-0.2.48.js.gz +0 -0
- 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
|