coveragebook_components 0.16.0 → 0.17.0

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/build/coco/coco.css +1 -3
  3. data/app/assets/build/coco/coco.js +11199 -10947
  4. data/app/assets/build/coco/tailwind.preset.js +7 -6
  5. data/app/assets/css/base/setup.css +0 -32
  6. data/app/assets/css/coco.css +33 -2
  7. data/app/assets/js/base/tippy/plugins/hide_on_esc.js +3 -1
  8. data/app/assets/js/coco/coco.js +0 -9
  9. data/app/assets/js/coco.js +5 -0
  10. data/app/assets/js/helpers/index.js +10 -2
  11. data/app/components/coco/buttons/layout_picker_button/layout_picker_button.html.erb +5 -1
  12. data/app/components/coco/buttons/layout_picker_button/layout_picker_button.rb +2 -2
  13. data/app/components/coco/component.rb +1 -1
  14. data/app/components/coco/concerns/acts_as_field_with_options.rb +0 -1
  15. data/app/components/coco/fields/button_component.rb +1 -1
  16. data/app/components/coco/fields/submit_component.rb +1 -1
  17. data/app/helpers/coco/components_helper.rb +253 -3
  18. data/app/helpers/coco/integration_helper.rb +6 -6
  19. data/config/locales/coco.en.yml +0 -18
  20. data/config/tailwind.preset.js +7 -6
  21. data/lib/coco/engine.rb +0 -4
  22. data/lib/coco.rb +1 -1
  23. metadata +2 -65
  24. data/app/assets/build/coco/app.css +0 -9619
  25. data/app/assets/build/coco/app.js +0 -25150
  26. data/app/assets/build/coco/book.css +0 -7453
  27. data/app/assets/build/coco/book.js +0 -16552
  28. data/app/assets/css/app.css +0 -3
  29. data/app/assets/css/book.css +0 -3
  30. data/app/assets/js/app.js +0 -11
  31. data/app/assets/js/book.js +0 -9
  32. data/app/assets/js/helpers/screenshot.js +0 -42
  33. data/app/assets/js/helpers/turbo_events.js +0 -13
  34. data/app/components/coco/app/application_layout/application_layout.css +0 -122
  35. data/app/components/coco/app/application_layout/application_layout.html.erb +0 -32
  36. data/app/components/coco/app/application_layout/application_layout.js +0 -36
  37. data/app/components/coco/app/application_layout/application_layout.rb +0 -16
  38. data/app/components/coco/app/contact_callout/contact_callout.css +0 -119
  39. data/app/components/coco/app/contact_callout/contact_callout.html.erb +0 -28
  40. data/app/components/coco/app/contact_callout/contact_callout.rb +0 -21
  41. data/app/components/coco/app/faqs/faqs.css +0 -38
  42. data/app/components/coco/app/faqs/faqs.html.erb +0 -12
  43. data/app/components/coco/app/faqs/faqs.rb +0 -14
  44. data/app/components/coco/app/header/header.css +0 -47
  45. data/app/components/coco/app/header/header.html.erb +0 -30
  46. data/app/components/coco/app/header/header.js +0 -11
  47. data/app/components/coco/app/header/header.rb +0 -33
  48. data/app/components/coco/app/nav_drawer/nav_drawer.css +0 -58
  49. data/app/components/coco/app/nav_drawer/nav_drawer.html.erb +0 -16
  50. data/app/components/coco/app/nav_drawer/nav_drawer.js +0 -24
  51. data/app/components/coco/app/nav_drawer/nav_drawer.rb +0 -32
  52. data/app/components/coco/app/plan_card/plan_card.css +0 -132
  53. data/app/components/coco/app/plan_card/plan_card.html.erb +0 -36
  54. data/app/components/coco/app/plan_card/plan_card.rb +0 -66
  55. data/app/components/coco/app/plan_confirmation/plan_confirmation.css +0 -53
  56. data/app/components/coco/app/plan_confirmation/plan_confirmation.html.erb +0 -16
  57. data/app/components/coco/app/plan_confirmation/plan_confirmation.rb +0 -18
  58. data/app/components/coco/app/plan_picker/plan_picker.css +0 -128
  59. data/app/components/coco/app/plan_picker/plan_picker.html.erb +0 -69
  60. data/app/components/coco/app/plan_picker/plan_picker.js +0 -56
  61. data/app/components/coco/app/plan_picker/plan_picker.rb +0 -25
  62. data/app/components/coco/app/sidebar_nav/item/item.css +0 -121
  63. data/app/components/coco/app/sidebar_nav/item/item.html.erb +0 -9
  64. data/app/components/coco/app/sidebar_nav/item/item.js +0 -80
  65. data/app/components/coco/app/sidebar_nav/item/item.rb +0 -48
  66. data/app/components/coco/app/sidebar_nav/menu/menu.css +0 -138
  67. data/app/components/coco/app/sidebar_nav/menu/menu.html.erb +0 -24
  68. data/app/components/coco/app/sidebar_nav/menu/menu.js +0 -12
  69. data/app/components/coco/app/sidebar_nav/menu/menu.rb +0 -46
  70. data/app/components/coco/app/sidebar_nav/navbar/navbar.css +0 -75
  71. data/app/components/coco/app/sidebar_nav/navbar/navbar.html.erb +0 -29
  72. data/app/components/coco/app/sidebar_nav/navbar/navbar.js +0 -28
  73. data/app/components/coco/app/sidebar_nav/navbar/navbar.rb +0 -50
  74. data/app/components/coco/app/slide_editor/slide_editor.css +0 -149
  75. data/app/components/coco/app/slide_editor/slide_editor.html.erb +0 -302
  76. data/app/components/coco/app/slide_editor/slide_editor.js +0 -269
  77. data/app/components/coco/app/slide_editor/slide_editor.rb +0 -114
  78. data/app/components/coco/book/editable_slide/editable_slide.css +0 -332
  79. data/app/components/coco/book/editable_slide/editable_slide.html.erb +0 -48
  80. data/app/components/coco/book/editable_slide/editable_slide.rb +0 -72
  81. data/app/components/coco/book/media_slide/media_slide.css +0 -7
  82. data/app/components/coco/book/media_slide/media_slide.html.erb +0 -3
  83. data/app/components/coco/book/media_slide/media_slide.rb +0 -12
  84. data/app/helpers/coco/app_components_helper.rb +0 -39
  85. data/app/helpers/coco/book_components_helper.rb +0 -11
  86. data/app/helpers/coco/core_components_helper.rb +0 -257
@@ -1,58 +0,0 @@
1
- @layer components {
2
- [data-coco][data-component="app-nav-drawer"] {
3
- @apply pointer-events-none fixed top-14 left-0 bottom-0 w-screen overflow-hidden;
4
- height: var(--app-height);
5
-
6
- .nav-drawer-overlay {
7
- @apply pointer-events-none absolute inset-0 bg-black opacity-0 transition-opacity;
8
- }
9
-
10
- .nav-drawer-content {
11
- @apply absolute top-0 right-0 bottom-0 bg-white overflow-auto translate-x-full transition-transform py-4;
12
- max-width: 340px;
13
- min-width: 280px;
14
- width: fit-content;
15
- }
16
-
17
- .nav-drawer-item:last-child {
18
- @apply mb-10;
19
- }
20
-
21
- .nav-drawer-button {
22
- @apply w-full text-content-dark-2 hover:text-content-dark-1 hover:bg-background-light-3;
23
-
24
- .button-inner {
25
- @apply mx-0 px-4 py-3;
26
- }
27
-
28
- .button-label {
29
- @apply font-normal;
30
- }
31
- }
32
-
33
- .nav-drawer-heading {
34
- @apply mt-4 mb-2 mx-4 border-b text-content-dark-1/50 border-coco-gray-300 pb-3;
35
- }
36
-
37
- .nav-drawer-divider {
38
- @apply h-0 border-t border-coco-gray-300 my-3;
39
- }
40
-
41
- [data-component="notice"] {
42
- @apply mb-4;
43
- }
44
-
45
- .drawer-open & {
46
- @apply pointer-events-auto;
47
-
48
- .nav-drawer-overlay {
49
- @apply pointer-events-auto opacity-60;
50
- backdrop-filter: blur(2px);
51
- }
52
-
53
- .nav-drawer-content {
54
- @apply pointer-events-auto translate-x-0 shadow-2xl;
55
- }
56
- }
57
- }
58
- }
@@ -1,16 +0,0 @@
1
- <%= render component_tag(
2
- x: {
3
- data: "appNavDrawer",
4
- "@keydown.escape.document": "close",
5
- "@resize.window": "close"
6
- }
7
- ) do %>
8
- <div class="nav-drawer-overlay" @click="close"></div>
9
- <div class="nav-drawer-content" x-ref="content" x-trap.noscroll.inert.noreturn="active">
10
- <% items.each do |item| %>
11
- <div class="nav-drawer-item">
12
- <%= item %>
13
- </div>
14
- <% end %>
15
- </div>
16
- <% end %>
@@ -1,24 +0,0 @@
1
- import { CocoComponent } from "@assets/js/coco/component";
2
-
3
- export default CocoComponent("appNavDrawer", () => {
4
- return {
5
- active: false,
6
-
7
- init() {
8
- this.$watch("drawerOpen", (open) => {
9
- if (open) {
10
- this.$refs.content.scrollTop = 0;
11
- setTimeout(() => {
12
- this.active = true;
13
- }, 200);
14
- } else {
15
- this.active = false;
16
- }
17
- });
18
- },
19
-
20
- close() {
21
- this.drawerOpen = false;
22
- },
23
- };
24
- });
@@ -1,32 +0,0 @@
1
- module Coco
2
- module App
3
- class NavDrawer < Coco::Component
4
- renders_many :items, types: {
5
- html: ->(&block) { block.call },
6
- divider: ->(&block) { tag.div class: "nav-drawer-divider" },
7
- heading: ->(text, **kwargs, &block) do
8
- tag.h4(text, class: "nav-drawer-heading")
9
- end,
10
- button: ->(*args, **kwargs, &block) do
11
- coco_button(*args, **kwargs, theme: nil, size: :md, fit: :full, class: "nav-drawer-button", &block)
12
- end
13
- }
14
-
15
- def with_divider(...)
16
- with_item_divider(...)
17
- end
18
-
19
- def with_html(...)
20
- with_item_html(...)
21
- end
22
-
23
- def with_button(...)
24
- with_item_button(...)
25
- end
26
-
27
- def with_heading(...)
28
- with_item_heading(...)
29
- end
30
- end
31
- end
32
- end
@@ -1,132 +0,0 @@
1
- @layer components {
2
- [data-coco][data-component="app-plan-card"] {
3
- @apply @container border border-gray-transparent-200 rounded-2xl bg-background-light-1 shadow-md max-w-lg relative;
4
- min-width: 192px;
5
-
6
- .plan-container {
7
- @apply px-5 py-6 space-y-5;
8
- }
9
-
10
- .plan-badge {
11
- @apply absolute top-0 left-5 -translate-y-1/2;
12
- }
13
-
14
- .plan-promo {
15
- @apply label-sm text-content-primary;
16
- }
17
-
18
- .plan-qualifier {
19
- @apply para-sm text-content-dark-3;
20
- }
21
-
22
- .plan-header {
23
- @apply space-y-1;
24
- }
25
-
26
- .plan-name {
27
- @apply branded-heading-4;
28
- }
29
-
30
- .plan-price {
31
- @apply subheading-4;
32
- }
33
-
34
- .plan-info * {
35
- @apply para-sm;
36
- }
37
-
38
- .plan-benefits {
39
- @apply space-y-4 py-5 border-t border-coco-gray-300;
40
- }
41
-
42
- .plan-benefit {
43
- @apply label-sm flex;
44
-
45
- .coco-icon {
46
- @apply text-content-primary mr-1 mt-0.5;
47
- }
48
- }
49
-
50
- .plan-benefit-detail {
51
- @apply flex-grow;
52
- }
53
-
54
- &[data-variant="active"] {
55
- @apply border-background-primary bg-background-primary-light;
56
- }
57
-
58
- &[data-variant="selected"] {
59
- @apply border-background-primary;
60
- }
61
-
62
- &[data-variant="negated"] {
63
- @apply border-content-dark-muted bg-background-light-3 shadow-none;
64
-
65
- .plan-benefit-detail {
66
- @apply text-content-dark-muted;
67
-
68
- text-decoration: line-through;
69
- }
70
-
71
- .plan-benefit .coco-icon {
72
- @apply text-content-dark-muted;
73
- }
74
- }
75
-
76
- @container (min-width: 230px) {
77
- .plan-container {
78
- @apply px-6 pt-8 space-y-6;
79
- }
80
-
81
- .plan-badge {
82
- @apply left-6;
83
- }
84
-
85
- .plan-name {
86
- @apply branded-heading-3;
87
- }
88
-
89
- .plan-benefits {
90
- @apply py-6;
91
- }
92
- }
93
-
94
- @container (min-width: 280px) {
95
- .plan-container {
96
- @apply px-10;
97
- }
98
-
99
- .plan-badge {
100
- @apply left-10;
101
- }
102
-
103
- .plan-badge {
104
- @apply badge-md;
105
- }
106
-
107
- .plan-name {
108
- @apply branded-heading-2;
109
- }
110
-
111
- .plan-price {
112
- @apply subheading-3;
113
- }
114
-
115
- .plan-info * {
116
- @apply para-md;
117
- }
118
-
119
- .plan-benefits {
120
- @apply space-y-5;
121
- }
122
-
123
- .plan-benefit {
124
- @apply label-md;
125
- }
126
-
127
- .coco-button {
128
- @apply button-md;
129
- }
130
- }
131
- }
132
- }
@@ -1,36 +0,0 @@
1
- <%= render component_tag do %>
2
- <%= badge %>
3
-
4
- <div class="plan-container">
5
-
6
- <div class="plan-header">
7
- <h3 class="plan-name" data-role="name"><%= name %></h3>
8
- <p class="plan-price" data-role="price"><%= price %></p>
9
- <% if qualifier.present? %>
10
- <p class="plan-qualifier" data-role="qualifier"><%= qualifier %></p>
11
- <% end %>
12
- <% if promo.present? %>
13
- <p class="plan-promo" data-role="promo"><%= promo %></p>
14
- <% end %>
15
- </div>
16
-
17
- <div class="plan-action" data-role="action">
18
- <%= action %>
19
- </div>
20
-
21
- <div class="plan-info" data-role="info">
22
- <p><%= content %></p>
23
- </div>
24
-
25
- <ul class="plan-benefits">
26
- <% @benefits.each do |benefit, info| %>
27
- <li class="plan-benefit">
28
- <%= coco_icon(negated? ? :minus : :check, size: :sm) %>
29
- <div class="plan-benefit-detail" data-role="benefit">
30
- <%= benefit %>
31
- </div>
32
- </li>
33
- <% end %>
34
- </ul>
35
- </div>
36
- <% end %>
@@ -1,66 +0,0 @@
1
- module Coco
2
- module App
3
- class PlanCard < Coco::Component
4
- include Concerns::AcceptsOptions
5
-
6
- accepts_option :variant, from: [:active, :recommended, :negated, :selected, nil]
7
-
8
- renders_one :action, ->(*args, **kwargs, &block) do
9
- coco_button(*args,
10
- **kwargs,
11
- size: :sm,
12
- fit: :full,
13
- disabled: active?,
14
- &block)
15
- end
16
-
17
- renders_one :badge, ->(label, **kwargs) do
18
- coco_badge(label,
19
- class: "plan-badge",
20
- **kwargs,
21
- icon: :award,
22
- size: :sm)
23
- end
24
-
25
- renders_many :benefits, ->(benefit, &block) do
26
- @benefits[benefit] = block&.call
27
- end
28
-
29
- before_render do
30
- unless badge?
31
- if recommended?
32
- with_badge("Recommended")
33
- elsif active?
34
- with_badge("Current Plan")
35
- end
36
- end
37
- end
38
-
39
- attr_reader :name, :price, :promo, :qualifier
40
-
41
- def initialize(name:, price:, promo: nil, qualifier: nil, **kwargs)
42
- @name = name
43
- @price = price
44
- @promo = promo
45
- @qualifier = qualifier
46
- @benefits = {}
47
- end
48
-
49
- def active?
50
- get_option_value(:variant) == :active
51
- end
52
-
53
- def recommended?
54
- get_option_value(:variant) == :recommended
55
- end
56
-
57
- def negated?
58
- get_option_value(:variant) == :negated
59
- end
60
-
61
- def selected?
62
- get_option_value(:variant) == :selected
63
- end
64
- end
65
- end
66
- end
@@ -1,53 +0,0 @@
1
- @layer components {
2
- [data-coco][data-component="app-plan-confirmation"] {
3
- @apply @container;
4
- max-width: 37rem;
5
-
6
- .plan-confirmation-grid {
7
- @apply grid gap-4;
8
- }
9
-
10
- .plan-confirmation-new-plan {
11
- order: 1;
12
- }
13
-
14
- .plan-confirmation-old-plan {
15
- @apply hidden;
16
- }
17
-
18
- .plan-confirmation-secondary-action {
19
- order: 3;
20
- }
21
-
22
- .plan-confirmation-primary-action {
23
- order: 2;
24
- }
25
-
26
- @container (min-width: 420px) {
27
- [data-component="app-plan-card"] {
28
- @apply h-full;
29
- }
30
-
31
- .plan-confirmation-grid {
32
- @apply gap-8 grid-cols-2;
33
- }
34
-
35
- .plan-confirmation-new-plan {
36
- order: 2;
37
- }
38
-
39
- .plan-confirmation-old-plan {
40
- @apply block;
41
- order: 1;
42
- }
43
-
44
- .plan-confirmation-secondary-action {
45
- order: 3;
46
- }
47
-
48
- .plan-confirmation-primary-action {
49
- order: 4;
50
- }
51
- }
52
- }
53
- }
@@ -1,16 +0,0 @@
1
- <%= render component_tag do %>
2
- <div class="plan-confirmation-grid">
3
- <div class="plan-confirmation-new-plan" data-role="new-plan">
4
- <%= new_plan %>
5
- </div>
6
- <div class="plan-confirmation-old-plan" data-role="old-plan">
7
- <%= old_plan %>
8
- </div>
9
- <div class="plan-confirmation-primary-action" data-role="primary-action">
10
- <%= primary_action %>
11
- </div>
12
- <div class="plan-confirmation-secondary-action" data-role="secondary-action">
13
- <%= secondary_action %>
14
- </div>
15
- </div>
16
- <% end %>
@@ -1,18 +0,0 @@
1
- module Coco
2
- module App
3
- class PlanConfirmation < Coco::Component
4
- include Concerns::AcceptsOptions
5
-
6
- renders_one :new_plan
7
- renders_one :old_plan
8
-
9
- renders_one :primary_action, ->(*args, **kwargs, &block) do
10
- coco_button(*args, theme: :primary, size: :md, **kwargs, fit: :full, &block)
11
- end
12
-
13
- renders_one :secondary_action, ->(*args, **kwargs, &block) do
14
- coco_button(*args, theme: :secondary, size: :md, **kwargs, fit: :full, &block)
15
- end
16
- end
17
- end
18
- end
@@ -1,128 +0,0 @@
1
- @layer components {
2
- [data-coco][data-component="app-plan-picker"] {
3
- @apply @container;
4
-
5
- .plan-picker-controls {
6
- @apply space-y-4;
7
-
8
- [data-component="option-bar"] {
9
- @apply mx-auto;
10
- }
11
-
12
- .plan-picker-view-toggle {
13
- @apply hidden;
14
- }
15
- }
16
-
17
- .plan-picker-slider {
18
- @apply relative;
19
- }
20
-
21
- .plan-picker-slider-container {
22
- @apply overflow-x-clip;
23
- }
24
-
25
- .plan-picker-plans {
26
- @apply grid gap-y-8 grid-cols-1 transition-transform duration-300;
27
- }
28
-
29
- .plan-picker-view-toggle-mobile .coco-button {
30
- @apply mx-auto;
31
- }
32
-
33
- .plan-picker-pagination {
34
- @apply hidden;
35
- }
36
-
37
- [data-component="app-plan-card"] {
38
- @apply h-full;
39
- }
40
-
41
- &.slider-active {
42
- .plan-picker-pagination {
43
- @apply flex items-center justify-between absolute top-1/2 left-0 right-0 -translate-y-1/2;
44
- }
45
- }
46
-
47
- @container (min-width: 420px) {
48
- .plan-picker-controls {
49
- @apply relative space-y-0;
50
-
51
- .plan-picker-currency {
52
- @apply absolute left-0 top-0 mx-0;
53
- }
54
-
55
- .plan-picker-currency
56
- + .plan-picker-interval
57
- > [data-component="option-bar"] {
58
- @apply mr-0;
59
- }
60
- }
61
-
62
- .plan-picker-plans {
63
- @apply grid gap-x-4 grid-cols-2;
64
- }
65
- }
66
-
67
- @container (min-width: 984px) {
68
- .plan-picker-controls {
69
- .plan-picker-interval > [data-component="option-bar"] {
70
- @apply !mx-auto;
71
- }
72
-
73
- .plan-picker-view-toggle {
74
- @apply block absolute right-0 top-0 mx-0;
75
- }
76
- }
77
-
78
- .plan-picker-plans {
79
- @apply gap-x-6 grid-cols-4;
80
- }
81
-
82
- .plan-picker-view-toggle-mobile {
83
- @apply hidden;
84
- }
85
-
86
- &.slider-active {
87
- .plan-picker-plans {
88
- grid-template-columns: repeat(20, calc((100% - 4.5rem) / 4));
89
- }
90
- }
91
-
92
- &.slider-active {
93
- .plan-picker-slider {
94
- padding-left: 72px;
95
- padding-right: 72px;
96
- }
97
- }
98
- }
99
-
100
- @container (min-width: 1200px) {
101
- .plan-picker-plans {
102
- @apply gap-x-8;
103
- }
104
-
105
- &.slider-active {
106
- .plan-picker-plans {
107
- grid-template-columns: repeat(20, calc((100% - 6rem) / 4));
108
- }
109
- }
110
- }
111
-
112
- @media (min-width: 1540px) {
113
- &.slider-active {
114
- .plan-picker-pagination {
115
- @apply flex items-center justify-between absolute top-1/2 left-0 right-0 -translate-y-1/2;
116
- margin-left: -72px;
117
- margin-right: -72px;
118
- width: calc(100% + 144px);
119
- }
120
-
121
- .plan-picker-slider {
122
- padding-left: 0;
123
- padding-right: 0;
124
- }
125
- }
126
- }
127
- }
128
- }
@@ -1,69 +0,0 @@
1
- <%= render component_tag(x: slider? ? {
2
- data: "appPlanPicker",
3
- ":class": "{'slider-active': shouldPaginate}",
4
- "options": "options",
5
- "@resize.window": "calculateOffset"
6
- } : {}) do %>
7
- <div class="plan-picker-container">
8
- <div class="plan-picker-controls">
9
- <% if currency_selector? %>
10
- <div class="plan-picker-currency" data-role="currency-selector">
11
- <%= currency_selector %>
12
- </div>
13
- <% end %>
14
- <div class="plan-picker-interval" data-role="interval-selector">
15
- <%= interval_selector %>
16
- </div>
17
- <% if view_toggle? %>
18
- <div class="plan-picker-view-toggle" data-role="view-all-toggle">
19
- <%= view_toggle %>
20
- </div>
21
- <% end %>
22
- </div>
23
- <%= space 4 %>
24
- <div x-ref="slider" class="plan-picker-slider" <%= "x-cloak" if slider? %>>
25
- <div class="plan-picker-slider-container">
26
- <div class="plan-picker-plans" x-ref="sliderItems">
27
- <% plans.each do |plan| %>
28
- <div class="plan-picker-plan">
29
- <%= plan %>
30
- </div>
31
- <% end %>
32
- </div>
33
- </div>
34
-
35
- <% if slider? %>
36
- <div class="plan-picker-pagination" x-show="shouldPaginate" data-role="pagination">
37
- <%= coco_button(
38
- icon: :arrow_left,
39
- theme: :secondary,
40
- floating: true,
41
- size: :lg,
42
- x: {
43
- ref: "previous",
44
- "@click": "previous",
45
- "effect": "disabled = isFirst"
46
- }) %>
47
- <%= coco_button(
48
- icon: :arrow_right,
49
- theme: :secondary,
50
- floating: true,
51
- size: :lg,
52
- x: {
53
- ref: "next",
54
- "@click": "next",
55
- "effect": "disabled = isLast"
56
- }) %>
57
- </div>
58
- <% end %>
59
-
60
- </div>
61
-
62
- <% if view_toggle? %>
63
- <div class="plan-picker-view-toggle-mobile" data-role="view-all-toggle">
64
- <%= space 4 %>
65
- <%= view_toggle %>
66
- </div>
67
- <% end %>
68
- </div>
69
- <% end %>