nodebb-theme-persona 12.1.5 → 12.1.6

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
@@ -1,8 +1,8 @@
1
- <!-- IF privileges.view_thread_tools -->
1
+ {{{ if privileges.view_thread_tools }}}
2
2
  <div title="[[topic:thread_tools.title]]" class="btn-group thread-tools bottom-sheet">
3
- <button class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" type="button">
3
+ <button class="btn btn-sm btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
4
4
  <i class="fa fa-fw fa-gear"></i>
5
5
  </button>
6
- <ul class="dropdown-menu dropdown-menu-right"></ul>
6
+ <ul class="dropdown-menu dropdown-menu-end"></ul>
7
7
  </div>
8
- <!-- ENDIF privileges.view_thread_tools -->
8
+ {{{ end }}}
@@ -0,0 +1,14 @@
1
+ <div id="{alert_id}" role="alert" class="alert alert-dismissable alert-{type}" component="toaster/toast">
2
+ <button type="button" class="btn-close float-end" data-bs-dismiss="alert" aria-label="close"></button>
3
+ <!-- IF image -->
4
+ <img src="{image}">
5
+ <!-- ENDIF image -->
6
+
7
+ <!-- IF title -->
8
+ <strong>{title}</strong>
9
+ <!-- ENDIF title -->
10
+
11
+ <!-- IF message -->
12
+ <p>{message}</p>
13
+ <!-- ENDIF message -->
14
+ </div>
@@ -1,6 +1,6 @@
1
1
  <div component="topic/deleted/message" class="alert alert-warning<!-- IF !deleted --> hidden<!-- ENDIF !deleted --> clearfix">
2
- <span class="pull-left">[[topic:deleted_message]]</span>
3
- <span class="pull-right">
2
+ <span class="float-start">[[topic:deleted_message]]</span>
3
+ <span class="float-end">
4
4
  <!-- IF deleter -->
5
5
  <a href="{config.relative_path}/user/{deleter.userslug}">
6
6
  <strong>{deleter.username}</strong>
@@ -0,0 +1,26 @@
1
+ <li component="topic/event" class="timeline-event text-muted" data-topic-event-id="{./id}" data-topic-event-type="{./type}">
2
+ <div class="timeline-badge">
3
+ <i class="fa {{{ if ./icon }}}{./icon}{{{ else }}}fa-circle{{{ end }}}"></i>
4
+ </div>
5
+ <span class="timeline-text">
6
+ {{{ if ./href}}}
7
+ <a href="{config.relative_path}{./href}">{./text}</a>
8
+ {{{ else }}}
9
+ {./text}
10
+ {{{ end }}}
11
+ &nbsp;
12
+ </span>
13
+ {{{ if ./user }}}
14
+ {{{ if ./user.system }}}
15
+ <span class="timeline-text">[[global:system-user]]</span>&nbsp;
16
+ {{{ else }}}
17
+ <span><a href="{config.relative_path}/user/{./user.userslug}">{buildAvatar(./user, "16px", true)} &nbsp; {./user.username}</a></span>&nbsp;
18
+ {{{ end }}}
19
+ {{{ end }}}
20
+ <span class="timeago timeline-text" title="{./timestampISO}"></span>
21
+
22
+ {{{ if privileges.isAdminOrMod }}}
23
+ &nbsp;<span component="topic/event/delete" data-topic-event-id="{./id}" data-topic-event-type="{./type}" class="timeline-text pointer" title="[[topic:delete-event]]"><i class="fa fa-trash"></i></span>
24
+ {{{ end }}}
25
+ </li>
26
+
@@ -1,10 +1,10 @@
1
1
  <div class="clearfix">
2
- <div class="icon pull-left">
2
+ <div class="icon float-start">
3
3
  <a href="<!-- IF post.user.userslug -->{config.relative_path}/user/{post.user.userslug}<!-- ELSE -->#<!-- ENDIF post.user.userslug -->">
4
- {buildAvatar(post.user, "sm", true, "", "user/picture")} {post.user.username}
4
+ {buildAvatar(post.user, "24px", true, "", "user/picture")} {post.user.username}
5
5
  </a>
6
6
  </div>
7
- <small class="pull-right">
7
+ <small class="float-end">
8
8
  <span class="timeago" title="{post.timestampISO}"></span>
9
9
  </small>
10
10
  </div>
@@ -3,16 +3,16 @@
3
3
  <div class="wrapper dropup">
4
4
  <i class="fa fa-2x fa-angle-double-up pointer fa-fw pagetop"></i>
5
5
 
6
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">
6
+ <a href="#" class="dropdown-toggle d-inline-block" data-bs-toggle="dropdown" data-bs-reference="parent">
7
7
  <span class="pagination-text"></span>
8
8
  </a>
9
9
 
10
10
  <i class="fa fa-2x fa-angle-double-down pointer fa-fw pagebottom"></i>
11
- <ul class="dropdown-menu dropdown-menu-right" role="menu">
11
+ <ul class="dropdown-menu dropdown-menu-end" role="menu">
12
12
  <li>
13
13
  <div class="row">
14
- <div class="col-xs-8 post-content"></div>
15
- <div class="col-xs-4 text-right">
14
+ <div class="col-8 post-content"></div>
15
+ <div class="col-4 text-end">
16
16
  <div class="scroller-content">
17
17
  <span class="pointer pagetop">[[topic:first-post]] <i class="fa fa-angle-double-up"></i></span>
18
18
  <div class="scroller-container">
@@ -26,10 +26,10 @@
26
26
  </div>
27
27
  </div>
28
28
  <div class="row">
29
- <div class="col-xs-6">
30
- <button id="myNextPostBtn" class="btn btn-default form-control" disabled>[[topic:go-to-my-next-post]]</button>
29
+ <div class="col-6">
30
+ <button id="myNextPostBtn" class="btn btn-outline-secondary form-control" disabled>[[topic:go-to-my-next-post]]</button>
31
31
  </div>
32
- <div class="col-xs-6">
32
+ <div class="col-6">
33
33
  <input type="number" class="form-control" id="indexInput" placeholder="[[global:pagination.enter_index]]">
34
34
  </div>
35
35
  </div>
@@ -1,3 +1,3 @@
1
- <li component="topic/necro-post" class="necro-post timeline-event">
1
+ <li component="topic/necro-post" class="necro-post text-muted timeline-event">
2
2
  <span class="timeline-text">{text}</span>
3
3
  </li>
@@ -1,23 +1,22 @@
1
1
  <!-- IF posts.display_moderator_tools -->
2
- <li class="dropdown-header">[[topic:tools]]</li>
3
2
  <li>
4
- <a component="post/edit" role="menuitem" tabindex="-1" href="#">
3
+ <a class="dropdown-item" component="post/edit" role="menuitem" tabindex="-1" href="#">
5
4
  <span class="menu-icon"><i class="fa fa-fw fa-pencil"></i></span> [[topic:edit]]
6
5
  </a>
7
6
  </li>
8
7
  <li <!-- IF posts.deleted -->hidden<!-- ENDIF posts.deleted -->>
9
- <a component="post/delete" role="menuitem" tabindex="-1" href="#" class="<!-- IF posts.deleted -->hidden<!-- ENDIF posts.deleted -->">
10
- <div class="inline menu-icon"><i class="fa fa-fw fa-trash-o"></i></div> <span>[[topic:delete]]</span>
8
+ <a class="dropdown-item" component="post/delete" role="menuitem" tabindex="-1" href="#" class="<!-- IF posts.deleted -->hidden<!-- ENDIF posts.deleted -->">
9
+ <span class="menu-icon"><i class="fa fa-fw fa-trash-o"></i><span> [[topic:delete]]
11
10
  </a>
12
11
  </li>
13
12
  <li <!-- IF !posts.deleted -->hidden<!-- ENDIF !posts.deleted -->>
14
- <a component="post/restore" role="menuitem" tabindex="-1" href="#" class="<!-- IF !posts.deleted -->hidden<!-- ENDIF !posts.deleted -->">
15
- <div class="inline menu-icon"><i class="fa fa-fw fa-history"></i></div> <span>[[topic:restore]]</span>
13
+ <a class="dropdown-item" component="post/restore" role="menuitem" tabindex="-1" href="#" class="<!-- IF !posts.deleted -->hidden<!-- ENDIF !posts.deleted -->">
14
+ <span class="menu-icon"><i class="fa fa-fw fa-history"></i><span> [[topic:restore]]
16
15
  </a>
17
16
  </li>
18
17
  <!-- IF posts.display_purge_tools -->
19
18
  <li <!-- IF !posts.deleted -->hidden<!-- ENDIF !posts.deleted -->>
20
- <a component="post/purge" role="menuitem" tabindex="-1" href="#" class="<!-- IF !posts.deleted -->hidden<!-- ENDIF !posts.deleted -->">
19
+ <a class="dropdown-item" component="post/purge" role="menuitem" tabindex="-1" href="#" class="<!-- IF !posts.deleted -->hidden<!-- ENDIF !posts.deleted -->">
21
20
  <span class="menu-icon"><i class="fa fa-fw fa-eraser"></i></span> [[topic:purge]]
22
21
  </a>
23
22
  </li>
@@ -25,7 +24,7 @@
25
24
 
26
25
  <!-- IF posts.display_move_tools -->
27
26
  <li>
28
- <a component="post/move" role="menuitem" tabindex="-1" href="#">
27
+ <a class="dropdown-item" component="post/move" role="menuitem" tabindex="-1" href="#">
29
28
  <span class="menu-icon"><i class="fa fa-fw fa-arrows"></i></span> [[topic:move]]
30
29
  </a>
31
30
  </li>
@@ -33,7 +32,7 @@
33
32
 
34
33
  <!-- IF posts.display_change_owner_tools -->
35
34
  <li>
36
- <a component="post/change-owner" role="menuitem" tabindex="-1" href="#">
35
+ <a class="dropdown-item" component="post/change-owner" role="menuitem" tabindex="-1" href="#">
37
36
  <span class="menu-icon"><i class="fa fa-fw fa-user"></i></span> [[topic:change-owner]]
38
37
  </a>
39
38
  </li>
@@ -41,13 +40,13 @@
41
40
 
42
41
  <!-- IF posts.ip -->
43
42
  <li>
44
- <a component="post/copy-ip" role="menuitem" tabindex="-1" href="#" data-clipboard-text="{posts.ip}">
43
+ <a class="dropdown-item" component="post/copy-ip" role="menuitem" tabindex="-1" href="#" data-clipboard-text="{posts.ip}">
45
44
  <span class="menu-icon" ><i class="fa fa-fw fa-copy"></i></span> [[topic:copy-ip]] {posts.ip}
46
45
  </a>
47
46
  </li>
48
47
  <!-- IF posts.display_ip_ban -->
49
48
  <li>
50
- <a component="post/ban-ip" role="menuitem" tabindex="-1" href="#" data-ip="{posts.ip}">
49
+ <a class="dropdown-item" component="post/ban-ip" role="menuitem" tabindex="-1" href="#" data-ip="{posts.ip}">
51
50
  <span class="menu-icon"><i class="fa fa-fw fa-ban"></i></span> [[topic:ban-ip]] {posts.ip}
52
51
  </a>
53
52
  </li>
@@ -57,7 +56,7 @@
57
56
 
58
57
  {{{each posts.tools}}}
59
58
  <li {{{ if ./disabled }}}class="disabled" {{{ end }}}>
60
- <a {{{ if ./action}}}component="{./action}"{{{ end }}} role="menuitem" tabindex="-1" href="{{{ if ./href }}}{./href}{{{ else }}}#{{{ end }}}">
59
+ <a class="dropdown-item" {{{ if ./action}}}component="{./action}"{{{ end }}} role="menuitem" tabindex="-1" href="{{{ if ./href }}}{./href}{{{ else }}}#{{{ end }}}">
61
60
  <span class="menu-icon"><i class="fa fa-fw {posts.tools.icon}"></i></span> {{posts.tools.html}}
62
61
  </a>
63
62
  </li>
@@ -66,7 +65,7 @@
66
65
  <!-- IF !posts.deleted -->
67
66
  <!-- IF posts.display_history -->
68
67
  <li>
69
- <a component="post/view-history" role="menuitem" tabindex="-1" href="#">
68
+ <a class="dropdown-item" component="post/view-history" role="menuitem" tabindex="-1" href="#">
70
69
  <span class="menu-icon"><i class="fa fa-fw fa-history"></i></span> [[topic:view-history]]
71
70
  </a>
72
71
  </li>
@@ -74,7 +73,7 @@
74
73
 
75
74
  {{{ if config.loggedIn }}}
76
75
  <li>
77
- <a component="post/bookmark" role="menuitem" tabindex="-1" href="#" data-bookmarked="{posts.bookmarked}">
76
+ <a class="dropdown-item" component="post/bookmark" role="menuitem" tabindex="-1" href="#" data-bookmarked="{posts.bookmarked}">
78
77
  <span class="menu-icon">
79
78
  <i component="post/bookmark/on" class="fa fa-fw fa-heart <!-- IF !posts.bookmarked -->hidden<!-- ENDIF !posts.bookmarked -->"></i>
80
79
  <i component="post/bookmark/off" class="fa fa-fw fa-heart-o <!-- IF posts.bookmarked -->hidden<!-- ENDIF posts.bookmarked -->"></i>
@@ -86,44 +85,48 @@
86
85
  {{{ end }}}
87
86
 
88
87
  <li>
89
- <a role="menuitem" tabindex="-1" href="#" data-clipboard-text="{posts.absolute_url}">
88
+ <a class="dropdown-item" role="menuitem" tabindex="-1" href="#" data-clipboard-text="{posts.absolute_url}">
90
89
  <i class="fa fa-fw fa-link"></i> [[topic:copy-permalink]]
91
90
  </a>
92
91
  </li>
93
92
 
94
93
  <!-- IF postSharing.length -->
95
- <!-- IF config.loggedIn --><li class="divider"></li><!-- ENDIF config.loggedIn -->
94
+ <!-- IF config.loggedIn --><li class="dropdown-divider"></li><!-- ENDIF config.loggedIn -->
96
95
  <li class="dropdown-header">[[topic:share_this_post]]</li>
97
96
  <!-- ENDIF postSharing.length -->
98
97
  {{{each postSharing}}}
99
98
  <li>
100
- <a role="menuitem" component="share/{postSharing.id}" tabindex="-1" href="#"><span class="menu-icon"><i class="fa fa-fw {postSharing.class}"></i></span> {postSharing.name}</a>
99
+ <a class="dropdown-item" role="menuitem" component="share/{postSharing.id}" tabindex="-1" href="#"><span class="menu-icon"><i class="fa fa-fw {postSharing.class}"></i></span> {postSharing.name}</a>
101
100
  </li>
102
101
  {{{end}}}
103
102
  <!-- ENDIF !posts.deleted -->
104
103
 
105
104
  {{{ if posts.display_flag_tools }}}
106
- <li class="divider"></li>
105
+ <li class="dropdown-divider"></li>
107
106
 
108
107
  <li {{{ if posts.flags.flagged }}}hidden{{{ end }}}>
109
- <a component="post/flag" role="menuitem" tabindex="-1" href="#"><i class="fa fa-fw fa-flag"></i> [[topic:flag-post]]</a>
108
+ <a class="dropdown-item" component="post/flag" role="menuitem" tabindex="-1" href="#"><i class="fa fa-fw fa-flag"></i> [[topic:flag-post]]</a>
110
109
  </li>
111
110
  <li {{{ if !posts.flags.flagged }}}hidden{{{ end }}} class="disabled text-muted">
112
- <a component="post/already-flagged" role="menuitem" tabindex="-1" href="#"><i class="fa fa-fw fa-flag"></i> [[topic:already-flagged]]</a>
111
+ <a class="dropdown-item" component="post/already-flagged" role="menuitem" tabindex="-1" href="#"><i class="fa fa-fw fa-flag"></i> [[topic:already-flagged]]</a>
113
112
  </li>
114
113
 
115
114
  {{{ if (!posts.selfPost && posts.uid) }}}
116
115
  <li>
117
- <a component="post/flagUser" role="menuitem" tabindex="-1" href="#"><i class="fa fa-fw fa-flag"></i> [[topic:flag-user]]</a>
116
+ <a class="dropdown-item" component="post/flagUser" role="menuitem" tabindex="-1" href="#"><i class="fa fa-fw fa-flag"></i> [[topic:flag-user]]</a>
118
117
  </li>
119
118
  {{{ end }}}
120
119
  {{{ end }}}
121
120
 
122
121
  <!-- IF posts.display_moderator_tools -->
123
122
  {{{ if posts.flags.exists }}}
124
- <li><a role="menuitem" tabindex="-1" href="{config.relative_path}/flags/{posts.flags.flagId}"><i class="fa fa-fw fa-exclamation-circle"></i> [[topic:view-flag-report]]</a></li>
123
+ <li>
124
+ <a class="dropdown-item" role="menuitem" tabindex="-1" href="{config.relative_path}/flags/{posts.flags.flagId}"><i class="fa fa-fw fa-exclamation-circle"></i> [[topic:view-flag-report]]</a>
125
+ </li>
125
126
  {{{ if (posts.flags.state == "open") }}}
126
- <li><a component="post/flagResolve" data-flagId="{posts.flags.flagId}" role="menuitem" tabindex="-1" href="#"><i class="fa fa-fw fa-check"></i> [[topic:resolve-flag]]</a></li>
127
+ <li>
128
+ <a class="dropdown-item" component="post/flagResolve" data-flagId="{posts.flags.flagId}" role="menuitem" tabindex="-1" href="#"><i class="fa fa-fw fa-check"></i> [[topic:resolve-flag]]</a>
129
+ </li>
127
130
  {{{ end }}}
128
131
  {{{ end }}}
129
132
  <!-- ENDIF posts.display_moderator_tools -->
@@ -1,4 +1,4 @@
1
- <span component="post/tools" class="dropdown moderator-tools bottom-sheet <!-- IF !posts.display_post_menu -->hidden<!-- ENDIF !posts.display_post_menu -->">
2
- <a href="#" data-toggle="dropdown" data-ajaxify="false"><i class="fa fa-fw fa-ellipsis-v"></i></a>
3
- <ul class="dropdown-menu dropdown-menu-right hidden" role="menu"></ul>
1
+ <span component="post/tools" class="dropdown moderator-tools bottom-sheet d-inline-block<!-- IF !posts.display_post_menu -->hidden<!-- ENDIF !posts.display_post_menu -->">
2
+ <a class="dropdown-toggle" href="#" data-bs-toggle="dropdown"><i class="fa fa-fw fa-ellipsis-v"></i></a>
3
+ <ul class="dropdown-menu dropdown-menu-end" role="menu"></ul>
4
4
  </span>
@@ -1,49 +1,54 @@
1
1
  <div class="clearfix post-header">
2
- <div class="icon pull-left">
2
+ <div class="icon float-start">
3
3
  <a href="<!-- IF posts.user.userslug -->{config.relative_path}/user/{posts.user.userslug}<!-- ELSE -->#<!-- ENDIF posts.user.userslug -->">
4
- {buildAvatar(posts.user, "sm2x", true, "", "user/picture")}
4
+ {buildAvatar(posts.user, "48px", true, "", "user/picture")}
5
5
  <i component="user/status" class="fa fa-circle status {posts.user.status}" title="[[global:{posts.user.status}]]"></i>
6
6
  </a>
7
7
  </div>
8
8
 
9
- <small class="pull-left">
10
- <strong>
11
- <a href="<!-- IF posts.user.userslug -->{config.relative_path}/user/{posts.user.userslug}<!-- ELSE -->#<!-- ENDIF posts.user.userslug -->" itemprop="author" data-username="{posts.user.username}" data-uid="{posts.user.uid}">{posts.user.displayname}</a>
12
- </strong>
13
-
14
- <!-- IMPORT partials/topic/badge.tpl -->
15
-
16
- <!-- IF posts.user.banned -->
17
- <span class="label label-danger">[[user:banned]]</span>
18
- <!-- ENDIF posts.user.banned -->
19
-
20
- <span class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block">
21
- <!-- IF posts.toPid -->
22
- <a component="post/parent" class="btn btn-xs btn-default hidden-xs" data-topid="{posts.toPid}" href="{config.relative_path}/post/{posts.toPid}"><i class="fa fa-reply"></i> @<!-- IF posts.parent.username -->{posts.parent.username}<!-- ELSE -->[[global:guest]]<!-- ENDIF posts.parent.username --></a>
23
- <!-- ENDIF posts.toPid -->
24
-
25
- <span>
26
- <!-- IF posts.user.custom_profile_info.length -->
27
- &#124;
28
- {{{each posts.user.custom_profile_info}}}
29
- {posts.user.custom_profile_info.content}
30
- {{{end}}}
31
- <!-- ENDIF posts.user.custom_profile_info.length -->
9
+ <small class="d-flex">
10
+ <div class="d-flex align-items-center gap-1 flex-wrap w-100">
11
+ <strong class="text-nowrap">
12
+ <a href="<!-- IF posts.user.userslug -->{config.relative_path}/user/{posts.user.userslug}<!-- ELSE -->#<!-- ENDIF posts.user.userslug -->" itemprop="author" data-username="{posts.user.username}" data-uid="{posts.user.uid}">{posts.user.displayname}</a>
13
+ </strong>
14
+
15
+ {{{ each posts.user.selectedGroups }}}
16
+ {{{ if posts.user.selectedGroups.slug }}}
17
+ <!-- IMPORT partials/groups/badge.tpl -->
18
+ {{{ end }}}
19
+ {{{ end }}}
20
+
21
+ <!-- IF posts.user.banned -->
22
+ <span class="badge bg-danger">[[user:banned]]</span>
23
+ <!-- ENDIF posts.user.banned -->
24
+
25
+ <span class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block">
26
+ <!-- IF posts.toPid -->
27
+ <a component="post/parent" class="btn btn-sm btn-outline-secondary hidden-xs" data-topid="{posts.toPid}" href="{config.relative_path}/post/{posts.toPid}"><i class="fa fa-reply"></i> @<!-- IF posts.parent.username -->{posts.parent.username}<!-- ELSE -->[[global:guest]]<!-- ENDIF posts.parent.username --></a>
28
+ <!-- ENDIF posts.toPid -->
29
+
30
+ <span>
31
+ <!-- IF posts.user.custom_profile_info.length -->
32
+ &#124;
33
+ {{{each posts.user.custom_profile_info}}}
34
+ {posts.user.custom_profile_info.content}
35
+ {{{end}}}
36
+ <!-- ENDIF posts.user.custom_profile_info.length -->
37
+ </span>
32
38
  </span>
33
- </span>
34
-
35
- </small>
36
- <small class="pull-right">
37
- <span class="bookmarked"><i class="fa fa-bookmark-o"></i></span>
38
- </small>
39
- <small class="pull-right">
40
- <i component="post/edit-indicator" class="fa fa-pencil-square<!-- IF privileges.posts:history --> pointer<!-- END --> edit-icon <!-- IF !posts.editor.username -->hidden<!-- ENDIF !posts.editor.username -->"></i>
41
-
42
- <small data-editor="{posts.editor.userslug}" component="post/editor" class="hidden">[[global:last_edited_by, {posts.editor.username}]] <span class="timeago" title="{posts.editedISO}"></span></small>
43
-
44
- <span class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block">
45
- <a class="permalink" href="{config.relative_path}/post/{posts.pid}"><span class="timeago" title="{posts.timestampISO}"></span></a>
46
- </span>
39
+ <div class="d-flex align-items-center gap-1 flex-grow-1 justify-content-end">
40
+ <span>
41
+ <i component="post/edit-indicator" class="fa fa-pencil-square<!-- IF privileges.posts:history --> pointer<!-- END --> edit-icon <!-- IF !posts.editor.username -->hidden<!-- ENDIF !posts.editor.username -->"></i>
42
+
43
+ <span data-editor="{posts.editor.userslug}" component="post/editor" class="hidden">[[global:last_edited_by, {posts.editor.username}]] <span class="timeago" title="{posts.editedISO}"></span></span>
44
+
45
+ <span class="visible-xs-inline-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block">
46
+ <a class="permalink text-muted" href="{config.relative_path}/post/{posts.pid}"><span class="timeago" title="{posts.timestampISO}"></span></a>
47
+ </span>
48
+ </span>
49
+ <span class="bookmarked"><i class="fa fa-bookmark-o"></i></span>
50
+ </div>
51
+ </div>
47
52
  </small>
48
53
  </div>
49
54
 
@@ -60,10 +65,10 @@
60
65
 
61
66
  <div class="clearfix">
62
67
  {{{ if !hideReplies }}}
63
- <a component="post/reply-count" data-target-component="post/replies/container" href="#" class="threaded-replies no-select pull-left {{{ if !posts.replies.count }}}hidden{{{ end }}}">
68
+ <a component="post/reply-count" data-target-component="post/replies/container" href="#" class="threaded-replies user-select-none float-start text-muted {{{ if !posts.replies.count }}}hidden{{{ end }}}">
64
69
  <span component="post/reply-count/avatars" class="avatars {{{ if posts.replies.hasMore }}}hasMore{{{ end }}}">
65
70
  {{{each posts.replies.users}}}
66
- {buildAvatar(posts.replies.users, "xs", true, "")}
71
+ {buildAvatar(posts.replies.users, "16px", true, "")}
67
72
  {{{end}}}
68
73
  </span>
69
74
 
@@ -76,11 +81,11 @@
76
81
  </a>
77
82
  {{{ end }}}
78
83
 
79
- <small class="pull-right">
84
+ <small class="float-end">
80
85
  <!-- IMPORT partials/topic/reactions.tpl -->
81
86
  <span class="post-tools">
82
- <a component="post/reply" href="#" class="no-select <!-- IF !privileges.topics:reply -->hidden<!-- ENDIF !privileges.topics:reply -->">[[topic:reply]]</a>
83
- <a component="post/quote" href="#" class="no-select <!-- IF !privileges.topics:reply -->hidden<!-- ENDIF !privileges.topics:reply -->">[[topic:quote]]</a>
87
+ <a component="post/reply" href="#" class="user-select-none <!-- IF !privileges.topics:reply -->hidden<!-- ENDIF !privileges.topics:reply -->">[[topic:reply]]</a>
88
+ <a component="post/quote" href="#" class="user-select-none <!-- IF !privileges.topics:reply -->hidden<!-- ENDIF !privileges.topics:reply -->">[[topic:quote]]</a>
84
89
  </span>
85
90
 
86
91
  <!-- IF !reputation:disabled -->
@@ -1,8 +1,8 @@
1
1
  <!-- IF privileges.topics:reply -->
2
2
  <div component="topic/quickreply/container" class="clearfix quick-reply">
3
- <div class="icon pull-left hidden-xs">
3
+ <div class="icon float-start hidden-xs">
4
4
  <a href="<!-- IF posts.user.userslug -->{config.relative_path}/user/{posts.user.userslug}<!-- ELSE -->#<!-- ENDIF posts.user.userslug -->">
5
- {buildAvatar(loggedInUser, "46", true, "", "user/picture")}
5
+ {buildAvatar(loggedInUser, "48px", true, "", "user/picture")}
6
6
  <!-- IF loggedInUser.status -->
7
7
  <i component="user/status" class="fa fa-circle status {loggedInUser.status}" title="[[global:{loggedInUser.status}]]"></i>
8
8
  <!-- ENDIF loggedInUser.status -->
@@ -15,7 +15,7 @@
15
15
  <textarea name="content" component="topic/quickreply/text" class="form-control" rows="5" placeholder="[[modules:composer.textarea.placeholder]]"></textarea>
16
16
  <div class="imagedrop"><div>[[topic:composer.drag_and_drop_images]]</div></div>
17
17
  </div>
18
- <button type="submit" component="topic/quickreply/button" class="btn btn-primary pull-right">[[topic:post-quick-reply]]</button>
18
+ <button type="submit" component="topic/quickreply/button" class="btn btn-primary float-end">[[topic:post-quick-reply]]</button>
19
19
  </form>
20
20
  <form component="topic/quickreply/upload" method="post" enctype="multipart/form-data">
21
21
  <input type="file" name="files[]" multiple class="hidden"/>
@@ -1,10 +1,10 @@
1
1
  <div component="topic/reply/container" class="btn-group action-bar bottom-sheet <!-- IF !privileges.topics:reply -->hidden<!-- ENDIF !privileges.topics:reply -->">
2
2
  <a href="{config.relative_path}/compose?tid={tid}&title={title}" class="btn btn-sm btn-primary" component="topic/reply" data-ajaxify="false" role="button"><i class="fa fa-reply visible-xs-inline"></i><span class="visible-sm-inline visible-md-inline visible-lg-inline"> [[topic:reply]]</span></a>
3
- <button type="button" class="btn btn-sm btn-primary dropdown-toggle" data-toggle="dropdown">
3
+ <button type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown">
4
4
  <span class="caret"></span>
5
5
  </button>
6
- <ul class="dropdown-menu pull-right" role="menu">
7
- <li><a href="#" component="topic/reply-as-topic">[[topic:reply-as-topic]]</a></li>
6
+ <ul class="dropdown-menu dropdown-menu-end" role="menu">
7
+ <li><a class="dropdown-item" href="#" component="topic/reply-as-topic">[[topic:reply-as-topic]]</a></li>
8
8
  </ul>
9
9
  </div>
10
10
 
@@ -1,9 +1,9 @@
1
1
  <div title="[[topic:sort_by]]" class="btn-group bottom-sheet hidden-xs" component="thread/sort">
2
- <button class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" type="button">
2
+ <button class="btn btn-sm btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
3
3
  <span><i class="fa fa-fw fa-sort"></i></span></button>
4
- <ul class="dropdown-menu dropdown-menu-right">
5
- <li><a href="#" class="oldest_to_newest" data-sort="oldest_to_newest"><i class="fa fa-fw"></i> [[topic:oldest_to_newest]]</a></li>
6
- <li><a href="#" class="newest_to_oldest" data-sort="newest_to_oldest"><i class="fa fa-fw"></i> [[topic:newest_to_oldest]]</a></li>
7
- <li><a href="#" class="most_votes" data-sort="most_votes"><i class="fa fa-fw"></i> [[topic:most_votes]]</a></li>
4
+ <ul class="dropdown-menu dropdown-menu-end">
5
+ <li><a class="dropdown-item" href="#" class="oldest_to_newest" data-sort="oldest_to_newest"><i class="fa fa-fw"></i> [[topic:oldest_to_newest]]</a></li>
6
+ <li><a class="dropdown-item" href="#" class="newest_to_oldest" data-sort="newest_to_oldest"><i class="fa fa-fw"></i> [[topic:newest_to_oldest]]</a></li>
7
+ <li><a class="dropdown-item" href="#" class="most_votes" data-sort="most_votes"><i class="fa fa-fw"></i> [[topic:most_votes]]</a></li>
8
8
  </ul>
9
9
  </div>
@@ -0,0 +1 @@
1
+ <a href="{config.relative_path}/tags/{./valueEncoded}"><span class="tag tag-item fw-bold tag-class-{./class}" data-tag="{./value}">{./valueEscaped}</span></a>
@@ -1,5 +1,3 @@
1
- {{{each tags}}}
2
- <a href="{config.relative_path}/tags/{tags.valueEncoded}">
3
- <span class="tag tag-item tag-class-{tags.class}" data-tag="{tags.value}">{tags.valueEscaped}</span>
4
- </a>
5
- {{{end}}}
1
+ {{{ each tags }}}
2
+ <!-- IMPORT partials/topic/tag.tpl -->
3
+ {{{ end }}}
@@ -1,30 +1,32 @@
1
- <!-- IF privileges.editable -->
2
- <li <!-- IF locked -->hidden<!-- ENDIF locked -->><a component="topic/lock" href="#" class="<!-- IF locked -->hidden<!-- ENDIF locked -->"><i class="fa fa-fw fa-lock"></i> [[topic:thread_tools.lock]]</a></li>
3
- <li <!-- IF !locked -->hidden<!-- ENDIF !locked -->><a component="topic/unlock" href="#" class="<!-- IF !locked -->hidden<!-- ENDIF !locked -->"><i class="fa fa-fw fa-unlock"></i> [[topic:thread_tools.unlock]]</a></li>
4
- <li><a component="topic/move" href="#"><i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move]]</a></li>
5
- <li><a component="topic/fork" href="#"><i class="fa fa-fw fa-code-fork"></i> [[topic:thread_tools.fork]]</a></li>
1
+ {{{ if privileges.editable }}}
2
+ <li <!-- IF locked -->hidden<!-- ENDIF locked -->><a component="topic/lock" href="#" class="dropdown-item <!-- IF locked -->hidden<!-- ENDIF locked -->"><i class="fa fa-fw fa-lock"></i> [[topic:thread_tools.lock]]</a></li>
3
+ <li <!-- IF !locked -->hidden<!-- ENDIF !locked -->><a component="topic/unlock" href="#" class="dropdown-item <!-- IF !locked -->hidden<!-- ENDIF !locked -->"><i class="fa fa-fw fa-unlock"></i> [[topic:thread_tools.unlock]]</a></li>
4
+ <li <!-- IF pinned -->hidden<!-- ENDIF pinned -->><a component="topic/pin" href="#" class="dropdown-item <!-- IF pinned -->hidden<!-- ENDIF pinned -->"><i class="fa fa-fw fa-thumb-tack"></i> [[topic:thread_tools.pin]]</a></li>
5
+ <li <!-- IF !pinned -->hidden<!-- ENDIF !pinned -->><a component="topic/unpin" href="#" class="dropdown-item <!-- IF !pinned -->hidden<!-- ENDIF !pinned -->"><i class="fa fa-fw fa-thumb-tack fa-rotate-90"></i> [[topic:thread_tools.unpin]]</a></li>
6
+
7
+ <li><a component="topic/move" class="dropdown-item" href="#"><i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move]]</a></li>
8
+ <li><a component="topic/merge" class="dropdown-item" href="#"><i class="fa fa-fw fa-code-fork"></i> [[topic:thread_tools.merge]]</a></li>
9
+ <li><a component="topic/fork" class="dropdown-item" href="#"><i class="fa fa-fw fa-code-fork"></i> [[topic:thread_tools.fork]]</a></li>
6
10
  {{{ if !scheduled }}}
7
- <li <!-- IF pinned -->hidden<!-- ENDIF pinned -->><a component="topic/pin" href="#" class="<!-- IF pinned -->hidden<!-- ENDIF pinned -->"><i class="fa fa-fw fa-thumb-tack"></i> [[topic:thread_tools.pin]]</a></li>
8
- <li <!-- IF !pinned -->hidden<!-- ENDIF !pinned -->><a component="topic/unpin" href="#" class="<!-- IF !pinned -->hidden<!-- ENDIF !pinned -->"><i class="fa fa-fw fa-thumb-tack fa-rotate-90"></i> [[topic:thread_tools.unpin]]</a></li>
9
- <li><a component="topic/move-posts" href="#"><i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move-posts]]</a></li>
11
+ <li><a component="topic/move-posts" class="dropdown-item" href="#"><i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move-posts]]</a></li>
12
+ {{{ end }}}
13
+ <li><a component="topic/mark-unread-for-all" class="dropdown-item" href="#"><i class="fa fa-fw fa-inbox"></i> [[topic:thread_tools.markAsUnreadForAll]]</a></li>
14
+ <li class="dropdown-divider"></li>
10
15
  {{{ end }}}
11
- <li><a component="topic/mark-unread-for-all" href="#"><i class="fa fa-fw fa-inbox"></i> [[topic:thread_tools.markAsUnreadForAll]]</a></li>
12
- <li class="divider"></li>
13
- <!-- ENDIF privileges.editable -->
14
16
 
15
17
  <!-- IF privileges.deletable -->
16
- <li <!-- IF deleted -->hidden<!-- ENDIF deleted -->><a component="topic/delete" href="#" class="<!-- IF deleted -->hidden<!-- ENDIF deleted -->"><i class="fa fa-fw fa-trash-o"></i> [[topic:thread_tools.delete]]</a></li>
18
+ <li <!-- IF deleted -->hidden<!-- ENDIF deleted -->><a component="topic/delete" href="#" class="dropdown-item <!-- IF deleted -->hidden<!-- ENDIF deleted -->"><i class="fa fa-fw fa-trash-o"></i> [[topic:thread_tools.delete]]</a></li>
17
19
  {{{ if !scheduled }}}
18
- <li <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->><a component="topic/restore" href="#" class="<!-- IF !deleted -->hidden<!-- ENDIF !deleted -->"><i class="fa fa-fw fa-history"></i> [[topic:thread_tools.restore]]</a></li>
20
+ <li <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->><a component="topic/restore" href="#" class="dropdown-item <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->"><i class="fa fa-fw fa-history"></i> [[topic:thread_tools.restore]]</a></li>
19
21
  {{{ end }}}
20
22
  <!-- IF privileges.purge -->
21
- <li <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->><a component="topic/purge" href="#" class="<!-- IF !deleted -->hidden<!-- ENDIF !deleted -->"><i class="fa fa-fw fa-eraser"></i> [[topic:thread_tools.purge]]</a></li>
23
+ <li <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->><a component="topic/purge" href="#" class="dropdown-item <!-- IF !deleted -->hidden<!-- ENDIF !deleted -->"><i class="fa fa-fw fa-eraser"></i> [[topic:thread_tools.purge]]</a></li>
22
24
  <!-- END -->
23
25
  <!-- IF privileges.isAdminOrMod -->
24
- <li><a component="topic/delete/posts" href="#"><i class="fa fa-fw fa-trash-o"></i> [[topic:thread_tools.delete-posts]]</a></li>
26
+ <li><a component="topic/delete/posts" class="dropdown-item" href="#"><i class="fa fa-fw fa-trash-o"></i> [[topic:thread_tools.delete-posts]]</a></li>
25
27
  <!-- ENDIF privileges.isAdminOrMod -->
26
28
 
27
29
  {{{each thread_tools}}}
28
- <li><a href="#" class="{thread_tools.class}"><i class="fa fa-fw {thread_tools.icon}"></i> {thread_tools.title}</a></li>
30
+ <li><a href="#" class="dropdown-item {thread_tools.class}"><i class="fa fa-fw {thread_tools.icon}"></i> {thread_tools.title}</a></li>
29
31
  {{{end}}}
30
32
  <!-- ENDIF privileges.deletable -->
@@ -1,10 +1,11 @@
1
1
  <!-- IF config.loggedIn -->
2
- <div class="btn-group topic-watch-dropdown bottom-sheet" component="topic/watch">
3
- <button class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" type="button"
4
- {{{if isFollowing}}}title="[[topic:watching]]"{{{end}}}
5
- {{{if isNotFollowing}}}title="[[topic:not-watching]]"{{{end}}}
6
- {{{if isIgnoring}}}title="[[topic:ignoring]]"{{{end}}}
7
- >
2
+ <div class="btn-group topic-watch-dropdown bottom-sheet" component="topic/watch"
3
+ data-bs-toggle="tooltip"
4
+ {{{if isFollowing}}}title="[[topic:watching]]"{{{end}}}
5
+ {{{if isNotFollowing}}}title="[[topic:not-watching]]"{{{end}}}
6
+ {{{if isIgnoring}}}title="[[topic:ignoring]]"{{{end}}}
7
+ >
8
+ <button class="btn btn-sm btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
8
9
  <span component="topic/following/menu" <!-- IF !isFollowing -->class="hidden"<!-- ENDIF !isFollowing -->><i class="fa fa-fw fa-bell-o"></i></span>
9
10
 
10
11
  <span component="topic/not-following/menu" <!-- IF !isNotFollowing -->class="hidden"<!-- ENDIF !isNotFollowing -->><i class="fa fa-fw fa-bell-slash-o"></i></span>
@@ -12,10 +13,10 @@
12
13
  <span component="topic/ignoring/menu" <!-- IF !isIgnoring -->class="hidden"<!-- ENDIF !isIgnoring -->><i class="fa fa-fw fa-eye-slash"></i></span>
13
14
 
14
15
  </button>
15
- <ul class="dropdown-menu dropdown-menu-right">
16
- <li><a href="#" component="topic/following"><i component="topic/following/check" class="fa fa-fw <!-- IF isFollowing -->fa-check<!-- ENDIF isFollowing -->"></i><i class="fa fa-fw fa-bell-o"></i> [[topic:watching]]<p class="help-text hidden-xs"><small>[[topic:watching.description]]</small></p></a></li>
17
- <li><a href="#" component="topic/not-following"><i component="topic/not-following/check" class="fa fa-fw <!-- IF isNotFollowing -->fa-check<!-- ENDIF isNotFollowing -->"></i><i class="fa fa-fw fa-bell-slash-o"></i> [[topic:not-watching]]<p class="help-text hidden-xs"><small>[[topic:not-watching.description]]</small></p></a></li>
18
- <li><a href="#" component="topic/ignoring"><i component="topic/ignoring/check" class="fa fa-fw <!-- IF isIgnoring -->fa-check<!-- ENDIF isIgnoring -->"></i><i class="fa fa-fw fa-eye-slash"></i> [[topic:ignoring]]<p class="help-text hidden-xs"><small>[[topic:ignoring.description]]</small></p></a></li>
16
+ <ul class="dropdown-menu dropdown-menu-end">
17
+ <li><a class="dropdown-item" href="#" component="topic/following"><i component="topic/following/check" class="fa fa-fw <!-- IF isFollowing -->fa-check<!-- ENDIF isFollowing -->"></i><i class="fa fa-fw fa-bell-o"></i> [[topic:watching]]<p class="help-text hidden-xs"><small>[[topic:watching.description]]</small></p></a></li>
18
+ <li><a class="dropdown-item" href="#" component="topic/not-following"><i component="topic/not-following/check" class="fa fa-fw <!-- IF isNotFollowing -->fa-check<!-- ENDIF isNotFollowing -->"></i><i class="fa fa-fw fa-bell-slash-o"></i> [[topic:not-watching]]<p class="help-text hidden-xs"><small>[[topic:not-watching.description]]</small></p></a></li>
19
+ <li><a class="dropdown-item" href="#" component="topic/ignoring"><i component="topic/ignoring/check" class="fa fa-fw <!-- IF isIgnoring -->fa-check<!-- ENDIF isIgnoring -->"></i><i class="fa fa-fw fa-eye-slash"></i> [[topic:ignoring]]<p class="help-text hidden-xs"><small>[[topic:ignoring.description]]</small></p></a></li>
19
20
  </ul>
20
21
  </div>
21
22
  <!-- ENDIF config.loggedIn -->
@@ -0,0 +1,12 @@
1
+ <div class="btn-group bottom-sheet{{{ if !filters.length }}} hidden{{{ end }}}">
2
+ <button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown">
3
+ <span class="visible-sm-inline visible-md-inline visible-lg-inline">{selectedFilter.name}</span><span class="visible-xs-inline"><i class="fa fa-fw {selectedFilter.icon}"></i></span> <span class="caret"></span>
4
+ </button>
5
+ <ul class="dropdown-menu dropdown-menu-end" role="menu">
6
+ {{{each filters}}}
7
+ <li role="presentation" class="category {{{if filters.selected}}}selected{{{end}}}">
8
+ <a class="dropdown-item" role="menu-item" href="{config.relative_path}/{filters.url}"><i class="fa fa-fw {{{ if filters.selected }}}fa-check{{{ end }}}"></i>{filters.name}</a>
9
+ </li>
10
+ {{{end}}}
11
+ </ul>
12
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="btn-group bottom-sheet {{{ if !terms.length }}}hidden{{{ end }}}">
2
+ <button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown">
3
+ {selectedTerm.name} <span class="caret"></span>
4
+ </button>
5
+ <ul class="dropdown-menu dropdown-menu-end" role="menu">
6
+ {{{each terms}}}
7
+ <li role="presentation" class="category">
8
+ <a class="dropdown-item" role="menu-item" href="{config.relative_path}/{terms.url}"><i class="fa fa-fw {{{ if terms.selected }}}fa-check{{{ end }}}"></i>{terms.name}</a>
9
+ </li>
10
+ {{{end}}}
11
+ </ul>
12
+ </div>