nodebb-theme-harmony 1.0.0-beta.10 → 1.0.0-beta.100

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 (152) hide show
  1. package/README.md +12 -1
  2. package/languages/en-GB/harmony.json +5 -1
  3. package/library.js +25 -25
  4. package/package.json +1 -1
  5. package/plugin.json +0 -1
  6. package/public/harmony.js +148 -9
  7. package/public/settings.js +1 -0
  8. package/screenshots/categories.png +0 -0
  9. package/screenshots/recent.png +0 -0
  10. package/screenshots/topic.png +0 -0
  11. package/scss/account.scss +1 -1
  12. package/scss/chats.scss +53 -25
  13. package/scss/common.scss +84 -10
  14. package/scss/flags.scss +5 -0
  15. package/scss/groups.scss +2 -2
  16. package/scss/harmony.scss +3 -0
  17. package/scss/mixins.scss +7 -3
  18. package/scss/modals.scss +6 -1
  19. package/scss/modules/bottom-sheet.scss +1 -1
  20. package/scss/modules/composer.scss +0 -4
  21. package/scss/modules/cover.scss +1 -11
  22. package/scss/modules/filters.scss +8 -0
  23. package/scss/modules/paginator.scss +24 -0
  24. package/scss/modules/topic-navigator.scss +16 -42
  25. package/scss/modules/topics-list.scss +32 -17
  26. package/scss/modules/user-menu.scss +6 -0
  27. package/scss/overrides.scss +4 -1
  28. package/scss/sidebar.scss +39 -11
  29. package/scss/topic.scss +30 -13
  30. package/templates/account/blocks.tpl +35 -40
  31. package/templates/account/categories.tpl +47 -29
  32. package/templates/account/consent.tpl +66 -10
  33. package/templates/account/edit/password.tpl +25 -30
  34. package/templates/account/edit/username.tpl +21 -26
  35. package/templates/account/edit.tpl +105 -116
  36. package/templates/account/followers.tpl +12 -19
  37. package/templates/account/following.tpl +12 -18
  38. package/templates/account/groups.tpl +12 -17
  39. package/templates/account/info.tpl +178 -206
  40. package/templates/account/posts.tpl +31 -36
  41. package/templates/account/profile.tpl +66 -73
  42. package/templates/account/sessions.tpl +8 -30
  43. package/templates/account/settings.tpl +222 -203
  44. package/templates/account/theme.tpl +35 -26
  45. package/templates/account/topics.tpl +36 -38
  46. package/templates/account/uploads.tpl +33 -40
  47. package/templates/admin/plugins/harmony.tpl +17 -3
  48. package/templates/categories.tpl +3 -6
  49. package/templates/category.tpl +13 -14
  50. package/templates/chats.tpl +9 -10
  51. package/templates/flags/detail.tpl +160 -193
  52. package/templates/flags/list.tpl +4 -70
  53. package/templates/footer.tpl +2 -2
  54. package/templates/groups/details.tpl +22 -19
  55. package/templates/groups/list.tpl +1 -1
  56. package/templates/groups/members.tpl +0 -2
  57. package/templates/header.tpl +2 -2
  58. package/templates/login.tpl +4 -4
  59. package/templates/notifications.tpl +5 -5
  60. package/templates/partials/account/admin-menu.tpl +9 -9
  61. package/templates/partials/account/category-item.tpl +14 -17
  62. package/templates/partials/account/footer.tpl +3 -0
  63. package/templates/partials/account/header.tpl +78 -81
  64. package/templates/partials/account/session-list.tpl +18 -0
  65. package/templates/partials/account/sidebar-left.tpl +31 -25
  66. package/templates/partials/breadcrumbs.tpl +6 -6
  67. package/templates/partials/buttons/newTopic.tpl +1 -1
  68. package/templates/partials/categories/item.tpl +32 -28
  69. package/templates/partials/categories/lastpost.tpl +7 -7
  70. package/templates/partials/category/filter-dropdown-content.tpl +37 -0
  71. package/templates/partials/{category-selector-content.tpl → category/selector-dropdown-content.tpl} +7 -7
  72. package/templates/partials/category/sort.tpl +22 -7
  73. package/templates/partials/category/subcategory.tpl +2 -3
  74. package/templates/partials/category/tags.tpl +0 -2
  75. package/templates/partials/category/tools.tpl +28 -25
  76. package/templates/partials/category/watch.tpl +39 -6
  77. package/templates/partials/chats/dropdown.tpl +4 -1
  78. package/templates/partials/chats/message-window.tpl +10 -9
  79. package/templates/partials/chats/message.tpl +4 -6
  80. package/templates/partials/chats/options.tpl +14 -6
  81. package/templates/partials/chats/recent_room.tpl +41 -32
  82. package/templates/partials/cookie-consent.tpl +5 -5
  83. package/templates/partials/flags/bulk-actions.tpl +9 -0
  84. package/templates/partials/flags/filters.tpl +163 -78
  85. package/templates/partials/flags/results.tpl +38 -0
  86. package/templates/partials/groups/admin.tpl +4 -4
  87. package/templates/partials/groups/badge.tpl +1 -1
  88. package/templates/partials/groups/list.tpl +2 -2
  89. package/templates/partials/groups/memberlist.tpl +1 -1
  90. package/templates/partials/groups/sidebar-left.tpl +10 -10
  91. package/templates/partials/header/brand.tpl +9 -2
  92. package/templates/partials/mobile-footer.tpl +69 -64
  93. package/templates/partials/notifications_list.tpl +11 -8
  94. package/templates/partials/paginator.tpl +11 -9
  95. package/templates/partials/post_bar.tpl +26 -25
  96. package/templates/partials/posts_list_item.tpl +5 -5
  97. package/templates/partials/quick-search-results.tpl +3 -3
  98. package/templates/partials/search-filters.tpl +184 -0
  99. package/templates/partials/search-results.tpl +28 -35
  100. package/templates/partials/sidebar/chats.tpl +22 -33
  101. package/templates/partials/sidebar/drafts.tpl +45 -34
  102. package/templates/partials/sidebar/logged-in-menu.tpl +5 -5
  103. package/templates/partials/sidebar/logged-out-menu.tpl +1 -1
  104. package/templates/partials/sidebar/notifications.tpl +29 -8
  105. package/templates/partials/sidebar/search.tpl +1 -1
  106. package/templates/partials/sidebar/user-menu.tpl +38 -29
  107. package/templates/partials/sidebar-left.tpl +11 -11
  108. package/templates/partials/sidebar-right.tpl +1 -3
  109. package/templates/partials/skin-switcher.tpl +3 -3
  110. package/templates/partials/tags/filter-dropdown-content.tpl +34 -0
  111. package/templates/partials/tags_list.tpl +4 -4
  112. package/templates/partials/topic/browsing-users.tpl +0 -2
  113. package/templates/partials/topic/event.tpl +1 -1
  114. package/templates/partials/topic/navigation-post.tpl +5 -9
  115. package/templates/partials/topic/navigator-mobile.tpl +62 -0
  116. package/templates/partials/topic/navigator.tpl +21 -17
  117. package/templates/partials/topic/post-editor.tpl +0 -2
  118. package/templates/partials/topic/post-menu-list.tpl +60 -62
  119. package/templates/partials/topic/post-menu.tpl +16 -11
  120. package/templates/partials/topic/post.tpl +43 -25
  121. package/templates/partials/topic/quickreply.tpl +5 -5
  122. package/templates/partials/topic/reply-button.tpl +3 -3
  123. package/templates/partials/topic/sort.tpl +17 -5
  124. package/templates/partials/topic/tools.tpl +2 -2
  125. package/templates/partials/topic/topic-menu-list.tpl +22 -24
  126. package/templates/partials/topic/watch.tpl +42 -9
  127. package/templates/partials/topic-filters.tpl +6 -3
  128. package/templates/partials/topic-list-bar.tpl +50 -46
  129. package/templates/partials/topic-terms.tpl +6 -3
  130. package/templates/partials/topics_list.tpl +85 -93
  131. package/templates/partials/userFilter-placeholders.tpl +5 -0
  132. package/templates/partials/users/filter-dropdown-content.tpl +23 -0
  133. package/templates/partials/users/item.tpl +25 -27
  134. package/templates/partials/users_list.tpl +1 -1
  135. package/templates/popular.tpl +3 -1
  136. package/templates/post-queue.tpl +166 -0
  137. package/templates/recent.tpl +3 -2
  138. package/templates/register.tpl +4 -4
  139. package/templates/search.tpl +39 -177
  140. package/templates/tags.tpl +3 -3
  141. package/templates/top.tpl +3 -1
  142. package/templates/topic.tpl +74 -68
  143. package/templates/unread.tpl +3 -1
  144. package/templates/users.tpl +7 -3
  145. package/templates/modules/usercard.tpl +0 -39
  146. package/templates/partials/acceptTos.tpl +0 -11
  147. package/templates/partials/category-filter-content.tpl +0 -30
  148. package/templates/partials/category-filter-right.tpl +0 -5
  149. package/templates/partials/category-filter.tpl +0 -3
  150. package/templates/partials/category-selector-right.tpl +0 -5
  151. package/templates/partials/category-selector.tpl +0 -3
  152. package/templates/partials/slideout-menu.tpl +0 -6
package/scss/modals.scss CHANGED
@@ -1,4 +1,9 @@
1
1
  .tool-modal {
2
2
  bottom: $spacer * 3;
3
3
  right: $spacer * 4;
4
- }
4
+
5
+ @include media-breakpoint-down(md) {
6
+ right: $spacer;
7
+ left: $spacer;
8
+ }
9
+ }
@@ -8,7 +8,7 @@
8
8
  inset: auto 0 0 0!important;
9
9
 
10
10
  margin: 0 -1px -1px -1px;
11
- padding: 0 5px 4rem 5px!important;
11
+ padding: $spacer * 0.25 !important;
12
12
  max-height: 60%;
13
13
 
14
14
  box-shadow: 0 2px 6px rgba(0,0,0,0.35);
@@ -6,10 +6,6 @@ $composer-bg: $body-bg !default;
6
6
  background-color: $bg !important;
7
7
  }
8
8
 
9
- .composer {
10
- z-index: 3 !important;
11
- }
12
-
13
9
  .skin-noskin {
14
10
  // only using colors when there is no bootswatch skin applied
15
11
  $composer-color: $secondary;
@@ -12,12 +12,11 @@
12
12
 
13
13
  &:hover {
14
14
  .controls {
15
- opacity: 0.8;
15
+ opacity: 1;
16
16
  }
17
17
  }
18
18
 
19
19
  .controls {
20
- text-align: center;
21
20
  height: 200px;
22
21
  line-height: 200px;
23
22
  opacity: 0;
@@ -28,15 +27,6 @@
28
27
  > * {
29
28
  pointer-events: all;
30
29
  }
31
-
32
- .fa {
33
- color: white;
34
- background-color: #333;
35
- opacity: 1;
36
- margin: 15px;
37
- padding: 5px;
38
- border-radius: 4px;
39
- }
40
30
  }
41
31
 
42
32
  &.active {
@@ -0,0 +1,8 @@
1
+ [component="search/filters"], [component="flags/filters"] {
2
+ .filter-btn {
3
+ border-color: $gray-300!important;
4
+ &.active-filter {
5
+ border-color: $primary!important;
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,24 @@
1
+ .skin-noskin [component="pagination"] {
2
+ .page-item.active:not(.disabled) .page-link {
3
+ color: $body-color;
4
+ background-color: $gray-300;
5
+ border-color: $gray-300;
6
+ }
7
+
8
+ .page-item:not(.disabled):hover .page-link {
9
+ color: $body-color;
10
+ }
11
+ }
12
+
13
+ [component="pagination"] {
14
+ .page-item.active:not(.disabled) .page-link {
15
+ color: $pagination-active-color;
16
+ }
17
+ .page-item:not(.disabled):hover .page-link {
18
+ color: $pagination-hover-color;
19
+ background-color: $pagination-hover-bg;
20
+ }
21
+ .page-item:not(.disabled) .page-link {
22
+ color: $body-color;
23
+ }
24
+ }
@@ -1,59 +1,33 @@
1
- body:not(.page-topic) [component="topic/navigator"] {
2
- display: none!important;
3
- }
4
-
5
- [component="topic/navigator"] {
6
- max-height: calc(200px + (2rem * 4));
7
- user-select: none;
8
-
9
- .track {
10
- width: 2px;
11
- background-color: mix($dark, $light, 10%);
12
-
13
- .handle {
1
+ .topic .pagination-block {
2
+ min-width: 150px;
3
+ .scroller-container {
4
+ left: 10px;
5
+ height: 300px;
6
+ border-left: 2px solid $border-color;
7
+
8
+ .scroller-thumb {
9
+ left: -5px;
10
+ &:not(.active) {
11
+ transition: top 100ms linear;
12
+ }
14
13
  cursor: grab;
15
- transition: $transition-base;
16
-
17
- &:active {
18
- transition: none;
14
+ &.active {
19
15
  cursor: grabbing;
20
16
  }
21
-
22
- .meta {
23
- top: -8px;
24
- left: calc($spacer + 8px);
25
- font-size: 13px;
26
- }
27
- }
28
-
29
- .knob {
30
- width: 16px;
31
- height: 16px;
32
- background-color: $link-color;
33
- margin-left: 1px;
34
17
  }
35
18
 
36
19
  .unread {
37
- width: 2px;
20
+ width: 1px;
38
21
  height: 0; // initial
39
22
  bottom: 0;
40
23
  background: $primary;
41
24
  transition: $transition-base;
25
+ left: -1px;
42
26
 
43
27
  .meta {
44
- left: calc($spacer + 8px);
28
+ left: 5px;
45
29
  font-size: 13px;
46
30
  }
47
31
  }
48
32
  }
49
- }
50
-
51
- .sidebar.open {
52
- [component="topic/navigator"] {
53
- align-self: flex-start;
54
- }
55
-
56
- [component="topic/navigator"].d-sm-flex.mt-auto + .mt-auto {
57
- margin-top: 0 !important;
58
- }
59
33
  }
@@ -1,20 +1,35 @@
1
- .topic-list {
2
- overflow-x: hidden!important;
3
- }
4
- [component="category/topic"] {
5
- &.selected {
6
- [component="topic/select"] {
7
- color: $success!important;
1
+ ul.topics-list, ul.categories-list {
2
+ li {
3
+ &.deleted {
4
+ opacity: 0.6;
5
+ .meta { display: none!important; }
8
6
  }
9
- }
10
- .lastpost .post-content {
11
- p { margin-bottom: 0; }
12
- }
13
7
 
14
- &.unread .title {
15
- color: $link-color;
16
- }
17
- .ui-sortable-handle {
18
- cursor: move;
8
+ &.selected {
9
+ background-color: mix($body-bg, $body-color, 90%);
10
+ [component="topic/select"] {
11
+ color: $success!important;
12
+ }
13
+ }
14
+ p {
15
+ margin: 0 !important;
16
+ }
17
+
18
+ // all other skins use link-color for unread titles
19
+ &.unread .title {
20
+ color: $link-color;
21
+ }
22
+
23
+ .ui-sortable-handle {
24
+ cursor: move;
25
+ }
26
+
27
+ // if only one thumb don't display
28
+ [data-numthumbs="1"] { display: none; }
19
29
  }
20
- }
30
+ }
31
+
32
+ // on default skin use primary color for unread titles
33
+ .skin-noskin ul.topics-list li.unread .title {
34
+ color: $primary;
35
+ }
@@ -2,4 +2,10 @@
2
2
  [component="header/profilelink"] > div, .user-status > div {
3
3
  min-width: 1.25em; // match fontawesome fixed width
4
4
  }
5
+ .user-status i.fa-check {
6
+ display: none;
7
+ }
8
+ .user-status.selected i.fa-check {
9
+ display: block;
10
+ }
5
11
  }
@@ -39,6 +39,8 @@ $text-muted: $gray-600 !default;
39
39
  $border-color: $gray-200 !default;
40
40
  $link-color: shade-color($blue, 20%) !default;
41
41
 
42
+ $btn-ghost-hover-color: mix($light, $dark, 90%);
43
+
42
44
  // no caret on dropdown-toggle
43
45
  $enable-caret: false;
44
46
 
@@ -53,8 +55,9 @@ $link-hover-decoration: underline;
53
55
 
54
56
  // Custom fonts
55
57
  $font-family-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
56
- $font-family-secondary: "Poppins" !default;
58
+ $font-family-secondary: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
57
59
  $font-weight-semibold: 500 !default;
60
+ $small-font-size: 0.875rem !default;
58
61
 
59
62
  $breadcrumb-divider: quote("→");
60
63
  $breadcrumb-divider-color: $gray-500 !default;
package/scss/sidebar.scss CHANGED
@@ -1,10 +1,10 @@
1
1
  .skin-noskin {
2
2
  // only using colors when there is no bootswatch skin applied
3
- nav.sidebar, .bottombar {
3
+ nav.sidebar, .bottombar-nav {
4
4
  color: $secondary !important;
5
5
  background-color: $light !important;
6
6
  }
7
- .bottombar {
7
+ .bottombar-nav {
8
8
  .dropdown-menu {
9
9
  color: $secondary !important;
10
10
  background-color: $light !important;
@@ -13,7 +13,7 @@
13
13
  }
14
14
 
15
15
  .sidebar {
16
- $hover-color: mix($light, $dark, 90);
16
+ $hover-color: mix($light, $dark, 90%);
17
17
 
18
18
  @include media-breakpoint-up(lg) {
19
19
  &.open {
@@ -45,11 +45,17 @@
45
45
  }
46
46
 
47
47
  .nav-link {
48
+ @extend .ff-secondary;
48
49
  padding: 0;
49
50
  &.active {
50
51
  background-color: $hover-color;
51
52
  }
52
53
  }
54
+ .nav-item {
55
+ .dropdown-menu .dropdown-item {
56
+ @extend .rounded-1;
57
+ }
58
+ }
53
59
  #user_dropdown .avatar {
54
60
  margin: 2px 0; // fixes the avatar so its height is same as the icons on right sidebar
55
61
  }
@@ -76,7 +82,7 @@
76
82
  .chats-dropdown, .notifications-dropdown, .drafts-dropdown {
77
83
  min-width: 300px;
78
84
  width: 300px;
79
- ul {
85
+ .list-container {
80
86
  max-height: 400px;
81
87
  overflow-y: auto;
82
88
  }
@@ -87,7 +93,8 @@
87
93
  line-height: 12px;
88
94
  &.visible-open {
89
95
  font-size:12px;
90
- line-height: 16px;
96
+ line-height: 12px;
97
+ font-weight: normal;
91
98
  }
92
99
  }
93
100
 
@@ -97,7 +104,22 @@
97
104
  }
98
105
 
99
106
  .bottombar {
100
- z-index: $zindex-dropdown;
107
+ transition: bottom 150ms linear;
108
+
109
+ .pagination-block {
110
+ .scroller-container {
111
+ border-right: 3px solid;
112
+ margin-right: 5.5px;
113
+ .scroller-thumb {
114
+ right: -6px;
115
+ padding-right: 15px;
116
+ margin-right: -15px;
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ .bottombar-nav {
101
123
  .nav-text {
102
124
  font-size: 1rem;
103
125
  color: $body-color;
@@ -128,15 +150,21 @@
128
150
  overflow: auto!important;
129
151
  }
130
152
  .search-dropdown .quick-search-results {
131
- max-height: 250px!important;
153
+ max-height: 225px!important;
132
154
  overflow-y: auto!important;
133
155
  }
134
156
  .search-dropdown, .chats-dropdown, .notifications-dropdown, .drafts-dropdown {
135
- left: 0!important;
136
- right: 0!important;
137
- bottom: $spacer!important;
157
+ left: 0 !important;
158
+ right: 0 !important;
159
+ bottom: $spacer * 0.7 !important;
138
160
  box-shadow: none!important;
139
- ul {
161
+
162
+ border-left: 0;
163
+ border-right: 0;
164
+ border-bottom: 0;
165
+ border-radius: 0;
166
+
167
+ .list-container {
140
168
  max-height: 60vh!important;
141
169
  overflow-y: auto!important;
142
170
  }
package/scss/topic.scss CHANGED
@@ -1,3 +1,5 @@
1
+ .pagination-block { display: none; }
2
+
1
3
  .page-topic {
2
4
  [component="topic/title"] {
3
5
  font-size: 28px;
@@ -14,21 +16,10 @@
14
16
  line-height: 20px;
15
17
  }
16
18
 
17
- .action-bar {
18
- .dropdown-toggle::after {
19
- border: none;
20
- font-family: "FontAwesome";
21
- content: "\f078";
22
- color: tint-color($primary, 40%);
23
-
24
- position: relative;
25
- top: 2px;
26
- }
27
- }
28
-
29
19
  .topic {
30
20
  .posts {
31
21
  max-width: 960px;
22
+ width: 960px;
32
23
  // fixes code blocks pushing content out on mobile
33
24
  @include media-breakpoint-down(md) {
34
25
  max-width: calc(100vw - $grid-gutter-width);
@@ -49,11 +40,13 @@
49
40
  }
50
41
 
51
42
  [component="post"] {
52
- &.deleted {
43
+ &.deleted .post-container {
53
44
  opacity: .5;
54
45
  }
55
46
 
56
47
  [component="post/content"] {
48
+ @include fix-lists();
49
+
57
50
  pre {
58
51
  max-height: calc($font-size-base * 24);
59
52
  }
@@ -67,6 +60,17 @@
67
60
  [component="post/reply-count"] {
68
61
  font-size: $font-size-base * .75;
69
62
  }
63
+
64
+ [component="post/upvote"], [component="post/downvote"] {
65
+ &.upvoted, &.downvoted {
66
+ background-color: lighten($btn-ghost-hover-color, 5%);
67
+
68
+ &:hover {
69
+ background-color: $btn-ghost-hover-color;
70
+
71
+ }
72
+ }
73
+ }
70
74
  }
71
75
  }
72
76
 
@@ -106,6 +110,15 @@
106
110
  }
107
111
  }
108
112
  }
113
+
114
+ .pagination-block {
115
+ display: block;
116
+ transition: opacity 250ms ease-in;
117
+ opacity: 0;
118
+ &.ready {
119
+ opacity: 1;
120
+ }
121
+ }
109
122
  }
110
123
 
111
124
  @include media-breakpoint-up(sm) {
@@ -115,6 +128,10 @@
115
128
  [component="post/actions"] {
116
129
  opacity: 0;
117
130
  transition: $transition-fade;
131
+
132
+ &:has([aria-expanded="true"]) {
133
+ opacity: 1;
134
+ }
118
135
  }
119
136
 
120
137
  &:hover {
@@ -1,45 +1,40 @@
1
- <div class="account">
2
- <!-- IMPORT partials/account/header.tpl -->
3
- <div class="d-flex flex-column flex-md-row">
4
- <!-- IMPORT partials/account/sidebar-left.tpl -->
5
- <div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
6
- <div class="d-flex justify-content-between mb-3">
7
- <h3 class="fw-semibold fs-5">[[pages:account/blocks, {username}]]</h3>
8
- <div class="justify-content-end">
9
- <div class="dropdown">
10
- <div class="input-group">
11
- <input class="form-control form-control-sm" type="text" id="user-search" placeholder="[[users:enter_username]]" data-bs-toggle="dropdown" autocomplete="off"/>
12
- <button class="btn btn-primary btn-sm" type="button">
13
- <i class="fa fa-search"></i>
14
- </button>
15
- </div>
1
+ <!-- IMPORT partials/account/header.tpl -->
2
+ <div class="d-flex justify-content-between mb-3">
3
+ <h3 class="fw-semibold fs-5">[[pages:account/blocks, {username}]]</h3>
4
+ <div class="justify-content-end">
5
+ <div class="dropdown">
6
+ <div class="input-group">
7
+ <input class="form-control form-control-sm" type="text" id="user-search" placeholder="[[users:enter_username]]" data-bs-toggle="dropdown" autocomplete="off"/>
16
8
 
17
- <ul component="blocks/search/list" class="dropdown-menu dropdown-menu-end block-edit overflow-auto" style="max-height:300px;">
18
- <li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>
19
- {{{ each edit }}}
20
- <li class="">
21
- <div class="dropdown-item d-flex flex-nowrap gap-2 justify-content-between">
22
- <div class="text-truncate">
23
- <a href="{config.relative_path}/uid/{./uid}" class="text-decoration-none">{buildAvatar(edit, "24px", true)} {./username}</a>
24
- </div>
25
- <button class="btn btn-sm btn-primary text-nowrap" data-uid="{./uid}" data-action="toggle">[[user:block_toggle]]</button>
26
- </div>
27
- </li>
28
- {{{ end }}}
29
- </ul>
30
- </div>
31
- </div>
32
- </div>
33
- <div class="users">
34
- <div id="users-container" class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-2">
35
- {{{ each users }}}
36
- <!-- IMPORT partials/users/item.tpl -->
9
+ <ul component="blocks/search/list" class="dropdown-menu dropdown-menu-end p-1 text-sm block-edit overflow-auto" style="max-height:300px;">
10
+ <li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>
11
+ {{{ each edit }}}
12
+ <li class="">
13
+ <div class="dropdown-item d-flex flex-nowrap gap-2 justify-content-between">
14
+ <div class="text-truncate">
15
+ <a href="{config.relative_path}/uid/{./uid}" class="text-decoration-none">{buildAvatar(edit, "24px", true)} {./username}</a>
16
+ </div>
17
+ <button class="btn btn-sm btn-primary text-nowrap" data-uid="{./uid}" data-action="toggle">[[user:block_toggle]]</button>
18
+ </div>
19
+ </li>
37
20
  {{{ end }}}
38
- </div>
39
- <div class="alert alert-warning text-center"{{{ if users.length }}} style="display: none;"{{{ end }}}>[[user:has_no_blocks]]</div>
40
- <!-- IMPORT partials/paginator.tpl -->
21
+ </ul>
22
+
23
+ <button class="btn btn-primary btn-sm" type="button">
24
+ <i class="fa fa-search"></i>
25
+ </button>
41
26
  </div>
42
27
  </div>
43
-
44
28
  </div>
45
- </div>
29
+ </div>
30
+ <div class="users">
31
+ <div id="users-container" class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-2">
32
+ {{{ each users }}}
33
+ <!-- IMPORT partials/users/item.tpl -->
34
+ {{{ end }}}
35
+ </div>
36
+ <div class="alert alert-warning text-center"{{{ if users.length }}} style="display: none;"{{{ end }}}>[[user:has_no_blocks]]</div>
37
+ <!-- IMPORT partials/paginator.tpl -->
38
+ </div>
39
+
40
+ <!-- IMPORT partials/account/footer.tpl -->
@@ -1,34 +1,52 @@
1
- <div class="account">
2
- <!-- IMPORT partials/account/header.tpl -->
1
+ <!-- IMPORT partials/account/header.tpl -->
3
2
 
4
- <div class="d-flex flex-column flex-md-row">
5
- <!-- IMPORT partials/account/sidebar-left.tpl -->
6
- <div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
7
- <h3 class="fw-semibold fs-5">{title}</h3>
3
+ <div class="d-flex justify-content-between align-items-center mb-3">
4
+ <div class="d-flex gap-1">
5
+ <h3 class="fw-semibold fs-5 mb-0">{title}</h3>
6
+ </div>
8
7
 
9
- <div class="row">
10
- <div class="col-lg-12 mb-2">
11
- <div class="btn-group bottom-sheet" component="category/watch/all">
12
- <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
13
- <span>[[user:change_all]]</span>
14
- <span class="caret"></span>
15
- </button>
16
- <ul class="dropdown-menu">
17
- <li><a class="dropdown-item" href="#" component="category/watching" data-state="watching"><i class="fa fa-fw fa-inbox"></i> [[category:watching]]<p class="help-text"><small>[[category:watching.description]]</small></p></a></li>
18
- <li><a class="dropdown-item" href="#" component="category/notwatching" data-state="notwatching"><i class="fa fa-fw fa-clock-o"></i> [[category:not-watching]]<p class="help-text"><small>[[category:not-watching.description]]</small></p></a></li>
19
- <li><a class="dropdown-item" href="#" component="category/ignoring" data-state="ignoring"><i class="fa fa-fw fa-eye-slash"></i> [[category:ignoring]]<p class="help-text"><small>[[category:ignoring.description]]</small></p></a></li>
20
- </ul>
21
- </div>
22
- </div>
23
- <div class="col-lg-12">
24
- <ul class="categories list-unstyled" itemscope itemtype="http://www.schema.org/ItemList">
25
- {{{each categories}}}
26
- <!-- IMPORT partials/account/category-item.tpl -->
27
- {{{end}}}
28
- </ul>
29
- <!-- IMPORT partials/paginator.tpl -->
30
- </div>
31
- </div>
8
+ <div class="d-flex gap-1">
9
+ <div class="btn-group bottom-sheet" component="category/watch/all">
10
+ <button class="btn-ghost-sm fw-semibold dropdown-toggle" data-bs-toggle="dropdown" type="button">
11
+ <span>[[user:change_all]]</span>
12
+ </button>
13
+ <ul class="dropdown-menu p-1 text-sm dropdown-menu-end">
14
+ <li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/watching" data-state="watching">
15
+ <div class="d-flex align-items-center gap-2">
16
+ <i class="flex-shrink-0 fa fa-fw fa-inbox"></i>
17
+ <span class="flex-grow-1 fw-semibold">[[category:watching]]</span>
18
+ </div>
19
+ <div class="help-text text-muted text-xs">[[category:watching.description]]</div>
20
+ </a>
21
+ </li>
22
+ <li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/notwatching" data-state="notwatching">
23
+ <div class="d-flex align-items-center gap-2">
24
+ <i class="flex-shrink-0 fa fa-fw fa-clock-o"></i>
25
+ <span class="flex-grow-1 fw-semibold">[[category:not-watching]]</span>
26
+ </div>
27
+ <div class="help-text text-muted text-xs">[[category:not-watching.description]]</div>
28
+ </a>
29
+ </li>
30
+ <li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/ignoring" data-state="ignoring">
31
+ <div class="d-flex align-items-center gap-2">
32
+ <i class="flex-shrink-0 fa fa-fw fa-eye-slash"></i>
33
+ <span class="flex-grow-1 fw-semibold">[[category:ignoring]]</span>
34
+ </div>
35
+ <div class="help-text text-muted text-xs">[[category:ignoring.description]]</div>
36
+ </a>
37
+ </li>
38
+ </ul>
32
39
  </div>
33
40
  </div>
34
41
  </div>
42
+
43
+ <div>
44
+ <ul class="categories list-unstyled" itemscope itemtype="http://www.schema.org/ItemList">
45
+ {{{each categories}}}
46
+ <!-- IMPORT partials/account/category-item.tpl -->
47
+ {{{end}}}
48
+ </ul>
49
+ <!-- IMPORT partials/paginator.tpl -->
50
+ </div>
51
+
52
+ <!-- IMPORT partials/account/footer.tpl -->