coveragebook_components 0.12.2 → 0.13.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 (355) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/build/coco/app.css +6615 -5488
  3. data/app/assets/build/coco/app.js +3142 -3169
  4. data/app/assets/build/coco/book.css +5169 -2130
  5. data/app/assets/build/coco/book.js +3986 -1565
  6. data/app/assets/css/app.css +2 -8
  7. data/app/assets/css/base/config.css +1 -0
  8. data/app/assets/css/{base.css → base/setup.css} +7 -4
  9. data/app/assets/css/{shared → base}/tippy.css +18 -0
  10. data/app/assets/css/book.css +2 -4
  11. data/app/assets/js/app.js +25 -9
  12. data/app/assets/js/{libs → base}/alpine/directives/dropdown.js +1 -1
  13. data/app/assets/js/{libs → base}/alpine/directives/tooltip.js +1 -1
  14. data/app/assets/js/{libs → base}/alpine/index.js +7 -7
  15. data/app/assets/js/{libs → base}/alpine/utils/tippy_modifiers.js +1 -1
  16. data/app/assets/js/base/setup.js +8 -0
  17. data/app/assets/js/book.js +4 -4
  18. data/app/components/coco/app/{layouts/application/application.js → application_layout/application_layout.js} +1 -1
  19. data/app/components/coco/app/application_layout/application_layout.rb +16 -0
  20. data/app/components/coco/app/contact_callout/contact_callout.rb +21 -0
  21. data/app/components/coco/app/faqs/faqs.rb +14 -0
  22. data/app/components/coco/app/{blocks/header → header}/header.js +1 -1
  23. data/app/components/coco/app/header/header.rb +33 -0
  24. data/app/components/coco/app/{blocks/nav_drawer → nav_drawer}/nav_drawer.css +1 -1
  25. data/app/components/coco/app/{blocks/nav_drawer → nav_drawer}/nav_drawer.js +1 -1
  26. data/app/components/coco/app/nav_drawer/nav_drawer.rb +32 -0
  27. data/app/components/coco/app/plan_card/plan_card.rb +39 -0
  28. data/app/components/coco/app/{blocks/plan_picker → plan_picker}/plan_picker.css +3 -3
  29. data/app/components/coco/app/{blocks/plan_picker → plan_picker}/plan_picker.js +1 -1
  30. data/app/components/coco/app/plan_picker/plan_picker.rb +25 -0
  31. data/app/components/coco/app/{blocks/sidebar_nav → sidebar_nav}/item/item.js +2 -2
  32. data/app/components/coco/app/sidebar_nav/item/item.rb +48 -0
  33. data/app/components/coco/app/{blocks/sidebar_nav → sidebar_nav}/menu/menu.js +1 -1
  34. data/app/components/coco/app/sidebar_nav/menu/menu.rb +46 -0
  35. data/app/components/coco/app/{blocks/sidebar_nav → sidebar_nav}/navbar/navbar.html.erb +1 -1
  36. data/app/components/coco/app/{blocks/sidebar_nav → sidebar_nav}/navbar/navbar.js +2 -2
  37. data/app/components/coco/app/sidebar_nav/navbar/navbar.rb +50 -0
  38. data/app/components/coco/app/{blocks/slide_editor → slide_editor}/slide_editor.js +2 -2
  39. data/app/components/coco/app/slide_editor/slide_editor.rb +114 -0
  40. data/app/components/coco/book/editable_slide/editable_slide.rb +72 -0
  41. data/app/components/coco/book/media_slide/media_slide.rb +12 -0
  42. data/app/components/coco/{shared → buttons}/button/button.js +1 -1
  43. data/app/components/coco/{shared → buttons}/button/button.rb +2 -2
  44. data/app/components/coco/{shared → buttons}/button/button_dropdown.js +1 -1
  45. data/app/components/coco/{shared → buttons}/button_group/button_group.js +2 -2
  46. data/app/components/coco/{shared → buttons}/button_to/button_to.rb +1 -1
  47. data/app/components/coco/{app/elements → buttons}/color_picker_button/color_picker_button.css +2 -2
  48. data/app/components/coco/{app/elements → buttons}/color_picker_button/color_picker_button.html.erb +1 -1
  49. data/app/components/coco/{app/elements → buttons}/color_picker_button/color_picker_button.js +2 -2
  50. data/app/components/coco/buttons/color_picker_button/color_picker_button.rb +53 -0
  51. data/app/components/coco/{app/elements → buttons}/confirm_panel/confirm_panel.css +1 -1
  52. data/app/components/coco/{app/elements → buttons}/confirm_panel/confirm_panel.html.erb +1 -1
  53. data/app/components/coco/{app/elements → buttons}/confirm_panel/confirm_panel.js +2 -2
  54. data/app/components/coco/buttons/confirm_panel/confirm_panel.rb +19 -0
  55. data/app/components/coco/{app/elements → buttons}/image_picker_button/image_picker_button.css +2 -2
  56. data/app/components/coco/{app/elements → buttons}/image_picker_button/image_picker_button.html.erb +1 -1
  57. data/app/components/coco/{app/elements → buttons}/image_picker_button/image_picker_button.js +2 -2
  58. data/app/components/coco/buttons/image_picker_button/image_picker_button.rb +44 -0
  59. data/app/components/coco/{app/elements → buttons}/layout_picker_button/layout_picker_button.css +11 -11
  60. data/app/components/coco/{app/elements → buttons}/layout_picker_button/layout_picker_button.html.erb +1 -1
  61. data/app/components/coco/{app/elements → buttons}/layout_picker_button/layout_picker_button.js +2 -2
  62. data/app/components/coco/buttons/layout_picker_button/layout_picker_button.rb +33 -0
  63. data/app/components/coco/{app/elements → buttons}/menu/menu.css +2 -4
  64. data/app/components/coco/buttons/menu/menu.rb +37 -0
  65. data/app/components/coco/{app/elements → buttons}/menu_button/menu_button.css +1 -1
  66. data/app/components/coco/{app/elements → buttons}/menu_button/menu_button.html.erb +1 -1
  67. data/app/components/coco/buttons/menu_button/menu_button.js +6 -0
  68. data/app/components/coco/buttons/menu_button/menu_button.rb +30 -0
  69. data/app/components/coco/{app/elements → buttons}/menu_items/user_profile/user_profile.css +1 -1
  70. data/app/components/coco/buttons/menu_items/user_profile/user_profile.rb +18 -0
  71. data/app/components/coco/{app/elements → buttons}/option_bar/option_bar.css +1 -1
  72. data/app/components/coco/buttons/option_bar/option_bar.rb +13 -0
  73. data/app/components/coco/{app/elements → buttons}/toolbar/toolbar.css +1 -1
  74. data/app/components/coco/{app/elements → buttons}/toolbar/toolbar.js +1 -1
  75. data/app/components/coco/buttons/toolbar/toolbar.rb +35 -0
  76. data/app/components/coco/component.rb +1 -1
  77. data/app/components/coco/concerns/acts_as_button_group.rb +4 -11
  78. data/app/components/coco/concerns/acts_as_field_with_html_options.rb +1 -1
  79. data/app/components/coco/concerns/acts_as_field_with_options.rb +2 -2
  80. data/app/components/coco/embeds/youtube_embed/youtube_embed.rb +16 -0
  81. data/app/components/coco/fields/button_component.rb +14 -0
  82. data/app/components/coco/fields/check_box_component.rb +7 -0
  83. data/app/components/coco/fields/collection_check_boxes_component.rb +7 -0
  84. data/app/components/coco/fields/collection_radio_buttons_component.rb +7 -0
  85. data/app/components/coco/fields/collection_select_component.rb +7 -0
  86. data/app/components/coco/fields/color_field_component.rb +7 -0
  87. data/app/components/coco/fields/date_field_component.rb +7 -0
  88. data/app/components/coco/fields/date_select_component.rb +7 -0
  89. data/app/components/coco/fields/datetime_local_field_component.rb +7 -0
  90. data/app/components/coco/fields/datetime_select_component.rb +7 -0
  91. data/app/components/coco/fields/email_field_component.rb +7 -0
  92. data/app/components/coco/fields/error_message_component.rb +7 -0
  93. data/app/components/coco/fields/file_field_component.rb +7 -0
  94. data/app/components/coco/fields/grouped_collection_select_component.rb +7 -0
  95. data/app/components/coco/fields/hint_component.rb +7 -0
  96. data/app/components/coco/fields/label_component.rb +7 -0
  97. data/app/components/coco/fields/month_field_component.rb +7 -0
  98. data/app/components/coco/fields/number_field_component.rb +7 -0
  99. data/app/components/coco/fields/password_field_component.rb +7 -0
  100. data/app/components/coco/fields/radio_button_component.rb +7 -0
  101. data/app/components/coco/fields/range_field_component.rb +7 -0
  102. data/app/components/coco/fields/search_field_component.rb +7 -0
  103. data/app/components/coco/fields/select_component.rb +7 -0
  104. data/app/components/coco/fields/submit_component.rb +14 -0
  105. data/app/components/coco/fields/telephone_field_component.rb +7 -0
  106. data/app/components/coco/fields/text_area_component.rb +7 -0
  107. data/app/components/coco/fields/text_field_component.rb +7 -0
  108. data/app/components/coco/fields/time_field_component.rb +7 -0
  109. data/app/components/coco/fields/time_select_component.rb +7 -0
  110. data/app/components/coco/fields/time_zone_select_component.rb +7 -0
  111. data/app/components/coco/fields/url_field_component.rb +7 -0
  112. data/app/components/coco/fields/week_field_component.rb +7 -0
  113. data/app/components/coco/fields/weekday_select_component.rb +7 -0
  114. data/app/components/coco/{shared → images}/icon/icon.js +1 -1
  115. data/app/components/coco/{shared → images}/image_uploader/image_uploader.js +1 -1
  116. data/app/components/coco/{app/elements → indicators}/stamp/stamp.css +1 -1
  117. data/app/components/coco/indicators/stamp/stamp.rb +25 -0
  118. data/app/components/coco/{app/layouts → layout}/page/page.js +1 -1
  119. data/app/components/coco/layout/page/page.rb +55 -0
  120. data/app/components/coco/{app/elements → messaging}/alert/alert.css +7 -7
  121. data/app/components/coco/{app/elements → messaging}/alert/alert.html.erb +1 -1
  122. data/app/components/coco/{app/elements → messaging}/alert/alert.js +2 -2
  123. data/app/components/coco/messaging/alert/alert.rb +75 -0
  124. data/app/components/coco/{app/elements → messaging}/notice/notice.css +1 -1
  125. data/app/components/coco/messaging/notice/notice.html.erb +5 -0
  126. data/app/components/coco/messaging/notice/notice.js +5 -0
  127. data/app/components/coco/messaging/notice/notice.rb +18 -0
  128. data/app/components/coco/{app/elements → messaging}/snackbar/snackbar.css +1 -1
  129. data/app/components/coco/{app/elements → messaging}/snackbar/snackbar.html.erb +1 -1
  130. data/app/components/coco/{app/elements → messaging}/snackbar/snackbar.js +2 -2
  131. data/app/components/coco/messaging/snackbar/snackbar.rb +34 -0
  132. data/app/components/coco/messaging/system_banner/system_banner.css +4 -0
  133. data/app/components/coco/messaging/system_banner/system_banner.html.erb +5 -0
  134. data/app/components/coco/{app/elements → messaging}/system_banner/system_banner.js +2 -2
  135. data/app/components/coco/messaging/system_banner/system_banner.rb +78 -0
  136. data/app/components/coco/{app/elements → messaging}/toast/toast.css +1 -1
  137. data/app/components/coco/{app/elements → messaging}/toast/toast.html.erb +1 -1
  138. data/app/components/coco/{app/elements → messaging}/toast/toast.js +2 -2
  139. data/app/components/coco/messaging/toast/toast.rb +19 -0
  140. data/app/components/coco/{shared → modals}/modal/modal.js +2 -2
  141. data/app/components/coco/{shared → modals}/modal/modal.rb +1 -0
  142. data/app/components/coco/{shared → modals}/modal_dialog/modal_dialog.js +1 -1
  143. data/app/components/coco/{shared → modals}/modal_lightbox/modal_lightbox.js +1 -1
  144. data/app/components/coco/{shared → navigation}/link/link.rb +1 -1
  145. data/app/components/coco/{shared/pager_link/pager_link.css → navigation/pager_button/pager_button.css} +1 -1
  146. data/app/components/coco/{shared/pager_link/pager_link.rb → navigation/pager_button/pager_button.rb} +1 -1
  147. data/app/components/coco/{app/elements → pickers}/color_picker/color_picker.css +11 -11
  148. data/app/components/coco/{app/elements → pickers}/color_picker/color_picker.html.erb +1 -1
  149. data/app/components/coco/{app/elements → pickers}/color_picker/color_picker.js +2 -2
  150. data/app/components/coco/pickers/color_picker/color_picker.rb +48 -0
  151. data/app/components/coco/{app/elements → pickers}/image_picker/image_picker.css +11 -11
  152. data/app/components/coco/{app/elements → pickers}/image_picker/image_picker.html.erb +1 -1
  153. data/app/components/coco/{app/elements → pickers}/image_picker/image_picker.js +2 -2
  154. data/app/components/coco/pickers/image_picker/image_picker.rb +20 -0
  155. data/app/components/coco/presented_component.rb +1 -1
  156. data/app/components/coco/{shared → utilities}/dropdown/dropdown.js +1 -1
  157. data/app/components/coco/{shared → utilities}/poll_controller/poll_controller.js +1 -1
  158. data/app/components/coco/{app/elements → utilities}/seamless_textarea/seamless_textarea.css +1 -1
  159. data/app/components/coco/{app/elements → utilities}/seamless_textarea/seamless_textarea.html.erb +1 -1
  160. data/app/components/coco/{app/elements → utilities}/seamless_textarea/seamless_textarea.js +2 -2
  161. data/app/components/coco/utilities/seamless_textarea/seamless_textarea.rb +25 -0
  162. data/app/helpers/coco/app_components_helper.rb +35 -0
  163. data/app/helpers/coco/book_components_helper.rb +11 -0
  164. data/app/helpers/coco/components_helper.rb +7 -0
  165. data/app/helpers/coco/core_components_helper.rb +257 -0
  166. data/app/helpers/coco/helpers.rb +2 -2
  167. data/app/helpers/coco/modal_helper.rb +22 -0
  168. data/config/locales/coco.en.yml +17 -18
  169. data/config/{tailwind.base.config.cjs → tailwind.config.cjs} +10 -0
  170. data/config/tokens.cjs +9 -23
  171. data/lib/coco/app_form_builder.rb +1 -1
  172. data/lib/coco/engine.rb +3 -3
  173. data/lib/coco.rb +1 -1
  174. metadata +251 -258
  175. data/app/assets/css/app/config.css +0 -1
  176. data/app/assets/css/app/tippy.css +0 -19
  177. data/app/assets/css/book/config.css +0 -1
  178. data/app/assets/js/app/components.js +0 -4
  179. data/app/assets/js/app/setup.js +0 -23
  180. data/app/assets/js/book/components.js +0 -4
  181. data/app/assets/js/shared/components.js +0 -4
  182. data/app/components/coco/app/blocks/contact_callout/contact_callout.rb +0 -23
  183. data/app/components/coco/app/blocks/faqs/faqs.rb +0 -16
  184. data/app/components/coco/app/blocks/header/header.rb +0 -35
  185. data/app/components/coco/app/blocks/nav_drawer/nav_drawer.rb +0 -34
  186. data/app/components/coco/app/blocks/plan_picker/plan_picker.rb +0 -27
  187. data/app/components/coco/app/blocks/sidebar_nav/item/item.rb +0 -50
  188. data/app/components/coco/app/blocks/sidebar_nav/menu/menu.rb +0 -48
  189. data/app/components/coco/app/blocks/sidebar_nav/navbar/navbar.rb +0 -50
  190. data/app/components/coco/app/blocks/slide_editor/slide_editor.rb +0 -116
  191. data/app/components/coco/app/elements/alert/alert.rb +0 -79
  192. data/app/components/coco/app/elements/color_picker/color_picker.rb +0 -53
  193. data/app/components/coco/app/elements/color_picker_button/color_picker_button.rb +0 -58
  194. data/app/components/coco/app/elements/confirm_panel/confirm_panel.rb +0 -23
  195. data/app/components/coco/app/elements/image_picker/image_picker.rb +0 -25
  196. data/app/components/coco/app/elements/image_picker_button/image_picker_button.rb +0 -49
  197. data/app/components/coco/app/elements/layout_picker_button/layout_picker_button.rb +0 -38
  198. data/app/components/coco/app/elements/menu/menu.rb +0 -41
  199. data/app/components/coco/app/elements/menu_button/menu_button.js +0 -6
  200. data/app/components/coco/app/elements/menu_button/menu_button.rb +0 -35
  201. data/app/components/coco/app/elements/menu_items/user_profile/user_profile.rb +0 -20
  202. data/app/components/coco/app/elements/notice/notice.html.erb +0 -5
  203. data/app/components/coco/app/elements/notice/notice.js +0 -5
  204. data/app/components/coco/app/elements/notice/notice.rb +0 -22
  205. data/app/components/coco/app/elements/option_bar/option_bar.rb +0 -17
  206. data/app/components/coco/app/elements/plan_card/plan_card.rb +0 -41
  207. data/app/components/coco/app/elements/seamless_textarea/seamless_textarea.rb +0 -29
  208. data/app/components/coco/app/elements/snackbar/snackbar.rb +0 -38
  209. data/app/components/coco/app/elements/stamp/stamp.rb +0 -29
  210. data/app/components/coco/app/elements/system_banner/system_banner.css +0 -4
  211. data/app/components/coco/app/elements/system_banner/system_banner.html.erb +0 -5
  212. data/app/components/coco/app/elements/system_banner/system_banner.rb +0 -82
  213. data/app/components/coco/app/elements/toast/toast.rb +0 -23
  214. data/app/components/coco/app/elements/toolbar/toolbar.rb +0 -41
  215. data/app/components/coco/app/fields/button_component.rb +0 -16
  216. data/app/components/coco/app/fields/check_box_component.rb +0 -9
  217. data/app/components/coco/app/fields/collection_check_boxes_component.rb +0 -9
  218. data/app/components/coco/app/fields/collection_radio_buttons_component.rb +0 -9
  219. data/app/components/coco/app/fields/collection_select_component.rb +0 -9
  220. data/app/components/coco/app/fields/color_field_component.rb +0 -9
  221. data/app/components/coco/app/fields/date_field_component.rb +0 -9
  222. data/app/components/coco/app/fields/date_select_component.rb +0 -9
  223. data/app/components/coco/app/fields/datetime_local_field_component.rb +0 -9
  224. data/app/components/coco/app/fields/datetime_select_component.rb +0 -9
  225. data/app/components/coco/app/fields/email_field_component.rb +0 -9
  226. data/app/components/coco/app/fields/error_message_component.rb +0 -9
  227. data/app/components/coco/app/fields/file_field_component.rb +0 -9
  228. data/app/components/coco/app/fields/grouped_collection_select_component.rb +0 -9
  229. data/app/components/coco/app/fields/hint_component.rb +0 -9
  230. data/app/components/coco/app/fields/label_component.rb +0 -9
  231. data/app/components/coco/app/fields/month_field_component.rb +0 -9
  232. data/app/components/coco/app/fields/number_field_component.rb +0 -9
  233. data/app/components/coco/app/fields/password_field_component.rb +0 -9
  234. data/app/components/coco/app/fields/radio_button_component.rb +0 -9
  235. data/app/components/coco/app/fields/range_field_component.rb +0 -9
  236. data/app/components/coco/app/fields/search_field_component.rb +0 -9
  237. data/app/components/coco/app/fields/select_component.rb +0 -9
  238. data/app/components/coco/app/fields/submit_component.rb +0 -16
  239. data/app/components/coco/app/fields/telephone_field_component.rb +0 -9
  240. data/app/components/coco/app/fields/text_area_component.rb +0 -9
  241. data/app/components/coco/app/fields/text_field_component.rb +0 -9
  242. data/app/components/coco/app/fields/time_field_component.rb +0 -9
  243. data/app/components/coco/app/fields/time_select_component.rb +0 -9
  244. data/app/components/coco/app/fields/time_zone_select_component.rb +0 -9
  245. data/app/components/coco/app/fields/url_field_component.rb +0 -9
  246. data/app/components/coco/app/fields/week_field_component.rb +0 -9
  247. data/app/components/coco/app/fields/weekday_select_component.rb +0 -9
  248. data/app/components/coco/app/layouts/application/application.rb +0 -18
  249. data/app/components/coco/app/layouts/page/page.rb +0 -59
  250. data/app/components/coco/book/blocks/slides/editable_slide/editable_slide.rb +0 -76
  251. data/app/components/coco/book/blocks/slides/media_slide/media_slide.rb +0 -16
  252. data/app/components/coco/shared/embeds/youtube/youtube.rb +0 -20
  253. data/app/helpers/coco/app_helper.rb +0 -141
  254. data/app/helpers/coco/book_helper.rb +0 -11
  255. data/app/helpers/coco/component_helper.rb +0 -15
  256. data/app/helpers/coco/shared_helper.rb +0 -111
  257. data/app/helpers/coco/url_helper.rb +0 -30
  258. data/config/tailwind.app.config.cjs +0 -21
  259. data/config/tailwind.book.config.cjs +0 -21
  260. /data/app/assets/css/{shared → base}/utils/colors.css +0 -0
  261. /data/app/assets/css/{shared → base}/utils/icons.css +0 -0
  262. /data/app/assets/css/{app/utils.css → base/utils/layout.css} +0 -0
  263. /data/app/assets/css/{shared → base}/utils/text.css +0 -0
  264. /data/app/assets/js/{libs → base}/alpine/directives/destroy.js +0 -0
  265. /data/app/assets/js/{libs → base}/alpine/directives/dimensions.js +0 -0
  266. /data/app/assets/js/{libs → base}/alpine/directives/notification.js +0 -0
  267. /data/app/assets/js/{libs → base}/alpine/directives/options.js +0 -0
  268. /data/app/assets/js/{libs → base}/alpine/directives/undo.js +0 -0
  269. /data/app/assets/js/{shared → base}/coco.js +0 -0
  270. /data/app/assets/js/{libs → base}/tippy/index.js +0 -0
  271. /data/app/assets/js/{libs → base}/tippy/plugins/hide_on_esc.js +0 -0
  272. /data/app/components/coco/app/{layouts/application/application.css → application_layout/application_layout.css} +0 -0
  273. /data/app/components/coco/app/{layouts/application/application.html.erb → application_layout/application_layout.html.erb} +0 -0
  274. /data/app/components/coco/app/{blocks/contact_callout → contact_callout}/contact_callout.css +0 -0
  275. /data/app/components/coco/app/{blocks/contact_callout → contact_callout}/contact_callout.html.erb +0 -0
  276. /data/app/components/coco/app/{blocks/faqs → faqs}/faqs.css +0 -0
  277. /data/app/components/coco/app/{blocks/faqs → faqs}/faqs.html.erb +0 -0
  278. /data/app/components/coco/app/{blocks/header → header}/header.css +0 -0
  279. /data/app/components/coco/app/{blocks/header → header}/header.html.erb +0 -0
  280. /data/app/components/coco/app/{blocks/nav_drawer → nav_drawer}/nav_drawer.html.erb +0 -0
  281. /data/app/components/coco/app/{elements/plan_card → plan_card}/plan_card.css +0 -0
  282. /data/app/components/coco/app/{elements/plan_card → plan_card}/plan_card.html.erb +0 -0
  283. /data/app/components/coco/app/{blocks/plan_picker → plan_picker}/plan_picker.html.erb +0 -0
  284. /data/app/components/coco/app/{blocks/sidebar_nav → sidebar_nav}/item/item.css +0 -0
  285. /data/app/components/coco/app/{blocks/sidebar_nav → sidebar_nav}/item/item.html.erb +0 -0
  286. /data/app/components/coco/app/{blocks/sidebar_nav → sidebar_nav}/menu/menu.css +0 -0
  287. /data/app/components/coco/app/{blocks/sidebar_nav → sidebar_nav}/menu/menu.html.erb +0 -0
  288. /data/app/components/coco/app/{blocks/sidebar_nav → sidebar_nav}/navbar/navbar.css +0 -0
  289. /data/app/components/coco/app/{blocks/slide_editor → slide_editor}/slide_editor.css +0 -0
  290. /data/app/components/coco/app/{blocks/slide_editor → slide_editor}/slide_editor.html.erb +0 -0
  291. /data/app/components/coco/book/{blocks/slides/editable_slide → editable_slide}/editable_slide.css +0 -0
  292. /data/app/components/coco/book/{blocks/slides/editable_slide → editable_slide}/editable_slide.html.erb +0 -0
  293. /data/app/components/coco/book/{blocks/slides/media_slide → media_slide}/media_slide.css +0 -0
  294. /data/app/components/coco/book/{blocks/slides/media_slide → media_slide}/media_slide.html.erb +0 -0
  295. /data/app/components/coco/{shared → buttons}/button/button.css +0 -0
  296. /data/app/components/coco/{shared → buttons}/button/button.html.erb +0 -0
  297. /data/app/components/coco/{shared → buttons}/button_group/button_group.css +0 -0
  298. /data/app/components/coco/{shared → buttons}/button_group/button_group.html.erb +0 -0
  299. /data/app/components/coco/{shared → buttons}/button_group/button_group.rb +0 -0
  300. /data/app/components/coco/{shared → buttons}/button_to/button_to.css +0 -0
  301. /data/app/components/coco/{shared → buttons}/button_to/button_to.html.erb +0 -0
  302. /data/app/components/coco/{app/elements → buttons}/menu/menu.html.erb +0 -0
  303. /data/app/components/coco/{app/elements → buttons}/menu_items/user_profile/user_profile.html.erb +0 -0
  304. /data/app/components/coco/{app/elements → buttons}/option_bar/option_bar.html.erb +0 -0
  305. /data/app/components/coco/{app/elements → buttons}/toolbar/toolbar.html.erb +0 -0
  306. /data/app/components/coco/{shared/embeds/youtube/youtube.css → embeds/youtube_embed/youtube_embed.css} +0 -0
  307. /data/app/components/coco/{shared/embeds/youtube/youtube.html.erb → embeds/youtube_embed/youtube_embed.html.erb} +0 -0
  308. /data/app/components/coco/{shared → images}/avatar/avatar.css +0 -0
  309. /data/app/components/coco/{shared → images}/avatar/avatar.rb +0 -0
  310. /data/app/components/coco/{shared → images}/icon/icon.css +0 -0
  311. /data/app/components/coco/{shared → images}/icon/icon.html.erb +0 -0
  312. /data/app/components/coco/{shared → images}/icon/icon.rb +0 -0
  313. /data/app/components/coco/{shared → images}/image/image.css +0 -0
  314. /data/app/components/coco/{shared → images}/image/image.rb +0 -0
  315. /data/app/components/coco/{shared → images}/image_uploader/image_uploader.css +0 -0
  316. /data/app/components/coco/{shared → images}/image_uploader/image_uploader.html.erb +0 -0
  317. /data/app/components/coco/{shared → images}/image_uploader/image_uploader.rb +0 -0
  318. /data/app/components/coco/{shared → images}/svg/svg.html.erb +0 -0
  319. /data/app/components/coco/{shared → images}/svg/svg.rb +0 -0
  320. /data/app/components/coco/{shared → indicators}/badge/badge.css +0 -0
  321. /data/app/components/coco/{shared → indicators}/badge/badge.html.erb +0 -0
  322. /data/app/components/coco/{shared → indicators}/badge/badge.rb +0 -0
  323. /data/app/components/coco/{app/elements → indicators}/stamp/stamp.html.erb +0 -0
  324. /data/app/components/coco/{app/layouts → layout}/page/page.css +0 -0
  325. /data/app/components/coco/{app/layouts → layout}/page/page.html.erb +0 -0
  326. /data/app/components/coco/{shared → layout}/panel/panel.css +0 -0
  327. /data/app/components/coco/{shared → layout}/panel/panel.html.erb +0 -0
  328. /data/app/components/coco/{shared → layout}/panel/panel.rb +0 -0
  329. /data/app/components/coco/{shared → layout}/spacer/spacer.css +0 -0
  330. /data/app/components/coco/{shared → layout}/spacer/spacer.rb +0 -0
  331. /data/app/components/coco/{shared → layout}/stack/stack.css +0 -0
  332. /data/app/components/coco/{shared → layout}/stack/stack.html.erb +0 -0
  333. /data/app/components/coco/{shared → layout}/stack/stack.rb +0 -0
  334. /data/app/components/coco/{shared → modals}/modal/modal.css +0 -0
  335. /data/app/components/coco/{shared → modals}/modal/modal.html.erb +0 -0
  336. /data/app/components/coco/{shared → modals}/modal_dialog/modal_dialog.css +0 -0
  337. /data/app/components/coco/{shared → modals}/modal_dialog/modal_dialog.html.erb +0 -0
  338. /data/app/components/coco/{shared → modals}/modal_dialog/modal_dialog.rb +0 -0
  339. /data/app/components/coco/{shared → modals}/modal_lightbox/modal_lightbox.css +0 -0
  340. /data/app/components/coco/{shared → modals}/modal_lightbox/modal_lightbox.html.erb +0 -0
  341. /data/app/components/coco/{shared → modals}/modal_lightbox/modal_lightbox.rb +0 -0
  342. /data/app/components/coco/{shared → navigation}/link/link.css +0 -0
  343. /data/app/components/coco/{shared/pager_link/pager_link.html.erb → navigation/pager_button/pager_button.html.erb} +0 -0
  344. /data/app/components/coco/{shared → typography}/prose/prose.css +0 -0
  345. /data/app/components/coco/{shared → typography}/prose/prose.rb +0 -0
  346. /data/app/components/coco/{shared → utilities}/content/content.rb +0 -0
  347. /data/app/components/coco/{shared → utilities}/dropdown/dropdown.css +0 -0
  348. /data/app/components/coco/{shared → utilities}/dropdown/dropdown.html.erb +0 -0
  349. /data/app/components/coco/{shared → utilities}/dropdown/dropdown.rb +0 -0
  350. /data/app/components/coco/{shared → utilities}/placeholder/placeholder.css +0 -0
  351. /data/app/components/coco/{shared → utilities}/placeholder/placeholder.html.erb +0 -0
  352. /data/app/components/coco/{shared → utilities}/placeholder/placeholder.rb +0 -0
  353. /data/app/components/coco/{shared → utilities}/poll_controller/poll_controller.css +0 -0
  354. /data/app/components/coco/{shared → utilities}/poll_controller/poll_controller.html.erb +0 -0
  355. /data/app/components/coco/{shared → utilities}/poll_controller/poll_controller.rb +0 -0
@@ -1,4 +1,4 @@
1
- <%= render component_tag(x: {data: x_data("appImagePicker", {src: src}), ":class": "hasImage && 'has-image'"}) do %>
1
+ <%= render component_tag(x: {data: x_data("imagePicker", {src: src}), ":class": "hasImage && 'has-image'"}) do %>
2
2
  <div class="picker-file-name" x-show="hasImage">
3
3
  <label x-text="name"></label>
4
4
  </div>
@@ -1,8 +1,8 @@
1
- import { CocoComponent } from "@assets/js/shared/coco";
1
+ import { CocoComponent } from "@assets/js/base/coco";
2
2
  import { getComponent } from "@helpers/alpine";
3
3
  import { basename } from "@helpers/path";
4
4
 
5
- export default CocoComponent("appImagePicker", ({ src }) => {
5
+ export default CocoComponent("imagePicker", ({ src }) => {
6
6
  return {
7
7
  image: {
8
8
  name: basename(src),
@@ -0,0 +1,20 @@
1
+ module Coco
2
+ class ImagePicker < Coco::Component
3
+ include Concerns::AcceptsOptions
4
+
5
+ accepts_option :size, from: [:sm, :md, nil], default: :sm
6
+
7
+ renders_one :blank_state_text
8
+
9
+ before_render do
10
+ args[:resize]&.each { set_tag_data_attr("size-#{_1}", _2) }
11
+ end
12
+
13
+ attr_reader :uploader_args, :src
14
+
15
+ def initialize(src: nil, accept: "image/*", **kwargs)
16
+ @src = src
17
+ @uploader_args = {accept: accept}
18
+ end
19
+ end
20
+ end
@@ -1,6 +1,6 @@
1
1
  module Coco
2
2
  class PresentedComponent < ViewComponent::Base
3
- include Coco::ComponentHelper
3
+ include Coco::ComponentsHelper
4
4
 
5
5
  attr_accessor :subject
6
6
 
@@ -1,4 +1,4 @@
1
- import { CocoComponent } from "@assets/js/shared/coco";
1
+ import { CocoComponent } from "@assets/js/base/coco";
2
2
 
3
3
  export default CocoComponent("dropdown", () => {
4
4
  return {};
@@ -1,4 +1,4 @@
1
- import { CocoComponent } from "@assets/js/shared/coco";
1
+ import { CocoComponent } from "@assets/js/base/coco";
2
2
 
3
3
  export default CocoComponent("pollController", () => {
4
4
  return {
@@ -1,5 +1,5 @@
1
1
  @layer components {
2
- [data-coco][data-component="app-seamless-textarea"] {
2
+ [data-coco][data-component="seamless-textarea"] {
3
3
  @apply text-current;
4
4
 
5
5
  textarea {
@@ -1,4 +1,4 @@
1
- <%= render component_tag(x: {data: "appSeamlessTextarea", options: "options"}) do %>
1
+ <%= render component_tag(x: {data: "seamlessTextarea", options: "options"}) do %>
2
2
  <%= text_area_tag(nil, value,
3
3
  id: nil,
4
4
  placeholder: placeholder,
@@ -1,6 +1,6 @@
1
- import { CocoComponent } from "@assets/js/shared/coco";
1
+ import { CocoComponent } from "@assets/js/base/coco";
2
2
 
3
- export default CocoComponent("appSeamlessTextarea", () => {
3
+ export default CocoComponent("seamlessTextarea", () => {
4
4
  return {
5
5
  height: null,
6
6
  observer: null,
@@ -0,0 +1,25 @@
1
+ module Coco
2
+ class SeamlessTextarea < Coco::Component
3
+ include TagHelper
4
+ include Concerns::AcceptsOptions
5
+
6
+ accepts_option :multiline, from: [true, false]
7
+ accepts_option :focus, from: [true, false]
8
+
9
+ attr_reader :placeholder
10
+
11
+ def initialize(textarea: nil, value: nil, placeholder: nil, **kwargs)
12
+ @textarea_args = textarea.to_h
13
+ @value = value
14
+ @placeholder = placeholder
15
+ end
16
+
17
+ def multiline?
18
+ get_option_value(:multiline)
19
+ end
20
+
21
+ def value
22
+ (@value.presence || content.presence || "").strip_heredoc.strip
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,35 @@
1
+ module Coco
2
+ module AppComponentsHelper
3
+ def coco_plan_card(**, &block)
4
+ render Coco::App::PlanCard.new(**), &block
5
+ end
6
+
7
+ def coco_faqs(**, &block)
8
+ render Coco::App::Faqs.new(**), &block
9
+ end
10
+
11
+ def coco_contact_callout(**, &block)
12
+ render Coco::App::ContactCallout.new(**), &block
13
+ end
14
+
15
+ def coco_plan_picker(**, &block)
16
+ render Coco::App::PlanPicker.new(**), &block
17
+ end
18
+
19
+ def coco_app_header(*, **, &block)
20
+ render Coco::App::Header.new(*, **), &block
21
+ end
22
+
23
+ def coco_sidebar_nav(*, **, &block)
24
+ render Coco::App::SidebarNav::Navbar.new(*, **), &block
25
+ end
26
+
27
+ def coco_sidebar_nav_menu(*, **, &block)
28
+ render Coco::App::SidebarNav::Menu.new(*, **), &block
29
+ end
30
+
31
+ def coco_app_layout(**, &block)
32
+ render Coco::App::ApplicationLayout.new(**), &block
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,11 @@
1
+ module Coco
2
+ module BookComponentsHelper
3
+ def coco_editable_slide(**, &block)
4
+ render Coco::Book::EditableSlide.new(**), &block
5
+ end
6
+
7
+ def coco_media_slide(src = nil, **, &block)
8
+ render Coco::Book::MediaSlide.new(src: src, **), &block
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ module Coco
2
+ module ComponentsHelper
3
+ include Coco::CoreComponentsHelper
4
+ include Coco::BookComponentsHelper
5
+ include Coco::AppComponentsHelper
6
+ end
7
+ end
@@ -0,0 +1,257 @@
1
+ module Coco
2
+ module CoreComponentsHelper
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
256
+ end
257
+ end
@@ -1,7 +1,7 @@
1
1
  module Coco
2
2
  module Helpers
3
- include Coco::ComponentHelper
4
- include Coco::UrlHelper
3
+ include Coco::ModalHelper
4
+ include Coco::ComponentsHelper
5
5
  include Coco::IntegrationHelper
6
6
  end
7
7
  end
@@ -0,0 +1,22 @@
1
+ module Coco
2
+ module ModalHelper
3
+ def coco_modal_frame_id(name = "default")
4
+ "coco-modal-frame-#{name.to_s.dasherize}"
5
+ end
6
+
7
+ def coco_modal_data_attributes(name = "default")
8
+ return {} if name.nil?
9
+ {
10
+ turbo: true,
11
+ turbo_frame: coco_modal_frame_id(name)
12
+ }
13
+ end
14
+
15
+ # Deprecated, do not use
16
+ def coco_link_to_modal(*, data: {}, modal: nil, **kwargs, &)
17
+ kwargs[:data] = coco_modal_data_attributes(modal || "default").merge(data)
18
+
19
+ coco_link_to(*, **kwargs, &)
20
+ end
21
+ end
22
+ end
@@ -1,24 +1,23 @@
1
1
  en:
2
2
  coco:
3
3
  app:
4
- blocks:
5
- slide_editor:
6
- bg_color_picker:
7
- label: "Background colour"
8
- bg_image_picker:
9
- label: "Background image"
10
- blank_state: "Drag a jpg, png or gif onto the slide area or..."
11
- text_color_picker:
12
- label: "Text colour"
13
- layout_picker:
14
- label: "Layout"
15
- undo_button:
16
- tooltip: "Undo"
17
- redo_button:
18
- tooltip: "Redo"
19
- save_button:
20
- label: "Save"
21
- saving_label: "Saving..."
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..."
22
21
  test:
23
22
  translatable:
24
23
  greeting: "Hello"
@@ -1,6 +1,8 @@
1
1
  /** @type {import('tailwindcss').Config} */
2
2
 
3
+ const defaultTheme = require("tailwindcss/defaultTheme");
3
4
  const { cocoPath } = require("./utils.cjs");
5
+ const { fontSize, fontFamily, colors, screens } = require("./tokens.cjs");
4
6
 
5
7
  module.exports = {
6
8
  content: [
@@ -15,7 +17,15 @@ module.exports = {
15
17
  ],
16
18
  blocklist: ["container"],
17
19
  theme: {
20
+ colors,
21
+ screens,
22
+ fontFamily: {
23
+ display: [fontFamily.displaySans, ...defaultTheme.fontFamily.sans],
24
+ body: [fontFamily.bodySans, ...defaultTheme.fontFamily.sans],
25
+ branded: [fontFamily.displaySerif, ...defaultTheme.fontFamily.serif],
26
+ },
18
27
  extend: {
28
+ fontSize,
19
29
  containers: {
20
30
  "slide-fluid": "700px",
21
31
  },
data/config/tokens.cjs CHANGED
@@ -219,29 +219,15 @@ const fontSize = {
219
219
  };
220
220
 
221
221
  module.exports = {
222
- app: {
223
- colors: {
224
- ...colors,
225
- ...colorAliases,
226
- },
227
- screens,
228
- fontSize,
229
- fontFamily: {
230
- displaySans: "proxima-nova",
231
- bodySans: "proxima-nova",
232
- displaySerif: "merriweather",
233
- },
222
+ colors: {
223
+ ...colors,
224
+ ...colorAliases,
234
225
  },
235
- book: {
236
- colors: {
237
- ...colors,
238
- ...colorAliases,
239
- },
240
- screens,
241
- fontSize,
242
- fontFamily: {
243
- displaySans: "proxima-nova",
244
- bodySans: "proxima-nova",
245
- },
226
+ screens,
227
+ fontSize,
228
+ fontFamily: {
229
+ displaySans: "proxima-nova",
230
+ bodySans: "proxima-nova",
231
+ displaySerif: "merriweather",
246
232
  },
247
233
  };
@@ -1,3 +1,3 @@
1
1
  class Coco::AppFormBuilder < ViewComponent::Form::Builder
2
- namespace "Coco::App::Fields"
2
+ namespace "Coco::Fields"
3
3
  end
data/lib/coco/engine.rb CHANGED
@@ -7,7 +7,7 @@ module Coco
7
7
  class Engine < ::Rails::Engine
8
8
  isolate_namespace Coco
9
9
 
10
- COLLAPSE_DIRS = %w[shared]
10
+ COLLAPSE_DIRS = %w[shared layout messaging pickers buttons modals navigation utilities typography images indicators embeds]
11
11
 
12
12
  config.autoload_paths += %W[
13
13
  #{root}/app/components
@@ -22,11 +22,11 @@ module Coco
22
22
  autoloader.collapse("#{coco_dir}/#{path}")
23
23
  end
24
24
 
25
- Dir.glob("#{coco_dir}/shared/**/*.rb").each do |path|
25
+ Dir.glob("#{coco_dir}/{#{COLLAPSE_DIRS.join(",")}}/**/*.rb").each do |path|
26
26
  autoloader.collapse(File.dirname(path))
27
27
  end
28
28
 
29
- Dir.glob("#{coco_dir}/{app,book}/{blocks,elements,layouts}/**/*.rb").each do |path|
29
+ Dir.glob("#{coco_dir}/{app,book}/**/*.rb").each do |path|
30
30
  autoloader.collapse(File.dirname(path))
31
31
  end
32
32
  end
data/lib/coco.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Coco
2
- VERSION = "0.12.2"
2
+ VERSION = "0.13.0"
3
3
  end