panda-cms 0.7.3 → 0.7.5

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 (182) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +40 -5
  3. data/Rakefile +2 -0
  4. data/app/assets/builds/panda.cms.css +2 -6
  5. data/app/assets/tailwind/application.css +178 -0
  6. data/app/assets/tailwind/tailwind.config.js +15 -0
  7. data/app/builders/panda/cms/form_builder.rb +27 -36
  8. data/app/components/panda/cms/admin/flash_message_component.html.erb +2 -2
  9. data/app/components/panda/cms/admin/heading_component.rb +5 -4
  10. data/app/components/panda/cms/admin/panel_component.rb +2 -2
  11. data/app/components/panda/cms/admin/statistics_component.rb +1 -2
  12. data/app/components/panda/cms/admin/user_activity_component.html.erb +3 -1
  13. data/app/components/panda/cms/admin/user_activity_component.rb +8 -21
  14. data/app/components/panda/cms/code_component.rb +8 -4
  15. data/app/components/panda/cms/menu_component.rb +7 -6
  16. data/app/components/panda/cms/page_menu_component.rb +15 -17
  17. data/app/components/panda/cms/rich_text_component.rb +5 -6
  18. data/app/components/panda/cms/text_component.rb +6 -7
  19. data/app/constraints/panda/cms/admin_constraint.rb +4 -1
  20. data/app/controllers/panda/cms/admin/block_contents_controller.rb +0 -1
  21. data/app/controllers/panda/cms/admin/dashboard_controller.rb +13 -9
  22. data/app/controllers/panda/cms/admin/forms_controller.rb +0 -3
  23. data/app/controllers/panda/cms/admin/my_profile_controller.rb +44 -0
  24. data/app/controllers/panda/cms/admin/pages_controller.rb +15 -4
  25. data/app/controllers/panda/cms/admin/posts_controller.rb +6 -22
  26. data/app/controllers/panda/cms/admin/sessions_controller.rb +3 -5
  27. data/app/controllers/panda/cms/admin/settings/bulk_editor_controller.rb +32 -25
  28. data/app/controllers/panda/cms/admin/settings_controller.rb +14 -10
  29. data/app/controllers/panda/cms/application_controller.rb +7 -2
  30. data/app/controllers/panda/cms/errors_controller.rb +5 -2
  31. data/app/controllers/panda/cms/form_submissions_controller.rb +4 -0
  32. data/app/controllers/panda/cms/pages_controller.rb +40 -35
  33. data/app/controllers/panda/cms/posts_controller.rb +2 -0
  34. data/app/helpers/panda/cms/admin/files_helper.rb +5 -1
  35. data/app/helpers/panda/cms/admin/pages_helper.rb +5 -1
  36. data/app/helpers/panda/cms/asset_helper.rb +182 -0
  37. data/app/helpers/panda/cms/pages_helper.rb +2 -0
  38. data/app/helpers/panda/cms/posts_helper.rb +2 -0
  39. data/app/helpers/panda/cms/theme_helper.rb +2 -0
  40. data/app/javascript/panda/cms/controllers/editor_form_controller.js +59 -6
  41. data/app/javascript/panda/cms/controllers/index.js +5 -9
  42. data/app/javascript/panda/cms/controllers/slug_controller.js +64 -31
  43. data/app/javascript/panda/cms/controllers/theme_form_controller.js +25 -0
  44. data/app/javascript/panda/cms/stimulus-loading.js +39 -0
  45. data/app/javascript/panda_cms/stimulus-loading.js +39 -0
  46. data/app/jobs/panda/cms/application_job.rb +2 -0
  47. data/app/jobs/panda/cms/record_visit_job.rb +14 -14
  48. data/app/mailers/panda/cms/application_mailer.rb +2 -0
  49. data/app/mailers/panda/cms/form_mailer.rb +3 -1
  50. data/app/models/panda/cms/application_record.rb +3 -0
  51. data/app/models/panda/cms/block.rb +12 -17
  52. data/app/models/panda/cms/block_content.rb +7 -6
  53. data/app/models/panda/cms/breadcrumb.rb +2 -0
  54. data/app/models/panda/cms/current.rb +2 -0
  55. data/app/models/panda/cms/form.rb +2 -0
  56. data/app/models/panda/cms/form_submission.rb +2 -0
  57. data/app/models/panda/cms/menu.rb +12 -9
  58. data/app/models/panda/cms/menu_item.rb +10 -6
  59. data/app/models/panda/cms/page.rb +31 -16
  60. data/app/models/panda/cms/post.rb +12 -10
  61. data/app/models/panda/cms/redirect.rb +9 -1
  62. data/app/models/panda/cms/template.rb +17 -13
  63. data/app/models/panda/cms/user.rb +2 -0
  64. data/app/models/panda/cms/visit.rb +3 -1
  65. data/app/models/panda/social/instagram_post.rb +17 -0
  66. data/app/services/panda/cms/html_to_editor_js_converter.rb +10 -15
  67. data/app/services/panda/social/instagram_feed_service.rb +63 -0
  68. data/app/views/layouts/different_page.html.erb +6 -0
  69. data/app/views/layouts/homepage.html.erb +37 -0
  70. data/app/views/layouts/page.html.erb +18 -0
  71. data/app/views/layouts/panda/cms/application.html.erb +1 -0
  72. data/app/views/panda/cms/admin/my_profile/edit.html.erb +35 -0
  73. data/app/views/panda/cms/admin/pages/index.html.erb +1 -1
  74. data/app/views/panda/cms/admin/pages/new.html.erb +14 -8
  75. data/app/views/panda/cms/admin/posts/_form.html.erb +10 -0
  76. data/app/views/panda/cms/admin/posts/edit.html.erb +3 -2
  77. data/app/views/panda/cms/admin/posts/index.html.erb +1 -1
  78. data/app/views/panda/cms/admin/settings/index.html.erb +3 -1
  79. data/app/views/panda/cms/admin/shared/_sidebar.html.erb +1 -1
  80. data/app/views/panda/cms/shared/_header.html.erb +14 -4
  81. data/app/views/panda/cms/shared/_importmap.html.erb +2 -1
  82. data/app/views/shared/_footer.html.erb +3 -0
  83. data/app/views/shared/_header.html.erb +11 -0
  84. data/config/importmap.rb +2 -0
  85. data/config/initializers/inflections.rb +2 -0
  86. data/config/initializers/panda/cms/form_errors.rb +20 -21
  87. data/config/initializers/panda/cms/healthcheck_log_silencer.rb +2 -0
  88. data/config/initializers/panda/cms.rb +2 -0
  89. data/config/initializers/zeitwork.rb +2 -0
  90. data/config/locales/en.yml +5 -0
  91. data/config/puma/test.rb +3 -1
  92. data/config/routes.rb +11 -8
  93. data/db/migrate/20240205223709_create_panda_cms_pages.rb +2 -0
  94. data/db/migrate/20240219213327_create_panda_cms_page_versions.rb +2 -0
  95. data/db/migrate/20240303002805_create_panda_cms_templates.rb +4 -1
  96. data/db/migrate/20240303003434_create_panda_cms_template_versions.rb +2 -0
  97. data/db/migrate/20240303022441_create_panda_cms_blocks.rb +4 -1
  98. data/db/migrate/20240303024256_create_panda_cms_block_contents.rb +2 -0
  99. data/db/migrate/20240303024746_create_panda_cms_block_content_versions.rb +2 -0
  100. data/db/migrate/20240303233238_add_panda_cms_menu_table.rb +2 -0
  101. data/db/migrate/20240303234724_add_panda_cms_menu_item_table.rb +2 -0
  102. data/db/migrate/20240304134343_add_parent_id_to_panda_cms_pages.rb +2 -0
  103. data/db/migrate/20240315125411_add_status_to_panda_cms_pages.rb +7 -5
  104. data/db/migrate/20240315125421_add_nested_sets_to_panda_cms_pages.rb +2 -0
  105. data/db/migrate/20240316212822_add_kind_to_panda_cms_menus.rb +3 -1
  106. data/db/migrate/20240316221425_add_start_page_to_panda_cms_menus.rb +2 -0
  107. data/db/migrate/20240316230706_add_nested_to_panda_cms_menu_items.rb +2 -0
  108. data/db/migrate/20240317010532_create_panda_cms_users.rb +2 -0
  109. data/db/migrate/20240317161534_add_max_uses_to_panda_cms_template.rb +2 -0
  110. data/db/migrate/20240317163053_reset_counter_cache_on_panda_cms_template.rb +2 -0
  111. data/db/migrate/20240317214827_create_panda_cms_redirects.rb +2 -0
  112. data/db/migrate/20240317230622_create_panda_cms_visits.rb +2 -0
  113. data/db/migrate/20240324205703_create_active_storage_tables.active_storage.rb +5 -2
  114. data/db/migrate/20240408084718_default_panda_cms_users_admin_to_false.rb +2 -0
  115. data/db/migrate/20240701225422_add_service_name_to_active_storage_blobs.active_storage.rb +8 -6
  116. data/db/migrate/20240701225423_create_active_storage_variant_records.active_storage.rb +2 -0
  117. data/db/migrate/20240701225424_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb +2 -0
  118. data/db/migrate/20240804235210_create_panda_cms_forms.rb +2 -0
  119. data/db/migrate/20240805013612_create_panda_cms_form_submissions.rb +2 -0
  120. data/db/migrate/20240805121123_create_panda_cms_posts.rb +3 -1
  121. data/db/migrate/20240805123104_create_panda_cms_post_versions.rb +2 -0
  122. data/db/migrate/20240806112735_fix_panda_cms_visits_column_names.rb +2 -0
  123. data/db/migrate/20240806204412_add_completion_path_to_panda_cms_forms.rb +2 -0
  124. data/db/migrate/20240820081917_change_form_submissions_to_submission_count.rb +2 -0
  125. data/db/migrate/20240923234535_add_depth_to_panda_cms_menus.rb +6 -4
  126. data/db/migrate/20241031205109_add_cached_content_to_panda_cms_block_contents.rb +2 -0
  127. data/db/migrate/20241119214548_convert_post_content_to_editor_js.rb +2 -0
  128. data/db/migrate/20241120000419_remove_post_tag_references.rb +2 -0
  129. data/db/migrate/20241120110943_add_editor_js_to_posts.rb +2 -0
  130. data/db/migrate/20241120113859_add_cached_content_to_panda_cms_posts.rb +2 -0
  131. data/db/migrate/20241123234140_remove_post_tag_id_from_posts.rb +2 -0
  132. data/db/migrate/20250106223303_add_author_id_to_panda_cms_posts.rb +2 -0
  133. data/db/migrate/20250120235542_remove_paper_trail.rb +56 -0
  134. data/db/migrate/20250126234001_create_panda_social_instagram_posts.rb +16 -0
  135. data/db/migrate/20250504221812_add_current_theme_to_panda_cms_users.rb +7 -0
  136. data/db/seeds.rb +2 -0
  137. data/lib/generators/panda/cms/install_generator.rb +2 -0
  138. data/lib/panda/cms/asset_loader.rb +390 -0
  139. data/lib/panda/cms/bulk_editor.rb +7 -3
  140. data/lib/panda/cms/demo_site_generator.rb +27 -4
  141. data/lib/panda/cms/editor_js/blocks/alert.rb +2 -0
  142. data/lib/panda/cms/editor_js/blocks/base.rb +2 -0
  143. data/lib/panda/cms/editor_js/blocks/header.rb +2 -0
  144. data/lib/panda/cms/editor_js/blocks/image.rb +3 -0
  145. data/lib/panda/cms/editor_js/blocks/list.rb +2 -0
  146. data/lib/panda/cms/editor_js/blocks/paragraph.rb +3 -0
  147. data/lib/panda/cms/editor_js/blocks/quote.rb +3 -0
  148. data/lib/panda/cms/editor_js/blocks/table.rb +3 -1
  149. data/lib/panda/cms/editor_js/renderer.rb +3 -0
  150. data/lib/panda/cms/editor_js.rb +2 -0
  151. data/lib/panda/cms/editor_js_content.rb +50 -23
  152. data/lib/panda/cms/engine.rb +36 -37
  153. data/lib/panda/cms/exceptions_app.rb +2 -0
  154. data/lib/panda/cms/railtie.rb +2 -0
  155. data/lib/panda/cms/slug.rb +3 -1
  156. data/lib/panda-cms/version.rb +3 -1
  157. data/lib/panda-cms.rb +17 -2
  158. data/lib/tasks/assets.rake +547 -0
  159. data/lib/tasks/panda/cms/install.rake +25 -0
  160. data/lib/tasks/panda/social/instagram.rake +20 -0
  161. data/lib/tasks/panda_cms.rake +3 -30
  162. data/public/panda-cms-assets/editor-js/core/editorjs.min.js +83 -0
  163. data/public/panda-cms-assets/editor-js/plugins/embed.min.js +2 -0
  164. data/public/panda-cms-assets/editor-js/plugins/header.min.js +9 -0
  165. data/public/panda-cms-assets/editor-js/plugins/nested-list.min.js +2 -0
  166. data/public/panda-cms-assets/editor-js/plugins/paragraph.min.js +9 -0
  167. data/public/panda-cms-assets/editor-js/plugins/quote.min.js +2 -0
  168. data/public/panda-cms-assets/editor-js/plugins/simple-image.min.js +2 -0
  169. data/public/panda-cms-assets/editor-js/plugins/table.min.js +2 -0
  170. data/public/panda-cms-assets/manifest.json +20 -0
  171. data/public/panda-cms-assets/panda-cms-0.7.4.css +26 -0
  172. data/public/panda-cms-assets/panda-cms-0.7.4.js +150 -0
  173. metadata +71 -438
  174. data/app/models/action_text/rich_text_version.rb +0 -6
  175. data/app/models/panda/cms/block_content_version.rb +0 -8
  176. data/app/models/panda/cms/page_version.rb +0 -8
  177. data/app/models/panda/cms/post_version.rb +0 -8
  178. data/app/models/panda/cms/template_version.rb +0 -8
  179. data/app/models/panda/cms/version.rb +0 -8
  180. data/config/initializers/panda/cms/paper_trail.rb +0 -7
  181. data/db/migrate/20240904200605_create_action_text_tables.action_text.rb +0 -24
  182. data/db/migrate/20241119214549_remove_action_text_from_posts.rb +0 -9
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: panda-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.5
5
5
  platform: ruby
6
6
  authors:
7
- - Panda Software Limited
7
+ - Otaina Limited t/a Tasty Bamboo
8
+ - James Inman
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 2025-01-20 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
- name: panda-core
14
+ name: awesome_nested_set
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - ">="
@@ -24,7 +25,7 @@ dependencies:
24
25
  - !ruby/object:Gem::Version
25
26
  version: '0'
26
27
  - !ruby/object:Gem::Dependency
27
- name: pg
28
+ name: down
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ">="
@@ -38,7 +39,7 @@ dependencies:
38
39
  - !ruby/object:Gem::Version
39
40
  version: '0'
40
41
  - !ruby/object:Gem::Dependency
41
- name: sanitize
42
+ name: faraday
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - ">="
@@ -52,7 +53,7 @@ dependencies:
52
53
  - !ruby/object:Gem::Version
53
54
  version: '0'
54
55
  - !ruby/object:Gem::Dependency
55
- name: groupdate
56
+ name: faraday-multipart
56
57
  requirement: !ruby/object:Gem::Requirement
57
58
  requirements:
58
59
  - - ">="
@@ -66,237 +67,13 @@ dependencies:
66
67
  - !ruby/object:Gem::Version
67
68
  version: '0'
68
69
  - !ruby/object:Gem::Dependency
69
- name: annotaterb
70
- requirement: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: '0'
75
- type: :development
76
- prerelease: false
77
- version_requirements: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- - !ruby/object:Gem::Dependency
83
- name: better_errors
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- type: :development
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- - !ruby/object:Gem::Dependency
97
- name: binding_of_caller
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: brakeman
70
+ name: faraday-retry
112
71
  requirement: !ruby/object:Gem::Requirement
113
72
  requirements:
114
73
  - - ">="
115
74
  - !ruby/object:Gem::Version
116
75
  version: '0'
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- - !ruby/object:Gem::Dependency
125
- name: bullet
126
- requirement: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
- type: :development
132
- prerelease: false
133
- version_requirements: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- - !ruby/object:Gem::Dependency
139
- name: bundler-audit
140
- requirement: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- type: :development
146
- prerelease: false
147
- version_requirements: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
- - !ruby/object:Gem::Dependency
153
- name: capybara
154
- requirement: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
- type: :development
160
- prerelease: false
161
- version_requirements: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- version: '0'
166
- - !ruby/object:Gem::Dependency
167
- name: cuprite
168
- requirement: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- version: '0'
173
- type: :development
174
- prerelease: false
175
- version_requirements: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- version: '0'
180
- - !ruby/object:Gem::Dependency
181
- name: danger
182
- requirement: !ruby/object:Gem::Requirement
183
- requirements:
184
- - - ">="
185
- - !ruby/object:Gem::Version
186
- version: '0'
187
- type: :development
188
- prerelease: false
189
- version_requirements: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - ">="
192
- - !ruby/object:Gem::Version
193
- version: '0'
194
- - !ruby/object:Gem::Dependency
195
- name: danger-reek
196
- requirement: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- version: '0'
201
- type: :development
202
- prerelease: false
203
- version_requirements: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- version: '0'
208
- - !ruby/object:Gem::Dependency
209
- name: danger-rubocop
210
- requirement: !ruby/object:Gem::Requirement
211
- requirements:
212
- - - ">="
213
- - !ruby/object:Gem::Version
214
- version: '0'
215
- type: :development
216
- prerelease: false
217
- version_requirements: !ruby/object:Gem::Requirement
218
- requirements:
219
- - - ">="
220
- - !ruby/object:Gem::Version
221
- version: '0'
222
- - !ruby/object:Gem::Dependency
223
- name: danger-simplecov_json
224
- requirement: !ruby/object:Gem::Requirement
225
- requirements:
226
- - - ">="
227
- - !ruby/object:Gem::Version
228
- version: '0'
229
- type: :development
230
- prerelease: false
231
- version_requirements: !ruby/object:Gem::Requirement
232
- requirements:
233
- - - ">="
234
- - !ruby/object:Gem::Version
235
- version: '0'
236
- - !ruby/object:Gem::Dependency
237
- name: danger-todoist
238
- requirement: !ruby/object:Gem::Requirement
239
- requirements:
240
- - - ">="
241
- - !ruby/object:Gem::Version
242
- version: '0'
243
- type: :development
244
- prerelease: false
245
- version_requirements: !ruby/object:Gem::Requirement
246
- requirements:
247
- - - ">="
248
- - !ruby/object:Gem::Version
249
- version: '0'
250
- - !ruby/object:Gem::Dependency
251
- name: debug
252
- requirement: !ruby/object:Gem::Requirement
253
- requirements:
254
- - - ">="
255
- - !ruby/object:Gem::Version
256
- version: '0'
257
- type: :development
258
- prerelease: false
259
- version_requirements: !ruby/object:Gem::Requirement
260
- requirements:
261
- - - ">="
262
- - !ruby/object:Gem::Version
263
- version: '0'
264
- - !ruby/object:Gem::Dependency
265
- name: erb_lint
266
- requirement: !ruby/object:Gem::Requirement
267
- requirements:
268
- - - ">="
269
- - !ruby/object:Gem::Version
270
- version: '0'
271
- type: :development
272
- prerelease: false
273
- version_requirements: !ruby/object:Gem::Requirement
274
- requirements:
275
- - - ">="
276
- - !ruby/object:Gem::Version
277
- version: '0'
278
- - !ruby/object:Gem::Dependency
279
- name: factory_bot_rails
280
- requirement: !ruby/object:Gem::Requirement
281
- requirements:
282
- - - ">="
283
- - !ruby/object:Gem::Version
284
- version: '0'
285
- type: :development
286
- prerelease: false
287
- version_requirements: !ruby/object:Gem::Requirement
288
- requirements:
289
- - - ">="
290
- - !ruby/object:Gem::Version
291
- version: '0'
292
- - !ruby/object:Gem::Dependency
293
- name: faker
294
- requirement: !ruby/object:Gem::Requirement
295
- requirements:
296
- - - ">="
297
- - !ruby/object:Gem::Version
298
- version: '0'
299
- type: :development
76
+ type: :runtime
300
77
  prerelease: false
301
78
  version_requirements: !ruby/object:Gem::Requirement
302
79
  requirements:
@@ -304,13 +81,13 @@ dependencies:
304
81
  - !ruby/object:Gem::Version
305
82
  version: '0'
306
83
  - !ruby/object:Gem::Dependency
307
- name: fasterer
84
+ name: groupdate
308
85
  requirement: !ruby/object:Gem::Requirement
309
86
  requirements:
310
87
  - - ">="
311
88
  - !ruby/object:Gem::Version
312
89
  version: '0'
313
- type: :development
90
+ type: :runtime
314
91
  prerelease: false
315
92
  version_requirements: !ruby/object:Gem::Requirement
316
93
  requirements:
@@ -318,13 +95,13 @@ dependencies:
318
95
  - !ruby/object:Gem::Version
319
96
  version: '0'
320
97
  - !ruby/object:Gem::Dependency
321
- name: generator_spec
98
+ name: http
322
99
  requirement: !ruby/object:Gem::Requirement
323
100
  requirements:
324
101
  - - ">="
325
102
  - !ruby/object:Gem::Version
326
103
  version: '0'
327
- type: :development
104
+ type: :runtime
328
105
  prerelease: false
329
106
  version_requirements: !ruby/object:Gem::Requirement
330
107
  requirements:
@@ -332,195 +109,27 @@ dependencies:
332
109
  - !ruby/object:Gem::Version
333
110
  version: '0'
334
111
  - !ruby/object:Gem::Dependency
335
- name: listen
112
+ name: importmap-rails
336
113
  requirement: !ruby/object:Gem::Requirement
337
114
  requirements:
338
115
  - - ">="
339
- - !ruby/object:Gem::Version
340
- version: '0'
341
- type: :development
342
- prerelease: false
343
- version_requirements: !ruby/object:Gem::Requirement
344
- requirements:
345
- - - ">="
346
- - !ruby/object:Gem::Version
347
- version: '0'
348
- - !ruby/object:Gem::Dependency
349
- name: lookbook
350
- requirement: !ruby/object:Gem::Requirement
351
- requirements:
352
- - - "~>"
353
- - !ruby/object:Gem::Version
354
- version: '2'
355
- type: :development
356
- prerelease: false
357
- version_requirements: !ruby/object:Gem::Requirement
358
- requirements:
359
- - - "~>"
360
116
  - !ruby/object:Gem::Version
361
117
  version: '2'
362
- - !ruby/object:Gem::Dependency
363
- name: puma
364
- requirement: !ruby/object:Gem::Requirement
365
- requirements:
366
- - - ">="
367
- - !ruby/object:Gem::Version
368
- version: '0'
369
- type: :development
370
- prerelease: false
371
- version_requirements: !ruby/object:Gem::Requirement
372
- requirements:
373
- - - ">="
374
- - !ruby/object:Gem::Version
375
- version: '0'
376
- - !ruby/object:Gem::Dependency
377
- name: rake
378
- requirement: !ruby/object:Gem::Requirement
379
- requirements:
380
- - - ">="
381
- - !ruby/object:Gem::Version
382
- version: '0'
383
- type: :development
384
- prerelease: false
385
- version_requirements: !ruby/object:Gem::Requirement
386
- requirements:
387
- - - ">="
388
- - !ruby/object:Gem::Version
389
- version: '0'
390
- - !ruby/object:Gem::Dependency
391
- name: rspec
392
- requirement: !ruby/object:Gem::Requirement
393
- requirements:
394
- - - ">="
395
- - !ruby/object:Gem::Version
396
- version: '0'
397
- type: :development
398
- prerelease: false
399
- version_requirements: !ruby/object:Gem::Requirement
400
- requirements:
401
- - - ">="
402
- - !ruby/object:Gem::Version
403
- version: '0'
404
- - !ruby/object:Gem::Dependency
405
- name: rspec-core
406
- requirement: !ruby/object:Gem::Requirement
407
- requirements:
408
- - - "~>"
409
- - !ruby/object:Gem::Version
410
- version: '3.13'
411
- type: :development
412
- prerelease: false
413
- version_requirements: !ruby/object:Gem::Requirement
414
- requirements:
415
- - - "~>"
416
- - !ruby/object:Gem::Version
417
- version: '3.13'
418
- - !ruby/object:Gem::Dependency
419
- name: rspec-github
420
- requirement: !ruby/object:Gem::Requirement
421
- requirements:
422
- - - ">="
423
- - !ruby/object:Gem::Version
424
- version: '0'
425
- type: :development
426
- prerelease: false
427
- version_requirements: !ruby/object:Gem::Requirement
428
- requirements:
429
- - - ">="
430
- - !ruby/object:Gem::Version
431
- version: '0'
432
- - !ruby/object:Gem::Dependency
433
- name: rspec-rails
434
- requirement: !ruby/object:Gem::Requirement
435
- requirements:
436
- - - "~>"
437
- - !ruby/object:Gem::Version
438
- version: '7.1'
439
- type: :development
440
- prerelease: false
441
- version_requirements: !ruby/object:Gem::Requirement
442
- requirements:
443
- - - "~>"
444
- - !ruby/object:Gem::Version
445
- version: '7.1'
446
- - !ruby/object:Gem::Dependency
447
- name: ruby-lsp
448
- requirement: !ruby/object:Gem::Requirement
449
- requirements:
450
- - - ">="
451
- - !ruby/object:Gem::Version
452
- version: '0'
453
- type: :development
454
- prerelease: false
455
- version_requirements: !ruby/object:Gem::Requirement
456
- requirements:
457
- - - ">="
458
- - !ruby/object:Gem::Version
459
- version: '0'
460
- - !ruby/object:Gem::Dependency
461
- name: shoulda-matchers
462
- requirement: !ruby/object:Gem::Requirement
463
- requirements:
464
- - - ">="
465
- - !ruby/object:Gem::Version
466
- version: '0'
467
- type: :development
468
- prerelease: false
469
- version_requirements: !ruby/object:Gem::Requirement
470
- requirements:
471
- - - ">="
472
- - !ruby/object:Gem::Version
473
- version: '0'
474
- - !ruby/object:Gem::Dependency
475
- name: simplecov
476
- requirement: !ruby/object:Gem::Requirement
477
- requirements:
478
- - - "~>"
479
- - !ruby/object:Gem::Version
480
- version: '0.22'
481
- type: :development
482
- prerelease: false
483
- version_requirements: !ruby/object:Gem::Requirement
484
- requirements:
485
- - - "~>"
486
- - !ruby/object:Gem::Version
487
- version: '0.22'
488
- - !ruby/object:Gem::Dependency
489
- name: simplecov-json
490
- requirement: !ruby/object:Gem::Requirement
491
- requirements:
492
- - - ">="
493
- - !ruby/object:Gem::Version
494
- version: '0'
495
- type: :development
496
- prerelease: false
497
- version_requirements: !ruby/object:Gem::Requirement
498
- requirements:
499
- - - ">="
500
- - !ruby/object:Gem::Version
501
- version: '0'
502
- - !ruby/object:Gem::Dependency
503
- name: simplecov-lcov
504
- requirement: !ruby/object:Gem::Requirement
505
- requirements:
506
- - - ">="
507
- - !ruby/object:Gem::Version
508
- version: '0'
509
- type: :development
118
+ type: :runtime
510
119
  prerelease: false
511
120
  version_requirements: !ruby/object:Gem::Requirement
512
121
  requirements:
513
122
  - - ">="
514
123
  - !ruby/object:Gem::Version
515
- version: '0'
124
+ version: '2'
516
125
  - !ruby/object:Gem::Dependency
517
- name: simplecov_json_formatter
126
+ name: invisible_captcha
518
127
  requirement: !ruby/object:Gem::Requirement
519
128
  requirements:
520
129
  - - ">="
521
130
  - !ruby/object:Gem::Version
522
131
  version: '0'
523
- type: :development
132
+ type: :runtime
524
133
  prerelease: false
525
134
  version_requirements: !ruby/object:Gem::Requirement
526
135
  requirements:
@@ -528,13 +137,13 @@ dependencies:
528
137
  - !ruby/object:Gem::Version
529
138
  version: '0'
530
139
  - !ruby/object:Gem::Dependency
531
- name: simplecov_lcov_formatter
140
+ name: panda-core
532
141
  requirement: !ruby/object:Gem::Requirement
533
142
  requirements:
534
143
  - - ">="
535
144
  - !ruby/object:Gem::Version
536
145
  version: '0'
537
- type: :development
146
+ type: :runtime
538
147
  prerelease: false
539
148
  version_requirements: !ruby/object:Gem::Requirement
540
149
  requirements:
@@ -542,13 +151,13 @@ dependencies:
542
151
  - !ruby/object:Gem::Version
543
152
  version: '0'
544
153
  - !ruby/object:Gem::Dependency
545
- name: standard
154
+ name: pg
546
155
  requirement: !ruby/object:Gem::Requirement
547
156
  requirements:
548
157
  - - ">="
549
158
  - !ruby/object:Gem::Version
550
159
  version: '0'
551
- type: :development
160
+ type: :runtime
552
161
  prerelease: false
553
162
  version_requirements: !ruby/object:Gem::Requirement
554
163
  requirements:
@@ -556,13 +165,13 @@ dependencies:
556
165
  - !ruby/object:Gem::Version
557
166
  version: '0'
558
167
  - !ruby/object:Gem::Dependency
559
- name: standard-rails
168
+ name: propshaft
560
169
  requirement: !ruby/object:Gem::Requirement
561
170
  requirements:
562
171
  - - ">="
563
172
  - !ruby/object:Gem::Version
564
173
  version: '0'
565
- type: :development
174
+ type: :runtime
566
175
  prerelease: false
567
176
  version_requirements: !ruby/object:Gem::Requirement
568
177
  requirements:
@@ -570,27 +179,27 @@ dependencies:
570
179
  - !ruby/object:Gem::Version
571
180
  version: '0'
572
181
  - !ruby/object:Gem::Dependency
573
- name: stringio
182
+ name: rails
574
183
  requirement: !ruby/object:Gem::Requirement
575
184
  requirements:
576
185
  - - ">="
577
186
  - !ruby/object:Gem::Version
578
- version: 3.1.2
579
- type: :development
187
+ version: '7.0'
188
+ type: :runtime
580
189
  prerelease: false
581
190
  version_requirements: !ruby/object:Gem::Requirement
582
191
  requirements:
583
192
  - - ">="
584
193
  - !ruby/object:Gem::Version
585
- version: 3.1.2
194
+ version: '7.0'
586
195
  - !ruby/object:Gem::Dependency
587
- name: tty-box
196
+ name: sanitize
588
197
  requirement: !ruby/object:Gem::Requirement
589
198
  requirements:
590
199
  - - ">="
591
200
  - !ruby/object:Gem::Version
592
201
  version: '0'
593
- type: :development
202
+ type: :runtime
594
203
  prerelease: false
595
204
  version_requirements: !ruby/object:Gem::Requirement
596
205
  requirements:
@@ -598,13 +207,13 @@ dependencies:
598
207
  - !ruby/object:Gem::Version
599
208
  version: '0'
600
209
  - !ruby/object:Gem::Dependency
601
- name: tty-screen
210
+ name: silencer
602
211
  requirement: !ruby/object:Gem::Requirement
603
212
  requirements:
604
213
  - - ">="
605
214
  - !ruby/object:Gem::Version
606
215
  version: '0'
607
- type: :development
216
+ type: :runtime
608
217
  prerelease: false
609
218
  version_requirements: !ruby/object:Gem::Requirement
610
219
  requirements:
@@ -612,13 +221,13 @@ dependencies:
612
221
  - !ruby/object:Gem::Version
613
222
  version: '0'
614
223
  - !ruby/object:Gem::Dependency
615
- name: yamllint
224
+ name: tailwindcss-rails
616
225
  requirement: !ruby/object:Gem::Requirement
617
226
  requirements:
618
227
  - - ">="
619
228
  - !ruby/object:Gem::Version
620
229
  version: '0'
621
- type: :development
230
+ type: :runtime
622
231
  prerelease: false
623
232
  version_requirements: !ruby/object:Gem::Requirement
624
233
  requirements:
@@ -626,13 +235,13 @@ dependencies:
626
235
  - !ruby/object:Gem::Version
627
236
  version: '0'
628
237
  - !ruby/object:Gem::Dependency
629
- name: yard-activerecord
238
+ name: view_component
630
239
  requirement: !ruby/object:Gem::Requirement
631
240
  requirements:
632
241
  - - ">="
633
242
  - !ruby/object:Gem::Version
634
243
  version: '0'
635
- type: :development
244
+ type: :runtime
636
245
  prerelease: false
637
246
  version_requirements: !ruby/object:Gem::Requirement
638
247
  requirements:
@@ -651,6 +260,8 @@ files:
651
260
  - app/assets/config/panda_cms_manifest.js
652
261
  - app/assets/stylesheets/panda/cms/application.tailwind.css
653
262
  - app/assets/stylesheets/panda/cms/editor.css
263
+ - app/assets/tailwind/application.css
264
+ - app/assets/tailwind/tailwind.config.js
654
265
  - app/builders/panda/cms/form_builder.rb
655
266
  - app/components/panda/cms/admin/button_component.rb
656
267
  - app/components/panda/cms/admin/container_component.html.erb
@@ -689,6 +300,7 @@ files:
689
300
  - app/controllers/panda/cms/admin/files_controller.rb
690
301
  - app/controllers/panda/cms/admin/forms_controller.rb
691
302
  - app/controllers/panda/cms/admin/menus_controller.rb
303
+ - app/controllers/panda/cms/admin/my_profile_controller.rb
692
304
  - app/controllers/panda/cms/admin/pages_controller.rb
693
305
  - app/controllers/panda/cms/admin/posts_controller.rb
694
306
  - app/controllers/panda/cms/admin/sessions_controller.rb
@@ -703,6 +315,7 @@ files:
703
315
  - app/helpers/panda/cms/admin/pages_helper.rb
704
316
  - app/helpers/panda/cms/admin/posts_helper.rb
705
317
  - app/helpers/panda/cms/application_helper.rb
318
+ - app/helpers/panda/cms/asset_helper.rb
706
319
  - app/helpers/panda/cms/pages_helper.rb
707
320
  - app/helpers/panda/cms/posts_helper.rb
708
321
  - app/helpers/panda/cms/theme_helper.rb
@@ -716,22 +329,23 @@ files:
716
329
  - app/javascript/panda/cms/controllers/editor_iframe_controller.js
717
330
  - app/javascript/panda/cms/controllers/index.js
718
331
  - app/javascript/panda/cms/controllers/slug_controller.js
332
+ - app/javascript/panda/cms/controllers/theme_form_controller.js
719
333
  - app/javascript/panda/cms/editor/css_extractor.js
720
334
  - app/javascript/panda/cms/editor/editor_js_config.js
721
335
  - app/javascript/panda/cms/editor/editor_js_initializer.js
722
336
  - app/javascript/panda/cms/editor/plain_text_editor.js
723
337
  - app/javascript/panda/cms/editor/resource_loader.js
724
338
  - app/javascript/panda/cms/editor/rich_text_editor.js
339
+ - app/javascript/panda/cms/stimulus-loading.js
725
340
  - app/javascript/panda/cms/tailwindcss-stimulus-components.js
341
+ - app/javascript/panda_cms/stimulus-loading.js
726
342
  - app/jobs/panda/cms/application_job.rb
727
343
  - app/jobs/panda/cms/record_visit_job.rb
728
344
  - app/mailers/panda/cms/application_mailer.rb
729
345
  - app/mailers/panda/cms/form_mailer.rb
730
- - app/models/action_text/rich_text_version.rb
731
346
  - app/models/panda/cms/application_record.rb
732
347
  - app/models/panda/cms/block.rb
733
348
  - app/models/panda/cms/block_content.rb
734
- - app/models/panda/cms/block_content_version.rb
735
349
  - app/models/panda/cms/breadcrumb.rb
736
350
  - app/models/panda/cms/current.rb
737
351
  - app/models/panda/cms/form.rb
@@ -739,18 +353,19 @@ files:
739
353
  - app/models/panda/cms/menu.rb
740
354
  - app/models/panda/cms/menu_item.rb
741
355
  - app/models/panda/cms/page.rb
742
- - app/models/panda/cms/page_version.rb
743
356
  - app/models/panda/cms/post.rb
744
- - app/models/panda/cms/post_version.rb
745
357
  - app/models/panda/cms/redirect.rb
746
358
  - app/models/panda/cms/template.rb
747
- - app/models/panda/cms/template_version.rb
748
359
  - app/models/panda/cms/user.rb
749
- - app/models/panda/cms/version.rb
750
360
  - app/models/panda/cms/visit.rb
361
+ - app/models/panda/social/instagram_post.rb
751
362
  - app/services/panda/cms/html_to_editor_js_converter.rb
363
+ - app/services/panda/social/instagram_feed_service.rb
752
364
  - app/views/active_storage/blobs/blobs/_blob.html.erb
753
365
  - app/views/layouts/action_text/contents/_content.html.erb
366
+ - app/views/layouts/different_page.html.erb
367
+ - app/views/layouts/homepage.html.erb
368
+ - app/views/layouts/page.html.erb
754
369
  - app/views/layouts/panda/cms/application.html.erb
755
370
  - app/views/layouts/panda/cms/public.html.erb
756
371
  - app/views/panda/cms/admin/dashboard/show.html.erb
@@ -761,6 +376,7 @@ files:
761
376
  - app/views/panda/cms/admin/forms/new.html.erb
762
377
  - app/views/panda/cms/admin/forms/show.html.erb
763
378
  - app/views/panda/cms/admin/menus/index.html.erb
379
+ - app/views/panda/cms/admin/my_profile/edit.html.erb
764
380
  - app/views/panda/cms/admin/pages/edit.html.erb
765
381
  - app/views/panda/cms/admin/pages/index.html.erb
766
382
  - app/views/panda/cms/admin/pages/new.html.erb
@@ -782,12 +398,13 @@ files:
782
398
  - app/views/panda/cms/shared/_footer.html.erb
783
399
  - app/views/panda/cms/shared/_header.html.erb
784
400
  - app/views/panda/cms/shared/_importmap.html.erb
401
+ - app/views/shared/_footer.html.erb
402
+ - app/views/shared/_header.html.erb
785
403
  - config/importmap.rb
786
404
  - config/initializers/inflections.rb
787
405
  - config/initializers/panda/cms.rb
788
406
  - config/initializers/panda/cms/form_errors.rb
789
407
  - config/initializers/panda/cms/healthcheck_log_silencer.rb
790
- - config/initializers/panda/cms/paper_trail.rb
791
408
  - config/initializers/zeitwork.rb
792
409
  - config/locales/en.yml
793
410
  - config/puma/test.rb
@@ -826,22 +443,24 @@ files:
826
443
  - db/migrate/20240806112735_fix_panda_cms_visits_column_names.rb
827
444
  - db/migrate/20240806204412_add_completion_path_to_panda_cms_forms.rb
828
445
  - db/migrate/20240820081917_change_form_submissions_to_submission_count.rb
829
- - db/migrate/20240904200605_create_action_text_tables.action_text.rb
830
446
  - db/migrate/20240923234535_add_depth_to_panda_cms_menus.rb
831
447
  - db/migrate/20241031205109_add_cached_content_to_panda_cms_block_contents.rb
832
448
  - db/migrate/20241119214548_convert_post_content_to_editor_js.rb
833
- - db/migrate/20241119214549_remove_action_text_from_posts.rb
834
449
  - db/migrate/20241120000419_remove_post_tag_references.rb
835
450
  - db/migrate/20241120110943_add_editor_js_to_posts.rb
836
451
  - db/migrate/20241120113859_add_cached_content_to_panda_cms_posts.rb
837
452
  - db/migrate/20241123234140_remove_post_tag_id_from_posts.rb
838
453
  - db/migrate/20250106223303_add_author_id_to_panda_cms_posts.rb
454
+ - db/migrate/20250120235542_remove_paper_trail.rb
455
+ - db/migrate/20250126234001_create_panda_social_instagram_posts.rb
456
+ - db/migrate/20250504221812_add_current_theme_to_panda_cms_users.rb
839
457
  - db/migrate/migrate
840
458
  - db/seeds.rb
841
459
  - lib/generators/panda/cms/install_generator.rb
842
460
  - lib/panda-cms.rb
843
461
  - lib/panda-cms/version.rb
844
462
  - lib/panda/cms.rb
463
+ - lib/panda/cms/asset_loader.rb
845
464
  - lib/panda/cms/bulk_editor.rb
846
465
  - lib/panda/cms/demo_site_generator.rb
847
466
  - lib/panda/cms/editor_js.rb
@@ -859,6 +478,9 @@ files:
859
478
  - lib/panda/cms/exceptions_app.rb
860
479
  - lib/panda/cms/railtie.rb
861
480
  - lib/panda/cms/slug.rb
481
+ - lib/tasks/assets.rake
482
+ - lib/tasks/panda/cms/install.rake
483
+ - lib/tasks/panda/social/instagram.rake
862
484
  - lib/tasks/panda_cms.rake
863
485
  - lib/templates/erb/scaffold/_form.html.erb.tt
864
486
  - lib/templates/erb/scaffold/edit.html.erb.tt
@@ -866,6 +488,14 @@ files:
866
488
  - lib/templates/erb/scaffold/new.html.erb.tt
867
489
  - lib/templates/erb/scaffold/partial.html.erb.tt
868
490
  - lib/templates/erb/scaffold/show.html.erb.tt
491
+ - public/panda-cms-assets/editor-js/core/editorjs.min.js
492
+ - public/panda-cms-assets/editor-js/plugins/embed.min.js
493
+ - public/panda-cms-assets/editor-js/plugins/header.min.js
494
+ - public/panda-cms-assets/editor-js/plugins/nested-list.min.js
495
+ - public/panda-cms-assets/editor-js/plugins/paragraph.min.js
496
+ - public/panda-cms-assets/editor-js/plugins/quote.min.js
497
+ - public/panda-cms-assets/editor-js/plugins/simple-image.min.js
498
+ - public/panda-cms-assets/editor-js/plugins/table.min.js
869
499
  - public/panda-cms-assets/favicons/android-chrome-192x192.png
870
500
  - public/panda-cms-assets/favicons/android-chrome-512x512.png
871
501
  - public/panda-cms-assets/favicons/apple-touch-icon.png
@@ -876,6 +506,9 @@ files:
876
506
  - public/panda-cms-assets/favicons/mstile-150x150.png
877
507
  - public/panda-cms-assets/favicons/safari-pinned-tab.svg
878
508
  - public/panda-cms-assets/favicons/site.webmanifest
509
+ - public/panda-cms-assets/manifest.json
510
+ - public/panda-cms-assets/panda-cms-0.7.4.css
511
+ - public/panda-cms-assets/panda-cms-0.7.4.js
879
512
  - public/panda-cms-assets/panda-logo-screenprint.png
880
513
  - public/panda-cms-assets/panda-nav.png
881
514
  - public/panda-cms-assets/rich_text_editor.css
@@ -903,7 +536,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
903
536
  - !ruby/object:Gem::Version
904
537
  version: '0'
905
538
  requirements: []
906
- rubygems_version: 3.6.2
539
+ rubygems_version: 3.6.9
907
540
  specification_version: 4
908
541
  summary: Better websites on Rails.
909
542
  test_files: []