nodebb-theme-harmony 1.2.15 → 1.2.16

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.2.15",
3
+ "version": "1.2.16",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.5.0"
6
6
  },
@@ -11,7 +11,7 @@ body.template-topic {
11
11
  }
12
12
  &.noreplies {
13
13
  pointer-events: none;
14
- opacity: 0.5;
14
+ cursor: none;
15
15
  }
16
16
  }
17
17
  }
@@ -31,8 +31,8 @@
31
31
  <div>
32
32
  {{{ if ./nid }}}
33
33
  <button class="mark-read btn-ghost-sm flex-grow-0 flex-shrink-0 p-1" style="width: 1.5rem; height: 1.5rem;">
34
- <i class="unread fa fa-2xs fa-circle text-primary {{{ if ./read }}}hidden{{{ end }}}"></i>
35
- <i class="read fa fa-2xs fa-circle-o text-secondary {{{ if !./read }}}hidden{{{ end }}}"></i>
34
+ <i class="unread fa fa-2xs fa-circle text-primary {{{ if ./read }}}hidden{{{ end }}}" aria-label="[[unread:mark-as-read]]"></i>
35
+ <i class="read fa fa-2xs fa-circle-o text-secondary {{{ if !./read }}}hidden{{{ end }}}" aria-label="[[unread:mark-as-unread]]"></i>
36
36
  </button>
37
37
  {{{ end }}}
38
38
  </div>
@@ -1,47 +1,47 @@
1
- <div component="pagination" class="pagination-container mt-3{{{ if !pagination.pages.length }}} hidden{{{ end }}}">
1
+ <nav component="pagination" class="pagination-container mt-3{{{ if !pagination.pages.length }}} hidden{{{ end }}}" aria-label="[[global:pagination]]">
2
2
  <ul class="pagination pagination-sm gap-1 hidden-xs hidden-sm justify-content-center">
3
3
  <li class="page-item previous {{{ if !pagination.prev.active }}} disabled{{{ end }}}">
4
- <a class="page-link rounded fw-secondary px-3" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}"><i class="fa fa-chevron-left"></i> </a>
4
+ <a class="page-link rounded fw-secondary px-3" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}" aria-label="[[global:pagination.previouspage]]"><i class="fa fa-chevron-left"></i> </a>
5
5
  </li>
6
6
 
7
7
  {{{each pagination.pages}}}
8
- {{{ if pagination.pages.separator }}}
8
+ {{{ if ./separator }}}
9
9
  <li component="pagination/select-page" class="page-item page select-page">
10
- <a class="page-link rounded fw-secondary px-3" href="#"><i class="fa fa-ellipsis-h"></i></a>
10
+ <a class="page-link rounded fw-secondary px-3" href="#" aria-label="[[global:pagination.go-to-page]]"><i class="fa fa-ellipsis-h"></i></a>
11
11
  </li>
12
12
  {{{ else }}}
13
- <li class="page-item page{{{ if pagination.pages.active }}} active{{{ end }}}" >
14
- <a class="page-link rounded fw-secondary px-3" href="?{pagination.pages.qs}" data-page="{pagination.pages.page}">{pagination.pages.page}</a>
13
+ <li class="page-item page{{{ if ./active }}} active{{{ end }}}" >
14
+ <a class="page-link rounded fw-secondary px-3" href="?{./qs}" data-page="{./page}" aria-label="[[global:pagination.page-x, {./page}]]">{./page}</a>
15
15
  </li>
16
16
  {{{ end }}}
17
17
  {{{end}}}
18
18
 
19
19
  <li class="page-item next {{{ if !pagination.next.active }}} disabled{{{ end }}}">
20
- <a class="page-link rounded fw-secondary px-3" href="?{pagination.next.qs}" data-page="{pagination.next.page}"> <i class="fa fa-chevron-right"></i></a>
20
+ <a class="page-link rounded fw-secondary px-3" href="?{pagination.next.qs}" data-page="{pagination.next.page}" aria-label="[[global:pagination.nextpage]]"> <i class="fa fa-chevron-right"></i></a>
21
21
  </li>
22
22
  </ul>
23
23
 
24
24
  {{{ if !template.topic }}}
25
25
  <ul class="pagination pagination-sm hidden-md hidden-lg justify-content-center">
26
26
  <li class="page-item first{{{ if !pagination.prev.active }}} disabled{{{ end }}}">
27
- <a class="page-link fw-secondary" href="?{pagination.first.qs}" data-page="1"><i class="fa fa-fast-backward"></i> </a>
27
+ <a class="page-link fw-secondary" href="?{pagination.first.qs}" data-page="1" aria-label="[[global:pagination.firstpage]]"><i class="fa fa-fast-backward"></i> </a>
28
28
  </li>
29
29
 
30
30
  <li class="page-item previous{{{ if !pagination.prev.active }}} disabled{{{ end }}}">
31
- <a class="page-link fw-secondary" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}"><i class="fa fa-chevron-left"></i> </a>
31
+ <a class="page-link fw-secondary" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}" aria-label="[[global:pagination.previouspage]]"><i class="fa fa-chevron-left"></i> </a>
32
32
  </li>
33
33
 
34
34
  <li component="pagination/select-page" class="page-item page select-page">
35
- <a class="page-link fw-secondary" href="#">{pagination.currentPage} / {pagination.pageCount}</a>
35
+ <a class="page-link fw-secondary" href="#" aria-label="[[global:pagination.go-to-page]]">{pagination.currentPage} / {pagination.pageCount}</a>
36
36
  </li>
37
37
 
38
38
  <li class="page-item next{{{ if !pagination.next.active }}} disabled{{{ end }}}">
39
- <a class="page-link fw-secondary" href="?{pagination.next.qs}" data-page="{pagination.next.page}"> <i class="fa fa-chevron-right"></i></a>
39
+ <a class="page-link fw-secondary" href="?{pagination.next.qs}" data-page="{pagination.next.page}" aria-label="[[global:pagination.nextpage]]"> <i class="fa fa-chevron-right"></i></a>
40
40
  </li>
41
41
 
42
42
  <li class="page-item last{{{ if !pagination.next.active }}} disabled{{{ end }}}">
43
- <a class="page-link fw-secondary" href="?{pagination.last.qs}" data-page="{pagination.pageCount}"><i class="fa fa-fast-forward"></i> </a>
43
+ <a class="page-link fw-secondary" href="?{pagination.last.qs}" data-page="{pagination.pageCount}" aria-label="[[global:pagination.lastpage]]"><i class="fa fa-fast-forward"></i> </a>
44
44
  </li>
45
45
  </ul>
46
46
  {{{ end }}}
47
- </div>
47
+ </nav>
@@ -1,23 +1,23 @@
1
- <li id="user_label" class="nav-item mx-2 dropstart usermenu" title="{user.username}">
1
+ <li id="user_label" class="nav-item mx-2 dropstart usermenu" title="{user.username}" role="menuitem">
2
2
  <!-- IMPORT partials/sidebar/user-menu.tpl -->
3
3
  </li>
4
4
 
5
5
  {{{ if (config.searchEnabled && user.privileges.search:content) }}}
6
- <li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative" title="[[global:header.search]]">
6
+ <li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative" title="[[global:header.search]]" role="menuitem">
7
7
  <!-- IMPORT partials/sidebar/search.tpl -->
8
8
  </li>
9
9
  {{{ end }}}
10
10
 
11
- <li component="notifications" class="nav-item mx-2 notifications dropstart" title="[[global:header.notifications]]">
11
+ <li component="notifications" class="nav-item mx-2 notifications dropstart" title="[[global:header.notifications]]" role="menuitem">
12
12
  <!-- IMPORT partials/sidebar/notifications.tpl -->
13
13
  </li>
14
14
 
15
15
  {{{ if canChat }}}
16
- <li class="nav-item mx-2 chats dropstart" title="[[global:header.chats]]">
16
+ <li class="nav-item mx-2 chats dropstart" title="[[global:header.chats]]" role="menuitem">
17
17
  <!-- IMPORT partials/sidebar/chats.tpl -->
18
18
  </li>
19
19
  {{{ end }}}
20
20
 
21
- <li component="sidebar/drafts" class="nav-item mx-2 drafts dropstart" title="[[global:header.drafts]]">
21
+ <li component="sidebar/drafts" class="nav-item mx-2 drafts dropstart" title="[[global:header.drafts]]" role="menuitem">
22
22
  <!-- IMPORT partials/sidebar/drafts.tpl -->
23
23
  </li>
@@ -1,5 +1,5 @@
1
1
 
2
- <li class="nav-item mx-2 order-last order-md-first" title="[[global:login]]">
2
+ <li class="nav-item mx-2 order-last order-md-first" title="[[global:login]]" role="menuitem">
3
3
  <a class="nav-link" href="{relative_path}/login">
4
4
  <span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
5
5
  <span class="position-relative">
@@ -11,7 +11,7 @@
11
11
  </li>
12
12
  <hr class="my-2 mx-2 visible-open">
13
13
  {{{ if allowRegistration }}}
14
- <li class="nav-item mx-2" title="[[global:register]]">
14
+ <li class="nav-item mx-2" title="[[global:register]]" role="menuitem">
15
15
  <span class="text-xs visible-open">[[login:dont-have-account]]</span>
16
16
  <a class="nav-link" href="{relative_path}/register">
17
17
  <span class="d-flex gap-2 align-items-center text-nowrap truncate-open">
@@ -27,7 +27,7 @@
27
27
 
28
28
  {{{ if config.searchEnabled }}}
29
29
  {{{ if user.privileges.search:content }}}
30
- <li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative" title="[[global:header.search]]">
30
+ <li component="sidebar/search" class="nav-item mx-2 search dropstart position-relative" title="[[global:header.search]]" role="menuitem">
31
31
  <!-- IMPORT partials/sidebar/search.tpl -->
32
32
  </li>
33
33
  {{{ else }}}
@@ -35,8 +35,8 @@
35
35
  <div class="d-flex gap-2 py-1 px-2 align-items-center" title="[[themes/harmony:login-register-to-search]]">
36
36
  <i class="fa fa-fw fa-search"></i>
37
37
  <span class="nav-text visible-open text-xs">[[themes/harmony:login-register-to-search]]</span>
38
- </a>
39
- </a>
38
+ </div>
39
+ </li>
40
40
  {{{ end }}}
41
41
  {{{ end }}}
42
42
 
@@ -1,10 +1,10 @@
1
1
  <nav component="sidebar/right" class="{{{ if config.theme.openSidebars}}}open{{{ end }}} text-dark bg-light sidebar sidebar-right end-0 border-start vh-100 d-none d-lg-flex flex-column sticky-top">
2
2
  {{{ if config.loggedIn }}}
3
- <ul id="logged-in-menu" class="list-unstyled d-flex flex-column w-100 gap-2 mt-2">
3
+ <ul id="logged-in-menu" class="list-unstyled d-flex flex-column w-100 gap-2 mt-2" role="menu">
4
4
  <!-- IMPORT partials/sidebar/logged-in-menu.tpl -->
5
5
  </ul>
6
6
  {{{ else }}}
7
- <ul id="logged-out-menu" class="list-unstyled d-flex flex-column w-100 gap-2 mt-2">
7
+ <ul id="logged-out-menu" class="list-unstyled d-flex flex-column w-100 gap-2 mt-2" role="menu">
8
8
  <!-- IMPORT partials/sidebar/logged-out-menu.tpl -->
9
9
  </ul>
10
10
  {{{ end }}}
@@ -15,7 +15,7 @@
15
15
  </div>
16
16
  <div>
17
17
  <div class="d-flex justify-content-end gap-2">
18
- <button type="submit" component="topic/quickreply/expand" class="btn-ghost-sm border"><i class="fa fa-expand"></i></button>
18
+ <button type="submit" component="topic/quickreply/expand" class="btn-ghost-sm border" title="[[topic:open-composer]]"><i class="fa fa-expand"></i></button>
19
19
  <button type="submit" component="topic/quickreply/button" class="btn btn-sm btn-primary">[[topic:post-quick-reply]]</button>
20
20
  </div>
21
21
  </div>
@@ -1,6 +1,6 @@
1
1
  <div component="topic/reply/container" class="btn-group action-bar {{{ if !privileges.topics:reply }}}hidden{{{ end }}}">
2
2
  <a href="{config.relative_path}/compose?tid={tid}" class="d-flex align-items-center btn btn-sm btn-primary px-3 fw-semibold " component="topic/reply" data-ajaxify="false" role="button"><i class="fa fa-reply d-sm-block d-md-none"></i><span class="d-none d-md-block"> [[topic:reply]]</span></a>
3
- <button type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3
+ <button type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="[[topic:reply-options]]">
4
4
  <span class="caret"></span>
5
5
  </button>
6
6
  <ul class="dropdown-menu dropdown-menu-end p-1 text-sm" role="menu">
@@ -74,8 +74,8 @@
74
74
  {{{ end }}}
75
75
  </div>
76
76
  {{{ if ./thumbs.length }}}
77
- <a class="position-relative text-decoration-none flex-shrink-0 d-none d-xl-block" href="{config.relative_path}/topic/{./slug}{{{ if ./bookmark }}}/{./bookmark}{{{ end }}}">
78
- <img class="topic-thumb rounded-1 bg-light" style="width:auto;max-width: 5.33rem;height: 3.33rem;object-fit: contain;" src="{./thumbs.0.url}"/>
77
+ <a class="position-relative text-decoration-none flex-shrink-0 d-none d-xl-block" href="{config.relative_path}/topic/{./slug}{{{ if ./bookmark }}}/{./bookmark}{{{ end }}}" aria-label="[[topic:thumb-image]]">
78
+ <img class="topic-thumb rounded-1 bg-light" style="width:auto;max-width: 5.33rem;height: 3.33rem;object-fit: contain;" src="{./thumbs.0.url}" alt=""/>
79
79
  <span data-numthumbs="{./thumbs.length}" class="px-1 position-absolute top-0 start-100 translate-middle badge rounded bg-info" style="z-index: 1;">+{increment(./thumbs.length, "-1")}</span>
80
80
  </a>
81
81
  {{{ end }}}