nodebb-theme-harmony 1.1.95 → 1.1.97

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-theme-harmony",
3
- "version": "1.1.95",
3
+ "version": "1.1.97",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.5.0"
6
6
  },
package/scss/chats.scss CHANGED
@@ -61,38 +61,33 @@ body.page-user-chats {
61
61
 
62
62
  .expanded-chat {
63
63
  .chat-content {
64
- @include fix-lists;
64
+ .message-body {
65
+ @include fix-lists;
66
+ }
65
67
 
66
68
  .chat-message {
67
- .message-body-wrapper .controls {
68
- [data-action="restore"], [data-action="unpin"] {
69
- display: none;
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; }
70
75
  }
71
- }
72
- }
73
- .chat-message.deleted {
74
- .message-body-wrapper .controls {
75
- [data-action] {
76
- display: none;
77
- }
78
-
79
- [data-action="restore"] {
80
- display: inline;
76
+ &:hover {
77
+ .controls { opacity: 1; }
81
78
  }
82
79
  }
83
-
84
- .message-body {
85
- opacity: 0.3;
86
- }
87
- }
88
- .chat-message.pinned {
89
- .message-body-wrapper .controls {
90
- [data-action="pin"] {
91
- display: none;
80
+ &.deleted {
81
+ .message-body { opacity: 0.3; }
82
+ .message-body-wrapper .controls {
83
+ [data-action] { display: none; }
84
+ [data-action="restore"] { display: block; }
92
85
  }
93
-
94
- [data-action="unpin"] {
95
- display: inline;
86
+ }
87
+ &.pinned {
88
+ .message-body-wrapper .controls {
89
+ [data-action="pin"] { display: none; }
90
+ [data-action="unpin"] { display: block;}
96
91
  }
97
92
  }
98
93
  }
@@ -5,7 +5,7 @@
5
5
  <span class="visible-md-inline visible-lg-inline fw-semibold">{selectedCategory.name}</span>
6
6
  </span>
7
7
  {{{ else }}}
8
- <i class="fa fa-fw fa-list link-primary"></i>
8
+ <i class="fa fa-fw fa-list text-primary"></i>
9
9
  <span class="visible-md-inline visible-lg-inline fw-semibold">[[unread:all-categories]]</span>{{{ end }}}
10
10
  </button>
11
11
  <div component="category-selector-search" class="hidden position-absolute">
@@ -17,28 +17,56 @@
17
17
 
18
18
  <div component="chat/message/edited" class="text-muted ms-auto {{{ if !messages.edited }}}hidden{{{ end }}}" title="[[global:edited-timestamp, {messages.editedISO}]]"><i class="fa fa-edit"></i></span></div>
19
19
  </div>
20
- <div class="message-body-wrapper hover-parent">
20
+ <div class="message-body-wrapper">
21
21
  <div component="chat/message/body" class="message-body ps-0 py-0 overflow-auto text-break">
22
22
  {messages.content}
23
23
  </div>
24
24
  <!-- IMPORT partials/chats/reactions.tpl -->
25
25
  <div component="chat/message/controls" class="position-relative">
26
- <div class="btn-group border shadow-sm controls position-absolute bg-body hover-d-block end-0" style="bottom:1rem;">
26
+ <div class="btn-group border shadow-sm controls position-absolute bg-body end-0" style="bottom:1rem;">
27
27
  <!-- IMPORT partials/chats/add-reaction.tpl -->
28
28
  <button class="btn btn-sm btn-link" data-action="reply" title="[[topic:reply]]"><i class="fa fa-reply"></i></button>
29
- {{{ if (isAdminOrGlobalMod || (!config.disableChatMessageEditing && messages.self)) }}}
30
- <button class="btn btn-sm btn-link" data-action="edit" title="[[topic:edit]]"><i class="fa fa-pencil"></i></button>
31
- <button class="btn btn-sm btn-link" data-action="delete" title="[[topic:delete]]"><i class="fa fa-trash"></i></button>
32
- <button class="btn btn-sm btn-link" data-action="restore" title="[[topic:restore]]"><i class="fa fa-repeat"></i></button>
33
- {{{ end }}}
34
- {{{ if (isAdminOrGlobalMod || isOwner )}}}
35
- <button class="btn btn-sm btn-link" data-action="pin" title="[[modules:chat.pin-message]]"><i class="fa fa-thumbtack"></i></button>
36
- <button class="btn btn-sm btn-link" data-action="unpin" title="[[modules:chat.unpin-message]]"><i class="fa fa-thumbtack fa-rotate-90"></i></button>
37
- {{{ end }}}
38
- {{{ if isAdminOrGlobalMod }}}
39
- <button class="btn btn-sm btn-link chat-ip-button" title="[[modules:chat.show-ip]]"><i class="fa fa-info-circle"></i></button>
40
- {{{ end }}}
41
- <button class="btn btn-sm btn-link" data-action="copy-link" title="[[modules:chat.copy-link]]" data-mid="{messages.mid}"><i class="fa fa-link"></i></button>
29
+
30
+ <div class="btn-group d-inline-block">
31
+ <button class="btn btn-sm btn-link dropdown-toggle" data-bs-toggle="dropdown"><i class="fa fa-ellipsis" type="button"></i></button>
32
+ <ul class="dropdown-menu dropdown-menu-end p-1 text-sm list-unstyled">
33
+ {{{ if (isAdminOrGlobalMod || (!config.disableChatMessageEditing && messages.self)) }}}
34
+ <li>
35
+ <a href="#" class="dropdown-item rounded-1" data-action="edit"><span class="d-inline-flex align-items-center gap-2"><i class="fa fa-fw fa-pencil text-muted"></i> [[topic:edit]]</span></a>
36
+ </li>
37
+ <li>
38
+ <a href="#" class="dropdown-item rounded-1" data-action="delete"><span class="d-inline-flex align-items-center gap-2"><i class="fa fa-fw fa-trash text-muted"></i> [[topic:delete]]</span></a>
39
+ </li>
40
+ <li>
41
+ <a href="#" class="dropdown-item rounded-1" data-action="restore"><span class="d-inline-flex align-items-center gap-2"><i class="fa fa-fw fa-repeat text-muted"></i> [[topic:restore]]</span></a>
42
+ </li>
43
+ {{{ end }}}
44
+
45
+ {{{ if (isAdminOrGlobalMod || isOwner )}}}
46
+ <li>
47
+ <a href="#" class="dropdown-item rounded-1" data-action="pin"><span class="d-inline-flex align-items-center gap-2"><i class="fa fa-fw fa-thumbtack text-muted"></i> [[modules:chat.pin-message]]</span></a>
48
+ </li>
49
+ <li>
50
+ <a href="#" class="dropdown-item rounded-1" data-action="unpin"><span class="d-inline-flex align-items-center gap-2"><i class="fa fa-fw fa-thumbtack fa-rotate-90 text-muted"></i> [[modules:chat.unpin-message]]</span></a>
51
+ </li>
52
+ <li class="dropdown-divider"></li>
53
+ {{{ end }}}
54
+
55
+ {{{ if isAdminOrGlobalMod }}}
56
+ <li>
57
+ <a href="#" class="dropdown-item rounded-1 chat-ip-button"><span class="d-inline-flex align-items-center gap-2"><i class="fa fa-fw fa-info-circle text-muted"></i> [[modules:chat.show-ip]]</span></a>
58
+ </li>
59
+ {{{ end }}}
60
+
61
+ <li>
62
+ <a href="#" class="dropdown-item rounded-1" data-action="copy-text" data-mid="{messages.mid}"><span class="d-inline-flex align-items-center gap-2"><i class="fa fa-fw fa-copy text-muted"></i> [[modules:chat.copy-text]]</span></a>
63
+ </li>
64
+
65
+ <li>
66
+ <a href="#" class="dropdown-item rounded-1" data-action="copy-link" data-mid="{messages.mid}"><span class="d-inline-flex align-items-center gap-2"><i class="fa fa-fw fa-link text-muted"></i> [[modules:chat.copy-link]]</span></a>
67
+ </li>
68
+ </ul>
69
+ </div>
42
70
  </div>
43
71
  </div>
44
72
  </div>
@@ -12,12 +12,12 @@
12
12
  <span class="chat-timestamp text-muted timeago" title="{messages.timestampISO}"></span>
13
13
  <div component="chat/message/edited" class="text-muted ms-auto {{{ if !messages.edited }}}hidden{{{ end }}}" title="[[global:edited-timestamp, {messages.editedISO}]]"><i class="fa fa-edit"></i></span></div>
14
14
  </div>
15
- <div class="message-body-wrapper hover-parent">
15
+ <div class="message-body-wrapper">
16
16
  <div component="chat/message/body" class="message-body ps-0 py-0 overflow-auto text-break">
17
17
  {messages.content}
18
18
  </div>
19
19
  <div component="chat/message/controls" class="position-relative">
20
- <div class="btn-group border shadow-sm controls position-absolute bg-body hover-d-block end-0" style="bottom:1rem;">
20
+ <div class="btn-group border shadow-sm controls position-absolute bg-body end-0" style="bottom:1rem;">
21
21
  {{{ if (isAdminOrGlobalMod || (!config.disableChatMessageEditing && messages.self)) }}}
22
22
  <button class="btn btn-sm btn-link" data-action="edit" title="[[topic:edit]]"><i class="fa fa-pencil"></i></button>
23
23
  {{{ end }}}
@@ -1,11 +1,11 @@
1
1
  <button type="button" class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
2
2
  {{{ if selectedTag }}}
3
3
  <span class="d-inline-flex align-items-center gap-1">
4
- <i class="fa fa-fw fa-tags link-primary"></i>
4
+ <i class="fa fa-fw fa-tags text-primary"></i>
5
5
  <span class="visible-md-inline visible-lg-inline fw-semibold">{selectedTag.label}</span>
6
6
  </span>
7
7
  {{{ else }}}
8
- <i class="fa fa-fw fa-tags link-primary"></i>
8
+ <i class="fa fa-fw fa-tags text-primary"></i>
9
9
  <span class="visible-md-inline visible-lg-inline fw-semibold">[[tags:all-tags]]</span>
10
10
  {{{ end }}}
11
11
  </button>
@@ -2,12 +2,12 @@
2
2
  <div class="btn-group bottom-sheet" component="tag/watch">
3
3
  <button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
4
4
  <span component="tag/following/menu" class="d-flex gap-2 align-items-center{{{ if !isFollowing }}} hidden{{{ end }}}">
5
- <i class="flex-shrink-0 fa fa-fw fa-bell-o link-primary"></i>
5
+ <i class="flex-shrink-0 fa fa-fw fa-bell-o text-primary"></i>
6
6
  <span class="d-none d-md-inline fw-semibold">[[tags:watching]]</span>
7
7
  </span>
8
8
 
9
9
  <span component="tag/not-following/menu" class="d-flex gap-2 align-items-center{{{ if isFollowing}}} hidden{{{ end }}}">
10
- <i class="flex-shrink-0 fa fa-fw fa-bell-slash-o link-primary"></i>
10
+ <i class="flex-shrink-0 fa fa-fw fa-bell-slash-o text-primary"></i>
11
11
  <span class="d-none d-md-inline fw-semibold">[[tags:not-watching]]</span>
12
12
  </span>
13
13
  </button>
@@ -1,7 +1,7 @@
1
1
  {{{ if privileges.view_thread_tools }}}
2
2
  <div class="btn-group thread-tools bottom-sheet">
3
3
  <button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
4
- <i class="fa fa-fw fa-gear link-primary"></i>
4
+ <i class="fa fa-fw fa-gear text-primary"></i>
5
5
  <span class="d-none d-md-inline fw-semibold">[[topic:thread-tools.title]]</span>
6
6
  </button>
7
7
  <ul class="dropdown-menu p-1 text-sm">
@@ -2,17 +2,17 @@
2
2
  <div class="btn-group bottom-sheet" component="topic/watch">
3
3
  <button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
4
4
  <span component="topic/following/menu" class="d-flex gap-2 align-items-center{{{ if !isFollowing }}} hidden{{{ end }}}">
5
- <i class="flex-shrink-0 fa fa-fw fa-bell-o link-primary"></i>
5
+ <i class="flex-shrink-0 fa fa-fw fa-bell-o text-primary"></i>
6
6
  <span class="d-none d-md-inline fw-semibold">[[topic:watching]]</span>
7
7
  </span>
8
8
 
9
9
  <span component="topic/not-following/menu" class="d-flex gap-2 align-items-center{{{ if !isNotFollowing}}} hidden{{{ end }}}">
10
- <i class="flex-shrink-0 fa fa-fw fa-bell-slash-o link-primary"></i>
10
+ <i class="flex-shrink-0 fa fa-fw fa-bell-slash-o text-primary"></i>
11
11
  <span class="d-none d-md-inline fw-semibold">[[topic:not-watching]]</span>
12
12
  </span>
13
13
 
14
14
  <span component="topic/ignoring/menu" class="d-flex gap-2 align-items-center{{{ if !isIgnoring }}} hidden{{{ end }}}">
15
- <i class="flex-shrink-0 fa fa-fw fa-eye-slash link-primary"></i>
15
+ <i class="flex-shrink-0 fa fa-fw fa-eye-slash text-primary"></i>
16
16
  <span class="d-none d-md-inline fw-semibold">[[topic:ignoring]]</span>
17
17
  </span>
18
18
  </button>
@@ -1,6 +1,6 @@
1
1
  <div class="btn-group bottom-sheet{{{ if !filters.length }}} hidden{{{ end }}}">
2
2
  <button type="button" class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
3
- <i class="fa fa-fw fa-filter link-primary"></i>
3
+ <i class="fa fa-fw fa-filter text-primary"></i>
4
4
  <span class="visible-md-inline visible-lg-inline fw-semibold">{selectedFilter.name}</span>
5
5
  </button>
6
6
  <ul class="dropdown-menu p-1 text-sm" role="menu">