nodebb-theme-persona 12.1.4 → 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 -23
  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,11 +2,11 @@
2
2
  <!-- IMPORT partials/account/header.tpl -->
3
3
 
4
4
  <div class="row">
5
- <div class="col-xs-12 col-md-6">
5
+ <div class="col-12 col-md-6">
6
6
  <!-- IF !disableCustomUserSkins -->
7
7
  <h4>[[user:select-skin]]</h4>
8
- <div class="well">
9
- <select class="form-control" id="bootswatchSkin" data-property="bootswatchSkin">
8
+ <div class="card card-body mb-3">
9
+ <select class="form-select" id="bootswatchSkin" data-property="bootswatchSkin">
10
10
  {{{each bootswatchSkinOptions}}}
11
11
  <option value="{bootswatchSkinOptions.value}" <!-- IF bootswatchSkinOptions.selected -->selected<!-- ENDIF bootswatchSkinOptions.selected -->>{bootswatchSkinOptions.name}</option>
12
12
  {{{end}}}
@@ -16,120 +16,130 @@
16
16
 
17
17
  <!-- IF allowUserHomePage -->
18
18
  <h4>[[user:select-homepage]]</h4>
19
- <div class="well">
20
- <div class="form-group">
19
+ <div class="card card-body mb-3">
20
+ <div class="mb-2">
21
21
  <label for="homePageRoute">[[user:homepage]]</label>
22
- <select class="form-control" id="homePageRoute" data-property="homePageRoute">
22
+ <select class="form-select" id="homePageRoute" data-property="homePageRoute">
23
23
  <option value="none">None</option>
24
24
  {{{each homePageRoutes}}}
25
25
  <option value="{homePageRoutes.route}" <!-- IF homePageRoutes.selected -->selected="1"<!-- ENDIF homePageRoutes.selected -->>{homePageRoutes.name}</option>
26
26
  {{{end}}}
27
27
  </select>
28
- <p class="help-block">[[user:homepage_description]]</p>
28
+ <p class="form-text">[[user:homepage_description]]</p>
29
29
  </div>
30
- <div id="homePageCustom" class="form-group" style="display: none;">
30
+ <div id="homePageCustom" class="mb-2" style="display: none;">
31
31
  <label for="homePageCustom">[[user:custom_route]]</label>
32
32
  <input type="text" class="form-control" data-property="homePageCustom" id="homePageCustom" value="{settings.homePageRoute}"/>
33
- <p class="help-block">[[user:custom_route_help]]</p>
33
+ <p class="form-text">[[user:custom_route_help]]</p>
34
34
  </div>
35
35
  </div>
36
36
  <!-- ENDIF allowUserHomePage -->
37
37
 
38
38
  <h4>[[global:privacy]]</h4>
39
- <div class="well">
39
+ <div class="card card-body mb-3">
40
40
  <!-- IF !hideEmail -->
41
- <div class="checkbox">
42
- <label>
43
- <input type="checkbox" data-property="showemail" <!-- IF settings.showemail -->checked <!-- ENDIF settings.showemail -->/> <strong>[[user:show_email]]</strong>
44
- </label>
41
+ <div class="form-check">
42
+ <input class="form-check-input" type="checkbox" data-property="showemail" <!-- IF settings.showemail -->checked <!-- ENDIF settings.showemail -->/>
43
+ <strong>
44
+ <label class="form-check-label">[[user:show_email]]</label>
45
+ </strong>
45
46
  </div>
46
47
  <!-- ENDIF !hideEmail -->
47
48
 
48
49
  <!-- IF !hideFullname -->
49
- <div class="checkbox">
50
- <label>
51
- <input type="checkbox" data-property="showfullname" <!-- IF settings.showfullname -->checked<!-- ENDIF settings.showfullname -->/> <strong>[[user:show_fullname]]</strong>
52
- </label>
50
+ <div class="form-check">
51
+ <input class="form-check-input" type="checkbox" data-property="showfullname" <!-- IF settings.showfullname -->checked<!-- ENDIF settings.showfullname -->/>
52
+ <strong>
53
+ <label class="form-check-label">[[user:show_fullname]]</label>
54
+ </strong>
53
55
  </div>
54
56
  <!-- ENDIF !hideFullname -->
55
57
  <!-- IF !config.disableChat -->
56
- <div class="checkbox">
57
- <label>
58
- <input type="checkbox" data-property="restrictChat" <!-- IF settings.restrictChat -->checked<!-- ENDIF settings.restrictChat -->/> <strong>[[user:restrict_chats]]</strong>
59
- </label>
58
+ <div class="form-check">
59
+ <input class="form-check-input" type="checkbox" data-property="restrictChat" <!-- IF settings.restrictChat -->checked<!-- ENDIF settings.restrictChat -->/>
60
+ <strong>
61
+ <label class="form-check-label">[[user:restrict_chats]]</label>
62
+ </strong>
60
63
  </div>
61
64
  <!-- ENDIF !config.disableChat -->
62
65
  </div>
63
66
 
64
67
  <h4>[[user:browsing]]</h4>
65
- <div class="well">
66
- <div class="checkbox">
67
- <label>
68
- <input type="checkbox" data-property="openOutgoingLinksInNewTab" <!-- IF settings.openOutgoingLinksInNewTab -->checked<!-- ENDIF settings.openOutgoingLinksInNewTab -->/> <strong>[[user:open_links_in_new_tab]]</strong>
69
- </label>
68
+ <div class="card card-body mb-3">
69
+ <div class="form-check">
70
+ <input class="form-check-input" type="checkbox" data-property="openOutgoingLinksInNewTab" <!-- IF settings.openOutgoingLinksInNewTab -->checked<!-- ENDIF settings.openOutgoingLinksInNewTab -->/>
71
+ <strong>
72
+ <label class="form-check-label">[[user:open_links_in_new_tab]]</label>
73
+ </strong>
70
74
  </div>
71
75
  <!-- IF inTopicSearchAvailable -->
72
- <div class="checkbox">
73
- <label>
74
- <input type="checkbox" data-property="topicSearchEnabled" <!-- IF settings.topicSearchEnabled -->checked<!-- ENDIF settings.topicSearchEnabled -->/> <strong>[[user:enable_topic_searching]]</strong>
75
- </label>
76
+ <div class="form-check">
77
+ <input class="form-check-input" type="checkbox" data-property="topicSearchEnabled" <!-- IF settings.topicSearchEnabled -->checked<!-- ENDIF settings.topicSearchEnabled -->/>
78
+ <strong>
79
+ <label class="form-check-label">[[user:enable_topic_searching]]</label>
80
+ </strong>
76
81
  </div>
77
- <p class="help-block">[[user:topic_search_help]]</p>
82
+ <p class="form-text">[[user:topic_search_help]]</p>
78
83
  <!-- ENDIF inTopicSearchAvailable -->
79
- <div class="checkbox">
80
- <label>
81
- <input type="checkbox" data-property="updateUrlWithPostIndex" {{{ if settings.updateUrlWithPostIndex }}}checked{{{ end }}}/> <strong>[[user:update_url_with_post_index]]</strong>
82
- </label>
83
- </div>
84
- <div class="checkbox">
85
- <label>
86
- <input type="checkbox" data-property="scrollToMyPost" <!-- IF settings.scrollToMyPost -->checked<!-- ENDIF settings.scrollToMyPost -->/> <strong>[[user:scroll_to_my_post]]</strong>
87
- </label>
84
+ <div class="form-check">
85
+ <input class="form-check-input" type="checkbox" data-property="updateUrlWithPostIndex" {{{ if settings.updateUrlWithPostIndex }}}checked{{{ end }}}/>
86
+ <strong>
87
+ <label class="form-check-label">[[user:update_url_with_post_index]]</label>
88
+ </strong>
89
+ </div>
90
+ <div class="form-check">
91
+ <input class="form-check-input" type="checkbox" data-property="scrollToMyPost" <!-- IF settings.scrollToMyPost -->checked<!-- ENDIF settings.scrollToMyPost -->/>
92
+ <strong>
93
+ <label class="form-check-label">[[user:scroll_to_my_post]]</label>
94
+ </strong>
88
95
  </div>
89
96
  </div>
90
97
 
91
98
  <h4>[[global:pagination]]</h4>
92
- <div class="well">
93
- <div class="checkbox">
94
- <label>
95
- <input type="checkbox" data-property="usePagination" <!-- IF settings.usePagination -->checked<!-- ENDIF settings.usePagination -->> <strong>[[user:paginate_description]]</strong>
96
- </label>
99
+ <div class="card card-body mb-3">
100
+ <div class="mb-2 form-check">
101
+ <input type="checkbox" class="form-check-input" data-property="usePagination" <!-- IF settings.usePagination -->checked<!-- ENDIF settings.usePagination -->> <strong><label class="form-check-label">[[user:paginate_description]]</label></strong>
102
+ </div>
103
+ <div class="mb-3">
104
+ <strong><label class="form-label">[[user:topics_per_page]] ([[user:max_items_per_page, {maxTopicsPerPage}]])</label></strong>
105
+ <input type="text" class="form-control" data-property="topicsPerPage" value="{settings.topicsPerPage}">
106
+ </div>
107
+ <div class="">
108
+ <strong><label class="form-label">[[user:posts_per_page]] ([[user:max_items_per_page, {maxPostsPerPage}]])</label></strong>
109
+ <input type="text" class="form-control" data-property="postsPerPage" value="{settings.postsPerPage}">
97
110
  </div>
98
-
99
- <strong>[[user:topics_per_page]] ([[user:max_items_per_page, {maxTopicsPerPage}]])</strong><br /> <input type="text" class="form-control" data-property="topicsPerPage" value="{settings.topicsPerPage}"><br />
100
- <strong>[[user:posts_per_page]] ([[user:max_items_per_page, {maxPostsPerPage}]])</strong><br /> <input type="text" class="form-control" data-property="postsPerPage" value="{settings.postsPerPage}"><br />
101
111
  </div>
102
112
 
103
113
  <!-- IF !disableEmailSubscriptions -->
104
114
  <h4>[[global:email]]</h4>
105
- <div class="well">
106
- <div class="form-group">
115
+ <div class="card card-body mb-3">
116
+ <div class="mb-2">
107
117
  <label for="dailyDigestFreq">[[user:digest_label]]</label>
108
- <select class="form-control" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
118
+ <select class="form-select" id="dailyDigestFreq" data-property="dailyDigestFreq" autocomplete="off">
109
119
  {{{each dailyDigestFreqOptions}}}
110
120
  <option value="{dailyDigestFreqOptions.value}" <!-- IF dailyDigestFreqOptions.selected -->selected="1"<!-- ENDIF dailyDigestFreqOptions.selected -->>{dailyDigestFreqOptions.name}</option>
111
121
  {{{end}}}
112
122
  </select>
113
- <p class="help-block">[[user:digest_description]]</p>
123
+ <p class="form-text">[[user:digest_description]]</p>
114
124
  </div>
115
125
  </div>
116
126
  <!-- ENDIF !disableEmailSubscriptions -->
117
127
 
118
128
  {{{each customSettings}}}
119
129
  <h4>{customSettings.title}</h4>
120
- <div class="well">
130
+ <div class="card card-body mb-3">
121
131
  {customSettings.content}
122
132
  </div>
123
133
  {{{end}}}
124
134
 
125
135
  </div>
126
136
 
127
- <div class="col-xs-12 col-md-6">
137
+ <div class="col-12 col-md-6">
128
138
  <h4>[[global:language]]</h4>
129
- <div class="well">
139
+ <div class="card card-body mb-3">
130
140
  <div class="row">
131
- <div class="form-group col-lg-12">
132
- <select data-property="userLang" class="form-control">
141
+ <div class="mb-2 col-lg-12">
142
+ <select data-property="userLang" class="form-select">
133
143
  {{{each languages}}}
134
144
  <option value="{languages.code}" <!-- IF languages.selected -->selected<!-- ENDIF languages.selected -->>{languages.name} ({languages.code})</option>
135
145
  {{{end}}}
@@ -140,8 +150,8 @@
140
150
  <!-- IF isSelf -->
141
151
  <label>[[user:acp_language]]</label>
142
152
  <div class="row">
143
- <div class="form-group col-lg-12">
144
- <select data-property="acpLang" class="form-control">
153
+ <div class="mb-2 col-lg-12">
154
+ <select data-property="acpLang" class="form-select">
145
155
  {{{each acpLanguages}}}
146
156
  <option value="{acpLanguages.code}" <!-- IF acpLanguages.selected -->selected<!-- ENDIF acpLanguages.selected -->>{acpLanguages.name} ({acpLanguages.code})</option>
147
157
  {{{end}}}
@@ -153,20 +163,22 @@
153
163
  </div>
154
164
 
155
165
  <h4>[[topic:watch]]</h4>
156
- <div class="well">
157
- <div class="checkbox">
158
- <label>
159
- <input type="checkbox" data-property="followTopicsOnCreate" <!-- IF settings.followTopicsOnCreate -->checked <!-- ENDIF settings.followTopicsOnCreate -->/> <strong>[[user:follow_topics_you_create]]</strong>
160
- </label>
161
- </div>
162
- <div class="checkbox">
163
- <label>
164
- <input type="checkbox" data-property="followTopicsOnReply" <!-- IF settings.followTopicsOnReply -->checked<!-- ENDIF settings.followTopicsOnReply -->/> <strong>[[user:follow_topics_you_reply_to]]</strong>
165
- </label>
166
- </div>
167
- <div class="form-group">
166
+ <div class="card card-body mb-3">
167
+ <div class="form-check">
168
+ <input class="form-check-input" type="checkbox" data-property="followTopicsOnCreate" <!-- IF settings.followTopicsOnCreate -->checked <!-- ENDIF settings.followTopicsOnCreate -->/>
169
+ <strong>
170
+ <label class="form-check-label">[[user:follow_topics_you_create]]</label>
171
+ </strong>
172
+ </div>
173
+ <div class="form-check">
174
+ <input class="form-check-input" type="checkbox" data-property="followTopicsOnReply" <!-- IF settings.followTopicsOnReply -->checked<!-- ENDIF settings.followTopicsOnReply -->/>
175
+ <strong>
176
+ <label class="form-check-label">[[user:follow_topics_you_reply_to]]</label>
177
+ </strong>
178
+ </div>
179
+ <div class="mb-2">
168
180
  <label>[[user:default-category-watch-state]]</label>
169
- <select class="form-control" data-property="categoryWatchState">
181
+ <select class="form-select" data-property="categoryWatchState">
170
182
  <option value="watching" <!-- IF categoryWatchState.watching -->selected<!-- ENDIF categoryWatchState.watching -->>[[category:watching]]</option>
171
183
  <option value="notwatching" <!-- IF categoryWatchState.notwatching -->selected<!-- ENDIF categoryWatchState.notwatching -->>[[category:not-watching]]</option>
172
184
  <option value="ignoring" <!-- IF categoryWatchState.ignoring -->selected<!-- ENDIF categoryWatchState.ignoring -->>[[category:ignoring]]</option>
@@ -176,14 +188,14 @@
176
188
 
177
189
 
178
190
  <h4>[[user:notifications]]</h4>
179
- <div class="well">
191
+ <div class="card card-body mb-3">
180
192
  {{{each notificationSettings}}}
181
- <div class="row">
182
- <div class="col-xs-7">
193
+ <div class="row mb-3">
194
+ <div class="col-7">
183
195
  <label>{notificationSettings.label}</label>
184
196
  </div>
185
- <div class="form-group col-xs-5">
186
- <select class="form-control" data-property="{notificationSettings.name}">
197
+ <div class="mb-2 col-5">
198
+ <select class="form-select" data-property="{notificationSettings.name}">
187
199
  <option value="none" <!-- IF notificationSettings.none -->selected<!-- ENDIF notificationSettings.none -->>[[notifications:none]]</option>
188
200
  <option value="notification" <!-- IF notificationSettings.notification -->selected<!-- ENDIF notificationSettings.notification -->>[[notifications:notification_only]]</option>
189
201
  <option value="email" <!-- IF notificationSettings.email -->selected<!-- ENDIF notificationSettings.email -->>[[notifications:email_only]]</option>
@@ -194,11 +206,11 @@
194
206
  {{{end}}}
195
207
 
196
208
  <div class="row">
197
- <div class="col-xs-7">
209
+ <div class="col-7">
198
210
  <label for="upvote-notif-freq">[[user:upvote-notif-freq]]</label>
199
211
  </div>
200
- <div class="form-group col-xs-5">
201
- <select class="form-control" id="upvote-notif-freq" name="upvote-notif-freq" data-property="upvoteNotifFreq">
212
+ <div class="mb-2 col-5">
213
+ <select class="form-select" id="upvote-notif-freq" name="upvote-notif-freq" data-property="upvoteNotifFreq">
202
214
  {{{each upvoteNotifFreq}}}
203
215
  <option value="{upvoteNotifFreq.name}" <!-- IF upvoteNotifFreq.selected -->selected<!-- ENDIF upvoteNotifFreq.selected -->>
204
216
  [[user:upvote-notif-freq.{upvoteNotifFreq.name}]]
@@ -4,12 +4,12 @@
4
4
  <div class="row">
5
5
  <h1>{title}</h1>
6
6
  <!-- IF showSort -->
7
- <div class="row clearfix">
8
- <div class="pull-right btn-group bottom-sheet" component="thread/sort">
9
- <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" type="button"><span>[[topic:sort_by]]</span> <span class="caret"></span></button>
10
- <ul class="dropdown-menu dropdown-menu-right">
7
+ <div class="btn-toolbar justify-content-end mb-2">
8
+ <div class="btn-group bottom-sheet" component="thread/sort">
9
+ <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button"><span>[[topic:sort_by]]</span> <span class="caret"></span></button>
10
+ <ul class="dropdown-menu dropdown-menu-end">
11
11
  {{{each sortOptions }}}
12
- <li><a href="{config.relative_path}{sortOptions.url}"><i class="fa fa-fw {{{if sortOptions.selected}}}fa-check{{{end}}}"></i>{sortOptions.name}</a></li>
12
+ <li><a class="dropdown-item" href="{config.relative_path}{sortOptions.url}"><i class="fa fa-fw {{{if sortOptions.selected}}}fa-check{{{end}}}"></i>{sortOptions.name}</a></li>
13
13
  {{{end}}}
14
14
  </ul>
15
15
  </div>
@@ -13,7 +13,7 @@
13
13
  <div class="alert alert-warning text-center">[[uploads:no-uploads-found]]</div>
14
14
  <!-- ENDIF !uploads.length -->
15
15
 
16
- <div class="col-xs-12">
16
+ <div class="col-12">
17
17
  <table class="table table-striped">
18
18
  <thead>
19
19
  <tr>
@@ -29,7 +29,7 @@
29
29
  </td>
30
30
  <td>
31
31
  <div class="btn-group ">
32
- <button class="btn btn-danger btn-xs" data-action="delete"><i class="fa fa-trash"></i></button>
32
+ <button class="btn btn-danger btn-sm" data-action="delete"><i class="fa fa-trash"></i></button>
33
33
  </div>
34
34
  </td>
35
35
  </tr>
@@ -1,6 +1,6 @@
1
1
  <div class="row">
2
- <div class="col-sm-2 col-xs-12 settings-header">Theme Settings</div>
3
- <div class="col-sm-10 col-xs-12">
2
+ <div class="col-sm-2 col-12 settings-header">Theme Settings</div>
3
+ <div class="col-sm-10 col-12">
4
4
  <form role="form" class="persona-settings">
5
5
  <div class="checkbox">
6
6
  <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
@@ -23,7 +23,7 @@
23
23
  </form>
24
24
  </div>
25
25
  </div>
26
-
26
+
27
27
  <button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
28
28
  <i class="material-icons">save</i>
29
29
  </button>
@@ -8,24 +8,25 @@
8
8
  <div class="category <!-- IF widgets.sidebar.length -->col-lg-9 col-sm-12<!-- ELSE -->col-lg-12<!-- ENDIF widgets.sidebar.length -->">
9
9
  <!-- IMPORT partials/category/subcategory.tpl -->
10
10
 
11
- <div class="topic-list-header clearfix">
12
- <!-- IF privileges.topics:create -->
13
- <a href="{config.relative_path}/compose?cid={cid}" component="category/post" id="new_topic" class="btn btn-primary" data-ajaxify="false" role="button">[[category:new_topic_button]]</a>
14
- <!-- ELSE -->
15
- <!-- IF !loggedIn -->
16
- <a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
17
- <!-- ENDIF !loggedIn -->
18
- <!-- ENDIF privileges.topics:create -->
11
+ <div class="topic-list-header sticky-top btn-toolbar justify-content-between py-2 mb-2 flex-nowrap">
12
+ <div class="d-flex gap-1 align-items-stretch">
13
+ <!-- IF privileges.topics:create -->
14
+ <a href="{config.relative_path}/compose?cid={cid}" component="category/post" id="new_topic" class="btn btn-primary text-nowrap" data-ajaxify="false" role="button">[[category:new_topic_button]]</a>
15
+ <!-- ELSE -->
16
+ <!-- IF !loggedIn -->
17
+ <a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
18
+ <!-- ENDIF !loggedIn -->
19
+ <!-- ENDIF privileges.topics:create -->
19
20
 
20
- <a href="{url}" class="inline-block">
21
- <div class="alert alert-warning hide" id="new-topics-alert"></div>
22
- </a>
23
-
24
- <span class="pull-right" component="category/controls">
21
+ <a href="{config.relative_path}/{selectedFilter.url}{querystring}" class="d-inline-block">
22
+ <div class="alert alert-warning h-100 m-0 px-2 py-1 d-flex align-items-center hide" id="new-topics-alert"></div>
23
+ </a>
24
+ </div>
25
+ <div class="d-flex gap-1 align-items-stretch">
25
26
  <!-- IMPORT partials/category/watch.tpl -->
26
27
  <!-- IMPORT partials/category/sort.tpl -->
27
28
  <!-- IMPORT partials/category/tools.tpl -->
28
- </span>
29
+ </div>
29
30
  </div>
30
31
 
31
32
  <!-- IF !topics.length -->
@@ -1,18 +1,25 @@
1
-
2
- <div id="chat-modal" class="chat-modal hide" tabindex="-1" role="dialog" aria-labelledby="Chat" aria-hidden="true" data-backdrop="none">
1
+ <div id="chat-modal" class="chat-modal modal hide" tabindex="-1" role="dialog" aria-labelledby="Chat" aria-hidden="true" data-backdrop="none">
3
2
  <div class="modal-dialog">
4
- <div class="modal-content">
5
- <div class="modal-header">
6
- <button id="chat-close-btn" type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
7
- <button type="button" class="close hidden-xs hidden-sm" data-action="maximize"><span aria-hidden="true"><i class="fa fa-expand"></i></span><span class="sr-only">[[modules:chat.maximize]]</span></button>
8
- <button type="button" class="close hidden-xs hidden-sm" data-action="minimize"><span aria-hidden="true"><i class="fa fa-minus"></i></span><span class="sr-only">[[modules:chat.minimize]]</span></button>
3
+ <div class="modal-content" style="width: 600px;">
4
+ <div class="modal-header d-flex">
5
+ <div class="fs-5 flex-grow-1" component="chat/room/name"><!-- IF roomName -->{roomName}<!-- ELSE -->{usernames}<!-- ENDIF roomName --></div>
6
+ <button type="button" class="btn btn-link d-none d-md-block p-2 text-muted align-text-top" data-action="maximize">
7
+ <span aria-hidden="true"><i class="fa fa-fw fa-expand"></i></span>
8
+ <span class="sr-only">[[modules:chat.maximize]]</span>
9
+ </button>
10
+ <button type="button" class="btn btn-link d-none d-md-block p-2 text-muted align-text-top" data-action="minimize">
11
+ <span aria-hidden="true"><i class="fa fa-fw fa-minus"></i></span>
12
+ <span class="sr-only">[[modules:chat.minimize]]</span>
13
+ </button>
9
14
  <!-- IMPORT partials/chats/options.tpl -->
10
15
 
11
- <h4 component="chat/room/name"><!-- IF roomName -->{roomName}<!-- ELSE -->{usernames}<!-- ENDIF roomName --></h4>
16
+ <button id="chat-close-btn" type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
12
17
  </div>
13
18
 
14
19
  <div class="modal-body">
15
- <div component="chat/messages/scroll-up-alert" class="scroll-up-alert alert alert-info" role="button">[[modules:chat.scroll-up-alert]]</div>
20
+ <div class="position-relative">
21
+ <div component="chat/messages/scroll-up-alert" class="position-absolute scroll-up-alert alert alert-info hidden w-100" role="button">[[modules:chat.scroll-up-alert]]</div>
22
+ </div>
16
23
  <ul class="chat-content" component="chat/messages">
17
24
  <!-- IMPORT partials/chats/messages.tpl -->
18
25
  </ul>
@@ -1,10 +1,12 @@
1
1
  <div class="chats-full">
2
2
  <div component="chat/nav-wrapper" data-loaded="<!-- IF roomId -->1<!-- ELSE -->0<!-- END -->">
3
3
  <div class="chat-search dropdown">
4
- <input class="form-control" type="text" component="chat/search" placeholder="[[users:search-user-for-chat]]" data-toggle="dropdown" />
5
- <ul component="chat/search/list" class="dropdown-menu"></ul>
4
+ <input class="form-control" type="text" component="chat/search" placeholder="[[users:search-user-for-chat]]" data-bs-toggle="dropdown" />
5
+ <ul component="chat/search/list" class="dropdown-menu">
6
+ <li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>
7
+ </ul>
6
8
  </div>
7
- <ul component="chat/recent" class="chats-list" data-nextstart="{nextStart}">
9
+ <ul component="chat/recent" class="chats-list list-unstyled" data-nextstart="{nextStart}">
8
10
  {{{each rooms}}}
9
11
  <!-- IMPORT partials/chats/recent_room.tpl -->
10
12
  {{{end}}}