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
@@ -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
  }
@@ -1,39 +1,41 @@
1
1
  .tag-editor {
2
- margin-top: 10px;
3
- margin-bottom: 1.5em;
4
-
5
- & .tags {
6
- line-height: 1.5;
7
- }
8
-
9
- & .tag {
10
- font-size: 13px;
2
+ margin-top: 0.5rem;
3
+ margin-bottom: 1.5rem;
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+ gap: 0.5rem;
7
+
8
+ .tag {
9
+ font-size: 1rem;
11
10
  cursor: pointer;
12
- display: block;
13
- float: left;
14
- margin: 0 5px 5px 0;
15
11
  padding: 0px;
16
12
  background: var(--background-disabled-color);
17
13
  border-radius: 5px;
18
- line-height: 26px;
19
- line-height: 36px;
20
14
  min-width: 40px;
15
+ height: 2rem;
21
16
  transition: all 200ms ease-out;
22
17
  user-select: none;
18
+ display: flex;
23
19
 
24
- & label {
20
+ label {
21
+ display: flex;
25
22
  margin: 0px;
26
23
  padding: 0px 10px;
27
24
  color: inherit;
25
+ align-items: center;
26
+ gap: 0.5rem;
28
27
  }
29
28
 
30
- & input {
31
- margin: 2px 3px 0 0;
29
+ input {
30
+ /*margin: 2px 3px 0 0;*/
32
31
  }
33
32
 
34
- & .name {
35
- padding: 1px 5px;
36
- margin: 0;
33
+ .name {
34
+ }
35
+
36
+ &:hover,
37
+ &:focus {
38
+ background: var(--background-highlight-color);
37
39
  }
38
40
 
39
41
  &.enabled {
@@ -41,20 +43,4 @@
41
43
  background: var(--blue-dark);
42
44
  }
43
45
  }
44
-
45
- & .add-tag-form {
46
- float: left;
47
- width: 178px;
48
- white-space: nowrap;
49
- }
50
-
51
- & input.add-tag {
52
- margin-top: 0px;
53
- border-radius: 5px;
54
- margin: 0 4px 0 0;
55
-
56
- &.example {
57
- color: var(--text-light-color);
58
- }
59
- }
60
46
  }
@@ -6,8 +6,7 @@
6
6
  overflow: hidden;
7
7
  z-index: 200;
8
8
 
9
- & .toast {
10
- font-size: 14px;
9
+ .toast {
11
10
  display: inline-block;
12
11
  background: var(--background-invert-color);
13
12
  color: white;
@@ -15,27 +15,27 @@
15
15
  clear: both;
16
16
  }
17
17
 
18
- & li {
18
+ li {
19
19
  list-style: none;
20
20
  margin: 0;
21
21
  padding: 0;
22
22
  }
23
23
 
24
- & .info {
24
+ .info {
25
25
  float: right;
26
26
  color: var(--text-lighter-color);
27
27
  padding: 0px 10px;
28
28
  }
29
29
 
30
- & .label {
30
+ .label {
31
31
  float: left;
32
32
  padding: 0px 10px;
33
33
  color: var(--text-light-color);
34
34
  border-right: 1px solid var(--border-color);
35
35
  }
36
36
 
37
- & .button,
38
- & button {
37
+ .button,
38
+ button {
39
39
  float: left;
40
40
  display: inline;
41
41
  margin: 0px;
@@ -51,12 +51,12 @@
51
51
  border-left: 1px solid #fff;
52
52
  border-right: 1px solid var(--border-color);
53
53
  color: var(--text-light-color);
54
- font-size: 12px;
54
+ font-size: 0.875rem;
55
55
  background-color: #f8f8f8;
56
56
  transition: all 200ms ease-out;
57
57
 
58
- & i.fa {
59
- font-size: 14px;
58
+ i.fa {
59
+ font-size: 1rem;
60
60
  }
61
61
 
62
62
  &:focus,
@@ -87,11 +87,11 @@
87
87
  &.header {
88
88
  vertical-align: bottom;
89
89
 
90
- & i {
90
+ i {
91
91
  margin-left: -6px;
92
92
  }
93
93
 
94
- & i:after {
94
+ i:after {
95
95
  font-family: var(--font-os-sans);
96
96
  font-weight: bold;
97
97
  font-size: 13px;
@@ -0,0 +1,26 @@
1
+ .totp-enrollment {
2
+ .qr-code {
3
+ width: 20rem;
4
+ height: 20rem;
5
+ border: 1px solid var(--border-color);
6
+ padding: 1rem;
7
+ border-radius: 5px;
8
+ svg {
9
+ width: 100%;
10
+ height: 100%;
11
+ }
12
+ }
13
+ }
14
+
15
+ ul.recovery-codes {
16
+ list-style-type: none;
17
+ padding: 0rem;
18
+ margin: 2rem 0rem;
19
+ font-family: monospace;
20
+ display: flex;
21
+ flex-direction: column;
22
+ align-items: flex-start;
23
+ gap: 1rem;
24
+ font-size: 1.2rem;
25
+ font-weight: bold;
26
+ }