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.
- 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
|