nodebb-theme-persona 12.1.5 → 13.0.0

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 (247) hide show
  1. package/README.md +14 -14
  2. package/package.json +2 -2
  3. package/public/persona.js +11 -22
  4. package/{less/account.less → scss/account.scss} +13 -97
  5. package/{less/categories.less → scss/categories.scss} +10 -40
  6. package/{less/category.less → scss/category.scss} +26 -75
  7. package/{less/chats.less → scss/chats.scss} +35 -88
  8. package/{less/flags.less → scss/flags.scss} +3 -3
  9. package/{less/footer.less → scss/footer.scss} +0 -1
  10. package/{less/groups.less → scss/groups.scss} +14 -38
  11. package/{less/header.less → scss/header.scss} +63 -139
  12. package/{less/helpers.less → scss/helpers.scss} +0 -0
  13. package/{less/keyframes.less → scss/keyframes.scss} +0 -0
  14. package/{less/mixins.less → scss/mixins.scss} +17 -59
  15. package/{less/mobile.less → scss/mobile.scss} +13 -18
  16. package/{less/modules/alerts.less → scss/modules/alerts.scss} +21 -21
  17. package/{less/modules/composer-default.less → scss/modules/composer-default.scss} +2 -2
  18. package/{less/modules/cookie-consent.less → scss/modules/cookie-consent.scss} +1 -1
  19. package/{less/modules/fab.less → scss/modules/fab.scss} +2 -2
  20. package/{less/modules/morph.less → scss/modules/morph.scss} +1 -1
  21. package/{less/modules/necro-post.less → scss/modules/necro-post.scss} +0 -0
  22. package/scss/modules/nprogress.scss +80 -0
  23. package/{less/modules/taskbar.less → scss/modules/taskbar.scss} +11 -10
  24. package/{less/modules/usercard.less → scss/modules/usercard.scss} +0 -0
  25. package/{less/noscript.less → scss/noscript.scss} +5 -7
  26. package/{less/outgoing.less → scss/outgoing.scss} +0 -0
  27. package/scss/overrides.scss +44 -0
  28. package/{less/persona.less → scss/persona.scss} +1 -13
  29. package/{less/posts_list.less → scss/posts_list.scss} +11 -14
  30. package/{less/register.less → scss/register.scss} +2 -7
  31. package/scss/search.scss +39 -0
  32. package/{less/style.less → scss/style.scss} +23 -47
  33. package/scss/tags.scss +11 -0
  34. package/{less/topic.less → scss/topic.scss} +53 -90
  35. package/scss/topics_list.scss +17 -0
  36. package/{less/variables.less → scss/variables.scss} +3 -3
  37. package/templates/account/blocks.tpl +24 -26
  38. package/templates/account/categories.tpl +6 -6
  39. package/templates/account/consent.tpl +10 -10
  40. package/templates/account/edit/password.tpl +8 -10
  41. package/templates/account/edit/username.tpl +6 -10
  42. package/templates/account/edit.tpl +23 -23
  43. package/templates/account/followers.tpl +3 -3
  44. package/templates/account/following.tpl +3 -3
  45. package/templates/account/groups.tpl +2 -2
  46. package/templates/account/info.tpl +67 -72
  47. package/templates/account/posts.tpl +1 -1
  48. package/templates/account/profile.tpl +20 -18
  49. package/templates/account/sessions.tpl +3 -3
  50. package/templates/account/settings.tpl +93 -81
  51. package/templates/account/topics.tpl +5 -5
  52. package/templates/account/uploads.tpl +2 -2
  53. package/templates/admin/plugins/persona.tpl +3 -3
  54. package/templates/category.tpl +15 -14
  55. package/templates/chat.tpl +16 -9
  56. package/templates/chats.tpl +5 -3
  57. package/templates/flags/detail.tpl +86 -80
  58. package/templates/flags/list.tpl +4 -4
  59. package/templates/footer.tpl +1 -1
  60. package/templates/groups/details.tpl +23 -218
  61. package/templates/groups/list.tpl +11 -9
  62. package/templates/groups/members.tpl +1 -4
  63. package/templates/header.tpl +10 -4
  64. package/templates/ip-blacklist.tpl +22 -20
  65. package/templates/login.tpl +17 -14
  66. package/templates/modules/taskbar.tpl +1 -1
  67. package/templates/modules/usercard.tpl +2 -2
  68. package/templates/notifications.tpl +40 -38
  69. package/templates/partials/acceptTos.tpl +8 -8
  70. package/templates/partials/account/category-item.tpl +6 -5
  71. package/templates/partials/account/header.tpl +2 -2
  72. package/templates/partials/account/menu.tpl +37 -37
  73. package/templates/partials/breadcrumbs.tpl +1 -1
  74. package/templates/partials/buttons/newTopic.tpl +10 -3
  75. package/templates/partials/categories/item.tpl +24 -10
  76. package/templates/partials/categories/lastpost.tpl +3 -3
  77. package/templates/partials/categories/link.tpl +10 -10
  78. package/templates/partials/category/sort.tpl +7 -7
  79. package/templates/partials/category/subcategory.tpl +3 -3
  80. package/templates/partials/category/tags.tpl +3 -5
  81. package/templates/partials/category/tools.tpl +16 -16
  82. package/templates/partials/category/watch.tpl +8 -10
  83. package/templates/partials/category-filter-content.tpl +17 -5
  84. package/templates/partials/category-filter-right.tpl +1 -1
  85. package/templates/partials/category-selector-content.tpl +17 -4
  86. package/templates/partials/category-selector-right.tpl +1 -1
  87. package/templates/partials/chats/message-window.tpl +10 -8
  88. package/templates/partials/chats/message.tpl +11 -11
  89. package/templates/partials/chats/options.tpl +8 -8
  90. package/templates/partials/chats/recent_room.tpl +1 -1
  91. package/templates/partials/chats/system-message.tpl +1 -1
  92. package/templates/partials/chats/user.tpl +1 -1
  93. package/templates/partials/chats-menu.tpl +11 -11
  94. package/templates/partials/cookie-consent.tpl +1 -1
  95. package/templates/partials/flags/filters.tpl +34 -32
  96. package/templates/partials/groups/admin.tpl +195 -0
  97. package/templates/partials/groups/badge.tpl +1 -0
  98. package/templates/partials/groups/list.tpl +6 -6
  99. package/templates/partials/groups/memberlist.tpl +11 -10
  100. package/templates/partials/menu.tpl +149 -156
  101. package/templates/partials/notifications_list.tpl +2 -2
  102. package/templates/partials/paginator.tpl +21 -21
  103. package/templates/partials/post_bar.tpl +4 -4
  104. package/templates/partials/posts_list.tpl +1 -1
  105. package/templates/partials/posts_list_item.tpl +2 -2
  106. package/templates/partials/quick-search-results.tpl +14 -11
  107. package/templates/partials/slideout-menu.tpl +1 -1
  108. package/templates/partials/tags_list.tpl +3 -3
  109. package/templates/partials/thread_tools.tpl +4 -4
  110. package/templates/partials/toast.tpl +14 -0
  111. package/templates/partials/topic/deleted-message.tpl +2 -2
  112. package/templates/partials/topic/event.tpl +26 -0
  113. package/templates/partials/topic/navigation-post.tpl +3 -3
  114. package/templates/partials/topic/navigator.tpl +7 -7
  115. package/templates/partials/topic/necro-post.tpl +1 -1
  116. package/templates/partials/topic/post-menu-list.tpl +26 -23
  117. package/templates/partials/topic/post-menu.tpl +3 -3
  118. package/templates/partials/topic/post.tpl +49 -44
  119. package/templates/partials/topic/quickreply.tpl +3 -3
  120. package/templates/partials/topic/reply-button.tpl +3 -3
  121. package/templates/partials/topic/sort.tpl +5 -5
  122. package/templates/partials/topic/tag.tpl +1 -0
  123. package/templates/partials/topic/tags.tpl +3 -5
  124. package/templates/partials/topic/topic-menu-list.tpl +18 -16
  125. package/templates/partials/topic/watch.tpl +11 -10
  126. package/templates/partials/topic-filters.tpl +12 -0
  127. package/templates/partials/topic-terms.tpl +12 -0
  128. package/templates/partials/topics_list.tpl +27 -25
  129. package/templates/partials/users_list.tpl +22 -10
  130. package/templates/partials/users_list_menu.tpl +19 -9
  131. package/templates/popular.tpl +9 -35
  132. package/templates/post-queue.tpl +42 -35
  133. package/templates/recent.tpl +10 -24
  134. package/templates/register.tpl +17 -17
  135. package/templates/registerComplete.tpl +14 -10
  136. package/templates/reset.tpl +7 -5
  137. package/templates/reset_code.tpl +9 -9
  138. package/templates/search.tpl +100 -87
  139. package/templates/tag.tpl +8 -10
  140. package/templates/tags.tpl +5 -3
  141. package/templates/top.tpl +9 -35
  142. package/templates/topic.tpl +13 -11
  143. package/templates/tos.tpl +4 -4
  144. package/templates/unread.tpl +10 -22
  145. package/templates/users.tpl +7 -20
  146. package/theme.json +6 -6
  147. package/theme.scss +1 -0
  148. package/less/bootstrap/.csscomb.json +0 -297
  149. package/less/bootstrap/.csslintrc +0 -19
  150. package/less/bootstrap/alerts.less +0 -73
  151. package/less/bootstrap/badges.less +0 -66
  152. package/less/bootstrap/bootstrap.less +0 -50
  153. package/less/bootstrap/breadcrumbs.less +0 -26
  154. package/less/bootstrap/button-groups.less +0 -243
  155. package/less/bootstrap/buttons.less +0 -160
  156. package/less/bootstrap/carousel.less +0 -269
  157. package/less/bootstrap/close.less +0 -34
  158. package/less/bootstrap/code.less +0 -69
  159. package/less/bootstrap/component-animations.less +0 -33
  160. package/less/bootstrap/dropdowns.less +0 -214
  161. package/less/bootstrap/forms.less +0 -574
  162. package/less/bootstrap/glyphicons.less +0 -305
  163. package/less/bootstrap/grid.less +0 -84
  164. package/less/bootstrap/input-groups.less +0 -166
  165. package/less/bootstrap/jumbotron.less +0 -50
  166. package/less/bootstrap/labels.less +0 -64
  167. package/less/bootstrap/list-group.less +0 -124
  168. package/less/bootstrap/media.less +0 -61
  169. package/less/bootstrap/mixins/alerts.less +0 -14
  170. package/less/bootstrap/mixins/background-variant.less +0 -8
  171. package/less/bootstrap/mixins/border-radius.less +0 -18
  172. package/less/bootstrap/mixins/buttons.less +0 -52
  173. package/less/bootstrap/mixins/center-block.less +0 -7
  174. package/less/bootstrap/mixins/clearfix.less +0 -22
  175. package/less/bootstrap/mixins/forms.less +0 -85
  176. package/less/bootstrap/mixins/gradients.less +0 -59
  177. package/less/bootstrap/mixins/grid-framework.less +0 -91
  178. package/less/bootstrap/mixins/grid.less +0 -122
  179. package/less/bootstrap/mixins/hide-text.less +0 -21
  180. package/less/bootstrap/mixins/image.less +0 -33
  181. package/less/bootstrap/mixins/labels.less +0 -12
  182. package/less/bootstrap/mixins/list-group.less +0 -29
  183. package/less/bootstrap/mixins/nav-divider.less +0 -10
  184. package/less/bootstrap/mixins/nav-vertical-align.less +0 -9
  185. package/less/bootstrap/mixins/opacity.less +0 -8
  186. package/less/bootstrap/mixins/pagination.less +0 -23
  187. package/less/bootstrap/mixins/panels.less +0 -24
  188. package/less/bootstrap/mixins/progress-bar.less +0 -10
  189. package/less/bootstrap/mixins/reset-filter.less +0 -8
  190. package/less/bootstrap/mixins/resize.less +0 -6
  191. package/less/bootstrap/mixins/responsive-visibility.less +0 -15
  192. package/less/bootstrap/mixins/size.less +0 -10
  193. package/less/bootstrap/mixins/tab-focus.less +0 -9
  194. package/less/bootstrap/mixins/table-row.less +0 -28
  195. package/less/bootstrap/mixins/text-emphasis.less +0 -8
  196. package/less/bootstrap/mixins/text-overflow.less +0 -8
  197. package/less/bootstrap/mixins/vendor-prefixes.less +0 -227
  198. package/less/bootstrap/mixins.less +0 -39
  199. package/less/bootstrap/modals.less +0 -150
  200. package/less/bootstrap/navbar.less +0 -660
  201. package/less/bootstrap/navs.less +0 -242
  202. package/less/bootstrap/normalize.less +0 -427
  203. package/less/bootstrap/pager.less +0 -54
  204. package/less/bootstrap/pagination.less +0 -88
  205. package/less/bootstrap/panels.less +0 -265
  206. package/less/bootstrap/popovers.less +0 -135
  207. package/less/bootstrap/print.less +0 -107
  208. package/less/bootstrap/progress-bars.less +0 -87
  209. package/less/bootstrap/responsive-embed.less +0 -35
  210. package/less/bootstrap/responsive-utilities.less +0 -194
  211. package/less/bootstrap/scaffolding.less +0 -162
  212. package/less/bootstrap/tables.less +0 -234
  213. package/less/bootstrap/theme.less +0 -273
  214. package/less/bootstrap/thumbnails.less +0 -36
  215. package/less/bootstrap/tooltip.less +0 -102
  216. package/less/bootstrap/type.less +0 -302
  217. package/less/bootstrap/utilities.less +0 -55
  218. package/less/bootstrap/variables.less +0 -861
  219. package/less/bootstrap/wells.less +0 -29
  220. package/less/bootstrap-flipped.css +0 -1550
  221. package/less/ip-blacklist.less +0 -7
  222. package/less/modules/bottom-sheet.less +0 -60
  223. package/less/modules/nprogress.less +0 -80
  224. package/less/notifications.less +0 -38
  225. package/less/post-queue.less +0 -19
  226. package/less/rtl.less +0 -132
  227. package/less/search.less +0 -96
  228. package/less/tags.less +0 -37
  229. package/less/topics_list.less +0 -16
  230. package/less/users.less +0 -73
  231. package/templates/alert.tpl +0 -15
  232. package/templates/partials/change_owner_modal.tpl +0 -22
  233. package/templates/partials/delete_posts_modal.tpl +0 -19
  234. package/templates/partials/fork_thread_modal.tpl +0 -22
  235. package/templates/partials/merge_topics_modal.tpl +0 -58
  236. package/templates/partials/modals/change_picture_modal.tpl +0 -73
  237. package/templates/partials/modals/flag_modal.tpl +0 -45
  238. package/templates/partials/modals/manage_room.tpl +0 -11
  239. package/templates/partials/modals/manage_room_users.tpl +0 -7
  240. package/templates/partials/modals/post_history.tpl +0 -36
  241. package/templates/partials/modals/rename_room.tpl +0 -4
  242. package/templates/partials/modals/upload_file_modal.tpl +0 -44
  243. package/templates/partials/modals/upload_picture_from_url_modal.tpl +0 -17
  244. package/templates/partials/modals/votes_modal.tpl +0 -10
  245. package/templates/partials/move_thread_modal.tpl +0 -17
  246. package/templates/partials/topic/badge.tpl +0 -5
  247. package/theme.less +0 -2
@@ -2,18 +2,18 @@
2
2
  <!-- IMPORT partials/account/header.tpl -->
3
3
  <!-- IF sso.length --><div><!-- ENDIF sso.length -->
4
4
  <div class="row">
5
- <div class="col-md-2 col-sm-4">
5
+ <div class="col-md-3 col-sm-4">
6
6
  <div class="account-picture-block text-center">
7
- <div class="row">
8
- <div class="col-xs-12 hidden-xs">
7
+ <div class="row mb-3">
8
+ <div class="col-12 hidden-xs">
9
9
  <!-- IF picture -->
10
- <img id="user-current-picture" class="avatar avatar-xl avatar-rounded" src="{picture}" />
10
+ <img id="user-current-picture" class="avatar avatar-rounded" style="--avatar-size: 128px;" src="{picture}" />
11
11
  <!-- ELSE -->
12
- <div class="avatar avatar-xl avatar-rounded" style="background-color: {icon:bgColor};">{icon:text}</div>
12
+ <div class="avatar avatar-rounded" style="background-color: {icon:bgColor}; --avatar-size: 128px;">{icon:text}</div>
13
13
  <!-- ENDIF picture -->
14
14
  </div>
15
15
  </div>
16
- <ul class="list-group">
16
+ <ul class="list-group mb-3">
17
17
  <!-- IF allowProfilePicture -->
18
18
  <a id="changePictureBtn" href="#" class="list-group-item">[[user:change_picture]]</a>
19
19
  <!-- ENDIF allowProfilePicture -->
@@ -50,31 +50,31 @@
50
50
 
51
51
  <div class="<!-- IF !sso.length -->col-md-9 col-sm-8<!-- ELSE -->col-md-5 col-sm-4<!-- ENDIF !sso.length -->">
52
52
  <form role="form" component="profile/edit/form">
53
- <div class="form-group">
54
- <label for="fullname">[[user:fullname]]</label>
53
+ <div class="mb-2">
54
+ <label class="form-label fw-bold" for="fullname">[[user:fullname]]</label>
55
55
  <input class="form-control" type="text" id="fullname" name="fullname" placeholder="[[user:fullname]]" value="{fullname}">
56
56
  </div>
57
57
  <!-- IF allowWebsite -->
58
- <div class="form-group">
59
- <label for="website">[[user:website]]</label>
58
+ <div class="mb-2">
59
+ <label class="form-label fw-bold" for="website">[[user:website]]</label>
60
60
  <input class="form-control" type="text" id="website" name="website" placeholder="http://..." value="{website}">
61
61
  </div>
62
62
  <!-- ENDIF allowWebsite -->
63
63
 
64
- <div class="form-group">
65
- <label for="location">[[user:location]]</label>
64
+ <div class="mb-2">
65
+ <label class="form-label fw-bold" for="location">[[user:location]]</label>
66
66
  <input class="form-control" type="text" id="location" name="location" placeholder="[[user:location]]" value="{location}">
67
67
  </div>
68
68
 
69
- <div class="form-group">
70
- <label for="birthday">[[user:birthday]]</label>
69
+ <div class="mb-2">
70
+ <label class="form-label fw-bold" for="birthday">[[user:birthday]]</label>
71
71
  <input class="form-control" type="date" id="birthday" name="birthday" value="{birthday}" placeholder="mm/dd/yyyy">
72
72
  </div>
73
73
 
74
- <div class="form-group">
75
- <label for="groupTitle">[[user:grouptitle]]</label>
74
+ <div class="mb-2">
75
+ <label class="form-label fw-bold" for="groupTitle">[[user:grouptitle]]</label>
76
76
 
77
- <select class="form-control" id="groupTitle" name="groupTitle" <!-- IF allowMultipleBadges --> size="{groupSelectSize}" multiple<!-- ENDIF allowMultipleBadges -->>
77
+ <select class="form-select" id="groupTitle" name="groupTitle" <!-- IF allowMultipleBadges --> size="{groupSelectSize}" multiple<!-- ENDIF allowMultipleBadges -->>
78
78
  <option value="">[[user:no-group-title]]</option>
79
79
  {{{each groups}}}
80
80
  <!-- IF groups.userTitleEnabled -->
@@ -89,16 +89,16 @@
89
89
  </div>
90
90
 
91
91
  <!-- IF allowAboutMe -->
92
- <div class="form-group">
93
- <label for="aboutme">[[user:aboutme]]</label> <small><label id="aboutMeCharCountLeft"></label></small>
92
+ <div class="mb-2">
93
+ <label class="form-label fw-bold" for="aboutme">[[user:aboutme]]</label> <small><label id="aboutMeCharCountLeft"></label></small>
94
94
  <textarea class="form-control" id="aboutme" name="aboutme" rows="5">{aboutme}</textarea>
95
95
  </div>
96
96
  <!-- ENDIF allowAboutMe -->
97
97
 
98
98
  <!-- IF allowSignature -->
99
99
  <!-- IF !disableSignatures -->
100
- <div class="form-group">
101
- <label for="signature">[[user:signature]]</label> <small><label id="signatureCharCountLeft"></label></small>
100
+ <div class="mb-2">
101
+ <label class="form-label fw-bold" for="signature">[[user:signature]]</label> <small><label id="signatureCharCountLeft"></label></small>
102
102
  <textarea class="form-control" id="signature" name="signature" rows="5">{signature}</textarea>
103
103
  </div>
104
104
  <!-- ENDIF !disableSignatures -->
@@ -111,13 +111,13 @@
111
111
  </div>
112
112
 
113
113
  <!-- IF sso.length -->
114
- <div class="col-md-5 col-sm-4">
114
+ <div class="col-md-4 col-sm-4">
115
115
  <label>[[user:sso.title]]</label>
116
116
  <div class="list-group">
117
117
  {{{each sso}}}
118
118
  <div class="list-group-item">
119
119
  <!-- IF ../deauthUrl -->
120
- <a data-component="{../component}" class="btn btn-default btn-xs pull-right" href="{../deauthUrl}">[[user:sso.dissociate]]</a>
120
+ <a data-component="{../component}" class="btn btn-outline-secondary btn-sm float-end" href="{../deauthUrl}">[[user:sso.dissociate]]</a>
121
121
  <!-- END -->
122
122
  <a data-component="{../component}" href="{../url}" target="<!-- IF ../associated -->_blank<!-- ELSE -->_top<!-- ENDIF ../associated -->">
123
123
  <!-- IF ../icon --><i class="fa {../icon}"></i><!-- ENDIF ../icon -->
@@ -2,16 +2,16 @@
2
2
  <!-- IMPORT partials/account/header.tpl -->
3
3
 
4
4
  <div class="users row">
5
+ <div class="col-12">
5
6
  <h1>[[pages:{template.name}, {username}]]</h1>
6
7
 
7
- <ul id="users-container" class="users-container" data-nextstart="{nextStart}">
8
- <!-- IMPORT partials/users_list.tpl -->
9
- </ul>
8
+ <!-- IMPORT partials/users_list.tpl -->
10
9
 
11
10
  <!-- IF !users.length -->
12
11
  <div class="alert alert-warning text-center">[[user:has_no_follower]]</div>
13
12
  <!-- ENDIF !users.length -->
14
13
 
15
14
  <!-- IMPORT partials/paginator.tpl -->
15
+ </div>
16
16
  </div>
17
17
  </div>
@@ -2,16 +2,16 @@
2
2
  <!-- IMPORT partials/account/header.tpl -->
3
3
 
4
4
  <div class="users row">
5
+ <div class="col-12">
5
6
  <h1>[[pages:{template.name}, {username}]]</h1>
6
7
 
7
- <ul id="users-container" class="users-container" data-nextstart="{nextStart}">
8
- <!-- IMPORT partials/users_list.tpl -->
9
- </ul>
8
+ <!-- IMPORT partials/users_list.tpl -->
10
9
 
11
10
  <!-- IF !users.length -->
12
11
  <div class="alert alert-warning text-center">[[user:follows_no_one]]</div>
13
12
  <!-- ENDIF !users.length -->
14
13
 
15
14
  <!-- IMPORT partials/paginator.tpl -->
15
+ </div>
16
16
  </div>
17
17
  </div>
@@ -3,8 +3,8 @@
3
3
 
4
4
  <div class="row">
5
5
  <h1>[[pages:{template.name}, {username}]]</h1>
6
-
7
- <div class="groups list">
6
+
7
+ <div class="col-12 groups list">
8
8
  <div component="groups/container" id="groups-list" class="row">
9
9
  <!-- IF !groups.length -->
10
10
  <div class="alert alert-warning text-center">[[groups:no_groups_found]]</div>
@@ -2,16 +2,16 @@
2
2
  <!-- IMPORT partials/account/header.tpl -->
3
3
 
4
4
  <!-- IF sessions.length -->
5
- <div class="row">
6
- <div class="col-xs-12 col-md-12">
5
+ <div class="row mb-3">
6
+ <div class="col-12 col-md-12">
7
7
  <h4>[[global:sessions]]</h4>
8
8
  <ul class="list-group" component="user/sessions">
9
9
  {{{each sessions}}}
10
10
  <li class="list-group-item" data-uuid="{../uuid}">
11
- <div class="pull-right">
11
+ <div class="float-end">
12
12
  <!-- IF isSelfOrAdminOrGlobalModerator -->
13
13
  <!-- IF !../current -->
14
- <button class="btn btn-xs btn-default" type="button" data-action="revokeSession">Revoke Session</button>
14
+ <button class="btn btn-sm btn-outline-secondary" type="button" data-action="revokeSession">Revoke Session</button>
15
15
  <!-- ENDIF !../current -->
16
16
  <!-- ENDIF isSelfOrAdminOrGlobalModerator -->
17
17
  {function.userAgentIcons}
@@ -31,11 +31,11 @@
31
31
 
32
32
  <div class="row">
33
33
  <div class="col-sm-6">
34
- <div class="panel panel-default">
35
- <div class="panel-heading">
36
- <h3 class="panel-title">[[global:recentips]]</h3>
37
- </div>
38
- <div class="panel-body">
34
+ <div class="card mb-3">
35
+ <h5 class="card-header">
36
+ [[global:recentips]]
37
+ </h5>
38
+ <div class="card-body">
39
39
  <ul>
40
40
  {{{each ips}}}
41
41
  <li>{@value}</li>
@@ -44,32 +44,32 @@
44
44
  </div>
45
45
  </div>
46
46
 
47
- <div class="panel panel-default">
48
- <div class="panel-heading">
49
- <h3 class="panel-title">[[user:info.username-history]]</h3>
50
- </div>
51
- <div class="panel-body">
47
+ <div class="card mb-3">
48
+ <h5 class="card-header">
49
+ [[user:info.username-history]]
50
+ </h5>
51
+ <div class="card-body">
52
52
  <ul class="list-group">
53
53
  {{{each usernames}}}
54
54
  <li class="list-group-item">
55
55
  {../value}
56
- <small class="pull-right"><span class="timeago" title="{../timestampISO}"></span></small>
56
+ <small class="float-end"><span class="timeago" title="{../timestampISO}"></span></small>
57
57
  </li>
58
58
  {{{end}}}
59
59
  </ul>
60
60
  </div>
61
61
  </div>
62
62
 
63
- <div class="panel panel-default">
64
- <div class="panel-heading">
65
- <h3 class="panel-title">[[user:info.email-history]]</h3>
66
- </div>
67
- <div class="panel-body">
63
+ <div class="card">
64
+ <h5 class="card-header">
65
+ [[user:info.email-history]]
66
+ </h5>
67
+ <div class="card-body">
68
68
  <ul class="list-group">
69
69
  {{{each emails}}}
70
70
  <li class="list-group-item">
71
71
  {../value}
72
- <small class="pull-right"><span class="timeago" title="{../timestampISO}"></span></small>
72
+ <small class="float-end"><span class="timeago" title="{../timestampISO}"></span></small>
73
73
  </li>
74
74
  {{{end}}}
75
75
  </ul>
@@ -77,13 +77,13 @@
77
77
  </div>
78
78
  </div>
79
79
  <div class="col-sm-6">
80
- <div class="panel panel-default">
81
- <div class="panel-heading">
82
- <h3 class="panel-title">[[user:info.latest-flags]]</h3>
83
- </div>
84
- <div class="panel-body">
80
+ <div class="card mb-3">
81
+ <h5 class="card-header">
82
+ [[user:info.latest-flags]]
83
+ </h5>
84
+ <div class="card-body">
85
85
  <!-- IF history.flags.length -->
86
- <ul class="recent-flags">
86
+ <ul class="recent-flags list-unstyled">
87
87
  {{{each history.flags}}}
88
88
  <li>
89
89
  <p>
@@ -103,30 +103,27 @@
103
103
  </div>
104
104
  </div>
105
105
 
106
- <div class="panel panel-default">
107
- <div class="panel-heading">
108
- <h3 class="panel-title">
109
-
110
- [[user:info.ban-history]]
106
+ <div class="card mb-3">
107
+ <h5 class="card-header">
108
+ [[user:info.ban-history]]
111
109
 
112
- <!-- IF !banned -->
113
- <!-- IF !isSelf -->
114
- <button class="btn btn-xs pull-right btn-danger" component="account/ban">[[user:ban_account]]</button>
115
- <!-- ENDIF !isSelf -->
116
- <!-- ELSE -->
117
- <!-- IF !isSelf -->
118
- <button class="btn btn-xs pull-right btn-success" component="account/unban">[[user:unban_account]]</button>
119
- <!-- ENDIF !isSelf -->
120
- <!-- ENDIF !banned -->
121
- </h3>
122
- </div>
123
- <div class="panel-body">
110
+ <!-- IF !banned -->
111
+ <!-- IF !isSelf -->
112
+ <button class="btn btn-sm float-end btn-danger" component="account/ban">[[user:ban_account]]</button>
113
+ <!-- ENDIF !isSelf -->
114
+ <!-- ELSE -->
115
+ <!-- IF !isSelf -->
116
+ <button class="btn btn-sm float-end btn-success" component="account/unban">[[user:unban_account]]</button>
117
+ <!-- ENDIF !isSelf -->
118
+ <!-- ENDIF !banned -->
119
+ </h5>
120
+ <div class="card-body">
124
121
  <!-- IF history.bans.length -->
125
- <ul class="ban-history">
122
+ <ul class="ban-history list-unstyled">
126
123
  {{{each history.bans}}}
127
124
  <li>
128
125
  <p>
129
- <a href="{config.relative_path}/user/{history.bans.user.userslug}">{buildAvatar(history.bans.user, "sm", true)}</a>
126
+ <a href="{config.relative_path}/user/{history.bans.user.userslug}">{buildAvatar(history.bans.user, "24px", true)}</a>
130
127
  <strong>
131
128
  <a href="<!-- IF history.bans.user.userslug -->{config.relative_path}/user/{history.bans.user.userslug}<!-- ELSE -->#<!-- ENDIF history.bans.user.userslug -->" itemprop="author" data-username="{history.bans.user.username}" data-uid="{history.bans.user.uid}">{history.bans.user.username}</a>
132
129
  </strong>
@@ -147,29 +144,27 @@
147
144
  </div>
148
145
  </div>
149
146
 
150
- <div class="panel panel-default">
151
- <div class="panel-heading">
152
- <h3 class="panel-title">
153
- [[user:info.mute-history]]
147
+ <div class="card mb-3">
148
+ <h5 class="card-header">
149
+ [[user:info.mute-history]]
154
150
 
155
- {{{ if !muted }}}
156
- {{{ if !isSelf }}}
157
- <button class="btn btn-xs pull-right btn-danger" component="account/mute">[[user:mute_account]]</button>
158
- {{{ end }}}
159
- {{{ else }}}
160
- {{{ if !isSelf }}}
161
- <button class="btn btn-xs pull-right btn-success" component="account/unmute">[[user:unmute_account]]</button>
162
- {{{ end }}}
163
- {{{ end }}}
164
- </h3>
165
- </div>
166
- <div class="panel-body">
151
+ {{{ if !muted }}}
152
+ {{{ if !isSelf }}}
153
+ <button class="btn btn-sm float-end btn-danger" component="account/mute">[[user:mute_account]]</button>
154
+ {{{ end }}}
155
+ {{{ else }}}
156
+ {{{ if !isSelf }}}
157
+ <button class="btn btn-sm float-end btn-success" component="account/unmute">[[user:unmute_account]]</button>
158
+ {{{ end }}}
159
+ {{{ end }}}
160
+ </h5>
161
+ <div class="card-body">
167
162
  {{{ if history.mutes.length }}}
168
- <ul class="ban-history">
163
+ <ul class="ban-history list-unstyled">
169
164
  {{{ each history.mutes }}}
170
165
  <li>
171
166
  <p>
172
- <a href="{config.relative_path}/user/{history.mutes.user.userslug}">{buildAvatar(history.mutes.user, "sm", true)}</a>
167
+ <a href="{config.relative_path}/user/{history.mutes.user.userslug}">{buildAvatar(history.mutes.user, "24px", true)}</a>
173
168
  <strong>
174
169
  <a href="<!-- IF history.mutes.user.userslug -->{config.relative_path}/user/{history.mutes.user.userslug}<!-- ELSE -->#<!-- ENDIF history.mutes.user.userslug -->" itemprop="author" data-username="{history.mutes.user.username}" data-uid="{history.mutes.user.uid}">{history.mutes.user.username}</a>
175
170
  </strong>
@@ -190,22 +185,22 @@
190
185
  </div>
191
186
 
192
187
  <!-- IF isAdminOrGlobalModerator -->
193
- <div class="panel panel-default">
194
- <div class="panel-heading">
195
- <h3 class="panel-title">[[user:info.moderation-note]]</h3>
196
- </div>
197
- <div class="panel-body">
188
+ <div class="card">
189
+ <h5 class="card-header">
190
+ [[user:info.moderation-note]]
191
+ </h5>
192
+ <div class="card-body">
198
193
  <textarea component="account/moderation-note" class="form-control"></textarea>
199
194
  <br/>
200
- <button class="btn btn-sm pull-right btn-success" component="account/save-moderation-note">[[user:info.moderation-note.add]]</button>
195
+ <button class="btn btn-sm float-end btn-success" component="account/save-moderation-note">[[user:info.moderation-note.add]]</button>
201
196
  <br/>
202
197
  <div component="account/moderation-note/list">
203
198
  {{{each moderationNotes}}}
204
199
  <hr/>
205
200
 
206
201
  <div class="clearfix">
207
- <div class="pull-left">
208
- <a href="<!-- IF moderationNotes.user.userslug -->{config.relative_path}/user/{moderationNotes.user.userslug}<!-- ELSE -->#<!-- ENDIF moderationNotes.user.userslug -->">{buildAvatar(moderationNotes.user, "sm", true)}</a>
202
+ <div class="float-start">
203
+ <a href="<!-- IF moderationNotes.user.userslug -->{config.relative_path}/user/{moderationNotes.user.userslug}<!-- ELSE -->#<!-- ENDIF moderationNotes.user.userslug -->">{buildAvatar(moderationNotes.user, "24px", true)}</a>
209
204
  <strong>
210
205
  <a href="<!-- IF moderationNotes.user.userslug -->{config.relative_path}/user/{moderationNotes.user.userslug}<!-- ELSE -->#<!-- ENDIF moderationNotes.user.userslug -->" itemprop="author" data-username="{moderationNotes.user.username}" data-uid="{moderationNotes.user.uid}">{moderationNotes.user.username}</a>
211
206
  </strong>
@@ -8,7 +8,7 @@
8
8
  <div class="alert alert-warning text-center">{noItemsFoundKey}</div>
9
9
  <!-- ENDIF !posts.length -->
10
10
 
11
- <div class="col-xs-12">
11
+ <div class="col-12">
12
12
  <!-- IMPORT partials/posts_list.tpl -->
13
13
 
14
14
  <!-- IF config.usePagination -->
@@ -20,7 +20,7 @@
20
20
  <div class="text-center">
21
21
  {{{each selectedGroup}}}
22
22
  <!-- IF selectedGroup.slug -->
23
- <a href="{config.relative_path}/groups/{selectedGroup.slug}"><small class="label group-label inline-block" style="color:{selectedGroup.textColor};background-color: {selectedGroup.labelColor};"><!-- IF selectedGroup.icon --><i class="fa {selectedGroup.icon}"></i> <!-- ENDIF selectedGroup.icon -->{selectedGroup.userTitle}</small></a>
23
+ <!-- IMPORT partials/groups/badge.tpl -->
24
24
  <!-- ENDIF selectedGroup.slug -->
25
25
  {{{end}}}
26
26
  </div>
@@ -93,14 +93,14 @@
93
93
  <hr />
94
94
 
95
95
  <div class="row">
96
- <div class="col-xs-12 account-block hidden">
96
+ <div class="col-12 account-block hidden">
97
97
  <div class="account-picture-block text-center">
98
98
  <span>
99
99
  <span class="account-username"> {username}</span>
100
100
  </span>
101
101
 
102
102
  <!-- IF !isSelf -->
103
- <a component="account/unfollow" href="#" class="btn btn-default{{{ if !isFollowing }}} hide{{{ end }}}">[[user:unfollow]]</a>
103
+ <a component="account/unfollow" href="#" class="btn btn-outline-secondary{{{ if !isFollowing }}} hide{{{ end }}}">[[user:unfollow]]</a>
104
104
  <a component="account/follow" href="#" class="btn btn-primary{{{ if isFollowing }}} hide{{{ end }}}">[[user:follow]]</a>
105
105
  <!-- ENDIF !isSelf -->
106
106
  </div>
@@ -109,7 +109,7 @@
109
109
 
110
110
  <!-- IF groups.length -->
111
111
  <div class="row">
112
- <div class="col-xs-12 hidden">
112
+ <div class="col-12 hidden">
113
113
  {{{each groups}}}
114
114
  <a href="{config.relative_path}/groups/{groups.slug}"><span class="label group-label inline-block" style="background-color: {groups.labelColor};"><!-- IF groups.icon --><i class="fa {groups.icon}"></i> <!-- ENDIF groups.icon -->{groups.userTitle}</span></a>
115
115
  {{{end}}}
@@ -119,14 +119,16 @@
119
119
 
120
120
  <!-- IF ips.length -->
121
121
  <div class="row">
122
- <div class="col-xs-12 hidden">
123
- <div class="panel-heading">
124
- <h3 class="panel-title">[[global:recentips]]</h3>
125
- </div>
126
- <div class="panel-body">
127
- {{{each ips}}}
128
- <div>{ips}</div>
129
- {{{end}}}
122
+ <div class="col-12 hidden">
123
+ <div class="card">
124
+ <h5 class="card-header">
125
+ [[global:recentips]]
126
+ </h5>
127
+ <div class="card-body">
128
+ {{{each ips}}}
129
+ <div>{ips}</div>
130
+ {{{end}}}
131
+ </div>
130
132
  </div>
131
133
  </div>
132
134
  </div>
@@ -134,11 +136,11 @@
134
136
 
135
137
  <div class="row">
136
138
  {{{ if bestPosts.length }}}
137
- <div class="col-lg-12 col-xs-12">
139
+ <div class="col-lg-12 col-12">
138
140
  <h1>[[pages:account/best, {username}]]</h1>
139
141
 
140
- <div class="col-xs-12">
141
- <ul component="posts" class="posts-list">
142
+ <div class="col-12">
143
+ <ul component="posts" class="posts-list list-unstyled">
142
144
  {{{each bestPosts}}}
143
145
  <!-- IMPORT partials/posts_list_item.tpl -->
144
146
  {{{end}}}
@@ -147,10 +149,10 @@
147
149
  </div>
148
150
  {{{ end }}}
149
151
  {{{ if latestPosts.length}}}
150
- <div class="col-lg-12 col-xs-12">
152
+ <div class="col-lg-12 col-12">
151
153
  <h1>[[pages:account/latest-posts, {username}]]</h1>
152
- <div class="col-xs-12">
153
- <ul component="posts" class="posts-list">
154
+ <div class="col-12">
155
+ <ul component="posts" class="posts-list list-unstyled">
154
156
  {{{each latestPosts}}}
155
157
  <!-- IMPORT partials/posts_list_item.tpl -->
156
158
  {{{end}}}
@@ -3,16 +3,16 @@
3
3
 
4
4
  <!-- IF sessions.length -->
5
5
  <div class="row">
6
- <div class="col-xs-12 col-md-12">
6
+ <div class="col-12 col-md-12">
7
7
  <p class="lead">[[user:sessions.description]]</p>
8
8
  <hr />
9
9
  <ul class="list-group" component="user/sessions">
10
10
  {{{each sessions}}}
11
11
  <li class="list-group-item" data-uuid="{../uuid}">
12
- <div class="pull-right">
12
+ <div class="float-end">
13
13
  <!-- IF isSelfOrAdminOrGlobalModerator -->
14
14
  <!-- IF !../current -->
15
- <button class="btn btn-xs btn-default" type="button" data-action="revokeSession">Revoke Session</button>
15
+ <button class="btn btn-sm btn-outline-secondary" type="button" data-action="revokeSession">Revoke Session</button>
16
16
  <!-- ENDIF !../current -->
17
17
  <!-- ENDIF isSelfOrAdminOrGlobalModerator -->
18
18
  {function.userAgentIcons}