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.
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,20 +0,0 @@
1
- class App::SidebarComponent < Nav::SidebarComponent
2
- aria_attr label: "primary navigation"
3
- base_class "app-sidebar"
4
- data_attr scroll: true, toggled_by: ".app-sidebar-toggle"
5
-
6
- element :header, component: "app/sidebar/header"
7
-
8
- element :nav, component: "nav/tree" do
9
- root_attr id: "app-sidebar-nav"
10
- attribute root_icon_size: :medium
11
- end
12
-
13
- def render
14
- content_tag(:nav, tag_attrs) do
15
- concat header
16
- concat nav
17
- concat footer_tag unless footer.blank?
18
- end
19
- end
20
- end
@@ -1,9 +0,0 @@
1
- class Button::AddComponent < Button::PrimaryComponent
2
- attribute color: 'green'
3
- attribute icon: 'plus'
4
-
5
- def before_render
6
- super
7
- end
8
-
9
- end
@@ -1,39 +0,0 @@
1
- class Button::BaseComponent < SparkComponents::Component
2
- COLORS = %i(blue green yellow red)
3
- SIZES = %i(small base medium large)
4
-
5
- attribute :text, :color, :size, :icon, :href
6
- root_attr :value, :disabled, :name, :target, type: :button
7
- aria_attr :hidden
8
-
9
- base_class "spark-button"
10
-
11
- validates_choice :size, SIZES.dup, required: false
12
- validates_choice :color, COLORS.dup, required: false
13
- validates :text, presence: true, if: -> { @yield.nil? }
14
-
15
- def before_render
16
- add_class("size-#{size}") if size
17
- add_class("color-#{color}") if color
18
- if (href && (data_attr[:remote] || data_attr[:method]))
19
- root_attr rel: "nofollow"
20
- end
21
- end
22
-
23
- def render
24
- content_tag(:div, class: join_class("wrapper")) do
25
- if href
26
- link_to(button_content, href, tag_attrs)
27
- else
28
- tag.button(button_content, tag_attrs)
29
- end
30
- end
31
- end
32
-
33
- def button_content
34
- capture {
35
- concat component("ui/icon", name: icon) if icon
36
- concat tag.span(text || @yield, class: join_class(:label))
37
- }
38
- end
39
- end
@@ -1,8 +0,0 @@
1
- class Button::CancelComponent < Button::TextComponent
2
- aria_attr hidden: true
3
-
4
- def before_render
5
- super
6
- end
7
-
8
- end
@@ -1,8 +0,0 @@
1
- class Button::DangerComponent < Button::PrimaryComponent
2
- attribute color: :red
3
-
4
- def before_render
5
- super
6
- end
7
-
8
- end
@@ -1,24 +0,0 @@
1
- class Button::GroupComponent < SparkComponents::Component
2
- COLORS = Button::BaseComponent::COLORS
3
- SIZES = Button::BaseComponent::SIZES
4
-
5
- attribute :color, :size
6
- root_attr role: "group"
7
-
8
- base_class "spark-button-group"
9
-
10
- validates_choice :color, COLORS, required: false
11
- validates_choice :size, SIZES, required: false
12
-
13
- element :button, multiple: true, component: "button/base"
14
-
15
- def render
16
- unless buttons.empty?
17
- content_tag(:div, tag_attrs) do
18
- buttons.each { |button|
19
- concat button
20
- }
21
- end
22
- end
23
- end
24
- end
@@ -1,14 +0,0 @@
1
- class Button::IconComponent < Button::BaseComponent
2
-
3
- def before_render
4
- aria_attr label: text
5
- add_class("theme-icon-only")
6
- super
7
- end
8
-
9
- validates :icon, presence: true
10
-
11
- def button_content
12
- component("ui/icon", name: icon, class: join_class('icon')) if icon
13
- end
14
- end
@@ -1,8 +0,0 @@
1
- class Button::PrimaryComponent < Button::BaseComponent
2
-
3
- def before_render
4
- add_class("theme-primary")
5
- super
6
- end
7
-
8
- end
@@ -1,8 +0,0 @@
1
- class Button::TextComponent < Button::BaseComponent
2
-
3
- def before_render
4
- add_class("theme-text")
5
- super
6
- end
7
-
8
- end
@@ -1,16 +0,0 @@
1
- class Form::CheckboxComponent < Form::InputComponent
2
- root_attr :checked
3
- data_attr :toggle
4
-
5
- def render
6
- component "form/label", text: label do
7
- concat tag(:input, input_attrs)
8
- end
9
- end
10
-
11
- def input_attrs
12
- tag_attrs.merge({
13
- type: "checkbox"
14
- })
15
- end
16
- end
@@ -1,9 +0,0 @@
1
- class Form::InputComponent < SparkComponents::Component
2
- root_attr :value, :id, :disabled, :required, :name
3
- attribute :label
4
- add_class "spark-input"
5
-
6
- # TODO: Add aria attribute validation when component attribute features are fixed.
7
- # If a label is not passed, require an aria-label for accessibility
8
- #validates :label, presence: { message: %q(a label or `aria: { label: "text" }` is required for accessiblity) }, unless: -> { @aria.present? && @aria[:label].present? }
9
- end
@@ -1,12 +0,0 @@
1
- class Form::LabelComponent < SparkComponents::Component
2
- attribute :text
3
- base_class "spark-label"
4
-
5
- def render
6
- tag.label(tag_attrs) do
7
- concat tag.div(text, class: "label-text") if text
8
- concat @yield
9
- end
10
-
11
- end
12
- end
@@ -1,32 +0,0 @@
1
- class Form::SwitchComponent < Form::CheckboxComponent
2
- SIZE = %i[small medium].freeze
3
- ALIGNMENT = %i[left right].freeze
4
-
5
- base_class "spark-switch"
6
- attribute size: :medium, align: :left, value: true
7
-
8
- validates_choice :size, SIZE
9
- validates_choice :align, ALIGNMENT
10
-
11
- def before_render
12
- add_class(size)
13
- add_class(join_class("align-#{align}")) if align
14
- end
15
-
16
- def render
17
- content_tag(:div, class: classnames) do
18
- component("form/label", text: label, class: join_class("label")) do
19
- concat(tag(:input, input_attrs))
20
- concat content_tag(:span, class: join_class("panel")) {
21
- content_tag(:span, nil, class: join_class("tick"))
22
- }
23
- end
24
- end
25
- end
26
-
27
- def input_attrs
28
- super.merge({
29
- class: join_class("input")
30
- })
31
- end
32
- end
@@ -1,2 +0,0 @@
1
- class Layout::BaseComponent < SparkComponents::Component
2
- end
@@ -1,32 +0,0 @@
1
- class Layout::Grid::ColumnComponent < SparkComponents::Component
2
- SPAN_NAME = { half: 6, third: 4, fourth: 3, sixth: 2 }.freeze
3
- SPAN = [*(1..12), *SPAN_NAME.keys].freeze
4
- OFFSET = [*(1..11), *SPAN_NAME.keys].freeze
5
-
6
- data_attr :span, :offset
7
-
8
- validates_choice :span, SPAN, required: false
9
- validates_choice :offset, OFFSET, required: false
10
-
11
- def before_render
12
- base_class "spark-grid-column"
13
- @span ||= parent.span if parent && parent.respond_to?(:span)
14
- data_attr span: span_name(span) || 0
15
- data_attr offset: span_name(offset)
16
- end
17
-
18
- def render
19
- content_tag(:div, @yield, tag_attrs)
20
- end
21
-
22
- def span_name(size)
23
- return if size.nil?
24
- if size.is_a? Integer
25
- SPAN[size - 1]
26
- elsif size.is_a? Float
27
- SPAN[(SPAN.size * size) - 1]
28
- elsif size = SPAN_NAME[size.to_sym]
29
- SPAN[(12 / size) - 1]
30
- end
31
- end
32
- end
@@ -1,37 +0,0 @@
1
- class Layout::GridComponent < SparkComponents::Component
2
- COLUMN = [1,2,3,4,6,12].freeze
3
- GUTTER = %i[small base medium large xl].freeze
4
-
5
- attribute :span, :cols, :gutter, :gutter_match, :min, wrap: true
6
-
7
- validates_choice :span, Layout::Grid::ColumnComponent::SPAN, required: false
8
- validates_choice :cols, COLUMN, required: false
9
- validates_choice :gutter, GUTTER, required: false
10
-
11
- element :column, multiple: true, component: "layout/grid/column"
12
-
13
- def after_init
14
- raise "Grids do not support both cols and span. Set `span` (default span for colums), or `cols` (the number of columns per row)" if span && cols
15
- @gutter ||= :base if gutter_match
16
- @span = 12 / @cols if @cols
17
- end
18
-
19
- def before_render
20
- base_class "spark-grid"
21
-
22
- add_class(join_class("gutter-#{gutter}")) if gutter
23
- add_class(join_class("gutter-#{gutter}-match")) if gutter && gutter_match
24
- data_attr column_min: min
25
- add_class join_class("no-wrap") unless wrap
26
- end
27
-
28
- def render
29
- content_tag(:div, tag_attrs) do
30
- concat content_tag(:div, class: join_class(:columns)) {
31
- columns.each { |column|
32
- concat column
33
- }
34
- }
35
- end
36
- end
37
- end
@@ -1,26 +0,0 @@
1
- class Layout::HeaderComponent < SparkComponents::Component
2
- base_class "spark-header"
3
- attribute :title, :badge, :tooltip
4
- aria_attr :described_by
5
- element :action, multiple: true
6
-
7
- def before_render
8
- aria_attr(described_by: unique_id("tooltip")) if tooltip
9
- end
10
-
11
- def render
12
- content_tag(:header, tag_attrs) {
13
- concat content_tag(:div, class: join_class("title")) {
14
- concat if_content_tag(:div, title, join_class: "title-content")
15
- concat tooltip_tag if tooltip
16
- concat if_content_tag(:div, badge, join_class: "badge")
17
- }
18
- concat if_content_tags(:div, actions, join_class: "action")
19
- }
20
- end
21
-
22
- def tooltip_tag
23
- component("ui/tooltip", text: tooltip, id: aria_attr[:described_by], class: join_class("tooltip"))
24
- end
25
- end
26
-
@@ -1,31 +0,0 @@
1
- class Layout::PageComponent < SparkComponents::Component
2
- element :nav
3
- element :title
4
- element :header
5
- element :body
6
- element :footer
7
- element :main, component: "layout/base"
8
- element :action, multiple: true
9
-
10
- def render
11
- @view.capture do
12
- if title || nav || header
13
- concat(component("page/header") { |page_header|
14
- concat(page_header.nav { nav.yield }) if nav
15
- concat component("layout/header", title: title) { |ui_header|
16
- actions.each { |a| ui_header.action { a.yield } }
17
- }
18
- concat(page_header.body { header.yield }) if header
19
- })
20
- end
21
- concat(content_tag(:div, main, class: "spark-page-main-wrapper")) if main
22
- concat(content_tag(:div, body, class: "spark-page-body")) unless body.blank?
23
- concat(content_tag(:div, footer, class: "spark-page-footer")) unless footer.blank?
24
- concat content_for(:modal)
25
- end
26
- end
27
-
28
- def modal(&block)
29
- content_for(:modals, &block)
30
- end
31
- end
@@ -1,2 +0,0 @@
1
- class Nav::BreadcrumbsComponent < SparkComponents::Component
2
- end
@@ -1,36 +0,0 @@
1
- class Nav::GroupComponent < SparkComponents::Component
2
- attribute role: 'group'
3
- attribute item_role: 'menuitem'
4
-
5
- element :item, multiple: true, component: "nav/item"
6
-
7
- def before_render
8
- add_class "active" if active?
9
- end
10
-
11
- def render
12
- unless items.empty?
13
- tag.ul(class: "spark-nav-group", role: role) do
14
- items.each { |item|
15
- concat tag.li(item, class: "nav-item-wrapper", role: item_role)
16
- }
17
- end
18
- end
19
- end
20
-
21
- def new?
22
- items.any?(&:new?)
23
- end
24
-
25
- def beta?
26
- items.any?(&:beta?)
27
- end
28
-
29
- def active_item
30
- items.find(&:active?)
31
- end
32
-
33
- def active?
34
- items.any?(&:active?)
35
- end
36
- end
@@ -1,44 +0,0 @@
1
- class Nav::ItemComponent < SparkComponents::Component
2
- attribute :text, :icon, :detail, :badge, :active, :beta, :new
3
- attribute icon_size: :small
4
- root_attr :href, :role, :id, :tabindex, :target
5
- base_class "nav-item"
6
-
7
- def before_render
8
- #root_attr(href: href || "#")
9
- add_class "active" if active?
10
- end
11
-
12
- def render
13
- content_tag(:a, tag_attrs) do
14
- concat component("ui/icon", name: icon, size: icon_size, class: join_class("icon")) if icon
15
- concat tag.span(class: join_class("content")) {
16
- concat tag.span(text || @yield, class: join_class("text"))
17
- concat tag.span(label.upcase, class: [join_class("label"), label]) if label
18
- }
19
- concat tag.span(detail, class: join_class("detail")) if detail
20
- concat tag.span(badge, class: join_class("badge")) if badge
21
- concat @yield if text
22
- end
23
- end
24
-
25
- def label
26
- if new?
27
- "new"
28
- elsif beta
29
- "beta"
30
- end
31
- end
32
-
33
- def new?
34
- if new.is_a?(String)
35
- 30.days.ago <= Time.zone.parse( new )
36
- else
37
- new
38
- end
39
- end
40
-
41
- def active?
42
- root_attr[:href] != "#" && @view.current_page?(root_attr[:href]) || active
43
- end
44
- end