pages_core 3.14.0 → 3.15.1

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 (249) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/app/assets/builds/fonts/6569749d.ttf +0 -0
  4. data/app/assets/builds/fonts/7b7db107.woff2 +0 -0
  5. data/app/assets/builds/fonts/921961e9.woff2 +0 -0
  6. data/app/assets/builds/fonts/ee32bc60.ttf +0 -0
  7. data/app/assets/builds/pages_core/admin-dist.js +19 -8
  8. data/app/assets/builds/pages_core/admin-dist.js.map +4 -4
  9. data/app/assets/builds/pages_core/admin.css +699 -394
  10. data/app/assets/builds/pages_core/mailer.css +99 -0
  11. data/app/assets/fonts/Inter-Black.woff2 +0 -0
  12. data/app/assets/fonts/Inter-BlackItalic.woff2 +0 -0
  13. data/app/assets/fonts/Inter-Bold.woff2 +0 -0
  14. data/app/assets/fonts/Inter-BoldItalic.woff2 +0 -0
  15. data/app/assets/fonts/Inter-ExtraBold.woff2 +0 -0
  16. data/app/assets/fonts/Inter-ExtraBoldItalic.woff2 +0 -0
  17. data/app/assets/fonts/Inter-ExtraLight.woff2 +0 -0
  18. data/app/assets/fonts/Inter-ExtraLightItalic.woff2 +0 -0
  19. data/app/assets/fonts/Inter-Italic.woff2 +0 -0
  20. data/app/assets/fonts/Inter-Light.woff2 +0 -0
  21. data/app/assets/fonts/Inter-LightItalic.woff2 +0 -0
  22. data/app/assets/fonts/Inter-Medium.woff2 +0 -0
  23. data/app/assets/fonts/Inter-MediumItalic.woff2 +0 -0
  24. data/app/assets/fonts/Inter-Regular.woff2 +0 -0
  25. data/app/assets/fonts/Inter-SemiBold.woff2 +0 -0
  26. data/app/assets/fonts/Inter-SemiBoldItalic.woff2 +0 -0
  27. data/app/assets/fonts/Inter-Thin.woff2 +0 -0
  28. data/app/assets/fonts/Inter-ThinItalic.woff2 +0 -0
  29. data/app/assets/fonts/InterDisplay-Black.woff2 +0 -0
  30. data/app/assets/fonts/InterDisplay-BlackItalic.woff2 +0 -0
  31. data/app/assets/fonts/InterDisplay-Bold.woff2 +0 -0
  32. data/app/assets/fonts/InterDisplay-BoldItalic.woff2 +0 -0
  33. data/app/assets/fonts/InterDisplay-ExtraBold.woff2 +0 -0
  34. data/app/assets/fonts/InterDisplay-ExtraBoldItalic.woff2 +0 -0
  35. data/app/assets/fonts/InterDisplay-ExtraLight.woff2 +0 -0
  36. data/app/assets/fonts/InterDisplay-ExtraLightItalic.woff2 +0 -0
  37. data/app/assets/fonts/InterDisplay-Italic.woff2 +0 -0
  38. data/app/assets/fonts/InterDisplay-Light.woff2 +0 -0
  39. data/app/assets/fonts/InterDisplay-LightItalic.woff2 +0 -0
  40. data/app/assets/fonts/InterDisplay-Medium.woff2 +0 -0
  41. data/app/assets/fonts/InterDisplay-MediumItalic.woff2 +0 -0
  42. data/app/assets/fonts/InterDisplay-Regular.woff2 +0 -0
  43. data/app/assets/fonts/InterDisplay-SemiBold.woff2 +0 -0
  44. data/app/assets/fonts/InterDisplay-SemiBoldItalic.woff2 +0 -0
  45. data/app/assets/fonts/InterDisplay-Thin.woff2 +0 -0
  46. data/app/assets/fonts/InterDisplay-ThinItalic.woff2 +0 -0
  47. data/app/assets/fonts/InterVariable-Italic.woff2 +0 -0
  48. data/app/assets/fonts/InterVariable.woff2 +0 -0
  49. data/app/assets/stylesheets/pages_core/admin/components/archive.css +1 -1
  50. data/app/assets/stylesheets/pages_core/admin/components/attachments.css +22 -34
  51. data/app/assets/stylesheets/pages_core/admin/components/base.css +1 -68
  52. data/app/assets/stylesheets/pages_core/admin/components/forms.css +109 -48
  53. data/app/assets/stylesheets/pages_core/admin/components/header.css +56 -58
  54. data/app/assets/stylesheets/pages_core/admin/components/image_editor.css +35 -24
  55. data/app/assets/stylesheets/pages_core/admin/components/image_grid.css +28 -27
  56. data/app/assets/stylesheets/pages_core/admin/components/image_uploader.css +5 -5
  57. data/app/assets/stylesheets/pages_core/admin/components/layout.css +7 -1
  58. data/app/assets/stylesheets/pages_core/admin/components/list_table.css +24 -15
  59. data/app/assets/stylesheets/pages_core/admin/components/page_tree.css +63 -104
  60. data/app/assets/stylesheets/pages_core/admin/components/pagination.css +12 -13
  61. data/app/assets/stylesheets/pages_core/admin/components/search.css +1 -16
  62. data/app/assets/stylesheets/pages_core/admin/components/sidebar.css +5 -11
  63. data/app/assets/stylesheets/pages_core/admin/components/tag_editor.css +22 -36
  64. data/app/assets/stylesheets/pages_core/admin/components/toast.css +1 -2
  65. data/app/assets/stylesheets/pages_core/admin/components/toolbar.css +10 -10
  66. data/app/assets/stylesheets/pages_core/admin/components/totp.css +1 -1
  67. data/app/assets/stylesheets/pages_core/admin/controllers/pages.css +37 -51
  68. data/app/assets/stylesheets/pages_core/admin/global/fonts.css +271 -0
  69. data/app/assets/stylesheets/pages_core/admin/global/typography.css +109 -0
  70. data/app/assets/stylesheets/pages_core/admin/vars.css +1 -3
  71. data/app/assets/stylesheets/pages_core/{admin.postcss.css → admin.css} +1 -0
  72. data/app/assets/stylesheets/pages_core/mailer.css +90 -0
  73. data/app/controllers/admin/account_recoveries_controller.rb +2 -2
  74. data/app/controllers/admin/pages_controller.rb +22 -42
  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 +0 -2
  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 +2 -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/attachments_helper.rb +1 -1
  88. data/app/helpers/pages_core/frontend_helper.rb +1 -1
  89. data/app/helpers/pages_core/images_helper.rb +10 -8
  90. data/app/helpers/pages_core/labelled_form_builder.rb +2 -7
  91. data/app/helpers/pages_core/page_path_helper.rb +1 -1
  92. data/app/javascript/components/Attachments/Attachment.tsx +20 -18
  93. data/app/javascript/components/Attachments/AttachmentEditor.tsx +11 -9
  94. data/app/javascript/components/{Attachments.jsx → Attachments/List.tsx} +58 -63
  95. data/app/javascript/components/Attachments/useAttachments.ts +15 -0
  96. data/app/javascript/components/Attachments.tsx +14 -0
  97. data/app/javascript/components/DateRangeSelect.tsx +105 -0
  98. data/app/javascript/components/DateTimeSelect.tsx +136 -0
  99. data/app/javascript/components/EditableImage.tsx +11 -9
  100. data/app/javascript/components/FileUploadButton.tsx +7 -7
  101. data/app/javascript/components/ImageCropper/FocalPoint.tsx +9 -12
  102. data/app/javascript/components/ImageCropper/Image.tsx +10 -8
  103. data/app/javascript/components/ImageCropper/Toolbar.tsx +11 -12
  104. data/app/javascript/components/ImageCropper/useCrop.ts +24 -53
  105. data/app/javascript/components/ImageCropper.tsx +10 -15
  106. data/app/javascript/components/ImageEditor/Form.tsx +12 -8
  107. data/app/javascript/components/ImageEditor.tsx +12 -7
  108. data/app/javascript/components/ImageGrid/DragElement.tsx +9 -12
  109. data/app/javascript/components/{ImageGrid.jsx → ImageGrid/Grid.tsx} +62 -71
  110. data/app/javascript/components/ImageGrid/GridImage.tsx +22 -23
  111. data/app/javascript/components/ImageGrid/Placeholder.tsx +2 -2
  112. data/app/javascript/components/ImageGrid/useImageGrid.ts +26 -0
  113. data/app/javascript/components/ImageGrid.tsx +15 -0
  114. data/app/javascript/components/ImageUploader.tsx +35 -22
  115. data/app/javascript/components/LabelledField.tsx +34 -0
  116. data/app/javascript/components/Modal.tsx +2 -2
  117. data/app/javascript/components/PageForm/Block.tsx +81 -0
  118. data/app/javascript/components/PageForm/Content.tsx +54 -0
  119. data/app/javascript/components/PageForm/Dates.tsx +66 -0
  120. data/app/javascript/components/PageForm/Files.tsx +28 -0
  121. data/app/javascript/components/PageForm/Form.tsx +41 -0
  122. data/app/javascript/components/PageForm/Images.tsx +28 -0
  123. data/app/javascript/components/PageForm/LocaleLinks.tsx +36 -0
  124. data/app/javascript/components/PageForm/Metadata.tsx +67 -0
  125. data/app/javascript/components/PageForm/Options.tsx +180 -0
  126. data/app/javascript/components/PageForm/PageDescription.tsx +48 -0
  127. data/app/javascript/components/PageForm/PathSegment.tsx +65 -0
  128. data/app/javascript/components/PageForm/TabPanel.tsx +21 -0
  129. data/app/javascript/components/PageForm/Tabs.tsx +33 -0
  130. data/app/javascript/components/PageForm/UnconfiguredContent.tsx +42 -0
  131. data/app/javascript/components/PageForm/pageParams.ts +95 -0
  132. data/app/javascript/components/PageForm/preview.ts +23 -0
  133. data/app/javascript/components/PageForm/usePage.ts +169 -0
  134. data/app/javascript/components/PageForm/useTabs.ts +46 -0
  135. data/app/javascript/components/PageForm.tsx +169 -0
  136. data/app/javascript/components/PageImages.tsx +7 -9
  137. data/app/javascript/components/PageTree/Draggable.tsx +40 -39
  138. data/app/javascript/components/PageTree/Node.tsx +62 -56
  139. data/app/javascript/components/PageTree/PageName.tsx +28 -0
  140. data/app/javascript/components/PageTree.tsx +65 -53
  141. data/app/javascript/components/{RichTextArea.jsx → RichTextArea.tsx} +98 -79
  142. data/app/javascript/components/RichTextToolbarButton.tsx +4 -6
  143. data/app/javascript/components/TagEditor/AddTagForm.tsx +19 -12
  144. data/app/javascript/components/TagEditor/Editor.tsx +32 -0
  145. data/app/javascript/components/TagEditor/Tag.tsx +6 -4
  146. data/app/javascript/components/TagEditor/useTags.ts +58 -0
  147. data/app/javascript/components/TagEditor.tsx +8 -58
  148. data/app/javascript/components/Toast.tsx +3 -3
  149. data/app/javascript/components/drag/draggedOrder.ts +22 -14
  150. data/app/javascript/components/drag/useDragCollection.ts +35 -30
  151. data/app/javascript/components/drag/useDragUploader.ts +32 -21
  152. data/app/javascript/components/drag/useDraggable.ts +7 -6
  153. data/app/javascript/components/drag.ts +0 -1
  154. data/app/javascript/components.ts +1 -3
  155. data/app/javascript/features/RichText.tsx +2 -3
  156. data/app/javascript/features/contentTabs.ts +79 -0
  157. data/app/javascript/index.ts +5 -12
  158. data/app/javascript/lib/Tree.ts +31 -45
  159. data/app/javascript/lib/request.ts +11 -11
  160. data/app/javascript/stores/useToastStore.ts +1 -1
  161. data/app/javascript/types/Attachments.ts +29 -0
  162. data/app/javascript/types/Crop.ts +36 -0
  163. data/app/javascript/types/Drag.ts +34 -0
  164. data/app/javascript/types/Images.ts +47 -0
  165. data/app/javascript/types/PageEditor.ts +26 -0
  166. data/app/javascript/types/Pages.ts +75 -0
  167. data/app/javascript/types/Tags.ts +9 -0
  168. data/app/javascript/types/Template.ts +24 -0
  169. data/app/javascript/types/Trees.ts +19 -0
  170. data/app/javascript/types.ts +2 -25
  171. data/app/mailers/admin_mailer.rb +5 -9
  172. data/app/models/attachment.rb +1 -1
  173. data/app/models/autopublisher.rb +1 -1
  174. data/app/models/concerns/pages_core/authenticable_user.rb +63 -0
  175. data/app/models/concerns/pages_core/emailable.rb +16 -0
  176. data/app/models/concerns/pages_core/page_model/dated_page.rb +3 -3
  177. data/app/models/concerns/pages_core/page_model/templateable.rb +2 -16
  178. data/app/models/concerns/pages_core/taggable.rb +2 -19
  179. data/app/models/invite.rb +2 -6
  180. data/app/models/otp_secret.rb +4 -4
  181. data/app/models/page.rb +0 -3
  182. data/app/models/user.rb +2 -46
  183. data/app/policies/page_policy.rb +6 -2
  184. data/app/resources/admin/page_resource.rb +95 -0
  185. data/app/resources/admin/page_tree_resource.rb +27 -0
  186. data/app/resources/admin/template_configuration_resource.rb +50 -0
  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/pages/_form.html.erb +10 -30
  190. data/app/views/admin/pages/_search_bar.html.erb +1 -1
  191. data/app/views/admin/pages/edit.html.erb +1 -57
  192. data/app/views/admin/pages/index.html.erb +1 -1
  193. data/app/views/admin/pages/new.html.erb +1 -44
  194. data/app/views/admin/sessions/new.html.erb +9 -11
  195. data/app/views/admin/users/_access_control.html.erb +5 -1
  196. data/app/views/admin/users/_list.html.erb +12 -7
  197. data/app/views/admin_mailer/account_recovery.html.erb +20 -0
  198. data/app/views/admin_mailer/invite.html.erb +11 -0
  199. data/app/views/layouts/admin/_header.html.erb +2 -4
  200. data/app/views/layouts/admin/_page_header.html.erb +1 -2
  201. data/app/views/layouts/admin.html.erb +1 -1
  202. data/app/views/layouts/pages_core/mailer.html.erb +11 -0
  203. data/config/locales/en.yml +0 -4
  204. data/config/routes.rb +3 -7
  205. data/db/migrate/20240126160700_add_2fa_fields.rb +5 -1
  206. data/db/migrate/20240131140700_change_email_to_citext.rb +18 -0
  207. data/db/migrate/20240201160700_remove_persistent_data.rb +7 -0
  208. data/db/migrate/20240508145300_remove_categories.rb +21 -0
  209. data/lib/pages_core/configuration/base.rb +2 -2
  210. data/lib/pages_core/engine.rb +1 -0
  211. data/lib/pages_core/templates/configuration.rb +1 -1
  212. data/lib/pages_core/templates/configuration_proxy.rb +2 -2
  213. data/lib/pages_core/templates/template_configuration.rb +11 -1
  214. data/lib/pages_core/templates.rb +6 -4
  215. data/lib/pages_core/version.rb +1 -1
  216. data/lib/pages_core.rb +1 -0
  217. data/lib/rails/generators/pages_core/frontend/templates/javascript/lib/gridOverlay.ts +6 -7
  218. data/lib/rails/generators/pages_core/frontend/templates/javascript/lib/responsiveEmbeds.ts +17 -12
  219. data/lib/rails/generators/pages_core/rspec/rspec_generator.rb +0 -2
  220. data/lib/rails/generators/pages_core/rspec/templates/rails_helper.rb +3 -4
  221. metadata +119 -36
  222. data/app/assets/builds/fonts/2a3059ad.ttf +0 -0
  223. data/app/assets/builds/fonts/47262711.woff2 +0 -0
  224. data/app/assets/builds/fonts/500ddeb0.woff2 +0 -0
  225. data/app/assets/builds/fonts/81221036.ttf +0 -0
  226. data/app/assets/stylesheets/pages_core/admin/components/login.css +0 -27
  227. data/app/controllers/admin/categories_controller.rb +0 -56
  228. data/app/controllers/concerns/pages_core/admin/persistent_params.rb +0 -75
  229. data/app/helpers/pages_core/admin/page_blocks_helper.rb +0 -66
  230. data/app/helpers/pages_core/admin/page_json_helper.rb +0 -23
  231. data/app/javascript/components/DateRangeSelect.jsx +0 -225
  232. data/app/javascript/components/PageDates.jsx +0 -73
  233. data/app/javascript/components/PageFiles.jsx +0 -25
  234. data/app/javascript/components/PageTree/types.ts +0 -15
  235. data/app/javascript/components/drag/types.ts +0 -28
  236. data/app/javascript/controllers/EditPageController.ts +0 -22
  237. data/app/javascript/controllers/MainController.ts +0 -74
  238. data/app/javascript/controllers/PageOptionsController.js +0 -67
  239. data/app/models/category.rb +0 -22
  240. data/app/models/concerns/pages_core/has_otp.rb +0 -27
  241. data/app/models/page_category.rb +0 -6
  242. data/app/views/admin/pages/_edit_content.html.erb +0 -19
  243. data/app/views/admin/pages/_edit_files.html.erb +0 -4
  244. data/app/views/admin/pages/_edit_images.html.erb +0 -4
  245. data/app/views/admin/pages/_edit_metadata.html.erb +0 -35
  246. data/app/views/admin/pages/_edit_options.html.erb +0 -91
  247. data/app/views/admin_mailer/account_recovery.text.erb +0 -10
  248. data/app/views/admin_mailer/invite.text.erb +0 -7
  249. data/lib/rails/generators/pages_core/rspec/templates/mailer_macros.rb +0 -11
@@ -1,30 +1,31 @@
1
1
  .image-grid {
2
- --image-padding: 7px;
2
+ --image-padding: 0.5rem;
3
3
  margin-bottom: 40px;
4
4
  display: flex;
5
+ gap: 1rem;
5
6
 
6
7
  @media (--mobile) {
7
8
  flex-direction: column;
8
9
  }
9
10
 
10
- & input[type="file"] {
11
+ input[type="file"] {
11
12
  display: none;
12
13
  }
13
14
 
14
- & h3 {
15
+ h3 {
15
16
  margin: 10px var(--image-padding) 10px var(--image-padding);
16
17
  border-bottom: 1px solid var(--border-color);
17
18
  padding-bottom: 5px;
18
19
  }
19
20
 
20
- & img {
21
+ img {
21
22
  display: block;
22
23
  width: 100%;
23
24
  height: auto;
24
25
  min-height: 1px; /* Hack for IE11 */
25
26
  }
26
27
 
27
- & .grid-image {
28
+ .grid-image {
28
29
  padding: var(--image-padding);
29
30
 
30
31
  &.placeholder {
@@ -36,19 +37,19 @@
36
37
  opacity: 0.5;
37
38
  overflow: hidden;
38
39
 
39
- & .temp-image {
40
+ .temp-image {
40
41
  position: relative;
41
42
  cursor: pointer;
42
43
  overflow: hidden;
43
44
  background: #000;
44
45
  }
45
46
 
46
- & img {
47
+ img {
47
48
  filter: blur(20px);
48
49
  opacity: 0.75;
49
50
  }
50
51
 
51
- & span {
52
+ span {
52
53
  position: absolute;
53
54
  top: 50%;
54
55
  left: 50%;
@@ -65,8 +66,8 @@
65
66
  }
66
67
  }
67
68
 
68
- & .file-placeholder,
69
- & .placeholder {
69
+ .file-placeholder,
70
+ .placeholder {
70
71
  position: relative;
71
72
  vertical-align: middle;
72
73
  background: var(--background-disabled-color);
@@ -74,13 +75,13 @@
74
75
  width: 100%;
75
76
  padding-bottom: 100%;
76
77
 
77
- & span {
78
+ span {
78
79
  color: var(--text-light-color);
79
80
  text-shadow: none;
80
81
  }
81
82
  }
82
83
 
83
- & .actions {
84
+ .actions {
84
85
  margin-top: 7px;
85
86
  display: flex;
86
87
  gap: 4px;
@@ -91,33 +92,33 @@
91
92
  visibility: visible;
92
93
  }
93
94
 
94
- & button {
95
+ button {
95
96
  flex: 1;
96
97
  }
97
98
  }
98
99
 
99
100
  &:hover {
100
- & .actions {
101
+ .actions {
101
102
  visibility: visible;
102
103
  }
103
104
  }
104
105
  }
105
106
 
106
- & .primary-image {
107
+ .primary-image {
107
108
  width: 33.33%;
108
109
 
109
110
  @media (--mobile) {
110
111
  width: 100%;
111
112
  }
112
113
 
113
- & .drop-target {
114
+ .drop-target {
114
115
  position: relative;
115
116
  width: 100%;
116
117
  padding-bottom: 66.67%;
117
118
  text-align: center;
118
119
  line-height: 1.6;
119
120
 
120
- & > .upload-button {
121
+ > .upload-button {
121
122
  position: absolute;
122
123
  display: flex;
123
124
  flex-direction: column;
@@ -133,15 +134,15 @@
133
134
  }
134
135
  }
135
136
 
136
- & .grid {
137
+ .grid {
137
138
  width: 100%;
138
139
 
139
- & .images {
140
+ .images {
140
141
  position: relative;
141
142
  display: flex;
142
143
  flex-wrap: wrap;
143
144
 
144
- & .grid-image {
145
+ .grid-image {
145
146
  display: flex;
146
147
  flex-direction: column;
147
148
  justify-content: flex-end;
@@ -157,10 +158,10 @@
157
158
  }
158
159
  }
159
160
 
160
- & .editable-image {
161
+ .editable-image {
161
162
  padding-bottom: 75%;
162
163
 
163
- & img {
164
+ img {
164
165
  position: absolute;
165
166
  top: 0px;
166
167
  left: 0px;
@@ -171,18 +172,18 @@
171
172
  }
172
173
  }
173
174
 
174
- & .drop-target {
175
+ .drop-target {
175
176
  margin: 10px var(--image-padding);
176
177
  padding-top: 10px;
177
178
 
178
- & button {
179
+ button {
179
180
  margin: 0px 7px;
180
181
  }
181
182
  }
182
183
  }
183
184
 
184
185
  &.with-primary-image {
185
- & .grid {
186
+ .grid {
186
187
  width: 66.67%;
187
188
 
188
189
  @media (--mobile) {
@@ -190,7 +191,7 @@
190
191
  }
191
192
  }
192
193
 
193
- & .images .grid-image {
194
+ .images .grid-image {
194
195
  width: 25%;
195
196
 
196
197
  @media (--narrow) {
@@ -203,7 +204,7 @@
203
204
  }
204
205
  }
205
206
 
206
- & .drag-image {
207
+ .drag-image {
207
208
  position: absolute;
208
209
  width: 150px;
209
210
  z-index: 100;
@@ -17,14 +17,14 @@
17
17
  border: 2px dashed var(--border-color);
18
18
  }
19
19
 
20
- & .image {
20
+ .image {
21
21
  display: flex;
22
22
  align-items: center;
23
23
  justify-content: center;
24
24
  max-width: 250px;
25
25
  max-height: 400px;
26
26
 
27
- & .editable-image img {
27
+ .editable-image img {
28
28
  width: auto;
29
29
  max-height: 400px;
30
30
  }
@@ -34,19 +34,19 @@
34
34
  }
35
35
  }
36
36
 
37
- & .ui-wrapper {
37
+ .ui-wrapper {
38
38
  flex: 1;
39
39
  display: flex;
40
40
  align-items: center;
41
41
  justify-content: center;
42
42
  }
43
43
 
44
- & .ui {
44
+ .ui {
45
45
  text-align: center;
46
46
  padding: 20px;
47
47
  }
48
48
 
49
- & .remove-image {
49
+ .remove-image {
50
50
  display: block;
51
51
  margin-top: 20px;
52
52
  }
@@ -17,6 +17,12 @@ body {
17
17
  flex-flow: column nowrap;
18
18
  height: 100vh;
19
19
 
20
+ & > div[data-react-class] {
21
+ flex-grow: 1;
22
+ display: flex;
23
+ flex-flow: column nowrap;
24
+ }
25
+
20
26
  & > *,
21
27
  & .main-wrapper {
22
28
  flex-shrink: 0;
@@ -40,7 +46,7 @@ body {
40
46
  & > aside {
41
47
  min-width: 300px;
42
48
  width: 20%;
43
- padding: 0px 16px;
49
+ padding: 1rem;
44
50
 
45
51
  @media (--mobile) {
46
52
  width: 100%;
@@ -3,25 +3,25 @@ table.list {
3
3
  margin: 16px 0;
4
4
  width: 100%;
5
5
 
6
- & td,
7
- & th {
6
+ td,
7
+ th {
8
8
  padding: 8px 16px;
9
9
  text-align: left;
10
10
  vertical-align: top;
11
11
  }
12
12
 
13
- & th {
13
+ th {
14
14
  background: linear-gradient(
15
15
  to bottom,
16
16
  var(--background-color) 0%,
17
17
  var(--background-disabled-color) 100%
18
18
  );
19
19
  color: var(--text-light-color);
20
- font-weight: bold;
20
+ font-weight: var(--bold-weight);
21
21
  border-bottom: 1px solid var(--border-color);
22
22
  }
23
23
 
24
- & td {
24
+ td {
25
25
  border-bottom: 1px solid var(--border-color);
26
26
 
27
27
  &.note {
@@ -29,45 +29,54 @@ table.list {
29
29
  }
30
30
 
31
31
  &.name {
32
- font-weight: bold;
32
+ font-weight: var(--bold-weight);
33
+ a,
34
+ a:visited {
35
+ text-decoration: none;
36
+ color: var(--text-color);
37
+ }
38
+ a:focus,
39
+ a:hover {
40
+ border-bottom: 1px solid var(--text-color);
41
+ }
33
42
  }
34
43
  }
35
44
 
36
- & tr td:first-child,
37
- & tr th:first-child {
45
+ tr td:first-child,
46
+ tr th:first-child {
38
47
  padding-left: 32px;
39
48
  }
40
49
 
41
- & tr td:last-child,
42
- & tr th:last-child {
50
+ tr td:last-child,
51
+ tr th:last-child {
43
52
  padding-right: 32px;
44
53
  }
45
54
 
46
- & tr.disabled td {
55
+ tr.disabled td {
47
56
  opacity: 0.5;
48
57
  }
49
58
 
50
- & tr.disabled td:first-child {
59
+ tr.disabled td:first-child {
51
60
  background: transparent
52
61
  radial-gradient(ellipse at center, #bdbdbd 50%, transparent 50%) no-repeat
53
62
  left 12px top 50%;
54
63
  background-size: 10px 10px;
55
64
  }
56
65
 
57
- & tr.active td:first-child {
66
+ tr.active td:first-child {
58
67
  background: transparent
59
68
  radial-gradient(ellipse at center, #92b6c4 50%, transparent 50%) no-repeat
60
69
  left 12px top 50%;
61
70
  background-size: 10px 10px;
62
71
  }
63
72
 
64
- & .actions {
73
+ .actions {
65
74
  float: right;
66
75
  margin-bottom: 2px;
67
76
  margin-left: 16px;
68
77
  }
69
78
 
70
- & p {
79
+ p {
71
80
  margin: 0;
72
81
  padding: 0;
73
82
  }
@@ -5,14 +5,15 @@
5
5
  margin: 20px 0 40px 0;
6
6
  margin-left: -20px;
7
7
  margin-right: -10px;
8
+ max-width: 90rem;
8
9
 
9
- & .draggable {
10
+ .draggable {
10
11
  user-select: none;
11
12
  position: absolute;
12
13
  opacity: 0.8;
13
14
  }
14
15
 
15
- & .node {
16
+ .node {
16
17
  &.placeholder > * {
17
18
  visibility: hidden;
18
19
  }
@@ -21,33 +22,45 @@
21
22
  border: 1px dashed var(--border-color);
22
23
  }
23
24
 
24
- & .inner {
25
+ .inner {
25
26
  position: relative;
26
- cursor: pointer;
27
- padding-left: 10px;
27
+ padding-left: 1.75rem;
28
+ display: flex;
29
+ border-radius: 5px;
30
+ &:hover {
31
+ background: var(--background-highlight-color);
32
+ }
28
33
  }
29
34
 
30
- & .collapse {
35
+ .collapse {
31
36
  position: absolute;
32
- left: 0;
37
+ left: 0.625rem;
38
+ top: 0.5rem;
33
39
  cursor: pointer;
34
- font-size: 15px;
35
- padding-top: 5px;
40
+ padding-top: 0px;
41
+ transition: transform 250ms cubic-bezier(0.165, 0.84, 0.44, 1);
42
+ &.open {
43
+ transform: rotate(90deg);
44
+ }
45
+ }
46
+
47
+ .inner:has(.edit-name) {
48
+ .collapse {
49
+ top: 0.75rem;
50
+ }
36
51
  }
37
52
  }
38
53
 
39
- & .page {
40
- font-size: 15px;
41
- padding: 6px 10px;
42
- border: 1px solid transparent;
54
+ .page {
55
+ padding: 0.2rem;
56
+ display: flex;
57
+ flex-wrap: wrap;
43
58
 
44
- &:after {
45
- content: "";
46
- display: table;
47
- clear: both;
48
- }
59
+ gap: 0.5rem;
60
+ align-items: baseline;
61
+ width: 100%;
49
62
 
50
- &:hover {
63
+ &:hove2r {
51
64
  border: 1px solid var(--border-color-light);
52
65
  background: linear-gradient(
53
66
  to bottom,
@@ -56,52 +69,42 @@
56
69
  );
57
70
  }
58
71
 
59
- & .date {
60
- font-size: 12px;
61
- margin-left: 10px;
62
- color: var(--text-light-color);
63
- }
64
-
65
- & .name {
66
- font-weight: bold;
72
+ .page-icon {
73
+ margin-right: 0rem;
67
74
  }
68
75
 
69
- & .icon {
70
- margin-right: 8px;
76
+ .date {
77
+ margin-left: 10px;
78
+ color: var(--text-light-color);
71
79
  }
72
80
 
73
- & .status-label,
74
- & .collapsed-label {
75
- margin-left: 3px;
76
- font-size: 12px;
81
+ .name {
82
+ font-weight: var(--bold-weight);
77
83
  }
78
84
 
79
- & form {
80
- display: inline;
85
+ .edit-name {
81
86
  margin: 0;
82
87
  padding: 0;
83
-
84
- & input {
85
- font-size: 15px;
86
- padding: 2px 4px;
87
- margin-top: -2px;
88
- margin-bottom: -2px;
89
- margin-right: 5px;
88
+ flex-grow: 1;
89
+ display: flex;
90
+ gap: 0.5rem;
91
+ input {
92
+ max-width: 100%;
93
+ flex: 1 1 auto;
90
94
  }
91
-
92
- & button {
93
- margin-left: 5px;
95
+ button {
96
+ white-space: nowrap;
94
97
  }
95
98
  }
96
99
 
97
- & a,
98
- & a:visited {
100
+ a,
101
+ a:visited {
99
102
  color: var(--text-color);
100
103
  text-decoration: none;
101
104
  }
102
105
 
103
- & a:hover,
104
- & a:focus {
106
+ a:hover,
107
+ a:focus {
105
108
  text-decoration: underline;
106
109
  }
107
110
 
@@ -109,74 +112,30 @@
109
112
  &.status-1,
110
113
  &.status-3 {
111
114
  &,
112
- & a,
113
- & a:visited {
115
+ a,
116
+ a:visited {
114
117
  color: var(--text-light-color);
115
118
  }
116
119
  }
117
120
  }
118
121
 
119
- & .page .actions {
120
- float: right;
122
+ .page .actions {
121
123
  visibility: hidden;
122
- margin: -4px -6px -4px 5px;
123
-
124
- & button {
125
- margin-left: 5px;
126
- }
124
+ flex-grow: 1;
125
+ display: flex;
126
+ justify-content: flex-end;
127
+ gap: 0.5rem;
127
128
  }
128
129
 
129
- & .page:hover .actions {
130
+ .page:hover .actions {
130
131
  visibility: visible;
131
132
  }
132
133
 
133
- & button {
134
- padding: 0;
135
- border: 0;
136
- background: transparent;
137
- cursor: pointer;
138
- font-size: 13px;
139
- padding: 3px 5px;
140
- border-radius: 3px;
141
- color: var(--link-hover-color);
142
-
143
- & .icon {
144
- margin-right: 8px;
145
- }
146
-
147
- &:hover,
148
- &:focus {
149
- color: var(--blue-hover);
150
- background: var(--blue-transparent);
151
- }
152
-
153
- &.add {
154
- color: var(--green);
155
-
156
- &:hover,
157
- &:focus {
158
- color: var(--green-hover);
159
- background: var(--green-transparent);
160
- }
161
- }
162
-
163
- &.delete,
164
- &.cancel {
165
- color: var(--red);
166
-
167
- &:hover,
168
- &:focus {
169
- color: var(--red-hover);
170
- background: var(--red-transparent);
171
- }
172
- }
173
- }
174
-
175
- & button.add-inline {
176
- margin: 5px 0 5px 30px;
134
+ button.add-inline {
135
+ margin: 0.25rem 0 0.25rem 2.875rem;
177
136
  }
178
137
 
179
- & .node .node .node .page .name {
138
+ .node .node .node .page .name {
180
139
  font-weight: normal;
181
140
  }
182
141
  }
@@ -1,12 +1,11 @@
1
1
  .pagination {
2
2
  margin: 30px 30px;
3
3
  line-height: 20px;
4
- font-size: 14px;
5
4
 
6
- & a,
7
- & .current,
8
- & .disabled,
9
- & .gap {
5
+ a,
6
+ .current,
7
+ .disabled,
8
+ .gap {
10
9
  display: inline-block;
11
10
  font-style: normal;
12
11
  margin: 0px 1px;
@@ -17,29 +16,29 @@
17
16
  text-align: center;
18
17
  }
19
18
 
20
- & a:hover,
21
- & a:focus {
19
+ a:hover,
20
+ a:focus {
22
21
  text-decoration: underline;
23
22
  }
24
23
 
25
- & .current {
24
+ .current {
26
25
  font-weight: bold;
27
26
  }
28
27
 
29
- & .disabled {
28
+ .disabled {
30
29
  color: var(--text-light-color);
31
30
  }
32
31
 
33
- & .next,
34
- & .previous {
32
+ .next,
33
+ .previous {
35
34
  background: none;
36
35
  }
37
36
 
38
- & .next {
37
+ .next {
39
38
  margin-left: 10px;
40
39
  }
41
40
 
42
- & .previous {
41
+ .previous {
43
42
  margin-right: 10px;
44
43
  }
45
44
  }
@@ -1,18 +1,7 @@
1
1
  .search-bar {
2
- display: flex;
3
- & input {
4
- flex: 1 1 auto;
5
- border-right: none;
2
+ input {
6
3
  max-width: 600px;
7
4
  min-width: 50px;
8
- &:focus {
9
- z-index: 20;
10
- }
11
- }
12
- & button {
13
- border-top-left-radius: 0px;
14
- border-bottom-left-radius: 0px;
15
- white-space: nowrap;
16
5
  }
17
6
  }
18
7
 
@@ -21,7 +10,3 @@ main .search-bar {
21
10
  padding: 16px 32px;
22
11
  margin: 0px 0px 16px 0px;
23
12
  }
24
-
25
- .sidebar .search-bar {
26
- margin-top: 16px;
27
- }
@@ -4,25 +4,19 @@
4
4
  line-height: 1.3;
5
5
  color: var(--text-color);
6
6
 
7
- & h2 {
8
- margin: 20px 0 0px 0;
9
- padding: 0 0 10px 0;
10
- color: var(--text-color);
11
- font-size: 18px;
7
+ h2 {
12
8
  border-bottom: 1px solid var(--border-color);
13
-
14
- &:first-child {
15
- margin-top: 16px;
16
- }
9
+ padding-bottom: 0.5rem;
10
+ margin-bottom: 0.5rem;
17
11
  }
18
12
 
19
- & ul {
13
+ ul {
20
14
  list-style-type: disc;
21
15
  margin: 1em 0 1em 14px;
22
16
  padding: 0;
23
17
  }
24
18
 
25
- & ul li {
19
+ ul li {
26
20
  margin: 0;
27
21
  padding: 0;
28
22
  }