coveragebook_components 0.16.0 → 0.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) 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 +11224 -10972
  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/alpine/directives/dropdown.js +2 -2
  8. data/app/assets/js/base/tippy/plugins/hide_on_esc.js +3 -1
  9. data/app/assets/js/coco/coco.js +0 -9
  10. data/app/assets/js/coco.js +5 -0
  11. data/app/assets/js/helpers/index.js +10 -2
  12. data/app/components/coco/buttons/layout_picker_button/layout_picker_button.html.erb +5 -1
  13. data/app/components/coco/buttons/layout_picker_button/layout_picker_button.rb +2 -2
  14. data/app/components/coco/component.rb +1 -1
  15. data/app/components/coco/concerns/acts_as_field_with_options.rb +0 -1
  16. data/app/components/coco/fields/button_component.rb +1 -1
  17. data/app/components/coco/fields/submit_component.rb +1 -1
  18. data/app/helpers/coco/components_helper.rb +253 -3
  19. data/app/helpers/coco/integration_helper.rb +6 -6
  20. data/config/locales/coco.en.yml +0 -18
  21. data/config/tailwind.preset.js +7 -6
  22. data/lib/coco/engine.rb +0 -4
  23. data/lib/coco.rb +1 -1
  24. metadata +2 -65
  25. data/app/assets/build/coco/app.css +0 -9619
  26. data/app/assets/build/coco/app.js +0 -25150
  27. data/app/assets/build/coco/book.css +0 -7453
  28. data/app/assets/build/coco/book.js +0 -16552
  29. data/app/assets/css/app.css +0 -3
  30. data/app/assets/css/book.css +0 -3
  31. data/app/assets/js/app.js +0 -11
  32. data/app/assets/js/book.js +0 -9
  33. data/app/assets/js/helpers/screenshot.js +0 -42
  34. data/app/assets/js/helpers/turbo_events.js +0 -13
  35. data/app/components/coco/app/application_layout/application_layout.css +0 -122
  36. data/app/components/coco/app/application_layout/application_layout.html.erb +0 -32
  37. data/app/components/coco/app/application_layout/application_layout.js +0 -36
  38. data/app/components/coco/app/application_layout/application_layout.rb +0 -16
  39. data/app/components/coco/app/contact_callout/contact_callout.css +0 -119
  40. data/app/components/coco/app/contact_callout/contact_callout.html.erb +0 -28
  41. data/app/components/coco/app/contact_callout/contact_callout.rb +0 -21
  42. data/app/components/coco/app/faqs/faqs.css +0 -38
  43. data/app/components/coco/app/faqs/faqs.html.erb +0 -12
  44. data/app/components/coco/app/faqs/faqs.rb +0 -14
  45. data/app/components/coco/app/header/header.css +0 -47
  46. data/app/components/coco/app/header/header.html.erb +0 -30
  47. data/app/components/coco/app/header/header.js +0 -11
  48. data/app/components/coco/app/header/header.rb +0 -33
  49. data/app/components/coco/app/nav_drawer/nav_drawer.css +0 -58
  50. data/app/components/coco/app/nav_drawer/nav_drawer.html.erb +0 -16
  51. data/app/components/coco/app/nav_drawer/nav_drawer.js +0 -24
  52. data/app/components/coco/app/nav_drawer/nav_drawer.rb +0 -32
  53. data/app/components/coco/app/plan_card/plan_card.css +0 -132
  54. data/app/components/coco/app/plan_card/plan_card.html.erb +0 -36
  55. data/app/components/coco/app/plan_card/plan_card.rb +0 -66
  56. data/app/components/coco/app/plan_confirmation/plan_confirmation.css +0 -53
  57. data/app/components/coco/app/plan_confirmation/plan_confirmation.html.erb +0 -16
  58. data/app/components/coco/app/plan_confirmation/plan_confirmation.rb +0 -18
  59. data/app/components/coco/app/plan_picker/plan_picker.css +0 -128
  60. data/app/components/coco/app/plan_picker/plan_picker.html.erb +0 -69
  61. data/app/components/coco/app/plan_picker/plan_picker.js +0 -56
  62. data/app/components/coco/app/plan_picker/plan_picker.rb +0 -25
  63. data/app/components/coco/app/sidebar_nav/item/item.css +0 -121
  64. data/app/components/coco/app/sidebar_nav/item/item.html.erb +0 -9
  65. data/app/components/coco/app/sidebar_nav/item/item.js +0 -80
  66. data/app/components/coco/app/sidebar_nav/item/item.rb +0 -48
  67. data/app/components/coco/app/sidebar_nav/menu/menu.css +0 -138
  68. data/app/components/coco/app/sidebar_nav/menu/menu.html.erb +0 -24
  69. data/app/components/coco/app/sidebar_nav/menu/menu.js +0 -12
  70. data/app/components/coco/app/sidebar_nav/menu/menu.rb +0 -46
  71. data/app/components/coco/app/sidebar_nav/navbar/navbar.css +0 -75
  72. data/app/components/coco/app/sidebar_nav/navbar/navbar.html.erb +0 -29
  73. data/app/components/coco/app/sidebar_nav/navbar/navbar.js +0 -28
  74. data/app/components/coco/app/sidebar_nav/navbar/navbar.rb +0 -50
  75. data/app/components/coco/app/slide_editor/slide_editor.css +0 -149
  76. data/app/components/coco/app/slide_editor/slide_editor.html.erb +0 -302
  77. data/app/components/coco/app/slide_editor/slide_editor.js +0 -269
  78. data/app/components/coco/app/slide_editor/slide_editor.rb +0 -114
  79. data/app/components/coco/book/editable_slide/editable_slide.css +0 -332
  80. data/app/components/coco/book/editable_slide/editable_slide.html.erb +0 -48
  81. data/app/components/coco/book/editable_slide/editable_slide.rb +0 -72
  82. data/app/components/coco/book/media_slide/media_slide.css +0 -7
  83. data/app/components/coco/book/media_slide/media_slide.html.erb +0 -3
  84. data/app/components/coco/book/media_slide/media_slide.rb +0 -12
  85. data/app/helpers/coco/app_components_helper.rb +0 -39
  86. data/app/helpers/coco/book_components_helper.rb +0 -11
  87. data/app/helpers/coco/core_components_helper.rb +0 -257
@@ -2708,12 +2708,6 @@ module.exports = {
2708
2708
  },
2709
2709
  extend: {
2710
2710
  fontSize,
2711
- containers: {
2712
- "slide-fluid": "700px"
2713
- },
2714
- aspectRatio: {
2715
- slide: "16 / 10"
2716
- },
2717
2711
  animation: {
2718
2712
  spin: "spin 1.5s linear infinite",
2719
2713
  "spin-reverse": "spin 1.5s linear infinite reverse"
@@ -2728,6 +2722,13 @@ module.exports = {
2728
2722
  17: "4.25rem",
2729
2723
  18: "4.5rem"
2730
2724
  },
2725
+ aspectRatio: {
2726
+ "4/3": "4 / 3",
2727
+ "3/2": "3 / 2",
2728
+ "3/2": "3 / 2",
2729
+ "2/1": "2 / 1",
2730
+ a4: "7 / 5"
2731
+ },
2731
2732
  customForms: () => ({
2732
2733
  DEFAULT: {
2733
2734
  checkbox: {
@@ -1,32 +0,0 @@
1
- @import "./config";
2
-
3
- @import "tailwindcss/base";
4
- @import "tailwindcss/components";
5
- @import "tailwindcss/utilities";
6
-
7
- @import "./utils/text";
8
- @import "./tippy";
9
-
10
- @layer base {
11
- :root {
12
- --app-height: 100%;
13
- }
14
-
15
- html {
16
- @apply font-body scroll-smooth motion-safe:scroll-auto text-content-dark-1;
17
- }
18
-
19
- a {
20
- @apply text-current underline underline-offset-2;
21
- }
22
-
23
- [x-cloak] {
24
- display: none !important;
25
- }
26
-
27
- [x-dropdown] {
28
- [x-dropdown\:content] {
29
- @apply hidden;
30
- }
31
- }
32
- }
@@ -1,3 +1,34 @@
1
- @import "./base/setup";
1
+ @import "./base/config";
2
2
 
3
- @import-glob "@components/!(app|book)/**/*.css";
3
+ @import "tailwindcss/base";
4
+ @import "tailwindcss/components";
5
+ @import "tailwindcss/utilities";
6
+
7
+ @import "./base/utils/text";
8
+ @import "./base/tippy";
9
+
10
+ @import-glob "@components/**/*.css";
11
+
12
+ @layer base {
13
+ :root {
14
+ --app-height: 100%;
15
+ }
16
+
17
+ html {
18
+ @apply font-body scroll-smooth motion-safe:scroll-auto text-content-dark-1;
19
+ }
20
+
21
+ a {
22
+ @apply text-current underline underline-offset-2;
23
+ }
24
+
25
+ [x-cloak] {
26
+ display: none !important;
27
+ }
28
+
29
+ [x-dropdown] {
30
+ [x-dropdown\:content] {
31
+ @apply hidden;
32
+ }
33
+ }
34
+ }
@@ -7,7 +7,7 @@ import { setData, getData } from "@helpers/alpine";
7
7
  export default function (Alpine) {
8
8
  Alpine.directive(
9
9
  "dropdown",
10
- (el, { value, modifiers, expression }, { evaluate, effect }) => {
10
+ (el, { value, modifiers, expression }, { evaluate }) => {
11
11
  // Don't run for dropdown sub-elements
12
12
  // like `x-dropdown:trigger` and `x-dropdown:content`
13
13
  if (value) return;
@@ -21,7 +21,7 @@ export default function (Alpine) {
21
21
 
22
22
  contentTarget =
23
23
  contentTarget || el.querySelector("[x-dropdown\\:content]");
24
- content = isNode(contentTarget)
24
+ const content = isNode(contentTarget)
25
25
  ? contentTarget.firstElementChild
26
26
  : contentTarget;
27
27
  triggerTarget =
@@ -1,4 +1,4 @@
1
- export default hideOnEsc = {
1
+ const hideOnEsc = {
2
2
  name: "hideOnEsc",
3
3
 
4
4
  defaultValue: true,
@@ -21,3 +21,5 @@ export default hideOnEsc = {
21
21
  };
22
22
  },
23
23
  };
24
+
25
+ export default hideOnEsc;
@@ -1,8 +1,6 @@
1
1
  import Alpine from "../base/alpine";
2
2
  import packageJSON from "@/package.json" assert { type: "json" };
3
3
  import { registerComponents } from "@helpers/alpine.js";
4
- import CocoComponent from "./component";
5
- import * as helpers from "@helpers/index";
6
4
 
7
5
  const Coco = {
8
6
  version: packageJSON.version,
@@ -24,16 +22,9 @@ const Coco = {
24
22
  this._components.push(...components);
25
23
  },
26
24
 
27
- component(...args) {
28
- return CocoComponent(...args);
29
- },
30
-
31
25
  _components: [],
32
26
 
33
27
  _started: false,
34
28
  };
35
29
 
36
- Coco.Component = CocoComponent;
37
- Coco.helpers = helpers;
38
-
39
30
  export default Coco;
@@ -1,7 +1,12 @@
1
1
  import "./base/polyfills";
2
+ import helpers from "@helpers/index";
3
+ import tippy from "./base/tippy";
2
4
  import Coco from "./coco/coco";
5
+ import CocoComponent from "./coco/component";
6
+ import tokens from "@config/tokens.js";
3
7
  import components from "./base/components";
4
8
 
5
9
  Coco.registerComponents(components);
6
10
 
7
11
  export default Coco;
12
+ export { Coco, CocoComponent, tippy, helpers, tokens };
@@ -1,7 +1,15 @@
1
+ import * as alpine from "./alpine";
1
2
  import * as color from "./color";
2
3
  import * as dom from "./dom";
3
4
  import * as lang from "./lang";
4
5
  import * as location from "./location";
5
- import * as turboEvents from "./turbo_events";
6
+ import * as path from "./path";
6
7
 
7
- export { color, dom, lang, location, turboEvents };
8
+ export default {
9
+ ...alpine,
10
+ ...color,
11
+ ...dom,
12
+ ...lang,
13
+ ...location,
14
+ ...path,
15
+ };
@@ -16,7 +16,11 @@
16
16
  class="layout-picker-option"
17
17
  :class="{'layout-picker-option-current': typeof selectedLayout !== 'undefined' && selectedLayout === '<%= options[:name] %>'}"
18
18
  aria-label="<%= options[:name] %>">
19
- <%= coco_svg(options[:thumbnail]) %>
19
+ <% if options[:thumbnail] %>
20
+ <%= coco_svg(options[:thumbnail]) %>
21
+ <% else %>
22
+ <%= options[:icon] %>
23
+ <% end %>
20
24
  </button>
21
25
  <% end %>
22
26
  </div>
@@ -9,8 +9,8 @@ module Coco
9
9
  Coco::Button.new(**args)
10
10
  end
11
11
 
12
- renders_many :layouts, ->(name:, thumbnail:, **layout_options) do
13
- @layout_options << {name: name, thumbnail: thumbnail, **layout_options}
12
+ renders_many :layouts, ->(name:, thumbnail: nil, **layout_options, &block) do
13
+ @layout_options << {name: name, thumbnail: thumbnail, **layout_options, icon: block&.call}
14
14
  end
15
15
 
16
16
  attr_reader :layout_options, :size, :resize
@@ -3,7 +3,7 @@ module Coco
3
3
  include Concerns::AcceptsTagAttributes
4
4
  include Concerns::HasName
5
5
  include Concerns::Translatable
6
- include Coco::CoreComponentsHelper
6
+ include Coco::ComponentsHelper
7
7
  include Coco::AlpineHelper
8
8
 
9
9
  def accepts_options?
@@ -3,7 +3,6 @@ module Coco
3
3
  module ActsAsFieldWithOptions
4
4
  extend ActiveSupport::Concern
5
5
  include Concerns::HasName
6
- include AppComponentsHelper
7
6
 
8
7
  def combine_options!
9
8
  @options[:data] ||= {}
@@ -2,7 +2,7 @@ module Coco
2
2
  module Fields
3
3
  class ButtonComponent < ViewComponent::Form::ButtonComponent
4
4
  include Concerns::ActsAsFieldWithOptions
5
- include Coco::CoreComponentsHelper
5
+ include Coco::ComponentsHelper
6
6
 
7
7
  def call
8
8
  coco_button(**options) do
@@ -2,7 +2,7 @@ module Coco
2
2
  module Fields
3
3
  class SubmitComponent < ViewComponent::Form::SubmitComponent
4
4
  include Concerns::ActsAsFieldWithOptions
5
- include Coco::CoreComponentsHelper
5
+ include Coco::ComponentsHelper
6
6
 
7
7
  def call
8
8
  coco_button(**options, type: :submit) do
@@ -1,7 +1,257 @@
1
1
  module Coco
2
2
  module ComponentsHelper
3
- include Coco::CoreComponentsHelper
4
- include Coco::BookComponentsHelper
5
- include Coco::AppComponentsHelper
3
+ include ActionView::Helpers::UrlHelper
4
+
5
+ # Buttons
6
+
7
+ def coco_button(*args, **kwargs, &block)
8
+ href, content = if block
9
+ [args.first, nil]
10
+ else
11
+ (args.size == 1) ? [nil, args.first] : args[0..2].reverse!
12
+ end
13
+
14
+ button = if kwargs.key?(:action) || kwargs.key?(:method) || kwargs.key?(:params)
15
+ "Coco::ButtonTo"
16
+ else
17
+ "Coco::Button"
18
+ end
19
+
20
+ component = button.constantize.new(href: href, **kwargs)
21
+ component = component.with_content(content) if !block && content.present?
22
+
23
+ render(component, &block)
24
+ end
25
+
26
+ def coco_button_group(**, &block)
27
+ render Coco::ButtonGroup.new(**), &block
28
+ end
29
+
30
+ def coco_menu_button(**, &block)
31
+ render Coco::MenuButton.new(**), &block
32
+ end
33
+
34
+ def coco_menu_item(type, **, &block)
35
+ render coco_component("menu_items/#{type}", **), &block
36
+ end
37
+
38
+ def coco_confirm_button(href = nil, **, &block)
39
+ render Coco::ConfirmButton.new(href: href, **), &block
40
+ end
41
+
42
+ def coco_color_picker_button(**, &block)
43
+ render Coco::ColorPickerButton.new(**), &block
44
+ end
45
+
46
+ def coco_image_picker_button(**, &block)
47
+ render Coco::ImagePickerButton.new(**), &block
48
+ end
49
+
50
+ def coco_layout_picker_button(**, &block)
51
+ render Coco::LayoutPickerButton.new(**), &block
52
+ end
53
+
54
+ def coco_toolbar(**, &block)
55
+ render Coco::Toolbar.new(**), &block
56
+ end
57
+
58
+ def coco_option_bar(**, &block)
59
+ render Coco::OptionBar.new(**), &block
60
+ end
61
+
62
+ # Embeds
63
+
64
+ def coco_embed(platform, url = nil, **)
65
+ case platform
66
+ when :youtube
67
+ render Coco::YoutubeEmbed.new(url: url, **)
68
+ else
69
+ raise ArgumentError, "`#{platform}` is not a valid embed type"
70
+ end
71
+ end
72
+
73
+ # Forms (WIP)
74
+
75
+ def coco_form_with(**, &block)
76
+ form_with(**, builder: Coco::AppFormBuilder, &block)
77
+ end
78
+
79
+ def coco_form_for(*, **, &block)
80
+ form_for(*, **, builder: Coco::AppFormBuilder, &block)
81
+ end
82
+
83
+ def coco_fields(**, &block)
84
+ fields(**, builder: Coco::AppFormBuilder, &block)
85
+ end
86
+
87
+ # Images
88
+
89
+ def coco_svg(path = nil, **)
90
+ render Coco::Svg.new(path: path, **)
91
+ end
92
+
93
+ def coco_image(src = nil, **)
94
+ render Coco::Image.new(src: src, **)
95
+ end
96
+
97
+ def coco_avatar(src, name = nil, **)
98
+ render Coco::Avatar.new(src: src, name: name, **)
99
+ end
100
+
101
+ def coco_icon(icon_name = nil, **, &block)
102
+ render Coco::Icon.new(name: icon_name, **), &block
103
+ end
104
+
105
+ # Indicators
106
+
107
+ def coco_stamp(type = nil, **)
108
+ props = case type
109
+ when :success, :positive
110
+ {icon: :check_circle, theme: :positive}
111
+ when :error, :negative
112
+ {icon: :alert_circle, theme: :negative}
113
+ when :warning
114
+ {icon: :alert_triangle, theme: :warning}
115
+ when :info
116
+ {icon: :info, theme: :info}
117
+ else
118
+ {}
119
+ end
120
+
121
+ render Coco::Stamp.new(**props, **)
122
+ end
123
+
124
+ def coco_badge(text, **)
125
+ render Coco::Badge.new(**).with_content(text)
126
+ end
127
+
128
+ # Layout
129
+
130
+ def coco_spacer(size = Coco::Spacer::DEFAULT, **)
131
+ render Coco::Spacer.new(size:, **)
132
+ end
133
+ alias_method :space, :coco_spacer
134
+
135
+ def coco_stack(spacing: Coco::Spacer::DEFAULT, **, &block)
136
+ render Coco::Stack.new(spacing:, **), &block
137
+ end
138
+
139
+ def coco_panel(**, &block)
140
+ render Coco::Panel.new(**), &block
141
+ end
142
+
143
+ def coco_page(id, **, &block)
144
+ render Coco::Page.new(id: id, **), &block
145
+ end
146
+
147
+ # Messaging
148
+
149
+ def coco_notice(**, &block)
150
+ render Coco::Notice.new(**), &block
151
+ end
152
+
153
+ def coco_snackbar(**, &block)
154
+ render Coco::Snackbar.new(**), &block
155
+ end
156
+
157
+ def coco_toast(**, &block)
158
+ render Coco::Toast.new(**), &block
159
+ end
160
+
161
+ def coco_system_banner(**, &block)
162
+ render Coco::SystemBanner.new(**), &block
163
+ end
164
+
165
+ # Modals
166
+
167
+ def coco_modal(name = "default", **, &block)
168
+ render(Coco::Modal.new(name: name, **), &block)
169
+ end
170
+
171
+ def coco_modal_dialog(name = "default", **, &block)
172
+ render(Coco::Modal.new(name: name, **)) do |modal|
173
+ modal.with_container_dialog(&block)
174
+ end
175
+ end
176
+
177
+ def coco_modal_lightbox(name = "default", scroll_top: nil, **, &block)
178
+ render(Coco::Modal.new(name: name, scroll_top: scroll_top, **)) do |modal|
179
+ modal.with_container_lightbox(&block)
180
+ end
181
+ end
182
+
183
+ # Navigation
184
+
185
+ def coco_link(*args, **, &block)
186
+ href, content = if block
187
+ [args.first, nil]
188
+ else
189
+ (args.size == 1) ? [nil, args.first] : args[0..2].reverse!
190
+ end
191
+
192
+ link = Coco::Link.new(href: href, **)
193
+ link = link.with_content(content) if !block && content.present?
194
+
195
+ render(link, &block)
196
+ end
197
+
198
+ def coco_link_to(name = nil, options = nil, html_options = nil, &block)
199
+ html_options, options, name = options, name, block if block
200
+ options ||= {}
201
+ html_options = Coco::ActionViewHelper.convert_options_to_data_attributes(options, html_options)
202
+
203
+ href = Coco::ActionViewHelper.url_target(name, options)
204
+
205
+ if block
206
+ coco_link(href, **html_options.symbolize_keys!, &block)
207
+ else
208
+ coco_link(name, href, **html_options.symbolize_keys!)
209
+ end
210
+ end
211
+
212
+ def coco_button_to(name = nil, options = nil, html_options = nil, &block)
213
+ html_options, options = options, name if block
214
+ options ||= {}
215
+ html_options ||= {}
216
+ html_options.symbolize_keys!
217
+
218
+ button = Coco::ButtonTo.new(action: options, type: :submit, **html_options)
219
+ button = button.with_content(name) unless block
220
+ render(button, &block)
221
+ end
222
+
223
+ def coco_pager_button(direction, **, &block)
224
+ render Coco::PagerButton.new(direction:, **), &block
225
+ end
226
+
227
+ # Typography
228
+
229
+ def coco_prose(**, &block)
230
+ render Coco::Prose.new(**), &block
231
+ end
232
+
233
+ def coco_seamless_textarea(**, &block)
234
+ render Coco::SeamlessTextarea.new(**), &block
235
+ end
236
+
237
+ # Utilties (internal)
238
+
239
+ def coco_placeholder(text_content = nil, **, &block)
240
+ render Coco::Placeholder.new(text_content:, **), &block
241
+ end
242
+
243
+ # General
244
+
245
+ def coco_tag(*, **, &block)
246
+ render Coco::Tag.new(*, **), &block
247
+ end
248
+
249
+ def coco_component(name, *, **)
250
+ resolve_component("coco/#{name}", *, **)
251
+ end
252
+
253
+ def resolve_component(...)
254
+ Coco::ComponentResolver.new(...)
255
+ end
6
256
  end
7
257
  end
@@ -1,7 +1,7 @@
1
1
  module Coco
2
2
  module IntegrationHelper
3
- def coco_stylesheet_tag(context = "coco", dev: ENV["COCO_PATH"], **)
4
- stylesheet_link_tag("coco#{"/dev" if dev}/#{context}", **)
3
+ def coco_stylesheet_tag(dev: ENV["COCO_PATH"], **)
4
+ stylesheet_link_tag("coco#{"/dev" if dev}/coco", **)
5
5
  end
6
6
 
7
7
  def coco_stylesheet_file_path(...)
@@ -17,12 +17,12 @@ module Coco
17
17
  end
18
18
 
19
19
  class << self
20
- def stylesheet_file_path(context = "coco", dev: ENV["COCO_PATH"], **opts)
21
- File.join(Coco::Engine.root, "app/assets/build/coco#{"/dev" if dev}/#{context}.css")
20
+ def stylesheet_file_path(dev: ENV["COCO_PATH"], **opts)
21
+ File.join(Coco::Engine.root, "app/assets/build/coco#{"/dev" if dev}/coco.css")
22
22
  end
23
23
 
24
- def javascript_file_path(context = "coco", dev: ENV["COCO_PATH"], **opts)
25
- File.join(Coco::Engine.root, "app/assets/build/coco#{"/dev" if dev}/#{context}.js")
24
+ def javascript_file_path(dev: ENV["COCO_PATH"], **opts)
25
+ File.join(Coco::Engine.root, "app/assets/build/coco#{"/dev" if dev}/coco.js")
26
26
  end
27
27
 
28
28
  def tailwind_preset_path
@@ -1,23 +1,5 @@
1
1
  en:
2
2
  coco:
3
- app:
4
- slide_editor:
5
- bg_color_picker:
6
- label: "Background colour"
7
- bg_image_picker:
8
- label: "Background image"
9
- blank_state: "Drag a jpg, png or gif onto the slide area or..."
10
- text_color_picker:
11
- label: "Text colour"
12
- layout_picker:
13
- label: "Layout"
14
- undo_button:
15
- tooltip: "Undo"
16
- redo_button:
17
- tooltip: "Redo"
18
- save_button:
19
- label: "Save"
20
- saving_label: "Saving..."
21
3
  test:
22
4
  translatable:
23
5
  greeting: "Hello"
@@ -14,12 +14,6 @@ module.exports = {
14
14
  },
15
15
  extend: {
16
16
  fontSize,
17
- containers: {
18
- "slide-fluid": "700px",
19
- },
20
- aspectRatio: {
21
- slide: "16 / 10",
22
- },
23
17
  animation: {
24
18
  spin: "spin 1.5s linear infinite",
25
19
  "spin-reverse": "spin 1.5s linear infinite reverse",
@@ -34,6 +28,13 @@ module.exports = {
34
28
  17: "4.25rem",
35
29
  18: "4.5rem",
36
30
  },
31
+ aspectRatio: {
32
+ "4/3": "4 / 3",
33
+ "3/2": "3 / 2",
34
+ "3/2": "3 / 2",
35
+ "2/1": "2 / 1",
36
+ a4: "7 / 5",
37
+ },
37
38
  customForms: () => ({
38
39
  DEFAULT: {
39
40
  checkbox: {
data/lib/coco/engine.rb CHANGED
@@ -25,10 +25,6 @@ module Coco
25
25
  Dir.glob("#{coco_dir}/{#{COLLAPSE_DIRS.join(",")}}/**/*.rb").each do |path|
26
26
  autoloader.collapse(File.dirname(path))
27
27
  end
28
-
29
- Dir.glob("#{coco_dir}/{app,book}/**/*.rb").each do |path|
30
- autoloader.collapse(File.dirname(path))
31
- end
32
28
  end
33
29
 
34
30
  if Rails.env.production?
data/lib/coco.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Coco
2
- VERSION = "0.16.0"
2
+ VERSION = "0.17.1"
3
3
  end