nodebb-theme-harmony 1.1.94 → 1.1.96

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.94",
3
+ "version": "1.1.96",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.5.0"
6
6
  },
package/scss/chats.scss CHANGED
@@ -61,12 +61,26 @@ 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"]) {
74
+ opacity: 1;
75
+ }
76
+ [data-action="restore"], [data-action="unpin"] {
77
+ display: none;
78
+ }
79
+ }
80
+ &:hover {
81
+ .controls {
82
+ opacity: 1;
83
+ }
70
84
  }
71
85
  }
72
86
  }
@@ -77,7 +91,7 @@ body.page-user-chats {
77
91
  }
78
92
 
79
93
  [data-action="restore"] {
80
- display: inline;
94
+ display: block;
81
95
  }
82
96
  }
83
97
 
@@ -92,7 +106,7 @@ body.page-user-chats {
92
106
  }
93
107
 
94
108
  [data-action="unpin"] {
95
- display: inline;
109
+ display: block;
96
110
  }
97
111
  }
98
112
  }
@@ -13,12 +13,20 @@
13
13
  <ul class="dropdown-menu p-1 text-sm dropdown-menu-end">
14
14
  <li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/watching" data-state="watching">
15
15
  <div class="d-flex align-items-center gap-2">
16
- <i class="flex-shrink-0 fa fa-fw fa-inbox"></i>
16
+ <i class="flex-shrink-0 fa fa-fw fa-bell-o"></i>
17
17
  <span class="flex-grow-1 fw-semibold">[[category:watching]]</span>
18
18
  </div>
19
19
  <div class="help-text text-muted text-xs">[[category:watching.description]]</div>
20
20
  </a>
21
21
  </li>
22
+ <li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/tracking" data-state="tracking">
23
+ <div class="d-flex align-items-center gap-2">
24
+ <i class="flex-shrink-0 fa fa-fw fa-inbox"></i>
25
+ <span class="flex-grow-1 fw-semibold">[[category:tracking]]</span>
26
+ </div>
27
+ <div class="help-text text-muted text-xs">[[category:tracking.description]]</div>
28
+ </a>
29
+ </li>
22
30
  <li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/notwatching" data-state="notwatching">
23
31
  <div class="d-flex align-items-center gap-2">
24
32
  <i class="flex-shrink-0 fa fa-fw fa-clock-o"></i>
@@ -190,7 +190,7 @@
190
190
  <div class="mb-2">
191
191
  <label class="form-label">[[user:default-category-watch-state]]</label>
192
192
  <select class="form-select form-select-sm" data-property="categoryWatchState">
193
- <option value="watching" {{{ if categoryWatchState.watching }}}selected{{{ end }}}>[[category:watching]]</option>
193
+ <option value="tracking" {{{ if categoryWatchState.tracking }}}selected{{{ end }}}>[[category:tracking]]</option>
194
194
  <option value="notwatching" {{{ if categoryWatchState.notwatching }}}selected{{{ end }}}>[[category:not-watching]]</option>
195
195
  <option value="ignoring" {{{ if categoryWatchState.ignoring }}}selected{{{ end }}}>[[category:ignoring]]</option>
196
196
  </select>
@@ -1,7 +1,9 @@
1
1
  {{{ if config.loggedIn }}}
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
- <span component="category/watching/menu" {{{ if !./isWatched }}}class="hidden"{{{ end }}}><i class="fa fa-fw fa-inbox text-primary"></i><span class="visible-md-inline visible-lg-inline fw-semibold"> [[category:watching]]</span></span>
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
+
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>
5
7
 
6
8
  <span component="category/notwatching/menu" {{{ if !./isNotWatched }}}class="hidden"{{{ end }}}><i class="fa fa-fw fa-clock-o text-primary"></i><span class="visible-md-inline visible-lg-inline fw-semibold"> [[category:not-watching]]</span></span>
7
9
 
@@ -13,7 +15,7 @@
13
15
  <a class="dropdown-item rounded-1 d-flex align-items-center gap-2 p-2" href="#" component="category/watching" data-state="watching">
14
16
  <div class="flex-grow-1 d-flex flex-column">
15
17
  <span class="d-flex align-items-center gap-2">
16
- <i class="flex-shrink-0 fa fa-fw text-muted fa-inbox"></i>
18
+ <i class="flex-shrink-0 fa fa-fw text-muted fa-bell-o"></i>
17
19
  <span class="flex-grow-1 fw-semibold">[[category:watching]]</span>
18
20
  </span>
19
21
  <div class="help-text text-muted text-xs">[[category:watching.description]]</div>
@@ -22,6 +24,19 @@
22
24
  </a>
23
25
  </li>
24
26
 
27
+ <li>
28
+ <a class="dropdown-item rounded-1 d-flex align-items-center gap-2 p-2" href="#" component="category/tracking" data-state="tracking">
29
+ <div class="flex-grow-1 d-flex flex-column">
30
+ <span class="d-flex align-items-center gap-2">
31
+ <i class="flex-shrink-0 fa fa-fw text-muted fa-inbox"></i>
32
+ <span class="flex-grow-1 fw-semibold">[[category:tracking]]</span>
33
+ </span>
34
+ <div class="help-text text-muted text-xs">[[category:tracking.description]]</div>
35
+ </div>
36
+ <span class="flex-shrink-0"><i component="category/tracking/check" class="fa fa-fw {{{ if ./isTracked }}}fa-check{{{ end }}}"></i></span>
37
+ </a>
38
+ </li>
39
+
25
40
  <li>
26
41
  <a class="dropdown-item rounded-1 d-flex align-items-center gap-2 p-2" href="#" component="category/notwatching" data-state="notwatching">
27
42
  <div class="flex-grow-1 d-flex flex-column">
@@ -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 }}}