nodebb-theme-harmony 1.1.108 → 1.2.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.
- package/package.json +1 -1
- package/scss/chats.scss +2 -126
- package/scss/common.scss +3 -60
- package/scss/overrides.scss +0 -14
- package/templates/account/categories.tpl +1 -1
- package/templates/account/posts.tpl +6 -6
- package/templates/account/topics.tpl +3 -3
- package/templates/flags/detail.tpl +4 -4
- package/templates/groups/list.tpl +3 -3
- package/templates/notifications.tpl +1 -1
- package/templates/partials/account/sidebar-left.tpl +16 -16
- package/templates/partials/category/filter-dropdown-content.tpl +1 -1
- package/templates/partials/category/selector-dropdown-content.tpl +1 -1
- package/templates/partials/category/sort.tpl +1 -1
- package/templates/partials/category/subcategory.tpl +1 -1
- package/templates/partials/category/tools.tpl +1 -1
- package/templates/partials/category/watch.tpl +1 -1
- package/templates/partials/flags/filters.tpl +8 -8
- package/templates/partials/groups/filter-dropdown-content.tpl +2 -2
- package/templates/partials/groups/sidebar-left.tpl +5 -5
- package/templates/partials/post_bar.tpl +1 -1
- package/templates/partials/quick-search-results.tpl +1 -1
- package/templates/partials/search-filters.tpl +8 -8
- package/templates/partials/tags/filter-dropdown-content.tpl +1 -1
- package/templates/partials/tags/watch.tpl +1 -1
- package/templates/partials/tags_list.tpl +1 -1
- package/templates/partials/topic/navigator.tpl +2 -2
- package/templates/partials/topic/post-menu.tpl +1 -1
- package/templates/partials/topic/post.tpl +2 -2
- package/templates/partials/topic/quickreply.tpl +1 -1
- package/templates/partials/topic/sort.tpl +1 -1
- package/templates/partials/topic/tools.tpl +1 -1
- package/templates/partials/topic/watch.tpl +1 -1
- package/templates/partials/topic-filters.tpl +1 -1
- package/templates/partials/topic-terms.tpl +1 -1
- package/templates/partials/users/filter-dropdown-content.tpl +2 -2
- package/templates/partials/users/item.tpl +1 -1
- package/templates/partials/users_list_menu.tpl +5 -5
- package/templates/post-queue.tpl +4 -4
- package/templates/chat.tpl +0 -37
- package/templates/chats.tpl +0 -54
- package/templates/partials/chats/add-reaction.tpl +0 -1
- package/templates/partials/chats/composer.tpl +0 -27
- package/templates/partials/chats/dropdown.tpl +0 -10
- package/templates/partials/chats/message-window.tpl +0 -43
- package/templates/partials/chats/message.tpl +0 -73
- package/templates/partials/chats/messages.tpl +0 -7
- package/templates/partials/chats/options.tpl +0 -100
- package/templates/partials/chats/parent.tpl +0 -13
- package/templates/partials/chats/pinned-messages-list.tpl +0 -32
- package/templates/partials/chats/pinned-messages.tpl +0 -12
- package/templates/partials/chats/reactions.tpl +0 -1
- package/templates/partials/chats/recent_room.tpl +0 -55
- package/templates/partials/chats/scroll-up-alert.tpl +0 -3
- package/templates/partials/chats/system-message.tpl +0 -7
- package/templates/partials/chats/user-list.tpl +0 -11
- package/templates/partials/chats/user.tpl +0 -1
package/package.json
CHANGED
package/scss/chats.scss
CHANGED
|
@@ -1,28 +1,5 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
3
|
-
.stacked-avatars {
|
|
4
|
-
width: 32px;
|
|
5
|
-
height: 32px;
|
|
6
|
-
span:first-child {
|
|
7
|
-
top: 0;
|
|
8
|
-
left: 8px;
|
|
9
|
-
}
|
|
10
|
-
span:last-child {
|
|
11
|
-
left: 0;
|
|
12
|
-
top: 8px;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
1
|
+
// themes have a different layout so each one needs this block to set height to 100%
|
|
16
2
|
body.page-user-chats {
|
|
17
|
-
#content {
|
|
18
|
-
max-width: 100%;
|
|
19
|
-
margin-bottom: 0!important;
|
|
20
|
-
}
|
|
21
|
-
overflow: hidden;
|
|
22
|
-
[data-widget-area="footer"] {
|
|
23
|
-
display: none;
|
|
24
|
-
}
|
|
25
|
-
height: 100%;
|
|
26
3
|
> .layout-container {
|
|
27
4
|
height: 100%;
|
|
28
5
|
> #panel {
|
|
@@ -32,105 +9,4 @@ body.page-user-chats {
|
|
|
32
9
|
}
|
|
33
10
|
}
|
|
34
11
|
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
[component="chat/recent"] {
|
|
38
|
-
.active .chat-room-btn {
|
|
39
|
-
background-color: var(--btn-ghost-hover-color);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
[component="chat/nav-wrapper"] {
|
|
44
|
-
width: 300px;
|
|
45
|
-
[component="chat/public/room"].unread {
|
|
46
|
-
font-weight: $font-weight-bold;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
[component="chat/user/list"] [data-uid] {
|
|
51
|
-
[component="chat/user/list/username"] {
|
|
52
|
-
color: $text-muted;
|
|
53
|
-
}
|
|
54
|
-
&.online {
|
|
55
|
-
[component="chat/user/list/username"] {
|
|
56
|
-
color: initial;
|
|
57
|
-
font-weight: $font-weight-semibold;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.expanded-chat {
|
|
63
|
-
.chat-content {
|
|
64
|
-
.message-body {
|
|
65
|
-
@include fix-lists;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.chat-message {
|
|
69
|
-
.message-body-wrapper {
|
|
70
|
-
.controls {
|
|
71
|
-
opacity: 0;
|
|
72
|
-
transition: $transition-fade;
|
|
73
|
-
&:has([aria-expanded="true"]) { opacity: 1; }
|
|
74
|
-
[data-action="restore"], [data-action="unpin"] { display: none; }
|
|
75
|
-
}
|
|
76
|
-
&:hover {
|
|
77
|
-
.controls { opacity: 1; }
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
&.deleted {
|
|
81
|
-
.message-body { opacity: 0.3; }
|
|
82
|
-
.message-body-wrapper .controls {
|
|
83
|
-
[data-action] { display: none; }
|
|
84
|
-
[data-action="restore"] { display: block; }
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
&.pinned {
|
|
88
|
-
.message-body-wrapper .controls {
|
|
89
|
-
[data-action="pin"] { display: none; }
|
|
90
|
-
[data-action="unpin"] { display: block;}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/* Mobile handling of chat page */
|
|
98
|
-
@include media-breakpoint-down(lg) {
|
|
99
|
-
.page-user-chats.chat-loaded {
|
|
100
|
-
padding-bottom: 4.75rem;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
@include media-breakpoint-down(md) {
|
|
105
|
-
.page-user-chats.chat-loaded {
|
|
106
|
-
padding-bottom: initial;
|
|
107
|
-
}
|
|
108
|
-
[component="chat/nav-wrapper"] {
|
|
109
|
-
width: 100%;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
.page-user-chats.chat-loaded .bottombar {
|
|
114
|
-
display: none!important;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
[component="chat/nav-wrapper"][data-loaded="1"] {
|
|
118
|
-
display: none!important;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
[component="chat/nav-wrapper"][data-loaded="0"] + [component="chat/main-wrapper"] {
|
|
122
|
-
display: none!important;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.chat-modal {
|
|
127
|
-
left: auto;
|
|
128
|
-
top: auto;
|
|
129
|
-
bottom: 0px;
|
|
130
|
-
right: 2rem;
|
|
131
|
-
width: auto!important;
|
|
132
|
-
height: auto!important;
|
|
133
|
-
[component="chat/user/list/btn"], [component="chat/pinned/messages/btn"] {
|
|
134
|
-
display: none!important;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
12
|
+
}
|
package/scss/common.scss
CHANGED
|
@@ -23,15 +23,9 @@ hr {
|
|
|
23
23
|
opacity: 1;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
.ff-base {
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
.ff-sans {
|
|
30
|
-
font-family: $font-family-sans-serif !important;
|
|
31
|
-
}
|
|
32
|
-
.ff-secondary {
|
|
33
|
-
font-family: $font-family-secondary;
|
|
34
|
-
}
|
|
26
|
+
.ff-base { font-family: $font-family-base !important; }
|
|
27
|
+
.ff-sans { font-family: $font-family-sans-serif !important; }
|
|
28
|
+
.ff-secondary { font-family: $font-family-secondary; }
|
|
35
29
|
.tracking-tight { letter-spacing: -0.02em; }
|
|
36
30
|
|
|
37
31
|
.caret {
|
|
@@ -39,7 +33,6 @@ hr {
|
|
|
39
33
|
border: none;
|
|
40
34
|
font-family: "FontAwesome";
|
|
41
35
|
content: "\f078";
|
|
42
|
-
color: tint-color($primary, 40%);
|
|
43
36
|
}
|
|
44
37
|
}
|
|
45
38
|
|
|
@@ -104,56 +97,6 @@ body:not(.page-user) {
|
|
|
104
97
|
}
|
|
105
98
|
}
|
|
106
99
|
|
|
107
|
-
@mixin btn-ghost-base {
|
|
108
|
-
display: flex;
|
|
109
|
-
align-items: center;
|
|
110
|
-
justify-content: center;
|
|
111
|
-
gap: ($spacer * 0.5);
|
|
112
|
-
border-radius: $border-radius-sm;
|
|
113
|
-
border-width: 1px;
|
|
114
|
-
border-color: transparent;
|
|
115
|
-
background-color: transparent;
|
|
116
|
-
padding: ($spacer * 0.25) ($spacer * 0.5);
|
|
117
|
-
text-align: left;
|
|
118
|
-
--bs-text-opacity: 1;
|
|
119
|
-
color: inherit !important;
|
|
120
|
-
font-family: $font-family-secondary;
|
|
121
|
-
cursor: pointer;
|
|
122
|
-
&:hover, &.active {
|
|
123
|
-
background-color: var(--btn-ghost-hover-color);
|
|
124
|
-
text-decoration: none;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
.btn-ghost {
|
|
129
|
-
@include btn-ghost-base();
|
|
130
|
-
line-height: 1.5rem;
|
|
131
|
-
> i {
|
|
132
|
-
line-height: 1.5rem;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.btn-ghost-sm {
|
|
137
|
-
@include btn-ghost-base();
|
|
138
|
-
font-size: 0.875rem;
|
|
139
|
-
line-height: 1.25rem;
|
|
140
|
-
> i {
|
|
141
|
-
line-height: 1.25rem;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.btn-outline {
|
|
146
|
-
@include btn-ghost-base();
|
|
147
|
-
border-color: $border-color;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.btn-outline-sm {
|
|
151
|
-
@include btn-ghost-base();
|
|
152
|
-
border-color: $border-color;
|
|
153
|
-
font-size: 0.875rem;
|
|
154
|
-
line-height: 1.25rem;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
100
|
.flex-basis-md-200 {
|
|
158
101
|
@include media-breakpoint-up(md) {
|
|
159
102
|
flex-basis: 200px!important;
|
package/scss/overrides.scss
CHANGED
|
@@ -35,20 +35,6 @@ $text-muted: $gray-600 !default;
|
|
|
35
35
|
$border-color: $gray-200 !default;
|
|
36
36
|
$link-color: shade-color($blue, 20%) !default;
|
|
37
37
|
|
|
38
|
-
$btn-ghost-hover-color: mix($light, $dark, 90%);
|
|
39
|
-
$btn-ghost-active-color: lighten($btn-ghost-hover-color, 5%);
|
|
40
|
-
$btn-ghost-hover-color-dark: mix($dark, $light, 90%);
|
|
41
|
-
$btn-ghost-active-color-dark: lighten($btn-ghost-hover-color-dark, 5%);
|
|
42
|
-
|
|
43
|
-
:root {
|
|
44
|
-
--btn-ghost-hover-color: #{$btn-ghost-hover-color};
|
|
45
|
-
--btn-ghost-active-color: #{$btn-ghost-active-color};
|
|
46
|
-
}
|
|
47
|
-
[data-bs-theme="dark"] {
|
|
48
|
-
--btn-ghost-hover-color: #{$btn-ghost-hover-color-dark};
|
|
49
|
-
--btn-ghost-active-color: #{$btn-ghost-active-color-dark};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
38
|
// no caret on dropdown-toggle
|
|
53
39
|
$enable-caret: false;
|
|
54
40
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div class="d-flex gap-1">
|
|
9
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">
|
|
10
|
+
<button class="btn-ghost-sm ff-secondary fw-semibold dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
11
11
|
<span>[[user:change-all]]</span>
|
|
12
12
|
</button>
|
|
13
13
|
<ul class="dropdown-menu p-1 text-sm dropdown-menu-end">
|
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
<div class="d-flex flex-wrap justify-content-between align-items-center gap-2 mb-3">
|
|
4
4
|
<h3 class="fw-semibold fs-5 mb-0">[[global:posts]]</h3>
|
|
5
5
|
<div class="d-flex flex-wrap gap-1">
|
|
6
|
-
<a href="{config.relative_path}/user/{userslug}/posts" class="btn-ghost-sm fw-semibold {{{ if template.account/posts }}}active{{{ end }}}">[[global:header.recent]]</a>
|
|
6
|
+
<a href="{config.relative_path}/user/{userslug}/posts" class="btn-ghost-sm ff-secondary fw-semibold {{{ if template.account/posts }}}active{{{ end }}}">[[global:header.recent]]</a>
|
|
7
7
|
{{{ if !reputation:disabled }}}
|
|
8
|
-
<a href="{config.relative_path}/user/{userslug}/best"class="btn-ghost-sm fw-semibold {{{ if template.account/best }}}active{{{ end }}}">[[global:best]]</a>
|
|
9
|
-
<a href="{config.relative_path}/user/{userslug}/controversial" class="btn-ghost-sm fw-semibold {{{ if template.account/controversial }}}active{{{ end }}}">[[global:controversial]]</a>
|
|
8
|
+
<a href="{config.relative_path}/user/{userslug}/best"class="btn-ghost-sm ff-secondary fw-semibold {{{ if template.account/best }}}active{{{ end }}}">[[global:best]]</a>
|
|
9
|
+
<a href="{config.relative_path}/user/{userslug}/controversial" class="btn-ghost-sm ff-secondary fw-semibold {{{ if template.account/controversial }}}active{{{ end }}}">[[global:controversial]]</a>
|
|
10
10
|
{{{ if canEdit }}}
|
|
11
|
-
<a href="{config.relative_path}/user/{userslug}/upvoted" class="btn-ghost-sm fw-semibold {{{ if template.account/upvoted }}}active{{{ end }}}">[[global:upvoted]]</a>
|
|
11
|
+
<a href="{config.relative_path}/user/{userslug}/upvoted" class="btn-ghost-sm ff-secondary fw-semibold {{{ if template.account/upvoted }}}active{{{ end }}}">[[global:upvoted]]</a>
|
|
12
12
|
{{{ if !downvote:disabled }}}
|
|
13
|
-
<a href="{config.relative_path}/user/{userslug}/downvoted" class="btn-ghost-sm fw-semibold {{{ if template.account/downvoted }}}active{{{ end }}}">[[global:downvoted]]</a>
|
|
13
|
+
<a href="{config.relative_path}/user/{userslug}/downvoted" class="btn-ghost-sm ff-secondary fw-semibold {{{ if template.account/downvoted }}}active{{{ end }}}">[[global:downvoted]]</a>
|
|
14
14
|
{{{ end }}}
|
|
15
15
|
{{{ end }}}
|
|
16
16
|
{{{ end }}}
|
|
17
17
|
{{{ if canEdit }}}
|
|
18
|
-
<a href="{config.relative_path}/user/{userslug}/bookmarks" class="btn-ghost-sm fw-semibold {{{ if template.account/bookmarks }}}active{{{ end }}}">[[user:bookmarks]]</a>
|
|
18
|
+
<a href="{config.relative_path}/user/{userslug}/bookmarks" class="btn-ghost-sm ff-secondary fw-semibold {{{ if template.account/bookmarks }}}active{{{ end }}}">[[user:bookmarks]]</a>
|
|
19
19
|
{{{ end }}}
|
|
20
20
|
</div>
|
|
21
21
|
</div>
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
|
|
23
23
|
<div class="d-flex gap-1">
|
|
24
24
|
{{{ if canEdit }}}
|
|
25
|
-
<a href="{config.relative_path}/user/{userslug}/topics" class="btn-ghost-sm fw-semibold {{{ if template.account/topics }}}active{{{ end }}}">[[global:header.recent]]</a>
|
|
26
|
-
<a href="{config.relative_path}/user/{userslug}/watched"class="btn-ghost-sm fw-semibold {{{ if template.account/watched }}}active{{{ end }}}">[[user:watched]]</a>
|
|
27
|
-
<a href="{config.relative_path}/user/{userslug}/ignored" class="btn-ghost-sm fw-semibold {{{ if template.account/ignored }}}active{{{ end }}}">[[user:ignored]]</a>
|
|
25
|
+
<a href="{config.relative_path}/user/{userslug}/topics" class="btn-ghost-sm ff-secondary fw-semibold {{{ if template.account/topics }}}active{{{ end }}}">[[global:header.recent]]</a>
|
|
26
|
+
<a href="{config.relative_path}/user/{userslug}/watched"class="btn-ghost-sm ff-secondary fw-semibold {{{ if template.account/watched }}}active{{{ end }}}">[[user:watched]]</a>
|
|
27
|
+
<a href="{config.relative_path}/user/{userslug}/ignored" class="btn-ghost-sm ff-secondary fw-semibold {{{ if template.account/ignored }}}active{{{ end }}}">[[user:ignored]]</a>
|
|
28
28
|
{{{ end }}}
|
|
29
29
|
</div>
|
|
30
30
|
</div>
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<div class="d-flex flex-column flex-md-row">
|
|
4
4
|
<div class="flex-shrink-0 d-flex flex-column gap-3 border-end-md text-sm mb-3 pe-4" style="flex-basis: 240px !important;">
|
|
5
5
|
<div class="d-grid gap-1">
|
|
6
|
-
<a class="btn btn-ghost border btn-sm justify-content-start" href="{config.relative_path}/{type_path}/{targetId}">
|
|
6
|
+
<a class="btn btn-ghost ff-secondary border btn-sm justify-content-start" href="{config.relative_path}/{type_path}/{targetId}">
|
|
7
7
|
<i class="fa fa-fw fa-external-link text-primary"></i>
|
|
8
8
|
[[flags:go-to-target]]
|
|
9
9
|
</a>
|
|
10
10
|
|
|
11
11
|
{{{ if target.uid }}}
|
|
12
12
|
<div class="btn-group dropend" data-uid="{target.uid}">
|
|
13
|
-
<button type="button" class="btn btn-ghost border btn-sm justify-content-start dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
13
|
+
<button type="button" class="btn btn-ghost ff-secondary border btn-sm justify-content-start dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
14
14
|
<i class="fa fa-fw fa-street-view text-primary"></i>
|
|
15
15
|
[[flags:flagged-user]]
|
|
16
16
|
<i class="fa fa-chevron-right ms-auto text-secondary"></i>
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
</div>
|
|
39
39
|
{{{ end }}}
|
|
40
40
|
|
|
41
|
-
<a class="btn btn-ghost border btn-sm justify-content-start" href="#" data-action="assign">
|
|
41
|
+
<a class="btn btn-ghost ff-secondary border btn-sm justify-content-start" href="#" data-action="assign">
|
|
42
42
|
<i class="fa fa-fw fa-id-card-o text-primary"></i>
|
|
43
43
|
[[flags:assign-to-me]]
|
|
44
44
|
</a>
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
<div class="pb-4 border-bottom">
|
|
153
153
|
<div class="d-flex align-items-center">
|
|
154
154
|
<h2 class="h6 fw-bold me-auto mb-0">[[flags:notes]]</h2>
|
|
155
|
-
<button class="btn btn-ghost border" data-action="addEditNote">[[flags:add-note]]</button>
|
|
155
|
+
<button class="btn btn-ghost ff-secondary border" data-action="addEditNote">[[flags:add-note]]</button>
|
|
156
156
|
</div>
|
|
157
157
|
<ul component="flag/notes" class="list-unstyled mt-4">
|
|
158
158
|
{{{ if !notes.length }}}
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
<div class="text-sm d-flex flex-wrap align-items-center gap-2">
|
|
11
11
|
[[topic:sort-by]]
|
|
12
12
|
<div class="d-flex gap-2">
|
|
13
|
-
<a href="?sort=alpha" class="btn-ghost fw-semibold {{{ if (sort == "alpha") }}}active{{{ end }}}">[[groups:details.group-name]]</a>
|
|
14
|
-
<a href="?sort=count" class="btn-ghost fw-semibold {{{ if (sort == "count") }}}active{{{ end }}}">[[groups:details.member-count]]</a>
|
|
15
|
-
<a href="?sort=date" class="btn-ghost fw-semibold {{{ if (sort == "date") }}}active{{{ end }}}">[[groups:details.creation-date]]</a>
|
|
13
|
+
<a href="?sort=alpha" class="btn-ghost ff-secondary fw-semibold {{{ if (sort == "alpha") }}}active{{{ end }}}">[[groups:details.group-name]]</a>
|
|
14
|
+
<a href="?sort=count" class="btn-ghost ff-secondary fw-semibold {{{ if (sort == "count") }}}active{{{ end }}}">[[groups:details.member-count]]</a>
|
|
15
|
+
<a href="?sort=date" class="btn-ghost ff-secondary fw-semibold {{{ if (sort == "date") }}}active{{{ end }}}">[[groups:details.creation-date]]</a>
|
|
16
16
|
</div>
|
|
17
17
|
</div>
|
|
18
18
|
</div>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{{{ if ./separator }}}
|
|
13
13
|
<hr/>
|
|
14
14
|
{{{ else }}}
|
|
15
|
-
<a class="btn-ghost fw-semibold {{{ if ./selected }}}active{{{ end }}}" href="{config.relative_path}/notifications?filter={./filter}">
|
|
15
|
+
<a class="btn-ghost ff-secondary fw-semibold {{{ if ./selected }}}active{{{ end }}}" href="{config.relative_path}/notifications?filter={./filter}">
|
|
16
16
|
<div class="flex-grow-1">{filters.name}</div>
|
|
17
17
|
<span class="flex-shrink-0 text-xs" title="{./count}">{humanReadableNumber(./count)}</span>
|
|
18
18
|
</a>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<div class="flex-shrink-0 pe-2 border-end-md text-sm mb-3 flex-basis-md-200">
|
|
2
2
|
<div class="sticky-md-top d-flex flex-row flex-md-column flex-wrap gap-1" style="top: 1rem;z-index: 1;">
|
|
3
|
-
<a href="{config.relative_path}/user/{userslug}" class="btn-ghost fw-semibold {{{ if template.account/profile }}}active{{{ end }}}">
|
|
3
|
+
<a href="{config.relative_path}/user/{userslug}" class="btn-ghost ff-secondary fw-semibold {{{ if template.account/profile }}}active{{{ end }}}">
|
|
4
4
|
<div class="flex-grow-1">[[global:about]]</div>
|
|
5
5
|
</a>
|
|
6
|
-
<a href="{config.relative_path}/user/{userslug}/posts"class="btn-ghost fw-semibold
|
|
6
|
+
<a href="{config.relative_path}/user/{userslug}/posts"class="btn-ghost ff-secondary fw-semibold
|
|
7
7
|
{{{ if template.account/posts }}}active{{{ end }}}
|
|
8
8
|
{{{ if template.account/best }}}active{{{ end }}}
|
|
9
9
|
{{{ if template.account/controversial }}}active{{{ end }}}
|
|
@@ -13,52 +13,52 @@
|
|
|
13
13
|
<div class="flex-grow-1">[[global:posts]]</div>
|
|
14
14
|
<span class="flex-shrink-0 text-xs" title="{counts.posts}">{humanReadableNumber(counts.posts)}</span>
|
|
15
15
|
</a>
|
|
16
|
-
<a href="{config.relative_path}/user/{userslug}/topics" class="btn-ghost fw-semibold
|
|
16
|
+
<a href="{config.relative_path}/user/{userslug}/topics" class="btn-ghost ff-secondary fw-semibold
|
|
17
17
|
{{{ if template.account/topics }}}active{{{ end }}}
|
|
18
18
|
{{{ if template.account/watched }}}active{{{ end }}}
|
|
19
19
|
{{{ if template.account/ignored }}}active{{{ end }}}">
|
|
20
20
|
<div class="flex-grow-1">[[global:topics]]</div>
|
|
21
21
|
<span class="flex-shrink-0 text-xs" title="{counts.topics}">{humanReadableNumber(counts.topics)}</span>
|
|
22
22
|
</a>
|
|
23
|
-
<a href="{config.relative_path}/user/{userslug}/groups" class="btn-ghost fw-semibold
|
|
23
|
+
<a href="{config.relative_path}/user/{userslug}/groups" class="btn-ghost ff-secondary fw-semibold
|
|
24
24
|
{{{ if template.account/groups }}}active{{{ end }}}">
|
|
25
25
|
<div class="flex-grow-1">[[global:header.groups]]</div>
|
|
26
26
|
<span class="flex-shrink-0 text-xs" title="{counts.groups}">{humanReadableNumber(counts.groups)}</span>
|
|
27
27
|
</a>
|
|
28
28
|
|
|
29
|
-
<a href="{config.relative_path}/user/{userslug}/followers" class="btn-ghost fw-semibold
|
|
29
|
+
<a href="{config.relative_path}/user/{userslug}/followers" class="btn-ghost ff-secondary fw-semibold
|
|
30
30
|
{{{ if template.account/followers }}}active{{{ end }}}">
|
|
31
31
|
<div class="flex-grow-1">[[user:followers]]</div>
|
|
32
32
|
<span class="flex-shrink-0 text-xs" title="{counts.followers}">{humanReadableNumber(counts.followers)}</span>
|
|
33
33
|
</a>
|
|
34
34
|
|
|
35
|
-
<a href="{config.relative_path}/user/{userslug}/following" class="btn-ghost fw-semibold
|
|
35
|
+
<a href="{config.relative_path}/user/{userslug}/following" class="btn-ghost ff-secondary fw-semibold
|
|
36
36
|
{{{ if template.account/following }}}active{{{ end }}}">
|
|
37
37
|
<div class="flex-grow-1">[[user:following]]</div>
|
|
38
38
|
<span class="flex-shrink-0 text-xs" title="{counts.following}">{humanReadableNumber(counts.following)}</span>
|
|
39
39
|
</a>
|
|
40
40
|
|
|
41
41
|
{{{ if canEdit }}}
|
|
42
|
-
<a href="{config.relative_path}/user/{userslug}/categories" class="btn-ghost fw-semibold
|
|
42
|
+
<a href="{config.relative_path}/user/{userslug}/categories" class="btn-ghost ff-secondary fw-semibold
|
|
43
43
|
{{{ if template.account/categories }}}active{{{ end }}}">
|
|
44
44
|
<div class="flex-grow-1">[[user:watched-categories]]</div>
|
|
45
45
|
<span class="flex-shrink-0 text-xs" title="{counts.categoriesWatched}">{counts.categoriesWatched}</span>
|
|
46
46
|
</a>
|
|
47
47
|
{{{ if isSelf }}}
|
|
48
|
-
<a href="{config.relative_path}/user/{userslug}/tags" class="btn-ghost fw-semibold
|
|
48
|
+
<a href="{config.relative_path}/user/{userslug}/tags" class="btn-ghost ff-secondary fw-semibold
|
|
49
49
|
{{{ if template.account/tags }}}active{{{ end }}}">
|
|
50
50
|
<div class="flex-grow-1">[[user:watched-tags]]</div>
|
|
51
51
|
<span class="flex-shrink-0 text-xs" title="{counts.tagsWatched}">{counts.tagsWatched}</span>
|
|
52
52
|
</a>
|
|
53
53
|
{{{ end }}}
|
|
54
54
|
|
|
55
|
-
<a href="{config.relative_path}/user/{userslug}/blocks" class="btn-ghost fw-semibold
|
|
55
|
+
<a href="{config.relative_path}/user/{userslug}/blocks" class="btn-ghost ff-secondary fw-semibold
|
|
56
56
|
{{{ if template.account/blocks }}}active{{{ end }}}">
|
|
57
57
|
<div class="flex-grow-1">[[user:blocked-users]]</div>
|
|
58
58
|
<span class="flex-shrink-0 text-xs" title="{counts.blocks}">{humanReadableNumber(counts.blocks)}</span>
|
|
59
59
|
</a>
|
|
60
60
|
|
|
61
|
-
<a href="{config.relative_path}/user/{userslug}/uploads" class="btn-ghost fw-semibold
|
|
61
|
+
<a href="{config.relative_path}/user/{userslug}/uploads" class="btn-ghost ff-secondary fw-semibold
|
|
62
62
|
{{{ if template.account/uploads }}}active{{{ end }}}">
|
|
63
63
|
<div class="flex-grow-1">[[global:uploads]]</div>
|
|
64
64
|
<span class="flex-shrink-0 text-xs" title="{counts.uploaded}">{humanReadableNumber(counts.uploaded)}</span>
|
|
@@ -67,15 +67,15 @@
|
|
|
67
67
|
|
|
68
68
|
{{{ if (loggedIn && (!isSelf && !banned)) }}}
|
|
69
69
|
<hr class="w-100 my-2"/>
|
|
70
|
-
<a href="#" component="account/flag" class="btn-ghost-sm">
|
|
70
|
+
<a href="#" component="account/flag" class="btn-ghost-sm ff-secondary">
|
|
71
71
|
<i class="flex-shrink-0 fa-solid fa-flag text-danger"></i>
|
|
72
72
|
<div class="flex-grow-1 text-nowrap">[[user:flag-profile]]</div>
|
|
73
73
|
</a>
|
|
74
|
-
<a href="#" component="account/block" class="btn-ghost-sm {{{ if isBlocked }}}hidden{{{ end }}}">
|
|
74
|
+
<a href="#" component="account/block" class="btn-ghost-sm ff-secondary {{{ if isBlocked }}}hidden{{{ end }}}">
|
|
75
75
|
<i class="flex-shrink-0 fa-solid fa-ban text-danger"></i>
|
|
76
76
|
<div class="flex-grow-1 text-nowrap">[[user:block-user]]</div>
|
|
77
77
|
</a>
|
|
78
|
-
<a href="#" component="account/unblock" class="btn-ghost-sm {{{ if !isBlocked }}}hidden{{{ end }}}">
|
|
78
|
+
<a href="#" component="account/unblock" class="btn-ghost-sm ff-secondary {{{ if !isBlocked }}}hidden{{{ end }}}">
|
|
79
79
|
<i class="flex-shrink-0 fa-solid fa-ban text-danger"></i>
|
|
80
80
|
<div class="flex-grow-1 text-nowrap">[[user:unblock-user]]</div>
|
|
81
81
|
</a>
|
|
@@ -83,18 +83,18 @@
|
|
|
83
83
|
|
|
84
84
|
{{{ if canEdit }}}
|
|
85
85
|
<hr class="w-100 my-2"/>
|
|
86
|
-
<a href="{config.relative_path}/user/{userslug}/edit" class="btn-ghost-sm text-xs
|
|
86
|
+
<a href="{config.relative_path}/user/{userslug}/edit" class="btn-ghost-sm ff-secondary text-xs
|
|
87
87
|
{{{ if template.account/edit }}}active{{{ end }}}">
|
|
88
88
|
<div class="flex-grow-1">[[user:edit-profile]]</div>
|
|
89
89
|
</a>
|
|
90
|
-
<a href="{config.relative_path}/user/{userslug}/settings" class="btn-ghost-sm text-xs
|
|
90
|
+
<a href="{config.relative_path}/user/{userslug}/settings" class="btn-ghost-sm ff-secondary text-xs
|
|
91
91
|
{{{ if template.account/settings }}}active{{{ end }}}">
|
|
92
92
|
<div class="flex-grow-1">[[user:settings]]</div>
|
|
93
93
|
</a>
|
|
94
94
|
{{{ end }}}
|
|
95
95
|
|
|
96
96
|
{{{ each profile_links }}}
|
|
97
|
-
<a href="{config.relative_path}/user/{userslug}/{./route}" class="btn-ghost-sm text-xs plugin-link {{{ if ./public }}}public{{{ else }}}private{{{ end }}} {{{ if (url == ./url) }}}active{{{ end }}}" id="{./id}">
|
|
97
|
+
<a href="{config.relative_path}/user/{userslug}/{./route}" class="btn-ghost-sm ff-secondary text-xs plugin-link {{{ if ./public }}}public{{{ else }}}private{{{ end }}} {{{ if (url == ./url) }}}active{{{ end }}}" id="{./id}">
|
|
98
98
|
<div class="flex-grow-1">{./name}</div>
|
|
99
99
|
</a>
|
|
100
100
|
{{{end}}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<button type="button" class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
|
|
1
|
+
<button type="button" class="btn-ghost-sm ff-secondary d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
|
|
2
2
|
{{{ if selectedCategory }}}
|
|
3
3
|
<span class="category-item d-inline-flex align-items-center gap-1">
|
|
4
4
|
{buildCategoryIcon(selectedCategory, "18px", "rounded-circle")}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<button type="button" class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
|
|
1
|
+
<button type="button" class="btn-ghost-sm ff-secondary d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
|
|
2
2
|
<span component="category-selector-selected">
|
|
3
3
|
{{{ if (selectedCategory && !showCategorySelectLabel) }}}
|
|
4
4
|
<span class="category-item d-inline-flex align-items-center gap-1">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<div class="btn-group bottom-sheet" component="thread/sort">
|
|
2
|
-
<button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
2
|
+
<button class="btn-ghost-sm ff-secondary d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
3
3
|
<i class="fa fa-fw fa-arrow-down-wide-short text-primary"></i>
|
|
4
4
|
<span class="visible-md-inline visible-lg-inline fw-semibold">[[topic:sort-by]]</span>
|
|
5
5
|
</button>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
{{{end}}}
|
|
14
14
|
</ul>
|
|
15
15
|
{{{ if hasMoreSubCategories}}}
|
|
16
|
-
<button class="btn-ghost-sm mb-2" component="category/load-more-subcategories">[[category:x-more-categories, {subCategoriesLeft}]]</button>
|
|
16
|
+
<button class="btn-ghost-sm ff-secondary mb-2" component="category/load-more-subcategories">[[category:x-more-categories, {subCategoriesLeft}]]</button>
|
|
17
17
|
{{{ end }}}
|
|
18
18
|
</div>
|
|
19
19
|
{{{ end }}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{{{ if showTopicTools }}}
|
|
2
2
|
<div class="btn-group thread-tools bottom-sheet">
|
|
3
|
-
<button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
3
|
+
<button class="btn-ghost-sm ff-secondary d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
4
4
|
<i class="fa fa-fw fa-gear text-primary"></i>
|
|
5
5
|
<span class="visible-md-inline visible-lg-inline fw-semibold">[[topic:thread-tools.title]]</span>
|
|
6
6
|
<span component="topic/selected/badge" class="badge rounded-pill bg-secondary"></span>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{{{ if config.loggedIn }}}
|
|
2
2
|
<div class="btn-group bottom-sheet" component="topic/watch">
|
|
3
|
-
<button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
3
|
+
<button class="btn-ghost-sm ff-secondary d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
|
|
4
4
|
<span component="category/watching/menu" {{{ if !./isWatched }}}class="hidden"{{{ end }}}><i class="fa fa-fw fa-bell-o text-primary"></i><span class="visible-md-inline visible-lg-inline fw-semibold"> [[category:watching]]</span></span>
|
|
5
5
|
|
|
6
6
|
<span component="category/tracking/menu" {{{ if !./isTracked }}}class="hidden"{{{ end }}}><i class="fa fa-fw fa-inbox text-primary"></i><span class="visible-md-inline visible-lg-inline fw-semibold"> [[category:tracking]]</span></span>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div class="btn-group bottom-sheet">
|
|
3
3
|
<a class="filter-btn btn btn-light btn-sm border {{{ if filters.quick }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
4
4
|
<span class="filter-label">{{{ if filters.quick }}}[[flags:filter-quick-{./filters.quick}]]{{{ else }}}[[flags:quick-filters]]{{{ end }}}</span>
|
|
5
|
-
<span class="caret"></span>
|
|
5
|
+
<span class="caret text-primary opacity-75"></span>
|
|
6
6
|
</a>
|
|
7
7
|
<ul class="dropdown-menu p-1 text-sm">
|
|
8
8
|
<li>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
{{{ else }}}
|
|
23
23
|
<span class="visible-md-inline visible-lg-inline">[[unread:all-categories]]</span>
|
|
24
24
|
{{{ end }}}
|
|
25
|
-
<span class="caret"></span>
|
|
25
|
+
<span class="caret text-primary opacity-75"></span>
|
|
26
26
|
</button>
|
|
27
27
|
<div component="category-selector-search" class="hidden position-absolute">
|
|
28
28
|
<input type="text" class="form-control form-control-sm" placeholder="[[search:type-to-search]]" autocomplete="off">
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<div class="btn-group bottom-sheet">
|
|
51
51
|
<a class="filter-btn btn btn-light btn-sm border {{{ if (sort != "newest") }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
52
52
|
<span class="filter-label">{{{ if (sort != "newest") }}}[[flags:sort-{./sort}]]{{{ else }}}[[flags:sort]]{{{ end }}}</span>
|
|
53
|
-
<span class="caret"></span>
|
|
53
|
+
<span class="caret text-primary opacity-75"></span>
|
|
54
54
|
</a>
|
|
55
55
|
<ul class="dropdown-menu p-1 text-sm">
|
|
56
56
|
<li><h6 class="dropdown-header">[[flags:sort-all]]</h6></li>
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
<div class="btn-group bottom-sheet">
|
|
68
68
|
<a class="filter-btn btn btn-light btn-sm border {{{ if filters.state }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
69
69
|
<span class="filter-label">{{{ if filters.state }}}[[flags:state-{./filters.state}]]{{{ else }}}[[flags:filter-state]]{{{ end }}}</span>
|
|
70
|
-
<span class="caret"></span>
|
|
70
|
+
<span class="caret text-primary opacity-75"></span>
|
|
71
71
|
</a>
|
|
72
72
|
<ul class="dropdown-menu p-1 text-sm">
|
|
73
73
|
<li class="dropdown-item rounded-1" data-name="state" data-value="open">[[flags:state-open]]</li>
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
<div class="btn-group bottom-sheet">
|
|
81
81
|
<a class="filter-btn btn btn-light btn-sm border {{{ if filters.type }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
82
82
|
<span class="filter-label">{{{ if filters.type }}}[[flags:filter-type-{./filters.type}]]{{{ else }}}[[flags:filter-type]]{{{ end }}}</span>
|
|
83
|
-
<span class="caret"></span>
|
|
83
|
+
<span class="caret text-primary opacity-75"></span>
|
|
84
84
|
</a>
|
|
85
85
|
<ul class="dropdown-menu p-1 text-sm">
|
|
86
86
|
<li class="dropdown-item rounded-1" data-name="type" data-value="all">[[flags:filter-type-all]]</li>
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
<div component="flags/filter/assignee" class="dropdown bottom-sheet" data-filter-name="assignee">
|
|
93
93
|
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.assignee }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
94
94
|
<span class="filter-label">[[flags:filter-assignee]]</span>
|
|
95
|
-
<span class="caret"></span>
|
|
95
|
+
<span class="caret text-primary opacity-75"></span>
|
|
96
96
|
</a>
|
|
97
97
|
|
|
98
98
|
<ul class="dropdown-menu p-1 text-sm" style="min-width: 350px;">
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
<div component="flags/filter/reporterId" class="dropdown bottom-sheet" data-filter-name="reporterId">
|
|
120
120
|
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.reporterId }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
121
121
|
<span class="filter-label">[[flags:filter-reporterId]]</span>
|
|
122
|
-
<span class="caret"></span>
|
|
122
|
+
<span class="caret text-primary opacity-75"></span>
|
|
123
123
|
</a>
|
|
124
124
|
|
|
125
125
|
<ul class="dropdown-menu p-1 text-sm" style="min-width: 350px;">
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<div component="flags/filter/targetUid" class="dropdown bottom-sheet" data-filter-name="targetUid">
|
|
147
147
|
<a component="user/filter/button" class="filter-btn btn btn-light btn-sm border {{{ if filters.targetUid }}}active-filter{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
|
|
148
148
|
<span class="filter-label">[[flags:filter-targetUid]]</span>
|
|
149
|
-
<span class="caret"></span>
|
|
149
|
+
<span class="caret text-primary opacity-75"></span>
|
|
150
150
|
</a>
|
|
151
151
|
|
|
152
152
|
<ul class="dropdown-menu p-1 text-sm" style="min-width: 350px;">
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<div class="dropdown bottom-sheet">
|
|
2
|
-
<button type="button" class="btn-ghost-sm dropdown-toggle" data-bs-toggle="dropdown">
|
|
2
|
+
<button type="button" class="btn-ghost-sm ff-secondary dropdown-toggle" data-bs-toggle="dropdown">
|
|
3
3
|
{{{ if selectedGroup }}}
|
|
4
4
|
<span class="fw-semibold">{selectedGroup.displayName}</span>
|
|
5
5
|
{{{ else }}}
|
|
6
6
|
<span class="fw-semibold">[[groups:all-groups]]</span>
|
|
7
|
-
{{{ end }}} <span class="caret"></span>
|
|
7
|
+
{{{ end }}} <span class="caret text-primary opacity-75"></span>
|
|
8
8
|
</button>
|
|
9
9
|
<ul class="dropdown-menu p-1 text-sm" role="menu">
|
|
10
10
|
<li role="presentation" class="user {{{ if !selectedGroup}}}selected{{{end}}}">
|