pages_core 3.12.0 → 3.12.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/app/assets/builds/fonts/661557ef.ttf +0 -0
  4. data/app/assets/builds/fonts/a18fc2d2.woff2 +0 -0
  5. data/app/assets/builds/fonts/b2c7b78f.woff2 +0 -0
  6. data/app/assets/builds/fonts/ceddc204.ttf +0 -0
  7. data/app/assets/builds/pages_core/admin-dist.js +60 -14
  8. data/app/assets/builds/pages_core/admin-dist.js.map +7 -0
  9. data/app/assets/builds/pages_core/admin.css +9272 -0
  10. data/app/assets/images/pages/admin/angle-down-solid.svg +1 -0
  11. data/app/assets/images/pages/admin/icon.svg +1 -0
  12. data/app/assets/stylesheets/pages_core/admin/components/archive.css +6 -0
  13. data/app/assets/stylesheets/{pages/admin/components/attachments.scss → pages_core/admin/components/attachments.css} +35 -28
  14. data/app/assets/stylesheets/{pages/admin.scss → pages_core/admin/components/base.css} +125 -123
  15. data/app/assets/stylesheets/pages_core/admin/components/forms.css +223 -0
  16. data/app/assets/stylesheets/{pages/admin/components/header.scss → pages_core/admin/components/header.css} +76 -46
  17. data/app/assets/stylesheets/{pages/admin/components/image_editor.scss → pages_core/admin/components/image_editor.css} +42 -31
  18. data/app/assets/stylesheets/{pages/admin/components/image_grid.scss → pages_core/admin/components/image_grid.css} +76 -64
  19. data/app/assets/stylesheets/{pages/admin/components/image_uploader.scss → pages_core/admin/components/image_uploader.css} +12 -12
  20. data/app/assets/stylesheets/{pages/admin/components/layout.scss → pages_core/admin/components/layout.css} +13 -9
  21. data/app/assets/stylesheets/pages_core/admin/components/links.css +40 -0
  22. data/app/assets/stylesheets/pages_core/admin/components/list_table.css +66 -0
  23. data/app/assets/stylesheets/{pages/admin/components/login.scss → pages_core/admin/components/login.css} +6 -5
  24. data/app/assets/stylesheets/{pages/admin/components/modal.scss → pages_core/admin/components/modal.css} +10 -12
  25. data/app/assets/stylesheets/{pages/admin/components/page_tree.scss → pages_core/admin/components/page_tree.css} +54 -55
  26. data/app/assets/stylesheets/{pages/admin/components/pagination.scss → pages_core/admin/components/pagination.css} +17 -17
  27. data/app/assets/stylesheets/pages_core/admin/components/search.css +27 -0
  28. data/app/assets/stylesheets/{pages/admin/components/sidebar.scss → pages_core/admin/components/sidebar.css} +8 -7
  29. data/app/assets/stylesheets/{pages/admin/components/tag_editor.scss → pages_core/admin/components/tag_editor.css} +10 -15
  30. data/app/assets/stylesheets/{pages/admin/components/textarea.scss → pages_core/admin/components/textarea.css} +1 -1
  31. data/app/assets/stylesheets/{pages/admin/components/toast.scss → pages_core/admin/components/toast.css} +5 -3
  32. data/app/assets/stylesheets/{pages/admin/components/toolbar.scss → pages_core/admin/components/toolbar.css} +56 -29
  33. data/app/assets/stylesheets/{pages/admin/controllers/pages.scss → pages_core/admin/controllers/pages.css} +69 -52
  34. data/app/assets/stylesheets/pages_core/admin/controllers/users.css +3 -0
  35. data/app/assets/stylesheets/pages_core/admin/vars.css +34 -0
  36. data/app/assets/stylesheets/pages_core/admin.postcss.css +9 -0
  37. data/app/controllers/admin/pages_controller.rb +12 -11
  38. data/app/controllers/concerns/pages_core/rss_controller.rb +17 -1
  39. data/app/controllers/pages_core/admin_controller.rb +6 -0
  40. data/app/controllers/pages_core/frontend/pages_controller.rb +9 -5
  41. data/app/controllers/pages_core/sitemaps_controller.rb +3 -5
  42. data/app/formatters/pages_core/image_embedder.rb +5 -27
  43. data/app/helpers/admin/calendars_helper.rb +8 -0
  44. data/app/helpers/admin/news_helper.rb +13 -0
  45. data/app/helpers/admin/pages_helper.rb +32 -0
  46. data/app/helpers/pages_core/admin/admin_helper.rb +11 -54
  47. data/app/helpers/pages_core/admin/deprecated_admin_helper.rb +40 -0
  48. data/app/helpers/pages_core/images_helper.rb +37 -0
  49. data/app/javascript/admin-dist.ts +2 -0
  50. data/app/javascript/components/Attachments/{Attachment.jsx → Attachment.tsx} +44 -35
  51. data/app/javascript/components/Attachments/{AttachmentEditor.jsx → AttachmentEditor.tsx} +23 -23
  52. data/app/javascript/components/{EditableImage.jsx → EditableImage.tsx} +28 -25
  53. data/app/javascript/components/{FileUploadButton.jsx → FileUploadButton.tsx} +15 -16
  54. data/app/javascript/components/ImageCropper/FocalPoint.tsx +94 -0
  55. data/app/javascript/components/ImageCropper/{Image.jsx → Image.tsx} +13 -14
  56. data/app/javascript/components/ImageCropper/{Toolbar.jsx → Toolbar.tsx} +19 -15
  57. data/app/javascript/components/ImageCropper/{useCrop.js → useCrop.ts} +80 -37
  58. data/app/javascript/components/{ImageCropper.jsx → ImageCropper.tsx} +17 -15
  59. data/app/javascript/components/ImageEditor/{Form.jsx → Form.tsx} +24 -23
  60. data/app/javascript/components/{ImageEditor.jsx → ImageEditor.tsx} +17 -15
  61. data/app/javascript/components/ImageGrid/{DragElement.jsx → DragElement.tsx} +12 -10
  62. data/app/javascript/components/ImageGrid/{GridImage.jsx → GridImage.tsx} +40 -30
  63. data/app/javascript/components/ImageGrid/{Placeholder.jsx → Placeholder.tsx} +5 -6
  64. data/app/javascript/components/ImageGrid.jsx +3 -4
  65. data/app/javascript/components/{ImageUploader.jsx → ImageUploader.tsx} +46 -41
  66. data/app/javascript/components/Modal.tsx +48 -0
  67. data/app/javascript/components/PageImages.tsx +28 -0
  68. data/app/javascript/components/{PageTreeDraggable.jsx → PageTree/Draggable.tsx} +79 -57
  69. data/app/javascript/components/{PageTreeNode.jsx → PageTree/Node.tsx} +86 -77
  70. data/app/javascript/components/PageTree/types.ts +15 -0
  71. data/app/javascript/components/PageTree.tsx +206 -0
  72. data/app/javascript/components/RichTextToolbarButton.tsx +17 -0
  73. data/app/javascript/components/TagEditor/{AddTagForm.jsx → AddTagForm.tsx} +9 -10
  74. data/app/javascript/components/TagEditor/{Tag.jsx → Tag.tsx} +8 -9
  75. data/app/javascript/components/{TagEditor.jsx → TagEditor.tsx} +12 -13
  76. data/app/javascript/components/Toast.tsx +61 -0
  77. data/app/javascript/components/drag/{draggedOrder.js → draggedOrder.ts} +22 -12
  78. data/app/javascript/components/drag/types.ts +28 -0
  79. data/app/javascript/components/drag/{useDragCollection.js → useDragCollection.ts} +40 -22
  80. data/app/javascript/components/drag/{useDragUploader.js → useDragUploader.ts} +34 -25
  81. data/app/javascript/components/drag/useDraggable.ts +21 -0
  82. data/app/javascript/components/{drag.js → drag.ts} +1 -0
  83. data/app/javascript/controllers/{EditPageController.js → EditPageController.ts} +3 -1
  84. data/app/javascript/controllers/{LoginController.js → LoginController.ts} +7 -3
  85. data/app/javascript/controllers/{MainController.js → MainController.ts} +19 -14
  86. data/app/javascript/{index.js → index.ts} +8 -7
  87. data/app/javascript/lib/{Tree.js → Tree.ts} +106 -85
  88. data/app/javascript/lib/{copyToClipboard.js → copyToClipboard.ts} +1 -1
  89. data/app/javascript/lib/{readyHandler.js → readyHandler.ts} +4 -2
  90. data/app/javascript/lib/{request.js → request.ts} +11 -5
  91. data/app/javascript/stores/useModalStore.ts +15 -0
  92. data/app/javascript/stores/useToastStore.ts +26 -0
  93. data/app/javascript/stores.ts +2 -0
  94. data/app/javascript/types.ts +30 -0
  95. data/app/mailers/admin_mailer.rb +1 -0
  96. data/app/models/invite.rb +8 -0
  97. data/app/policies/page_policy.rb +4 -0
  98. data/app/views/admin/calendars/_sidebar.html.erb +50 -0
  99. data/app/views/admin/calendars/show.html.erb +15 -53
  100. data/app/views/admin/invites/new.html.erb +2 -8
  101. data/app/views/admin/invites/show.html.erb +2 -4
  102. data/app/views/admin/news/_sidebar.html.erb +51 -0
  103. data/app/views/admin/news/index.html.erb +21 -56
  104. data/app/views/admin/pages/_list_item.html.erb +4 -22
  105. data/app/views/admin/pages/_search_bar.html.erb +12 -0
  106. data/app/views/admin/pages/deleted.html.erb +10 -8
  107. data/app/views/admin/pages/edit.html.erb +20 -11
  108. data/app/views/admin/pages/index.html.erb +10 -8
  109. data/app/views/admin/pages/new.html.erb +10 -14
  110. data/app/views/admin/pages/search.html.erb +54 -0
  111. data/app/views/admin/password_resets/show.html.erb +3 -5
  112. data/app/views/admin/users/deactivated.html.erb +6 -7
  113. data/app/views/admin/users/edit.html.erb +7 -9
  114. data/app/views/admin/users/index.html.erb +3 -6
  115. data/app/views/admin/users/login.html.erb +4 -5
  116. data/app/views/admin/users/new.html.erb +2 -4
  117. data/app/views/admin/users/new_password.html.erb +4 -5
  118. data/app/views/admin/users/show.html.erb +11 -9
  119. data/app/views/errors/401.html.erb +2 -1
  120. data/app/views/errors/403.html.erb +2 -1
  121. data/app/views/errors/404.html.erb +1 -3
  122. data/app/views/errors/405.html.erb +2 -1
  123. data/app/views/errors/422.html.erb +2 -1
  124. data/app/views/errors/500.html.erb +2 -3
  125. data/app/views/feeds/pages.rss.builder +3 -9
  126. data/app/views/layouts/admin/_header.html.erb +1 -2
  127. data/app/views/layouts/admin/_page_header.html.erb +4 -4
  128. data/app/views/layouts/admin.html.erb +3 -3
  129. data/app/views/layouts/errors.html.erb +127 -4
  130. data/config/routes.rb +1 -0
  131. data/lib/pages_core/configuration/pages.rb +0 -1
  132. data/lib/pages_core/engine.rb +4 -3
  133. data/lib/pages_core.rb +0 -1
  134. data/lib/rails/generators/pages_core/frontend/frontend_generator.rb +33 -17
  135. data/lib/rails/generators/pages_core/frontend/templates/application.html.erb +0 -1
  136. data/lib/rails/generators/pages_core/frontend/templates/javascript/lib/gridOverlay.ts +40 -0
  137. data/lib/rails/generators/pages_core/frontend/templates/javascript/lib/responsiveEmbeds.ts +68 -0
  138. data/lib/rails/generators/pages_core/frontend/templates/postcss.config.js +17 -0
  139. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/application.postcss.css +4 -0
  140. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/components/base.css +24 -0
  141. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/components/layout.css +21 -0
  142. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/config.css +5 -0
  143. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/global/animation.css +5 -0
  144. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/global/colors.css +18 -0
  145. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/global/fonts.css +6 -0
  146. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/global/grid.css +65 -0
  147. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/global/typography.css +131 -0
  148. data/lib/rails/generators/pages_core/install/templates/pages_initializer.rb +0 -3
  149. metadata +104 -255
  150. data/app/assets/images/pages/admin/icon.png +0 -0
  151. data/app/assets/images/pages/admin/image-editor-bg.png +0 -0
  152. data/app/assets/images/pages/admin/list-table-pin-blue.gif +0 -0
  153. data/app/assets/images/pages/admin/list-table-pin-disabled.gif +0 -0
  154. data/app/assets/images/pages/admin/list-table-pin-green.gif +0 -0
  155. data/app/assets/images/pages/admin/list-table-pin-red.gif +0 -0
  156. data/app/assets/images/pages/admin/list-table-pin-yellow.gif +0 -0
  157. data/app/assets/images/pages/admin/loading-modal.gif +0 -0
  158. data/app/assets/images/pages/feed-icon-14x14.png +0 -0
  159. data/app/assets/stylesheets/pages/admin/components/archive.scss +0 -6
  160. data/app/assets/stylesheets/pages/admin/components/buttons.scss +0 -23
  161. data/app/assets/stylesheets/pages/admin/components/forms.scss +0 -169
  162. data/app/assets/stylesheets/pages/admin/components/links.scss +0 -43
  163. data/app/assets/stylesheets/pages/admin/components/list_table.scss +0 -61
  164. data/app/assets/stylesheets/pages/admin/controllers/users.scss +0 -3
  165. data/app/assets/stylesheets/pages/admin/mixins/breakpoints.scss +0 -21
  166. data/app/assets/stylesheets/pages/admin/mixins/clearfix.scss +0 -7
  167. data/app/assets/stylesheets/pages/admin/mixins/gradients.scss +0 -7
  168. data/app/assets/stylesheets/pages/admin/vars.scss +0 -30
  169. data/app/assets/stylesheets/pages/errors.css +0 -128
  170. data/app/javascript/admin-dist.js +0 -2
  171. data/app/javascript/components/ImageCropper/FocalPoint.jsx +0 -93
  172. data/app/javascript/components/Modal.jsx +0 -59
  173. data/app/javascript/components/PageImages.jsx +0 -25
  174. data/app/javascript/components/PageTree.jsx +0 -196
  175. data/app/javascript/components/RichTextToolbarButton.jsx +0 -20
  176. data/app/javascript/components/Toast.jsx +0 -72
  177. data/app/javascript/components/drag/useDraggable.js +0 -17
  178. data/app/javascript/stores/ModalStore.jsx +0 -12
  179. data/app/javascript/stores/ToastStore.jsx +0 -14
  180. data/app/javascript/stores.js +0 -2
  181. data/lib/rails/generators/pages_core/frontend/templates/javascript/lib/GridOverlay.js +0 -66
  182. data/lib/rails/generators/pages_core/frontend/templates/javascript/lib/ResponsiveEmbeds.js +0 -72
  183. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/application.sass.scss +0 -15
  184. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/components/base.scss +0 -12
  185. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/config.scss +0 -26
  186. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/framework/breakpoints.scss +0 -42
  187. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/framework/clearfix.scss +0 -7
  188. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/framework/fonts.scss +0 -32
  189. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/framework/grid.scss +0 -168
  190. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/framework/grid_overlay.scss +0 -44
  191. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/global/colors.scss +0 -8
  192. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/global/typography.scss +0 -90
  193. data/lib/rails/generators/pages_core/frontend/templates/stylesheets/vendor/normalize.css +0 -349
  194. data/vendor/assets/stylesheets/ReactCrop.css +0 -167
  195. /data/app/assets/stylesheets/{pages/admin/components/tabs.scss → pages_core/admin/components/tabs.css} +0 -0
  196. /data/app/javascript/components/Attachments/{Placeholder.jsx → Placeholder.tsx} +0 -0
  197. /data/app/javascript/components/ImageGrid/{FilePlaceholder.jsx → FilePlaceholder.tsx} +0 -0
  198. /data/app/javascript/{components.js → components.ts} +0 -0
  199. /data/app/javascript/{hooks.js → hooks.ts} +0 -0
@@ -1,169 +0,0 @@
1
- main form {
2
- margin: 16px 32px;
3
- }
4
-
5
- form {
6
- .field {
7
- margin: 16px 0;
8
- padding: 0;
9
-
10
- input[type=text],
11
- input[type=password],
12
- input[type=email],
13
- textarea {
14
- transition: border-color 150ms ease-out;
15
- }
16
-
17
- label {
18
- display: block;
19
- padding: 0;
20
- margin: 0 0 4px 0;
21
- font-weight: bold;
22
- font-size: 13px;
23
- color: $c-text;
24
- transition: color 150ms ease-out;
25
-
26
- &.check-box, &.radio-button {
27
- font-weight: normal;
28
- }
29
- &.radio-button {
30
- display: inline-block;
31
- margin-right: 10px;
32
- }
33
- }
34
-
35
- .description {
36
- color: $c-text-light;
37
- margin: 0 0 6px 0;
38
- }
39
- }
40
-
41
- .field-with-warning {
42
- input[type=text],
43
- input[type=password],
44
- input[type=email],
45
- textarea {
46
- border-color: mix($c-border, $c-red, 75%);
47
- }
48
- label {
49
- color: $c-red;
50
- }
51
- }
52
-
53
- .field-with-errors {
54
- background: $c-red-invert;
55
- border-top: 1px solid mix($c-red-invert, $c-red, 90%);
56
- border-bottom: 1px solid mix($c-red-invert, $c-red, 90%);
57
- margin: 0 -32px -1px -32px;
58
- padding: 12px 32px 16px 32px;
59
-
60
- label {
61
- color: $c-red;
62
- }
63
- }
64
-
65
- .row {
66
- display: flex;
67
- flex-wrap: wrap;
68
- margin-right: -16px;
69
-
70
- .field {
71
- margin-right: 16px;
72
- &.text-field {
73
- flex-grow: 1;
74
- min-width: 300px;
75
- }
76
- }
77
-
78
- input[type=text],
79
- input[type=password] {
80
- width: 100%;
81
- max-width: none;
82
- }
83
- }
84
-
85
- .date-range-select {
86
- .date {
87
- line-height: 34px;
88
- display: inline-block;
89
- white-space: nowrap;
90
- .date-select {
91
- display: inline-block;
92
- }
93
- input[type=text] {
94
- display: inline;
95
- width: auto;
96
- min-width: auto;
97
- margin-left: 12px;
98
- padding: 4px 6px;
99
- }
100
- }
101
- .to {
102
- margin: 0px 8px;
103
- }
104
- }
105
-
106
- .page-dates {
107
- margin-bottom: 40px;
108
- .toggles {
109
- label {
110
- font-weight: normal;
111
- display: inline-block;
112
- margin-right: 12px;
113
- input {
114
- margin-right: 6px;
115
- }
116
- &.disabled {
117
- color: $c-text-light;
118
- }
119
- }
120
- }
121
- .remove-dates {
122
- margin-top: 12px;
123
- }
124
- }
125
- }
126
-
127
- .fieldWithErrors {
128
- display: table;
129
- padding: 1px;
130
- padding-right: 22px;
131
- background: transparent image-url("pages/admin/warning-icon.gif") right 5px no-repeat;
132
- }
133
-
134
- input[type=text],
135
- input[type=password],
136
- textarea {
137
- width: 100%;
138
- max-width: 450px;
139
- min-width: 200px;
140
- border: 1px solid $c-border;
141
- box-shadow: inset 0px 5px 5px rgba(0, 0, 0, 0.03);
142
- padding: 8px 10px;
143
- line-height: 1.4;
144
- font-family: Helvetica, Arial, sans-serif;
145
- font-size: 13px;
146
- &:disabled {
147
- border-color: $c-border-light;
148
- color: $c-text-light;
149
- }
150
-
151
- &.warn {
152
- border-color: red;
153
- }
154
- }
155
-
156
- input[type=text],
157
- input[type=password] {
158
- &.large,
159
- main .login-form & {
160
- font-size: 1.4em;
161
- }
162
- }
163
-
164
- fieldset {
165
- padding: 0px;
166
- margin: 0px;
167
- border: none;
168
- border-bottom: 1px solid $c-border;
169
- }
@@ -1,43 +0,0 @@
1
- a,
2
- a:visited {
3
- color: $c-link;
4
- text-decoration: underline;
5
- }
6
-
7
- a:hover,
8
- a:focus {
9
- color: $c-link;
10
- }
11
-
12
- a.create,
13
- a.create:visited {
14
- color: $c-create;
15
- }
16
-
17
- a.create:hover,
18
- a.create:focus {
19
- color: $c-create-hover;
20
- }
21
-
22
- a.cancel,
23
- a.cancel:visited {
24
- color: $c-delete;
25
- }
26
-
27
- a.cancel:hover {
28
- color: $c-delete-hover;
29
- }
30
-
31
- a.delete, a.delete:visited {
32
- color: $c-delete;
33
- }
34
-
35
- a.delete:hover {
36
- color: $c-delete-hover;
37
- }
38
-
39
- button a {
40
- padding:5px 0;
41
- color: $c-text !important;
42
- text-decoration:none;
43
- }
@@ -1,61 +0,0 @@
1
- table.list {
2
- border-collapse: collapse;
3
- margin: 16px 0;
4
- width: 100%;
5
-
6
- td,
7
- th {
8
- padding: 8px 16px;
9
- text-align: left;
10
- vertical-align: top;
11
- }
12
-
13
- th {
14
- @include vertical-gradient($c-background, $c-background-disabled);
15
- color: $c-text-light;
16
- font-weight: bold;
17
- border-bottom: 1px solid $c-border;
18
- }
19
-
20
- td {
21
- border-bottom: 1px solid $c-border;
22
- &.note {
23
- color: $c-text-light;
24
- }
25
- &.name {
26
- font-weight: bold;
27
- }
28
- }
29
-
30
- tr td:first-child,
31
- tr th:first-child {
32
- padding-left: 32px;
33
- }
34
- tr td:last-child,
35
- tr th:last-child {
36
- padding-right: 32px;
37
- }
38
-
39
- tr.disabled td {
40
- opacity: 0.5;
41
- }
42
-
43
- tr.disabled td:first-child {
44
- background: transparent image-url("pages/admin/list-table-pin-disabled.gif") 14px center no-repeat;
45
- }
46
-
47
- tr.active td:first-child {
48
- background: transparent image-url("pages/admin/list-table-pin-blue.gif") 14px center no-repeat;
49
- }
50
-
51
- .actions {
52
- float: right;
53
- margin-bottom: 2px;
54
- margin-left: 16px;
55
- }
56
-
57
- p {
58
- margin: 0;
59
- padding: 0;
60
- }
61
- }
@@ -1,3 +0,0 @@
1
- table.users tr.invite td {
2
- color: $c-text-light;
3
- }
@@ -1,21 +0,0 @@
1
- @mixin breakpoint-min($width) {
2
- @media screen and (min-width: ($width + 1px)) {
3
- @content;
4
- }
5
- }
6
-
7
- @mixin breakpoint-max($width) {
8
- @media screen and (max-width: $width) {
9
- @content;
10
- }
11
- }
12
-
13
- @mixin breakpoint-min-max($min-width, $max-width) {
14
- @media screen and (min-width: ($min-width + 1px)) and (max-width: ($max-width)) {
15
- @content;
16
- }
17
- }
18
-
19
- @mixin breakpoint-mobile($offset: 0px) {
20
- @include breakpoint-max(($breakpoint-mobile + $offset)) { @content; }
21
- }
@@ -1,7 +0,0 @@
1
- %clearfix {
2
- &:after {
3
- content: "";
4
- display: table;
5
- clear: both;
6
- }
7
- }
@@ -1,7 +0,0 @@
1
- @mixin vertical-gradient($start, $stop) {
2
- background: $start;
3
- background: -moz-linear-gradient(top, $start 0%, $stop 100%);
4
- background: -webkit-linear-gradient(top, $start 0%,$stop 100%);
5
- background: linear-gradient(to bottom, $start 0%,$stop 100%);
6
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='$start', endColorstr='$stop',GradientType=0 );
7
- }
@@ -1,30 +0,0 @@
1
- $breakpoint-mobile: 900px;
2
-
3
- $c-red: #c00007;
4
- $c-red-invert: #fff0f3;
5
- $c-green: #19ac1e;
6
- $c-blue: #1d7195;
7
- $c-blue-dark: darken($c-blue, 15%);
8
-
9
- $c-warn-light: #ffdfa0;
10
-
11
- $c-background: #fff;
12
- $c-background-invert: #000;
13
- $c-background-disabled: #f8f8f8;
14
-
15
- $c-text: #111;
16
- $c-text-light: #666;
17
- $c-text-lighter: #999;
18
- $c-text-invert: #fff;
19
-
20
- $c-border: #ddd;
21
- $c-border-light: #eee;
22
-
23
- $c-link: $c-blue;
24
- $c-link-hover: darken($c-link, 10%);
25
- $c-create: $c-green;
26
- $c-create-hover: darken($c-create, 10%);
27
- $c-delete: $c-red;
28
- $c-delete-hover: darken($c-delete, 10%);
29
-
30
- $c-button: #f6f6f6;
@@ -1,128 +0,0 @@
1
- body {
2
- background: #fff;
3
- background: linear-gradient(180deg, rgba(236,236,236,1) 0%, rgba(255,255,255,1) 50%);
4
- background-repeat: no-repeat;
5
- margin: 0;
6
- padding: 0;
7
- border: 0;
8
- font-family: Helvetica, Arial, sans-serif;
9
- font-size: 16px;
10
- color: #111;
11
- line-height: 1.5;
12
- }
13
-
14
- main {
15
- width: 600px;
16
- margin: 150px auto;
17
- }
18
-
19
- h1, h2, h3, h4, h5, h6, p, ul, form {
20
- margin: 0 0 16px 0;
21
- }
22
-
23
- h4 {
24
- margin-bottom: 0;
25
- font-size: 1em;
26
- font-weight: bold;
27
- }
28
- h4 em {
29
- font-weight: normal;
30
- font-style: normal;
31
- }
32
-
33
- ul {
34
- list-style-type: disc;
35
- list-style-position: inside;
36
- padding: 0;
37
- }
38
- ul li {
39
- margin: 0;
40
- padding: 0;
41
- }
42
-
43
- h1 {
44
- font-weight: bold;
45
- color: #111;
46
- font-size: 36px;
47
- }
48
-
49
- p.footer {
50
- margin-top: 64px;
51
- font-size: 12px;
52
- color: #868686;
53
- }
54
- p.error_id {
55
- margin-top: 64px;
56
- font-size: 12px;
57
- color: #DCDBD2;
58
- }
59
-
60
- input[type=text], textarea {
61
- vertical-align: top;
62
- border: 1px solid #c4c2bb;
63
- color: #444;
64
- font-family: Helvetica, Arial, sans-serif;
65
- font-size: 18px;
66
- padding: 6px 8px 6px 8px;
67
- width: 490px;
68
- border-radius: 3px;
69
- }
70
- input.with_button {
71
- width: 400px;
72
- margin-right: 4px;
73
- }
74
-
75
- a, a:visited {
76
- color: #0751b6;
77
- text-decoration: underline;
78
- }
79
- a:hover {
80
- color: #042d65;
81
- }
82
-
83
- form {
84
- vertical-align: top;
85
- }
86
-
87
- .poem {
88
- }
89
-
90
-
91
- button.clean-gray {
92
- background-color: #eeeeee;
93
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #cccccc));
94
- background-image: -webkit-linear-gradient(top, #f8f8f8, #e0e0e0);
95
- background-image: -moz-linear-gradient(top, #f8f8f8, #e0e0e0);
96
- background-image: -ms-linear-gradient(top, #f8f8f8, #e0e0e0);
97
- background-image: -o-linear-gradient(top, #f8f8f8, #e0e0e0);
98
- background-image: linear-gradient(top, #f8f8f8, #e0e0e0);
99
- border: 1px solid #ccc;
100
- border-bottom: 1px solid #bbb;
101
- -webkit-border-radius: 3px;
102
- -moz-border-radius: 3px;
103
- border-radius: 3px;
104
- color: #333;
105
- font: bold 15px Helvetica, Arial, sans-serif;
106
- line-height: 1;
107
- padding: 9px 0;
108
- text-align: center;
109
- text-shadow: 0 1px 0 #eee;
110
- width: 150px; }
111
- button.clean-gray:hover {
112
- background-color: #dddddd;
113
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #dddddd), color-stop(100%, #bbbbbb));
114
- background-image: -webkit-linear-gradient(top, #f0f0f0, #dddddd);
115
- background-image: -moz-linear-gradient(top, #f0f0f0, #dddddd);
116
- background-image: -ms-linear-gradient(top, #f0f0f0, #dddddd);
117
- background-image: -o-linear-gradient(top, #f0f0f0, #dddddd);
118
- background-image: linear-gradient(top, #f0f0f0, #dddddd);
119
- border: 1px solid #bbb;
120
- border-bottom: 1px solid #aaa;
121
- cursor: pointer;
122
- text-shadow: 0 1px 0 #ddd; }
123
- button.clean-gray:active {
124
- border: 1px solid #aaa;
125
- border-bottom: 1px solid #888;
126
- -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
127
- -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
128
- box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; }
@@ -1,2 +0,0 @@
1
- import startPages from "./index.js";
2
- startPages();
@@ -1,93 +0,0 @@
1
- import React from "react";
2
- import PropTypes from "prop-types";
3
-
4
- export default class FocalPoint extends React.Component {
5
- constructor(props) {
6
- super(props);
7
- this.state = {
8
- dragging: false,
9
- x: props.x,
10
- y: props.y
11
- };
12
- this.dragStart = this.dragStart.bind(this);
13
- this.dragEnd = this.dragEnd.bind(this);
14
- this.drag = this.drag.bind(this);
15
- this.container = React.createRef();
16
- this.point = React.createRef();
17
- }
18
-
19
- clamp(val, min, max) {
20
- if (val < min) {
21
- return min;
22
- } else if (val > max) {
23
- return max;
24
- } else {
25
- return val;
26
- }
27
- }
28
-
29
- dragStart(evt) {
30
- evt.preventDefault();
31
- evt.stopPropagation();
32
- if (evt.target == this.point.current) {
33
- this.setState({dragging: true});
34
- }
35
- }
36
-
37
- dragEnd() {
38
- if (this.state.dragging) {
39
- this.setState({dragging: false});
40
- this.props.onChange({x: this.state.x, y: this.state.y});
41
- }
42
- }
43
-
44
- drag(evt) {
45
- if (this.state.dragging) {
46
- let containerSize = this.container.current.getBoundingClientRect();
47
- var x , y;
48
- evt.preventDefault();
49
-
50
- if (evt.type == "touchmove") {
51
- x = evt.touches[0].clientX - (containerSize.x || containerSize.left);
52
- y = evt.touches[0].clientY - (containerSize.y || containerSize.top);
53
- } else {
54
- x = evt.clientX - (containerSize.x || containerSize.left);
55
- y = evt.clientY - (containerSize.y || containerSize.top);
56
- }
57
-
58
- x = this.clamp(x, 0, this.props.width);
59
- y = this.clamp(y, 0, this.props.height);
60
-
61
- this.setState({x: (x / this.props.width) * 100,
62
- y: (y / this.props.height) * 100});
63
- }
64
- }
65
-
66
- render() {
67
- let x = this.props.width * (this.state.x / 100);
68
- let y = this.props.height * (this.state.y / 100);
69
- let pointStyle = {
70
- transform: `translate3d(${x}px, ${y}px, 0)`
71
- };
72
- return (
73
- <div className="focal-editor"
74
- ref={this.container}
75
- onTouchStart={this.dragStart}
76
- onTouchEnd={this.dragEnd}
77
- onTouchMove={this.drag}
78
- onMouseDown={this.dragStart}
79
- onMouseUp={this.dragEnd}
80
- onMouseMove={this.drag}>
81
- <div className="focal-point" style={pointStyle} ref={this.point} />
82
- </div>
83
- );
84
- }
85
- }
86
-
87
- FocalPoint.propTypes = {
88
- x: PropTypes.number,
89
- y: PropTypes.number,
90
- onChange: PropTypes.func,
91
- width: PropTypes.number,
92
- height: PropTypes.number
93
- };
@@ -1,59 +0,0 @@
1
- import React from "react";
2
- import ModalStore from "../stores/ModalStore";
3
-
4
- export default class Modal extends React.Component {
5
- constructor(props) {
6
- super(props);
7
- this.state = { component: null };
8
- this.store = ModalStore;
9
- this.closeModal = this.closeModal.bind(this);
10
- this.handleChange = this.handleChange.bind(this);
11
- this.handleKeypress = this.handleKeypress.bind(this);
12
- }
13
-
14
- componentDidMount() {
15
- this.unsubscribe = this.store.subscribe(this.handleChange);
16
- window.addEventListener("keypress", this.handleKeypress);
17
- }
18
-
19
- componentWillUnmount() {
20
- this.unsubscribe();
21
- window.removeEventListener("keypress", this.handleKeypress);
22
- }
23
-
24
- closeModal(evt) {
25
- evt.stopPropagation();
26
- evt.preventDefault();
27
- ModalStore.dispatch({ type: "CLOSE" });
28
- }
29
-
30
- handleChange() {
31
- this.setState({ ...this.store.getState() });
32
- }
33
-
34
- handleKeypress(evt) {
35
- if (this.state.component && (evt.key == "Escape" || evt.keyCode === 27)) {
36
- this.closeModal(evt);
37
- }
38
- }
39
-
40
- render() {
41
- let component = this.state.component;
42
-
43
- if (component) {
44
- document.body.classList.add("modal");
45
- } else {
46
- document.body.classList.remove("modal");
47
- return (<div className="modal-wrapper"></div>);
48
- }
49
-
50
- return (
51
- <div className="modal-wrapper open">
52
- <div className="background" onClick={this.closeModal} />
53
- <div className="modal">
54
- {component}
55
- </div>
56
- </div>
57
- );
58
- }
59
- }
@@ -1,25 +0,0 @@
1
- import React from "react";
2
- import PropTypes from "prop-types";
3
- import ImageGrid from "./ImageGrid";
4
-
5
- export default class PageImages extends React.Component {
6
- render() {
7
- return (
8
- <div className="page-images">
9
- <ImageGrid attribute="page[page_images_attributes]"
10
- primaryAttribute="page[image_id]"
11
- enablePrimary={true}
12
- showEmbed={true}
13
- locale={this.props.locale}
14
- locales={this.props.locales}
15
- records={this.props.records} />
16
- </div>
17
- );
18
- }
19
- }
20
-
21
- PageImages.propTypes = {
22
- locale: PropTypes.string,
23
- locales: PropTypes.object,
24
- records: PropTypes.array
25
- };