nodebb-theme-harmony 1.2.96 → 1.2.98

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.
Files changed (142) hide show
  1. package/.eslintrc +3 -3
  2. package/README.md +22 -22
  3. package/lib/controllers.js +29 -29
  4. package/library.js +190 -190
  5. package/package.json +48 -48
  6. package/plugin.json +25 -25
  7. package/public/.eslintrc +3 -3
  8. package/public/admin.js +15 -15
  9. package/public/harmony.js +287 -287
  10. package/public/settings.js +31 -31
  11. package/renovate.json +6 -6
  12. package/scss/account.scss +27 -27
  13. package/scss/category.scss +3 -3
  14. package/scss/chats.scss +11 -11
  15. package/scss/common.scss +122 -122
  16. package/scss/fonts.scss +19 -19
  17. package/scss/groups.scss +22 -22
  18. package/scss/harmony.scss +24 -24
  19. package/scss/header.scss +15 -15
  20. package/scss/mixins.scss +176 -176
  21. package/scss/modals.scss +6 -6
  22. package/scss/modules/breadcrumbs.scss +15 -15
  23. package/scss/modules/cover.scss +102 -102
  24. package/scss/modules/filters.scss +7 -7
  25. package/scss/modules/nprogress.scss +80 -80
  26. package/scss/modules/paginator.scss +23 -23
  27. package/scss/modules/tags.scss +5 -5
  28. package/scss/modules/topic-navigator.scss +52 -52
  29. package/scss/modules/topics-list.scss +40 -40
  30. package/scss/modules/user-menu.scss +10 -10
  31. package/scss/overrides.scss +65 -65
  32. package/scss/sidebar.scss +188 -188
  33. package/scss/skins.scss +58 -58
  34. package/scss/status.scss +24 -24
  35. package/scss/topic.scss +130 -130
  36. package/templates/account/blocks.tpl +51 -51
  37. package/templates/account/categories.tpl +63 -63
  38. package/templates/account/consent.tpl +73 -73
  39. package/templates/account/edit/password.tpl +34 -34
  40. package/templates/account/edit/username.tpl +29 -29
  41. package/templates/account/edit.tpl +137 -137
  42. package/templates/account/followers.tpl +14 -14
  43. package/templates/account/following.tpl +15 -15
  44. package/templates/account/groups.tpl +15 -15
  45. package/templates/account/info.tpl +270 -270
  46. package/templates/account/posts.tpl +35 -35
  47. package/templates/account/profile.tpl +92 -92
  48. package/templates/account/sessions.tpl +8 -8
  49. package/templates/account/settings.tpl +236 -236
  50. package/templates/account/tags.tpl +12 -12
  51. package/templates/account/theme.tpl +63 -63
  52. package/templates/account/topics.tpl +44 -44
  53. package/templates/account/uploads.tpl +37 -37
  54. package/templates/admin/plugins/harmony.tpl +57 -57
  55. package/templates/categories.tpl +29 -29
  56. package/templates/category.tpl +72 -72
  57. package/templates/footer.tpl +17 -17
  58. package/templates/groups/details.tpl +86 -86
  59. package/templates/groups/list.tpl +58 -58
  60. package/templates/groups/members.tpl +9 -9
  61. package/templates/header.tpl +45 -45
  62. package/templates/notifications.tpl +32 -32
  63. package/templates/partials/account/admin-menu.tpl +36 -36
  64. package/templates/partials/account/category-item.tpl +22 -22
  65. package/templates/partials/account/footer.tpl +2 -2
  66. package/templates/partials/account/header.tpl +98 -98
  67. package/templates/partials/account/session-list.tpl +18 -18
  68. package/templates/partials/account/sidebar-left.tpl +102 -102
  69. package/templates/partials/breadcrumbs-json-ld.tpl +15 -15
  70. package/templates/partials/breadcrumbs.tpl +12 -12
  71. package/templates/partials/buttons/newTopic.tpl +22 -22
  72. package/templates/partials/categories/item.tpl +56 -56
  73. package/templates/partials/categories/lastpost.tpl +24 -24
  74. package/templates/partials/categories/link.tpl +4 -4
  75. package/templates/partials/category/subcategory.tpl +18 -18
  76. package/templates/partials/category/tags.tpl +3 -3
  77. package/templates/partials/cookie-consent.tpl +6 -6
  78. package/templates/partials/groups/admin.tpl +95 -95
  79. package/templates/partials/groups/invited.tpl +32 -32
  80. package/templates/partials/groups/list.tpl +15 -15
  81. package/templates/partials/groups/memberlist.tpl +46 -46
  82. package/templates/partials/groups/pending.tpl +29 -29
  83. package/templates/partials/groups/sidebar-left.tpl +27 -27
  84. package/templates/partials/header/brand.tpl +27 -27
  85. package/templates/partials/mobile-footer.tpl +95 -95
  86. package/templates/partials/notifications_list.tpl +44 -44
  87. package/templates/partials/paginator.tpl +46 -46
  88. package/templates/partials/post_bar.tpl +27 -27
  89. package/templates/partials/posts_list.tpl +7 -7
  90. package/templates/partials/posts_list_item.tpl +19 -19
  91. package/templates/partials/quick-search-results.tpl +46 -46
  92. package/templates/partials/search-filters.tpl +183 -183
  93. package/templates/partials/search-results.tpl +54 -54
  94. package/templates/partials/sidebar/chats.tpl +45 -45
  95. package/templates/partials/sidebar/drafts.tpl +63 -63
  96. package/templates/partials/sidebar/logged-in-menu.tpl +22 -22
  97. package/templates/partials/sidebar/logged-out-menu.tpl +44 -44
  98. package/templates/partials/sidebar/notifications.tpl +49 -49
  99. package/templates/partials/sidebar/search-mobile.tpl +28 -28
  100. package/templates/partials/sidebar/search.tpl +30 -30
  101. package/templates/partials/sidebar/user-menu.tpl +103 -103
  102. package/templates/partials/sidebar-left.tpl +39 -39
  103. package/templates/partials/sidebar-right.tpl +16 -16
  104. package/templates/partials/skin-switcher.tpl +50 -50
  105. package/templates/partials/tags_list.tpl +7 -7
  106. package/templates/partials/toast.tpl +19 -19
  107. package/templates/partials/topic/event.tpl +12 -12
  108. package/templates/partials/topic/navigation-post.tpl +9 -9
  109. package/templates/partials/topic/navigator-mobile.tpl +61 -61
  110. package/templates/partials/topic/navigator.tpl +26 -26
  111. package/templates/partials/topic/necro-post.tpl +5 -5
  112. package/templates/partials/topic/post-menu-list.tpl +142 -142
  113. package/templates/partials/topic/post-menu.tpl +4 -4
  114. package/templates/partials/topic/post-placeholder.tpl +14 -14
  115. package/templates/partials/topic/post.tpl +128 -128
  116. package/templates/partials/topic/quickreply.tpl +28 -28
  117. package/templates/partials/topic/reply-button.tpl +26 -26
  118. package/templates/partials/topic/selection-tooltip.tpl +2 -2
  119. package/templates/partials/topic/sort.tpl +27 -27
  120. package/templates/partials/topic/stats.tpl +14 -14
  121. package/templates/partials/topic/thumbs.tpl +4 -4
  122. package/templates/partials/topic/tools.tpl +8 -8
  123. package/templates/partials/topic/topic-menu-list.tpl +73 -73
  124. package/templates/partials/topic/watch.tpl +59 -59
  125. package/templates/partials/topic-filters.tpl +15 -15
  126. package/templates/partials/topic-list-bar.tpl +54 -54
  127. package/templates/partials/topic-terms.tpl +15 -15
  128. package/templates/partials/topics_list.tpl +131 -131
  129. package/templates/partials/users/item.tpl +39 -39
  130. package/templates/partials/users_list.tpl +4 -4
  131. package/templates/partials/users_list_menu.tpl +14 -14
  132. package/templates/popular.tpl +34 -34
  133. package/templates/post-queue.tpl +211 -211
  134. package/templates/recent.tpl +35 -35
  135. package/templates/search.tpl +46 -46
  136. package/templates/tag.tpl +34 -34
  137. package/templates/tags.tpl +49 -49
  138. package/templates/top.tpl +34 -34
  139. package/templates/topic.tpl +123 -123
  140. package/templates/unread.tpl +31 -31
  141. package/templates/users.tpl +39 -39
  142. package/theme.json +6 -6
package/scss/mixins.scss CHANGED
@@ -1,177 +1,177 @@
1
- @mixin topic-avatars() {
2
- .icon .avatar, .timeline-badge {
3
- z-index: 1;
4
-
5
- line-height: calc(var(--avatar-size) - 4px);
6
- }
7
-
8
- [component="user/status"] {
9
- top: 20px;
10
- left: 12px;
11
-
12
- z-index: 2;
13
- }
14
-
15
- @include media-breakpoint-up(sm) {
16
- [component="user/status"] {
17
- padding: 5px;
18
- top: 36px;
19
- left: 36px;
20
- }
21
- }
22
- }
23
-
24
- @mixin timeline-style() {
25
- > [component="post"], .timeline-event, > [component="post/placeholder"] {
26
- position: relative; // for absolutely positioned pseudo-element, below
27
- border: 0;
28
- margin-left: 1.5rem;
29
- transition: border-color 1s ease-out;
30
-
31
- &:first-child {
32
- &:before {
33
- content: '';
34
- position: absolute;
35
- top: 0;
36
- height: 16px;
37
- width: 16px;
38
- background-color: $border-color;
39
- border-radius: 100%;
40
- transform: translate(calc(-50% - .5px), -100%);
41
- transition: background-color 1s ease-out;
42
- }
43
-
44
- &.highlight:before {
45
- background-color: $primary;
46
- }
47
- }
48
-
49
- &:last-child {
50
- padding-bottom: 2rem;
51
-
52
- &:after {
53
- content: '';
54
- position: absolute;
55
- bottom: 0;
56
- height: 16px;
57
- width: 16px;
58
- background-color: $border-color;
59
- border-radius: 100%;
60
- transform: translate(calc(-50% - .5px), 100%);
61
- transition: background-color 1s ease-out;
62
- }
63
-
64
- &.highlight:after {
65
- background-color: $primary;
66
- }
67
- }
68
-
69
- > div:first-of-type {
70
- margin-left: -1.5rem;
71
- }
72
-
73
- &.highlight {
74
- .bookmarked {
75
- opacity: 1 !important;
76
- }
77
- }
78
-
79
- @include topic-avatars();
80
- }
81
-
82
- [component="topic/event"], [component="topic/necro-post"] {
83
- &.timeline-event {
84
- text-align: left;
85
- justify-content: left;
86
- font-size: 1em;
87
-
88
- .timeline-badge {
89
- display: flex;
90
- align-items: center;
91
- justify-content: center;
92
- flex-shrink: 0;
93
-
94
- width: 20px;
95
- height: 20px;
96
- padding: 0;
97
- margin-right: 1rem;
98
- color: $gray-500;
99
- background-color: $body-bg;
100
- }
101
-
102
- .timeline-text {
103
- line-height: 32px;
104
- text-transform: initial;
105
- }
106
- }
107
- }
108
-
109
- @include media-breakpoint-down(sm) {
110
- > [component="post"], .timeline-event {
111
- &:first-child:before, &:last-child:after {
112
- display: none;
113
- }
114
- }
115
-
116
- [component="post"] {
117
- margin-left: initial;
118
- > div:not(.content) {
119
- margin-left: 0;
120
- }
121
- }
122
-
123
- [component="post"]:last-child:after {
124
- display: none;
125
- }
126
-
127
-
128
- [component="topic/event"], [component="topic/necro-post"] {
129
- &.timeline-event {
130
- .timeline-text {
131
- line-height: 16px;
132
- font-size: 0.75rem;
133
- }
134
- }
135
- }
136
- }
137
-
138
- @include media-breakpoint-up(sm) {
139
- > [component="post"], .timeline-event, > [component="post/placeholder"] {
140
- border-left: 2px solid $border-color;
141
-
142
- &.highlight {
143
- border-left: 2px solid $primary;
144
- }
145
- }
146
-
147
- .timeline-event {
148
- margin-left: 1.5rem;
149
-
150
- [component="topic/event/delete"] {
151
- visibility: hidden;
152
- }
153
-
154
- &:hover {
155
- [component="topic/event/delete"] {
156
- visibility: visible;
157
-
158
- &:hover {
159
- color: $danger;
160
- }
161
- }
162
- }
163
- }
164
-
165
- [component="topic/event"], [component="topic/necro-post"] {
166
- &.timeline-event .timeline-badge {
167
- width: 24px;
168
- height: 24px;
169
- padding: 0;
170
- margin-left: -0.75rem;
171
- margin-right: 1.25rem;
172
- border: 2px solid $border-color;
173
- border-radius: 50%;
174
- }
175
- }
176
- }
1
+ @mixin topic-avatars() {
2
+ .icon .avatar, .timeline-badge {
3
+ z-index: 1;
4
+
5
+ line-height: calc(var(--avatar-size) - 4px);
6
+ }
7
+
8
+ [component="user/status"] {
9
+ top: 20px;
10
+ left: 12px;
11
+
12
+ z-index: 2;
13
+ }
14
+
15
+ @include media-breakpoint-up(sm) {
16
+ [component="user/status"] {
17
+ padding: 5px;
18
+ top: 36px;
19
+ left: 36px;
20
+ }
21
+ }
22
+ }
23
+
24
+ @mixin timeline-style() {
25
+ > [component="post"], .timeline-event, > [component="post/placeholder"] {
26
+ position: relative; // for absolutely positioned pseudo-element, below
27
+ border: 0;
28
+ margin-left: 1.5rem;
29
+ transition: border-color 1s ease-out;
30
+
31
+ &:first-child {
32
+ &:before {
33
+ content: '';
34
+ position: absolute;
35
+ top: 0;
36
+ height: 16px;
37
+ width: 16px;
38
+ background-color: $border-color;
39
+ border-radius: 100%;
40
+ transform: translate(calc(-50% - .5px), -100%);
41
+ transition: background-color 1s ease-out;
42
+ }
43
+
44
+ &.highlight:before {
45
+ background-color: $primary;
46
+ }
47
+ }
48
+
49
+ &:last-child {
50
+ padding-bottom: 2rem;
51
+
52
+ &:after {
53
+ content: '';
54
+ position: absolute;
55
+ bottom: 0;
56
+ height: 16px;
57
+ width: 16px;
58
+ background-color: $border-color;
59
+ border-radius: 100%;
60
+ transform: translate(calc(-50% - .5px), 100%);
61
+ transition: background-color 1s ease-out;
62
+ }
63
+
64
+ &.highlight:after {
65
+ background-color: $primary;
66
+ }
67
+ }
68
+
69
+ > div:first-of-type {
70
+ margin-left: -1.5rem;
71
+ }
72
+
73
+ &.highlight {
74
+ .bookmarked {
75
+ opacity: 1 !important;
76
+ }
77
+ }
78
+
79
+ @include topic-avatars();
80
+ }
81
+
82
+ [component="topic/event"], [component="topic/necro-post"] {
83
+ &.timeline-event {
84
+ text-align: left;
85
+ justify-content: left;
86
+ font-size: 1em;
87
+
88
+ .timeline-badge {
89
+ display: flex;
90
+ align-items: center;
91
+ justify-content: center;
92
+ flex-shrink: 0;
93
+
94
+ width: 20px;
95
+ height: 20px;
96
+ padding: 0;
97
+ margin-right: 1rem;
98
+ color: $gray-500;
99
+ background-color: $body-bg;
100
+ }
101
+
102
+ .timeline-text {
103
+ line-height: 32px;
104
+ text-transform: initial;
105
+ }
106
+ }
107
+ }
108
+
109
+ @include media-breakpoint-down(sm) {
110
+ > [component="post"], .timeline-event {
111
+ &:first-child:before, &:last-child:after {
112
+ display: none;
113
+ }
114
+ }
115
+
116
+ [component="post"] {
117
+ margin-left: initial;
118
+ > div:not(.content) {
119
+ margin-left: 0;
120
+ }
121
+ }
122
+
123
+ [component="post"]:last-child:after {
124
+ display: none;
125
+ }
126
+
127
+
128
+ [component="topic/event"], [component="topic/necro-post"] {
129
+ &.timeline-event {
130
+ .timeline-text {
131
+ line-height: 16px;
132
+ font-size: 0.75rem;
133
+ }
134
+ }
135
+ }
136
+ }
137
+
138
+ @include media-breakpoint-up(sm) {
139
+ > [component="post"], .timeline-event, > [component="post/placeholder"] {
140
+ border-left: 2px solid $border-color;
141
+
142
+ &.highlight {
143
+ border-left: 2px solid $primary;
144
+ }
145
+ }
146
+
147
+ .timeline-event {
148
+ margin-left: 1.5rem;
149
+
150
+ [component="topic/event/delete"] {
151
+ visibility: hidden;
152
+ }
153
+
154
+ &:hover {
155
+ [component="topic/event/delete"] {
156
+ visibility: visible;
157
+
158
+ &:hover {
159
+ color: $danger;
160
+ }
161
+ }
162
+ }
163
+ }
164
+
165
+ [component="topic/event"], [component="topic/necro-post"] {
166
+ &.timeline-event .timeline-badge {
167
+ width: 24px;
168
+ height: 24px;
169
+ padding: 0;
170
+ margin-left: -0.75rem;
171
+ margin-right: 1.25rem;
172
+ border: 2px solid $border-color;
173
+ border-radius: 50%;
174
+ }
175
+ }
176
+ }
177
177
  }
package/scss/modals.scss CHANGED
@@ -1,6 +1,6 @@
1
- .tool-modal {
2
- @include media-breakpoint-up(md) {
3
- bottom: $spacer * 3;
4
- right: $spacer * 4;
5
- }
6
- }
1
+ .tool-modal {
2
+ @include media-breakpoint-up(md) {
3
+ bottom: $spacer * 3;
4
+ right: $spacer * 4;
5
+ }
6
+ }
@@ -1,16 +1,16 @@
1
- .breadcrumb .breadcrumb-item {
2
- font-family: $font-family-secondary;
3
-
4
- &::before {
5
- font-family: $font-family-sans-serif;
6
- font-weight: $font-weight-semibold;
7
- font-size: $small-font-size;
8
- line-height: $h4-font-size;
9
- }
10
-
11
- a, span {
12
- color: $body-color;
13
- font-size: $small-font-size;
14
- line-height: 16px;
15
- }
1
+ .breadcrumb .breadcrumb-item {
2
+ font-family: $font-family-secondary;
3
+
4
+ &::before {
5
+ font-family: $font-family-sans-serif;
6
+ font-weight: $font-weight-semibold;
7
+ font-size: $small-font-size;
8
+ line-height: $h4-font-size;
9
+ }
10
+
11
+ a, span {
12
+ color: $body-color;
13
+ font-size: $small-font-size;
14
+ line-height: 16px;
15
+ }
16
16
  }
@@ -1,103 +1,103 @@
1
- // used in group and account pages
2
- .cover {
3
- background-size: cover;
4
- background-repeat: no-repeat;
5
- height: 200px;
6
- position: absolute;
7
- background-origin: content-box;
8
- width: 100%;
9
- top: var(--panel-offset);
10
- left: auto;
11
- right: 0px;
12
-
13
- &:hover .controls, .controls:focus-within {
14
- opacity: 1;
15
- }
16
-
17
- .controls {
18
- height: 200px;
19
- line-height: 200px;
20
- opacity: 0;
21
- @include transition(opacity .15s linear);
22
- cursor: pointer;
23
- pointer-events: none;
24
-
25
- > * {
26
- pointer-events: all;
27
- }
28
- }
29
-
30
- &.active {
31
- &:hover {
32
- cursor: move;
33
- }
34
-
35
- .controls {
36
- > * {
37
- display: none;
38
- }
39
- }
40
-
41
- .save {
42
- display: inline-block;
43
- }
44
- }
45
-
46
- &.saving {
47
- .save {
48
- display: none;
49
- }
50
-
51
- .indicator {
52
- display: inline-block;
53
- }
54
- }
55
-
56
- .save, .indicator {
57
- display: inline-block;
58
- position: absolute;
59
- top: 1em;
60
- right: 2em;
61
- opacity: 1;
62
- padding: 0.5em;
63
- font-weight: bold;
64
-
65
- &:hover {
66
- cursor: pointer;
67
- }
68
- }
69
-
70
- .save {
71
- display: none;
72
- }
73
-
74
- .indicator {
75
- display: none;
76
- }
77
- }
78
-
79
- .cover > .container {
80
- height: 200px;
81
- position: relative;
82
- pointer-events: none;
83
- .save {
84
- pointer-events: all;
85
- }
86
- .controls {
87
- pointer-events: none;
88
- > * {
89
- pointer-events: all;
90
- }
91
- }
92
- }
93
-
94
- @include media-breakpoint-up(md) {
95
- .cover, .cover > .container {
96
- height: 300px;
97
-
98
- .controls {
99
- height: 300px;
100
- line-height: 300px;
101
- }
102
- }
1
+ // used in group and account pages
2
+ .cover {
3
+ background-size: cover;
4
+ background-repeat: no-repeat;
5
+ height: 200px;
6
+ position: absolute;
7
+ background-origin: content-box;
8
+ width: 100%;
9
+ top: var(--panel-offset);
10
+ left: auto;
11
+ right: 0px;
12
+
13
+ &:hover .controls, .controls:focus-within {
14
+ opacity: 1;
15
+ }
16
+
17
+ .controls {
18
+ height: 200px;
19
+ line-height: 200px;
20
+ opacity: 0;
21
+ @include transition(opacity .15s linear);
22
+ cursor: pointer;
23
+ pointer-events: none;
24
+
25
+ > * {
26
+ pointer-events: all;
27
+ }
28
+ }
29
+
30
+ &.active {
31
+ &:hover {
32
+ cursor: move;
33
+ }
34
+
35
+ .controls {
36
+ > * {
37
+ display: none;
38
+ }
39
+ }
40
+
41
+ .save {
42
+ display: inline-block;
43
+ }
44
+ }
45
+
46
+ &.saving {
47
+ .save {
48
+ display: none;
49
+ }
50
+
51
+ .indicator {
52
+ display: inline-block;
53
+ }
54
+ }
55
+
56
+ .save, .indicator {
57
+ display: inline-block;
58
+ position: absolute;
59
+ top: 1em;
60
+ right: 2em;
61
+ opacity: 1;
62
+ padding: 0.5em;
63
+ font-weight: bold;
64
+
65
+ &:hover {
66
+ cursor: pointer;
67
+ }
68
+ }
69
+
70
+ .save {
71
+ display: none;
72
+ }
73
+
74
+ .indicator {
75
+ display: none;
76
+ }
77
+ }
78
+
79
+ .cover > .container {
80
+ height: 200px;
81
+ position: relative;
82
+ pointer-events: none;
83
+ .save {
84
+ pointer-events: all;
85
+ }
86
+ .controls {
87
+ pointer-events: none;
88
+ > * {
89
+ pointer-events: all;
90
+ }
91
+ }
92
+ }
93
+
94
+ @include media-breakpoint-up(md) {
95
+ .cover, .cover > .container {
96
+ height: 300px;
97
+
98
+ .controls {
99
+ height: 300px;
100
+ line-height: 300px;
101
+ }
102
+ }
103
103
  }
@@ -1,8 +1,8 @@
1
- [component="search/filters"], [component="flags/filters"] {
2
- .filter-btn {
3
- border-color: $gray-300!important;
4
- &.active-filter {
5
- border-color: $primary!important;
6
- }
7
- }
1
+ [component="search/filters"], [component="flags/filters"] {
2
+ .filter-btn {
3
+ border-color: $gray-300!important;
4
+ &.active-filter {
5
+ border-color: $primary!important;
6
+ }
7
+ }
8
8
  }