pages_core 3.13.0 → 3.15.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 (257) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/app/assets/builds/pages_core/admin-dist.js +19 -8
  4. data/app/assets/builds/pages_core/admin-dist.js.map +4 -4
  5. data/app/assets/builds/pages_core/admin.css +704 -388
  6. data/app/assets/fonts/Inter-Black.woff2 +0 -0
  7. data/app/assets/fonts/Inter-BlackItalic.woff2 +0 -0
  8. data/app/assets/fonts/Inter-Bold.woff2 +0 -0
  9. data/app/assets/fonts/Inter-BoldItalic.woff2 +0 -0
  10. data/app/assets/fonts/Inter-ExtraBold.woff2 +0 -0
  11. data/app/assets/fonts/Inter-ExtraBoldItalic.woff2 +0 -0
  12. data/app/assets/fonts/Inter-ExtraLight.woff2 +0 -0
  13. data/app/assets/fonts/Inter-ExtraLightItalic.woff2 +0 -0
  14. data/app/assets/fonts/Inter-Italic.woff2 +0 -0
  15. data/app/assets/fonts/Inter-Light.woff2 +0 -0
  16. data/app/assets/fonts/Inter-LightItalic.woff2 +0 -0
  17. data/app/assets/fonts/Inter-Medium.woff2 +0 -0
  18. data/app/assets/fonts/Inter-MediumItalic.woff2 +0 -0
  19. data/app/assets/fonts/Inter-Regular.woff2 +0 -0
  20. data/app/assets/fonts/Inter-SemiBold.woff2 +0 -0
  21. data/app/assets/fonts/Inter-SemiBoldItalic.woff2 +0 -0
  22. data/app/assets/fonts/Inter-Thin.woff2 +0 -0
  23. data/app/assets/fonts/Inter-ThinItalic.woff2 +0 -0
  24. data/app/assets/fonts/InterDisplay-Black.woff2 +0 -0
  25. data/app/assets/fonts/InterDisplay-BlackItalic.woff2 +0 -0
  26. data/app/assets/fonts/InterDisplay-Bold.woff2 +0 -0
  27. data/app/assets/fonts/InterDisplay-BoldItalic.woff2 +0 -0
  28. data/app/assets/fonts/InterDisplay-ExtraBold.woff2 +0 -0
  29. data/app/assets/fonts/InterDisplay-ExtraBoldItalic.woff2 +0 -0
  30. data/app/assets/fonts/InterDisplay-ExtraLight.woff2 +0 -0
  31. data/app/assets/fonts/InterDisplay-ExtraLightItalic.woff2 +0 -0
  32. data/app/assets/fonts/InterDisplay-Italic.woff2 +0 -0
  33. data/app/assets/fonts/InterDisplay-Light.woff2 +0 -0
  34. data/app/assets/fonts/InterDisplay-LightItalic.woff2 +0 -0
  35. data/app/assets/fonts/InterDisplay-Medium.woff2 +0 -0
  36. data/app/assets/fonts/InterDisplay-MediumItalic.woff2 +0 -0
  37. data/app/assets/fonts/InterDisplay-Regular.woff2 +0 -0
  38. data/app/assets/fonts/InterDisplay-SemiBold.woff2 +0 -0
  39. data/app/assets/fonts/InterDisplay-SemiBoldItalic.woff2 +0 -0
  40. data/app/assets/fonts/InterDisplay-Thin.woff2 +0 -0
  41. data/app/assets/fonts/InterDisplay-ThinItalic.woff2 +0 -0
  42. data/app/assets/fonts/InterVariable-Italic.woff2 +0 -0
  43. data/app/assets/fonts/InterVariable.woff2 +0 -0
  44. data/app/assets/stylesheets/pages_core/admin/components/archive.css +1 -1
  45. data/app/assets/stylesheets/pages_core/admin/components/attachments.css +22 -34
  46. data/app/assets/stylesheets/pages_core/admin/components/base.css +1 -68
  47. data/app/assets/stylesheets/pages_core/admin/components/forms.css +107 -48
  48. data/app/assets/stylesheets/pages_core/admin/components/header.css +56 -58
  49. data/app/assets/stylesheets/pages_core/admin/components/image_editor.css +35 -24
  50. data/app/assets/stylesheets/pages_core/admin/components/image_grid.css +28 -27
  51. data/app/assets/stylesheets/pages_core/admin/components/image_uploader.css +5 -5
  52. data/app/assets/stylesheets/pages_core/admin/components/layout.css +7 -1
  53. data/app/assets/stylesheets/pages_core/admin/components/list_table.css +24 -15
  54. data/app/assets/stylesheets/pages_core/admin/components/page_tree.css +63 -104
  55. data/app/assets/stylesheets/pages_core/admin/components/pagination.css +12 -13
  56. data/app/assets/stylesheets/pages_core/admin/components/search.css +1 -16
  57. data/app/assets/stylesheets/pages_core/admin/components/sidebar.css +5 -11
  58. data/app/assets/stylesheets/pages_core/admin/components/tag_editor.css +22 -36
  59. data/app/assets/stylesheets/pages_core/admin/components/toast.css +1 -2
  60. data/app/assets/stylesheets/pages_core/admin/components/toolbar.css +10 -10
  61. data/app/assets/stylesheets/pages_core/admin/components/totp.css +26 -0
  62. data/app/assets/stylesheets/pages_core/admin/controllers/pages.css +37 -51
  63. data/app/assets/stylesheets/pages_core/admin/global/fonts.css +271 -0
  64. data/app/assets/stylesheets/pages_core/admin/global/typography.css +109 -0
  65. data/app/assets/stylesheets/pages_core/admin/vars.css +1 -3
  66. data/app/assets/stylesheets/pages_core/admin.postcss.css +1 -0
  67. data/app/controllers/admin/account_recoveries_controller.rb +87 -0
  68. data/app/controllers/admin/invites_controller.rb +3 -2
  69. data/app/controllers/admin/otp_secrets_controller.rb +45 -0
  70. data/app/controllers/admin/pages_controller.rb +22 -42
  71. data/app/controllers/admin/recovery_codes_controller.rb +32 -0
  72. data/app/controllers/admin/sessions_controller.rb +65 -0
  73. data/app/controllers/admin/users_controller.rb +2 -8
  74. data/app/controllers/concerns/pages_core/authentication.rb +12 -10
  75. data/app/controllers/concerns/pages_core/error_reporting.rb +1 -1
  76. data/app/controllers/concerns/pages_core/page_parameters.rb +29 -0
  77. data/app/controllers/concerns/pages_core/policies_helper.rb +1 -1
  78. data/app/controllers/concerns/pages_core/preview_pages_controller.rb +20 -20
  79. data/app/controllers/pages_core/admin_controller.rb +1 -3
  80. data/app/controllers/pages_core/frontend/pages_controller.rb +2 -6
  81. data/app/formatters/pages_core/html_formatter.rb +2 -4
  82. data/app/helpers/admin/menu_helper.rb +5 -4
  83. data/app/helpers/admin/pages_helper.rb +1 -21
  84. data/app/helpers/pages_core/admin/admin_helper.rb +13 -3
  85. data/app/helpers/pages_core/admin/content_tabs_helper.rb +1 -2
  86. data/app/helpers/pages_core/admin/labelled_field_helper.rb +1 -1
  87. data/app/helpers/pages_core/frontend_helper.rb +1 -1
  88. data/app/helpers/pages_core/images_helper.rb +10 -8
  89. data/app/helpers/pages_core/labelled_form_builder.rb +2 -7
  90. data/app/helpers/pages_core/page_path_helper.rb +1 -1
  91. data/app/javascript/components/Attachments/Attachment.tsx +20 -18
  92. data/app/javascript/components/Attachments/AttachmentEditor.tsx +11 -9
  93. data/app/javascript/components/{Attachments.jsx → Attachments/List.tsx} +58 -63
  94. data/app/javascript/components/Attachments/useAttachments.ts +15 -0
  95. data/app/javascript/components/Attachments.tsx +14 -0
  96. data/app/javascript/components/DateRangeSelect.tsx +105 -0
  97. data/app/javascript/components/DateTimeSelect.tsx +136 -0
  98. data/app/javascript/components/EditableImage.tsx +11 -9
  99. data/app/javascript/components/FileUploadButton.tsx +7 -7
  100. data/app/javascript/components/ImageCropper/FocalPoint.tsx +9 -12
  101. data/app/javascript/components/ImageCropper/Image.tsx +10 -8
  102. data/app/javascript/components/ImageCropper/Toolbar.tsx +11 -12
  103. data/app/javascript/components/ImageCropper/useCrop.ts +24 -53
  104. data/app/javascript/components/ImageCropper.tsx +10 -15
  105. data/app/javascript/components/ImageEditor/Form.tsx +12 -8
  106. data/app/javascript/components/ImageEditor.tsx +12 -7
  107. data/app/javascript/components/ImageGrid/DragElement.tsx +9 -12
  108. data/app/javascript/components/{ImageGrid.jsx → ImageGrid/Grid.tsx} +62 -71
  109. data/app/javascript/components/ImageGrid/GridImage.tsx +22 -23
  110. data/app/javascript/components/ImageGrid/Placeholder.tsx +2 -2
  111. data/app/javascript/components/ImageGrid/useImageGrid.ts +26 -0
  112. data/app/javascript/components/ImageGrid.tsx +15 -0
  113. data/app/javascript/components/ImageUploader.tsx +35 -22
  114. data/app/javascript/components/LabelledField.tsx +34 -0
  115. data/app/javascript/components/Modal.tsx +2 -2
  116. data/app/javascript/components/PageForm/Block.tsx +81 -0
  117. data/app/javascript/components/PageForm/Content.tsx +54 -0
  118. data/app/javascript/components/PageForm/Dates.tsx +66 -0
  119. data/app/javascript/components/PageForm/Files.tsx +28 -0
  120. data/app/javascript/components/PageForm/Form.tsx +41 -0
  121. data/app/javascript/components/PageForm/Images.tsx +28 -0
  122. data/app/javascript/components/PageForm/LocaleLinks.tsx +36 -0
  123. data/app/javascript/components/PageForm/Metadata.tsx +67 -0
  124. data/app/javascript/components/PageForm/Options.tsx +180 -0
  125. data/app/javascript/components/PageForm/PageDescription.tsx +48 -0
  126. data/app/javascript/components/PageForm/PathSegment.tsx +65 -0
  127. data/app/javascript/components/PageForm/TabPanel.tsx +21 -0
  128. data/app/javascript/components/PageForm/Tabs.tsx +33 -0
  129. data/app/javascript/components/PageForm/UnconfiguredContent.tsx +42 -0
  130. data/app/javascript/components/PageForm/pageParams.ts +95 -0
  131. data/app/javascript/components/PageForm/preview.ts +23 -0
  132. data/app/javascript/components/PageForm/usePage.ts +169 -0
  133. data/app/javascript/components/PageForm/useTabs.ts +46 -0
  134. data/app/javascript/components/PageForm.tsx +163 -0
  135. data/app/javascript/components/PageImages.tsx +7 -9
  136. data/app/javascript/components/PageTree/Draggable.tsx +40 -39
  137. data/app/javascript/components/PageTree/Node.tsx +62 -56
  138. data/app/javascript/components/PageTree/PageName.tsx +28 -0
  139. data/app/javascript/components/PageTree.tsx +65 -53
  140. data/app/javascript/components/{RichTextArea.jsx → RichTextArea.tsx} +98 -79
  141. data/app/javascript/components/RichTextToolbarButton.tsx +4 -6
  142. data/app/javascript/components/TagEditor/AddTagForm.tsx +19 -12
  143. data/app/javascript/components/TagEditor/Editor.tsx +32 -0
  144. data/app/javascript/components/TagEditor/Tag.tsx +6 -4
  145. data/app/javascript/components/TagEditor/useTags.ts +58 -0
  146. data/app/javascript/components/TagEditor.tsx +8 -58
  147. data/app/javascript/components/Toast.tsx +3 -3
  148. data/app/javascript/components/drag/draggedOrder.ts +22 -14
  149. data/app/javascript/components/drag/useDragCollection.ts +35 -30
  150. data/app/javascript/components/drag/useDragUploader.ts +32 -21
  151. data/app/javascript/components/drag/useDraggable.ts +7 -6
  152. data/app/javascript/components/drag.ts +0 -1
  153. data/app/javascript/components.ts +1 -3
  154. data/app/javascript/features/RichText.tsx +2 -3
  155. data/app/javascript/features/contentTabs.ts +79 -0
  156. data/app/javascript/index.ts +5 -14
  157. data/app/javascript/lib/Tree.ts +31 -45
  158. data/app/javascript/lib/request.ts +11 -11
  159. data/app/javascript/stores/useToastStore.ts +1 -1
  160. data/app/javascript/types/Attachments.ts +29 -0
  161. data/app/javascript/types/Crop.ts +36 -0
  162. data/app/javascript/types/Drag.ts +34 -0
  163. data/app/javascript/types/Images.ts +47 -0
  164. data/app/javascript/types/PageEditor.ts +26 -0
  165. data/app/javascript/types/Pages.ts +75 -0
  166. data/app/javascript/types/Tags.ts +9 -0
  167. data/app/javascript/types/Template.ts +24 -0
  168. data/app/javascript/types/Trees.ts +19 -0
  169. data/app/javascript/types.ts +2 -25
  170. data/app/mailers/admin_mailer.rb +2 -2
  171. data/app/models/attachment.rb +1 -1
  172. data/app/models/concerns/pages_core/authenticable_user.rb +63 -0
  173. data/app/models/concerns/pages_core/emailable.rb +16 -0
  174. data/app/models/concerns/pages_core/page_model/templateable.rb +2 -16
  175. data/app/models/invite.rb +2 -6
  176. data/app/models/otp_secret.rb +101 -0
  177. data/app/models/page.rb +0 -3
  178. data/app/models/user.rb +2 -68
  179. data/app/policies/page_policy.rb +6 -2
  180. data/app/policies/user_policy.rb +4 -0
  181. data/app/resources/admin/page_resource.rb +95 -0
  182. data/app/resources/admin/page_tree_resource.rb +27 -0
  183. data/app/resources/admin/template_configuration_resource.rb +50 -0
  184. data/app/views/admin/account_recoveries/new.html.erb +22 -0
  185. data/app/views/admin/account_recoveries/show.html.erb +37 -0
  186. data/app/views/admin/invites/show.html.erb +1 -1
  187. data/app/views/admin/news/_sidebar.html.erb +2 -4
  188. data/app/views/admin/news/index.html.erb +0 -1
  189. data/app/views/admin/otp_secrets/create.html.erb +7 -0
  190. data/app/views/admin/otp_secrets/new.html.erb +60 -0
  191. data/app/views/admin/pages/_form.html.erb +10 -30
  192. data/app/views/admin/pages/_search_bar.html.erb +1 -1
  193. data/app/views/admin/pages/edit.html.erb +1 -57
  194. data/app/views/admin/pages/index.html.erb +1 -1
  195. data/app/views/admin/pages/new.html.erb +1 -44
  196. data/app/views/admin/recovery_codes/_codes.html.erb +14 -0
  197. data/app/views/admin/recovery_codes/create.html.erb +7 -0
  198. data/app/views/admin/recovery_codes/new.html.erb +11 -0
  199. data/app/views/admin/sessions/_otp_form.html.erb +13 -0
  200. data/app/views/admin/sessions/new.html.erb +31 -0
  201. data/app/views/admin/sessions/verify_otp.html.erb +19 -0
  202. data/app/views/admin/users/_access_control.html.erb +5 -1
  203. data/app/views/admin/users/_list.html.erb +12 -7
  204. data/app/views/admin/users/edit.html.erb +31 -1
  205. data/app/views/admin/users/new.html.erb +1 -1
  206. data/app/views/admin_mailer/account_recovery.text.erb +10 -0
  207. data/app/views/layouts/admin/_header.html.erb +3 -5
  208. data/app/views/layouts/admin/_page_header.html.erb +1 -2
  209. data/app/views/layouts/admin/_toast.html.erb +12 -0
  210. data/app/views/layouts/admin.html.erb +2 -2
  211. data/config/locales/en.yml +11 -7
  212. data/config/routes.rb +13 -12
  213. data/db/migrate/20240126160700_add_2fa_fields.rb +26 -0
  214. data/db/migrate/20240129201300_remove_password_reset_tokens.rb +13 -0
  215. data/db/migrate/20240131140700_change_email_to_citext.rb +18 -0
  216. data/db/migrate/20240201160700_remove_persistent_data.rb +7 -0
  217. data/db/migrate/20240508145300_remove_categories.rb +21 -0
  218. data/lib/pages_core/configuration/base.rb +2 -2
  219. data/lib/pages_core/templates/configuration.rb +1 -1
  220. data/lib/pages_core/templates/configuration_proxy.rb +2 -2
  221. data/lib/pages_core/templates/template_configuration.rb +11 -1
  222. data/lib/pages_core/templates.rb +6 -4
  223. data/lib/pages_core/version.rb +1 -1
  224. data/lib/pages_core.rb +6 -0
  225. data/lib/rails/generators/pages_core/frontend/templates/javascript/lib/gridOverlay.ts +6 -7
  226. data/lib/rails/generators/pages_core/frontend/templates/javascript/lib/responsiveEmbeds.ts +17 -12
  227. data/lib/rails/generators/pages_core/rspec/rspec_generator.rb +0 -2
  228. data/lib/rails/generators/pages_core/rspec/templates/rails_helper.rb +3 -4
  229. metadata +143 -35
  230. data/app/assets/stylesheets/pages_core/admin/components/login.css +0 -33
  231. data/app/controllers/admin/categories_controller.rb +0 -56
  232. data/app/controllers/admin/password_resets_controller.rb +0 -85
  233. data/app/controllers/concerns/pages_core/admin/persistent_params.rb +0 -75
  234. data/app/controllers/sessions_controller.rb +0 -27
  235. data/app/helpers/pages_core/admin/page_blocks_helper.rb +0 -66
  236. data/app/helpers/pages_core/admin/page_json_helper.rb +0 -23
  237. data/app/javascript/components/DateRangeSelect.jsx +0 -225
  238. data/app/javascript/components/PageDates.jsx +0 -73
  239. data/app/javascript/components/PageFiles.jsx +0 -25
  240. data/app/javascript/components/PageTree/types.ts +0 -15
  241. data/app/javascript/components/drag/types.ts +0 -28
  242. data/app/javascript/controllers/EditPageController.ts +0 -22
  243. data/app/javascript/controllers/LoginController.ts +0 -32
  244. data/app/javascript/controllers/MainController.ts +0 -74
  245. data/app/javascript/controllers/PageOptionsController.js +0 -67
  246. data/app/models/category.rb +0 -22
  247. data/app/models/page_category.rb +0 -6
  248. data/app/models/password_reset_token.rb +0 -34
  249. data/app/views/admin/pages/_edit_content.html.erb +0 -19
  250. data/app/views/admin/pages/_edit_files.html.erb +0 -4
  251. data/app/views/admin/pages/_edit_images.html.erb +0 -4
  252. data/app/views/admin/pages/_edit_metadata.html.erb +0 -35
  253. data/app/views/admin/pages/_edit_options.html.erb +0 -91
  254. data/app/views/admin/password_resets/show.html.erb +0 -21
  255. data/app/views/admin/users/login.html.erb +0 -65
  256. data/app/views/admin_mailer/password_reset.text.erb +0 -11
  257. data/lib/rails/generators/pages_core/rspec/templates/mailer_macros.rb +0 -11
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  .archive-index {
2
- & .count {
2
+ .count {
3
3
  font-weight: normal;
4
4
  color: var(--text-light-color);
5
5
  }
@@ -1,18 +1,17 @@
1
1
  .attachments {
2
2
  margin-bottom: 40px;
3
3
 
4
- & .drop-target {
4
+ .drop-target {
5
5
  position: relative;
6
6
  width: 100%;
7
7
  text-align: center;
8
- line-height: 1.6;
9
8
  margin-top: 20px;
10
9
 
11
10
  &:first-child {
12
11
  margin-top: 0px;
13
12
  }
14
13
 
15
- & .upload-button {
14
+ .upload-button {
16
15
  width: 100%;
17
16
  display: flex;
18
17
  flex-direction: column;
@@ -23,19 +22,21 @@
23
22
  }
24
23
  }
25
24
 
26
- & .attachment {
25
+ .attachment {
27
26
  border-bottom: 1px solid var(--border-color);
28
27
  padding: 16px 0px 16px 40px;
29
28
  cursor: pointer;
30
29
  background: #fff;
31
- transition: padding-left 50ms ease-in-out, background 150ms ease-in-out;
30
+ transition:
31
+ padding-left 50ms ease-in-out,
32
+ background 150ms ease-in-out;
32
33
 
33
- & .attachment-info {
34
+ .attachment-info {
34
35
  transition: all 50ms ease-in-out;
35
36
  }
36
37
 
37
38
  &.drop-placeholder {
38
- font-size: 14px;
39
+ font-size: 0.875rem;
39
40
  margin-top: -1px;
40
41
  border-top: 1px solid var(--border-color);
41
42
  background: var(--background-disabled-color);
@@ -49,11 +50,11 @@
49
50
  padding-left: 56px;
50
51
  background: var(--background-disabled-color);
51
52
 
52
- & .attachment-info {
53
+ .attachment-info {
53
54
  opacity: 0.5;
54
55
  }
55
56
 
56
- & .actions {
57
+ .actions {
57
58
  display: none;
58
59
  }
59
60
  }
@@ -62,14 +63,16 @@
62
63
  margin-bottom: 0px;
63
64
  }
64
65
 
65
- & .actions {
66
+ .actions {
66
67
  float: right;
68
+ display: flex;
69
+ gap: 0.25rem;
67
70
  }
68
71
 
69
- & h3 {
72
+ h3 {
70
73
  margin: 0px 0px 12px 0px;
71
74
 
72
- & .icon {
75
+ .icon {
73
76
  display: block;
74
77
  float: left;
75
78
  margin-left: -40px;
@@ -77,26 +80,11 @@
77
80
  }
78
81
  }
79
82
 
80
- & p {
83
+ p {
81
84
  &:last-child {
82
85
  margin-bottom: 0px;
83
86
  }
84
87
  }
85
-
86
- & button {
87
- cursor: pointer;
88
- border: 1px solid var(--border-color);
89
- border-radius: 3px;
90
- background: var(--button-color);
91
- padding: 5px 20px;
92
- font-size: 12px;
93
- color: var(--text-color);
94
-
95
- &:hover,
96
- &:focus {
97
- background: #fff;
98
- }
99
- }
100
88
  }
101
89
  }
102
90
 
@@ -109,23 +97,23 @@
109
97
  height: 100%;
110
98
  }
111
99
 
112
- & form {
100
+ form {
113
101
  width: 100%;
114
102
 
115
- & .buttons {
103
+ .buttons {
116
104
  margin-top: 24px;
117
105
  }
118
106
 
119
- & .embed-code {
120
- & input[type="text"] {
107
+ .embed-code {
108
+ input[type="text"] {
121
109
  width: 50%;
122
110
  max-width: 100px;
123
111
  margin-right: 8px;
124
112
  }
125
113
  }
126
114
 
127
- & textarea,
128
- & input[type="text"] {
115
+ textarea,
116
+ input[type="text"] {
129
117
  max-width: 100%;
130
118
 
131
119
  &.description {
@@ -3,29 +3,11 @@ body {
3
3
  color: var(--text-color);
4
4
  }
5
5
 
6
- body,
7
- td,
8
- th {
9
- font-family: Helvetica, Arial, sans-serif;
10
- font-size: 12px;
11
- }
12
-
13
- h1,
14
- h2,
15
- h3,
16
- h4,
17
- h5,
18
- h6,
19
- p {
20
- margin: 16px 0;
21
- }
22
-
23
6
  img {
24
7
  border: 0;
25
8
  }
26
9
 
27
10
  small {
28
- font-size: 0.9em;
29
11
  color: var(--text-light-color);
30
12
  }
31
13
 
@@ -42,7 +24,7 @@ th {
42
24
  }
43
25
 
44
26
  div.content {
45
- margin: 0 32px;
27
+ margin: 1.5rem 2rem;
46
28
  }
47
29
 
48
30
  table.show th,
@@ -51,54 +33,6 @@ td {
51
33
  padding: 2px 16px 2px 0;
52
34
  }
53
35
 
54
- .errorExplanation {
55
- background-color: #ffd;
56
- border-bottom: 1px solid #dda;
57
- margin: -32px -32px 16px -32px;
58
- padding: 0px 32px;
59
- color: #333;
60
-
61
- & h2 {
62
- font-weight: normal;
63
- font-size: 1.4em;
64
- margin: 0 -32px 16px -32px;
65
- padding: 8px 32px;
66
- background-color: var(--red);
67
- color: #fff;
68
- }
69
-
70
- & p {
71
- margin-bottom: 0;
72
- padding: 0;
73
- }
74
-
75
- & ul {
76
- padding: 0;
77
- list-style-position: inside;
78
- }
79
-
80
- & ul li {
81
- font-weight: bold;
82
- }
83
- }
84
-
85
- .flash {
86
- background: #fffbdf;
87
- border-bottom: 1px solid #ccc9b2;
88
- margin: -32px -32px 32px -32px;
89
- padding: 16px 32px;
90
- font-weight: bold;
91
- color: #6f2d1b;
92
- font-size: 1.2em;
93
- }
94
-
95
- div.paginator {
96
- margin: 32px 0;
97
- font-size: 1.5em;
98
- font-weight: bold;
99
- color: var(--text-light-color);
100
- }
101
-
102
36
  img.thumbnail {
103
37
  border: 1px solid #555;
104
38
  }
@@ -106,7 +40,6 @@ img.thumbnail {
106
40
  li .actions {
107
41
  font-weight: normal;
108
42
  display: inline;
109
- font-size: 12px;
110
43
  color: var(--text-light-color);
111
44
  margin-top: 1px;
112
45
  }
@@ -1,25 +1,35 @@
1
1
  main form {
2
- margin: 16px 32px;
2
+ margin: 1.5rem 2rem;
3
3
  }
4
4
 
5
5
  form {
6
- & .field {
7
- margin: 16px 0;
6
+ .field {
7
+ margin: 1.5rem 0;
8
8
  padding: 0;
9
+ @mixin child-margins;
10
+
11
+ .date-select {
12
+ display: flex;
13
+ gap: 4px;
14
+ flex-wrap: wrap;
15
+ .time {
16
+ width: 4rem;
17
+ min-width: 2rem;
18
+ }
19
+ }
9
20
 
10
- & input[type="text"],
11
- & input[type="password"],
12
- & input[type="email"],
13
- & textarea {
21
+ input[type="text"],
22
+ input[type="password"],
23
+ input[type="email"],
24
+ textarea {
14
25
  transition: border-color 150ms ease-out;
15
26
  }
16
27
 
17
- & label {
28
+ label {
18
29
  display: block;
19
30
  padding: 0;
20
31
  margin: 0 0 4px 0;
21
- font-weight: bold;
22
- font-size: 13px;
32
+ font-weight: var(--bold-weight);
23
33
  color: var(--text-color);
24
34
  transition: color 150ms ease-out;
25
35
 
@@ -34,43 +44,44 @@ form {
34
44
  }
35
45
  }
36
46
 
37
- & .description {
47
+ .description {
48
+ display: block;
38
49
  color: var(--text-light-color);
39
50
  margin: 0 0 6px 0;
40
51
  }
41
52
  }
42
53
 
43
- & .field-with-warning {
44
- & input[type="text"],
45
- & input[type="password"],
46
- & input[type="email"],
47
- & textarea {
54
+ .field-with-warning {
55
+ input[type="text"],
56
+ input[type="password"],
57
+ input[type="email"],
58
+ textarea {
48
59
  border-color: var(--red-light);
49
60
  }
50
61
 
51
- & label {
62
+ label {
52
63
  color: var(--red);
53
64
  }
54
65
  }
55
66
 
56
- & .field-with-errors {
67
+ .field-with-errors {
57
68
  background: var(--red-invert);
58
69
  border-top: 1px solid var(--red-light);
59
70
  border-bottom: 1px solid var(--red-light);
60
71
  margin: 0 -32px -1px -32px;
61
72
  padding: 12px 32px 16px 32px;
62
73
 
63
- & label {
74
+ label {
64
75
  color: var(--red);
65
76
  }
66
77
  }
67
78
 
68
- & .row {
79
+ .row {
69
80
  display: flex;
70
81
  flex-wrap: wrap;
71
82
  margin-right: -16px;
72
83
 
73
- & .field {
84
+ .field {
74
85
  margin-right: 16px;
75
86
 
76
87
  &.text-field {
@@ -79,24 +90,20 @@ form {
79
90
  }
80
91
  }
81
92
 
82
- & input[type="text"],
83
- & input[type="password"] {
93
+ input[type="text"],
94
+ input[type="password"] {
84
95
  width: 100%;
85
96
  max-width: none;
86
97
  }
87
98
  }
88
99
 
89
- & .date-range-select {
90
- & .date {
100
+ .date-range-select {
101
+ .date {
91
102
  line-height: 34px;
92
103
  display: inline-block;
93
104
  white-space: nowrap;
94
105
 
95
- & .date-select {
96
- display: inline-block;
97
- }
98
-
99
- & input[type="text"] {
106
+ input[type="text"] {
100
107
  display: inline;
101
108
  width: auto;
102
109
  min-width: auto;
@@ -105,21 +112,21 @@ form {
105
112
  }
106
113
  }
107
114
 
108
- & .to {
115
+ .to {
109
116
  margin: 0px 8px;
110
117
  }
111
118
  }
112
119
 
113
- & .page-dates {
120
+ .page-dates {
114
121
  margin-bottom: 40px;
115
122
 
116
- & .toggles {
117
- & label {
123
+ .toggles {
124
+ label {
118
125
  font-weight: normal;
119
126
  display: inline-block;
120
127
  margin-right: 12px;
121
128
 
122
- & input {
129
+ input {
123
130
  margin-right: 6px;
124
131
  }
125
132
 
@@ -129,7 +136,7 @@ form {
129
136
  }
130
137
  }
131
138
 
132
- & .remove-dates {
139
+ .remove-dates {
133
140
  margin-top: 12px;
134
141
  }
135
142
  }
@@ -151,10 +158,11 @@ textarea {
151
158
  min-width: 200px;
152
159
  border: 1px solid var(--border-color);
153
160
  box-shadow: inset 0px 5px 5px rgba(0, 0, 0, 0.03);
154
- padding: 8px 10px;
155
- line-height: 1.4;
156
- font-family: Helvetica, Arial, sans-serif;
157
- font-size: 13px;
161
+ padding: 0.5rem 0.75rem;
162
+
163
+ &.tight {
164
+ padding: 0.25rem 0.5rem;
165
+ }
158
166
 
159
167
  &:disabled {
160
168
  border-color: var(--border-color-light);
@@ -166,13 +174,6 @@ textarea {
166
174
  }
167
175
  }
168
176
 
169
- main .login-form input[type="text"],
170
- main .login-form input[type="password"],
171
- input[type="text"].large,
172
- input[type="password"].large {
173
- font-size: 1.4em;
174
- }
175
-
176
177
  fieldset {
177
178
  padding: 0px;
178
179
  margin: 0px;
@@ -180,12 +181,18 @@ fieldset {
180
181
  border-bottom: 1px solid var(--border-color);
181
182
  }
182
183
 
184
+ .buttons {
185
+ display: flex;
186
+ flex-wrap: wrap;
187
+ gap: 4px;
188
+ }
189
+
183
190
  button,
184
191
  select {
185
192
  appearance: none;
186
193
  cursor: inherit;
187
194
  font-family: var(--font-os-sans);
188
- font-size: 13px;
195
+ font-size: 0.875rem;
189
196
  color: var(--text-color);
190
197
  line-height: 1.5;
191
198
  border: 1px solid var(--button-border-color);
@@ -194,6 +201,10 @@ select {
194
201
  background: var(--button-color);
195
202
  box-shadow: inset 0px 0.75em 0.75em rgba(255, 255, 255, 0.25);
196
203
 
204
+ .icon {
205
+ margin-right: 8px;
206
+ }
207
+
197
208
  &:hover {
198
209
  background-color: var(--button-color-hover);
199
210
  }
@@ -206,6 +217,27 @@ select {
206
217
  background-color: var(--button-color);
207
218
  }
208
219
  }
220
+
221
+ &.primary {
222
+ background: var(--text-color);
223
+ border-color: var(--text-color);
224
+ color: var(--text-invert-color);
225
+ box-shadow: inset 0px 0.75em 0.75em rgba(255, 255, 255, 0.2);
226
+ &:hover {
227
+ box-shadow: inset 0px 0.75em 0.75em rgba(255, 255, 255, 0.1);
228
+ }
229
+ }
230
+
231
+ &.transparent {
232
+ border: none;
233
+ background: transparent;
234
+ cursor: pointer;
235
+ padding: 0.25rem 0.25rem;
236
+ &:hover,
237
+ &:focus {
238
+ text-decoration: underline;
239
+ }
240
+ }
209
241
  }
210
242
 
211
243
  select {
@@ -222,3 +254,30 @@ form.button-to {
222
254
  margin: 0;
223
255
  padding: 0;
224
256
  }
257
+
258
+ .buttons {
259
+ display: flex;
260
+ flex-wrap: wrap;
261
+ gap: 0.25rem;
262
+ }
263
+
264
+ .inline-form {
265
+ display: flex;
266
+ input {
267
+ flex: 1 1 auto;
268
+ border-right: none;
269
+ &:focus {
270
+ z-index: 20;
271
+ }
272
+ }
273
+ button {
274
+ border-radius: 0px;
275
+ white-space: nowrap;
276
+ border-right: none;
277
+ &:last-child {
278
+ border-top-right-radius: 5px;
279
+ border-bottom-right-radius: 5px;
280
+ border-right: 1px solid var(--button-border-color);
281
+ }
282
+ }
283
+ }