nodebb-theme-persona 14.1.26 → 14.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-theme-persona",
3
- "version": "14.1.26",
3
+ "version": "14.2.1",
4
4
  "nbbpm": {
5
5
  "compatibility": "^4.0.0"
6
6
  },
package/scss/skins.scss CHANGED
@@ -14,7 +14,7 @@
14
14
  .form-control::placeholder {
15
15
  color:$gray-100!important;
16
16
  }
17
- .topic-header, .topic-list-header {
17
+ .topic-header, .topic-list-header, .position-sticky.bg-body {
18
18
  background-color: transparent!important;
19
19
  backdrop-filter: blur(5px);
20
20
  }
@@ -10,7 +10,7 @@
10
10
  <!-- IMPORT partials/categories/link.tpl -->
11
11
  </div>
12
12
  {{{ if ./descriptionParsed }}}
13
- <div class="description text-muted text-xs w-100">{./descriptionParsed}</div>
13
+ <div class="description text-muted text-xs w-100 line-clamp-5">{./descriptionParsed}</div>
14
14
  {{{ end }}}
15
15
  </div>
16
16
  </div>
@@ -1,11 +1,11 @@
1
- <!-- IF ../isSection -->
2
- {../name}
3
- <!-- ELSE -->
4
- <!-- IF ../link -->
5
- <a href="{../link}" itemprop="url">
6
- <!-- ELSE -->
7
- <a href="{config.relative_path}/category/{../slug}" itemprop="url">
8
- <!-- ENDIF ../link -->
9
- {../name}
10
- </a>
1
+ <!-- IF ../isSection -->
2
+ {../name}
3
+ <!-- ELSE -->
4
+ <!-- IF ../link -->
5
+ <a href="{../link}" itemprop="url">
6
+ <!-- ELSE -->
7
+ <a href="{config.relative_path}/category/{../slug}" itemprop="url">
8
+ <!-- ENDIF ../link -->
9
+ {../name}
10
+ </a>
11
11
  <!-- ENDIF ../isSection -->
@@ -1,82 +1,121 @@
1
+ <!-- IMPORT partials/breadcrumbs-json-ld.tpl -->
2
+ {{{ if config.theme.enableBreadcrumbs }}}
1
3
  <!-- IMPORT partials/breadcrumbs.tpl -->
4
+ {{{ end }}}
5
+
6
+ {{{ if widgets.header.length }}}
2
7
  <div data-widget-area="header">
3
- {{{ each widgets.header }}}
8
+ {{{each widgets.header}}}
4
9
  {{widgets.header.html}}
10
+ {{{end}}}
11
+ </div>
12
+ {{{ end }}}
13
+
14
+ <div class="category-header d-flex flex-column gap-2">
15
+ <div class="d-flex gap-2 align-items-center mb-1 {{{ if config.theme.centerHeaderElements }}}justify-content-center{{{ end }}}">
16
+ {buildCategoryIcon(@value, "40px", "rounded-1 flex-shrink-0")}
17
+ <h1 class="tracking-tight fs-2 fw-semibold mb-0 text-center">[[world:name]]</h1>
18
+ </div>
19
+ {{{ if ./descriptionParsed }}}
20
+ <p class="description text-secondary text-sm w-100 {{{ if config.theme.centerHeaderElements }}}text-center{{{ end }}}">
21
+ {./descriptionParsed}
22
+ </p>
5
23
  {{{ end }}}
6
24
  </div>
7
- <div class="row">
8
- <div class="world {{{if widgets.sidebar.length }}}col-lg-9 col-sm-12{{{ else }}}col-lg-12{{{ end }}}">
9
- <form class="mb-4" role="search" method="GET" action="{config.relative_path}/search">
10
- <input type="hidden" name="in" value="categories" />
11
- <div class="input-group" id="category-options">
12
- <input class="form-control form-control-lg" component="category-search" name="term" type="text" autocomplete="off" placeholder="Find a category..." aria-label="Category Search" />
13
- <button class="btn dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false"><i class="fa fa-cog"></i></button>
14
- <ul class="dropdown-menu dropdown-menu-end">
15
- <li id="show-categories"><a class="dropdown-item" href="#">
16
- <i class="fa fa-eye"></i>
17
- [[world:show-categories]]
18
- </a></li>
19
- <li id="hide-categories"><a class="dropdown-item" href="#">
20
- <i class="fa fa-eye-slash"></i>
21
- [[world:hide-categories]]
22
- </a></li>
23
- </ul>
24
- </div>
25
- </form>
26
25
 
27
- <div class="quick-search-container dropdown-menu d-block p-2 hidden">
28
- <div class="text-center loading-indicator"><i class="fa fa-spinner fa-spin"></i></div>
29
- <div class="quick-search-results-container"></div>
30
- </div>
26
+ <div class="row flex-fill">
27
+ <div class="world {{{if widgets.sidebar.length }}}col-lg-9 col-sm-12{{{ else }}}col-lg-12{{{ end }}}">
28
+ <div class="category">
29
+ <div class="row flex-row-reverse">
30
+ <div class="col-lg-4 col-sm-12 mt-2 pt-1">
31
+ <form class="mb-3" role="search" method="GET" action="{config.relative_path}/search">
32
+ <input type="hidden" name="in" value="categories" />
33
+ <div class="input-group bottom-sheet">
34
+ <input class="form-control form-control-lg" component="category-search" name="term" type="text" autocomplete="off" placeholder="[[world:category-search]]" />
35
+ <button class="btn btn-outline-secondary dropdown-toggle d-md-none" type="button" data-bs-toggle="dropdown">
36
+ <i class="fa fa-fw fa-list"></i>
37
+ </button>
38
+ <ul class="dropdown-menu">
39
+ {{{ each categories }}}
40
+ <li class="flex-grow-1 align-items-start d-flex gap-2 p-1 mb-2 position-relative">
41
+ <div>
42
+ {buildCategoryIcon(@value, "24px", "rounded-1")}
43
+ </div>
44
+ <div class="d-grid gap-0">
45
+ <div class="title fw-semibold">
46
+ <a class="text-reset stretched-link" href="{{{ if ./link }}}{./link}{{{ else }}}{config.relative_path}/category/{./slug}{{{ end }}}" itemprop="url">{../name}</a>
47
+ </div>
48
+ {{{ if ./descriptionParsed }}}
49
+ <div class="description text-muted text-xs w-100 line-clamp-sm-5">{./descriptionParsed}</div>
50
+ {{{ end }}}
51
+ </div>
52
+ </li>
53
+ {{{ end }}}
54
+ </ul>
55
+ </div>
56
+ </form>
57
+ <div class="quick-search-container dropdown-menu d-block p-2 hidden">
58
+ <div class="text-center loading-indicator"><i class="fa fa-spinner fa-spin"></i></div>
59
+ <div class="quick-search-results-container"></div>
60
+ </div>
31
61
 
32
- <ul class="categories-list ps-0 hidden">
33
- {{{ each categories }}}
34
- <!-- IMPORT partials/categories/item.tpl -->
35
- {{{ end }}}
36
- </ul>
62
+ <ul class="categories-list ps-0 list-unstyled pt-3 d-none d-md-block">
63
+ {{{ each categories }}}
64
+ <!-- IMPORT partials/account/category-item.tpl -->
65
+ {{{ end }}}
66
+ </ul>
67
+ </div>
37
68
 
38
- {{{ if (topics.length || privileges.topics:create) }}}
39
- <div class="topic-list-header sticky-top btn-toolbar justify-content-between px-1 py-2 mb-2 gap-1 flex-nowrap">
40
- <div class="d-flex gap-1 align-items-stretch">
41
- {{{ if privileges.topics:create }}}
42
- <a href="{config.relative_path}/compose?cid={cid}" component="category/post" id="new_topic" class="btn btn-primary text-nowrap" data-ajaxify="false" role="button">[[category:new-topic-button]]</a>
43
- {{{ else }}}
44
- {{{ if !loggedIn }}}
45
- <a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
69
+ {{{ if posts.length }}}
70
+ <div class="col-lg-8 col-sm-12">
71
+ {{{ if posts.length }}}
72
+ <div class="topic-list-header sticky-top btn-toolbar justify-content-end align-items-center px-1 py-2 mb-2 flex-nowrap">
73
+ <div class="btn-group bottom-sheet">
74
+ <button class="btn btn-ghost btn-sm ff-secondary d-flex gap-2 align-items-center dropdown-toggle" data-bs-toggle="dropdown">
75
+ <i class="fa fa-fw fa-arrow-down-wide-short text-primary"></i>
76
+ <span id="sort-label" class="visible-md-inline visible-lg-inline fw-semibold"></span>
77
+ </button>
78
+ <ul class="dropdown-menu" id="sort-options">
79
+ <li><a class="dropdown-item" href="{config.relative_path}/world">[[world:latest]]</a></li>
80
+ <li><a class="dropdown-item" href="{config.relative_path}/world?sort=popular&term=day">[[world:popular-day]]</a></li>
81
+ <li><a class="dropdown-item" href="{config.relative_path}/world?sort=popular&term=week">[[world:popular-week]]</a></li>
82
+ <li><a class="dropdown-item" href="{config.relative_path}/world?sort=popular&term=month">[[world:popular-month]]</a></li>
83
+ <li><a class="dropdown-item" href="{config.relative_path}/world?sort=popular&term=year">[[world:popular-year]]</a></li>
84
+ <li><a class="dropdown-item" href="{config.relative_path}/world?sort=popular&term=alltime">[[world:popular-alltime]]</a></li>
85
+ </ul>
86
+ </div>
87
+ <a class="btn btn-ghost btn-sm ff-secondary d-flex gap-2 align-items-center fw-semibold" id="world-help" href="#">
88
+ <i class="fa fa-question text-primary"></i>
89
+ <span class="visible-md-inline visible-lg-inline">[[world:help]]</span>
90
+ </a>
91
+ <!-- IMPORT partials/category/tools-dropdown-left.tpl -->
92
+ </div>
46
93
  {{{ end }}}
47
- {{{ end }}}
48
-
49
- <a href="{url}" class="d-inline-block">
50
- <div class="alert alert-warning h-100 m-0 px-2 py-1 d-flex gap-1 align-items-center hide" id="new-topics-alert"><i class="fa fa-fw fa-rotate-right"></i>[[recent:load-new-posts]]</div>
51
- </a>
52
- </div>
53
- <div component="category/controls" class="d-flex gap-1 align-items-stretch">
54
- <!-- IMPORT partials/category/watch.tpl -->
55
- <!-- IMPORT partials/category/sort.tpl -->
56
- <!-- IMPORT partials/category/tools.tpl -->
57
- </div>
58
- </div>
59
- {{{ end }}}
94
+ <ul class="list-unstyled" id="world-feed">
95
+ {{{ each posts }}}
96
+ <!-- IMPORT partials/feed/item.tpl -->
97
+ {{{ end }}}
98
+ </ul>
60
99
 
61
- {{{ if !topics.length }}}
62
- <div class="row">
63
- <div class="col-md-10 offset-md-1 d-flex align-items-center">
64
- <div>
65
- <h2 class="fs-4 mb-3">[[world:onboard.title]]</h2>
66
- <p>[[world:onboard.what]]</p>
67
- <p>[[world:onboard.why]]</p>
68
- <p>[[world:onboard.how]]</p>
100
+ {{{ if config.usePagination }}}
101
+ <!-- IMPORT partials/paginator.tpl -->
102
+ {{{ end }}}
69
103
  </div>
70
- <i class="fa fa-comment-nodes fa-8x p-3"></i>
104
+ {{{ else }}}
105
+ <div class="col-lg-8 col-sm-12 d-flex gap-3 align-items-top">
106
+ <div>
107
+ <h2 class="fs-4 mb-3">
108
+ <i class="fa fa-comment-nodes"></i>
109
+ [[world:onboard.title]]
110
+ </h2>
111
+ <p>[[world:onboard.what]]</p>
112
+ <p>[[world:onboard.why]]</p>
113
+ <p>[[world:onboard.how]]</p>
114
+ </div>
115
+ </div>
116
+ {{{ end }}}
71
117
  </div>
72
118
  </div>
73
- {{{ end }}}
74
-
75
- <!-- IMPORT partials/topics_list.tpl -->
76
-
77
- {{{ if config.usePagination }}}
78
- <!-- IMPORT partials/paginator.tpl -->
79
- {{{ end }}}
80
119
  </div>
81
120
  <div data-widget-area="sidebar" class="col-lg-3 col-sm-12 {{{ if !widgets.sidebar.length }}}hidden{{{ end }}}">
82
121
  {{{ each widgets.sidebar }}}
@@ -84,14 +123,9 @@
84
123
  {{{ end }}}
85
124
  </div>
86
125
  </div>
126
+
87
127
  <div data-widget-area="footer">
88
128
  {{{each widgets.footer}}}
89
129
  {{widgets.footer.html}}
90
130
  {{{end}}}
91
- </div>
92
-
93
- <!-- IF !config.usePagination -->
94
- <noscript>
95
- <!-- IMPORT partials/paginator.tpl -->
96
- </noscript>
97
- <!-- ENDIF !config.usePagination -->
131
+ </div>