solidus_backend 2.1.1 → 2.2.0.beta1

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 (544) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc +21 -0
  3. data/Gemfile +3 -0
  4. data/Rakefile +30 -1
  5. data/app/assets/config/solidus_backend_manifest.js +6 -0
  6. data/app/assets/javascripts/spree/backend.js +11 -7
  7. data/app/assets/javascripts/spree/backend/address_states.js +1 -1
  8. data/app/assets/javascripts/spree/backend/admin.js +11 -11
  9. data/app/assets/javascripts/spree/backend/calculator.js +24 -14
  10. data/app/assets/javascripts/spree/backend/checkouts/edit.js +9 -96
  11. data/app/assets/javascripts/spree/backend/collections/index.js +2 -0
  12. data/app/assets/javascripts/spree/backend/collections/line_items.js +9 -0
  13. data/app/assets/javascripts/spree/backend/collections/states.js +13 -0
  14. data/app/assets/javascripts/spree/backend/components/number_with_currency.js +12 -0
  15. data/app/assets/javascripts/spree/backend/components/tooltips.js +2 -1
  16. data/app/assets/javascripts/spree/backend/format_money.js +11 -0
  17. data/app/assets/javascripts/spree/backend/handlebars_extensions.js +18 -0
  18. data/app/assets/javascripts/spree/backend/images/upload.js +1 -1
  19. data/app/assets/javascripts/spree/backend/models/address.js +2 -0
  20. data/app/assets/javascripts/spree/backend/models/index.js +2 -0
  21. data/app/assets/javascripts/spree/backend/models/line_item.js +7 -0
  22. data/app/assets/javascripts/spree/backend/models/order.js +37 -0
  23. data/app/assets/javascripts/spree/backend/namespaces.js +9 -0
  24. data/app/assets/javascripts/spree/backend/orders/cart.js +55 -0
  25. data/app/assets/javascripts/spree/backend/orders/index.js +2 -0
  26. data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +0 -1
  27. data/app/assets/javascripts/spree/backend/payments/new.js +0 -11
  28. data/app/assets/javascripts/spree/backend/promotions.js.coffee +48 -50
  29. data/app/assets/javascripts/spree/backend/promotions/activation.js +26 -0
  30. data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +16 -16
  31. data/app/assets/javascripts/spree/backend/shipments.js +1 -1
  32. data/app/assets/javascripts/spree/backend/spree-select2.js +1 -6
  33. data/app/assets/javascripts/spree/backend/stock_transfers/variant_form.coffee +1 -1
  34. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +0 -5
  35. data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +9 -9
  36. data/app/assets/javascripts/spree/backend/taxons.js.coffee +7 -7
  37. data/app/assets/javascripts/spree/backend/templates/_image.hbs +5 -0
  38. data/app/assets/javascripts/spree/backend/templates/index.js +3 -0
  39. data/app/assets/javascripts/spree/backend/templates/orders/details_adjustment_row.hbs +4 -0
  40. data/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs +42 -0
  41. data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_flat_rate.hbs +2 -2
  42. data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_percent.hbs +2 -2
  43. data/app/assets/javascripts/spree/backend/templates/promotions/rules/option_values.hbs +2 -2
  44. data/app/assets/javascripts/spree/backend/templates/stock_transfers/{transfer_item.hbs.erb → transfer_item.hbs} +1 -5
  45. data/app/assets/javascripts/spree/backend/templates/variants/{autocomplete.hbs.erb → autocomplete.hbs} +1 -5
  46. data/app/assets/javascripts/spree/backend/templates/variants/line_items_autocomplete_stock.hbs +18 -59
  47. data/app/assets/javascripts/spree/backend/translation.js +29 -0
  48. data/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee +5 -4
  49. data/app/assets/javascripts/spree/backend/views/cart/add_line_item_button.js +19 -0
  50. data/app/assets/javascripts/spree/backend/views/cart/line_item_row.js +88 -0
  51. data/app/assets/javascripts/spree/backend/views/cart/line_item_table.js +11 -0
  52. data/app/assets/javascripts/spree/backend/views/index.js +12 -0
  53. data/app/assets/javascripts/spree/backend/views/number_with_currency.js +31 -0
  54. data/app/assets/javascripts/spree/backend/views/order/address.js +52 -0
  55. data/app/assets/javascripts/spree/backend/views/order/customer_details.js +68 -0
  56. data/app/assets/javascripts/spree/backend/views/order/customer_select.js +55 -0
  57. data/app/assets/javascripts/spree/backend/views/order/details_adjustments.js +39 -0
  58. data/app/assets/javascripts/spree/backend/views/order/details_total.js +12 -0
  59. data/app/assets/javascripts/spree/backend/views/order/summary.js +36 -0
  60. data/app/assets/javascripts/spree/backend/views/state_select.js +71 -0
  61. data/app/assets/javascripts/spree/backend/views/zones/form.js +16 -0
  62. data/app/assets/javascripts/spree/backend/zone.js +8 -0
  63. data/app/assets/stylesheets/spree/backend.css +1 -1
  64. data/app/assets/stylesheets/spree/backend/_bootstrap_custom.scss +542 -246
  65. data/app/assets/stylesheets/spree/backend/components/_date-picker.scss +5 -7
  66. data/app/assets/stylesheets/spree/backend/components/_image_placeholder.scss +24 -0
  67. data/app/assets/stylesheets/spree/backend/components/_messages.scss +8 -8
  68. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +6 -15
  69. data/app/assets/stylesheets/spree/backend/components/_number_with_currency.scss +39 -0
  70. data/app/assets/stylesheets/spree/backend/components/_progress.scss +5 -5
  71. data/app/assets/stylesheets/spree/backend/components/_states.scss +6 -6
  72. data/app/assets/stylesheets/spree/backend/components/_stock_table.scss +1 -2
  73. data/app/assets/stylesheets/spree/backend/components/_tabs.scss +9 -9
  74. data/app/assets/stylesheets/spree/backend/globals/_deprecation.scss +17 -0
  75. data/app/assets/stylesheets/spree/backend/globals/_variables.scss +25 -4
  76. data/app/assets/stylesheets/spree/backend/globals/mixins/_line_through.scss +1 -1
  77. data/app/assets/stylesheets/spree/backend/plugins/_bootstrap_tooltip.scss +4 -4
  78. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +64 -187
  79. data/app/assets/stylesheets/spree/backend/sections/_log_entries.scss +3 -3
  80. data/app/assets/stylesheets/spree/backend/sections/_orders.scss +16 -20
  81. data/app/assets/stylesheets/spree/backend/sections/_products.scss +2 -2
  82. data/app/assets/stylesheets/spree/backend/sections/_promotions.scss +7 -2
  83. data/app/assets/stylesheets/spree/backend/sections/_return_authorizations.scss +0 -14
  84. data/app/assets/stylesheets/spree/backend/sections/_stock_management.scss +2 -2
  85. data/app/assets/stylesheets/spree/backend/sections/_store_credits.scss +0 -6
  86. data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +6 -6
  87. data/app/assets/stylesheets/spree/backend/sections/_taxonomies.scss +1 -1
  88. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +31 -123
  89. data/app/assets/stylesheets/spree/backend/shared/_header.scss +5 -4
  90. data/app/assets/stylesheets/spree/backend/shared/_icons.scss +1 -1
  91. data/app/assets/stylesheets/spree/backend/shared/_images.scss +7 -0
  92. data/app/assets/stylesheets/spree/backend/shared/_layout.scss +4 -14
  93. data/app/assets/stylesheets/spree/backend/shared/_tables.scss +21 -32
  94. data/app/assets/stylesheets/spree/backend/shared/_typography.scss +14 -47
  95. data/app/assets/stylesheets/spree/backend/spree_admin.scss +4 -0
  96. data/app/controllers/spree/admin/adjustments_controller.rb +1 -1
  97. data/app/controllers/spree/admin/base_controller.rb +1 -1
  98. data/app/controllers/spree/admin/cancellations_controller.rb +1 -1
  99. data/app/controllers/spree/admin/customer_returns_controller.rb +2 -0
  100. data/app/controllers/spree/admin/general_settings_controller.rb +1 -27
  101. data/app/controllers/spree/admin/images_controller.rb +1 -1
  102. data/app/controllers/spree/admin/option_types_controller.rb +4 -4
  103. data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -2
  104. data/app/controllers/spree/admin/orders_controller.rb +2 -2
  105. data/app/controllers/spree/admin/payment_methods_controller.rb +1 -1
  106. data/app/controllers/spree/admin/payments_controller.rb +4 -4
  107. data/app/controllers/spree/admin/products_controller.rb +6 -6
  108. data/app/controllers/spree/admin/promotion_code_batches_controller.rb +28 -0
  109. data/app/controllers/spree/admin/promotion_codes_controller.rb +7 -3
  110. data/app/controllers/spree/admin/promotions_controller.rb +13 -23
  111. data/app/controllers/spree/admin/refunds_controller.rb +1 -1
  112. data/app/controllers/spree/admin/reimbursements_controller.rb +4 -2
  113. data/app/controllers/spree/admin/search_controller.rb +2 -2
  114. data/app/controllers/spree/admin/shipping_methods_controller.rb +2 -2
  115. data/app/controllers/spree/admin/states_controller.rb +1 -1
  116. data/app/controllers/spree/admin/stock_items_controller.rb +3 -3
  117. data/app/controllers/spree/admin/stock_transfers_controller.rb +2 -2
  118. data/app/controllers/spree/admin/store_credits_controller.rb +8 -2
  119. data/app/controllers/spree/admin/stores_controller.rb +23 -0
  120. data/app/controllers/spree/admin/tax_rates_controller.rb +3 -3
  121. data/app/controllers/spree/admin/taxons_controller.rb +5 -5
  122. data/app/controllers/spree/admin/users_controller.rb +1 -8
  123. data/app/controllers/spree/admin/variants_controller.rb +9 -2
  124. data/app/controllers/spree/admin/zones_controller.rb +3 -3
  125. data/app/helpers/spree/admin/base_helper.rb +2 -1
  126. data/app/helpers/spree/admin/navigation_helper.rb +2 -2
  127. data/app/models/spree/backend_configuration.rb +3 -3
  128. data/app/views/spree/admin/adjustment_reasons/edit.html.erb +3 -3
  129. data/app/views/spree/admin/adjustment_reasons/index.html.erb +1 -1
  130. data/app/views/spree/admin/adjustment_reasons/new.html.erb +3 -3
  131. data/app/views/spree/admin/adjustment_reasons/shared/_form.html.erb +3 -3
  132. data/app/views/spree/admin/adjustments/_adjustment.html.erb +2 -2
  133. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +1 -1
  134. data/app/views/spree/admin/adjustments/_form.html.erb +3 -3
  135. data/app/views/spree/admin/adjustments/edit.html.erb +5 -5
  136. data/app/views/spree/admin/adjustments/index.html.erb +4 -4
  137. data/app/views/spree/admin/adjustments/new.html.erb +4 -4
  138. data/app/views/spree/admin/cancellations/index.html.erb +1 -1
  139. data/app/views/spree/admin/countries/_form.html.erb +5 -5
  140. data/app/views/spree/admin/countries/edit.html.erb +3 -3
  141. data/app/views/spree/admin/countries/index.html.erb +3 -3
  142. data/app/views/spree/admin/countries/new.html.erb +3 -3
  143. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +6 -6
  144. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +5 -5
  145. data/app/views/spree/admin/customer_returns/edit.html.erb +1 -1
  146. data/app/views/spree/admin/customer_returns/index.html.erb +2 -2
  147. data/app/views/spree/admin/customer_returns/new.html.erb +5 -5
  148. data/app/views/spree/admin/images/_form.html.erb +2 -2
  149. data/app/views/spree/admin/images/_image_row.html.erb +5 -3
  150. data/app/views/spree/admin/images/edit.html.erb +7 -7
  151. data/app/views/spree/admin/images/index.html.erb +3 -3
  152. data/app/views/spree/admin/images/new.html.erb +3 -3
  153. data/app/views/spree/admin/log_entries/index.html.erb +1 -1
  154. data/app/views/spree/admin/option_types/_form.html.erb +4 -4
  155. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +1 -1
  156. data/app/views/spree/admin/option_types/edit.html.erb +5 -5
  157. data/app/views/spree/admin/option_types/index.html.erb +4 -4
  158. data/app/views/spree/admin/option_types/new.html.erb +3 -3
  159. data/app/views/spree/admin/option_types/new.js.erb +1 -1
  160. data/app/views/spree/admin/orders/_add_line_item.html.erb +2 -2
  161. data/app/views/spree/admin/orders/_add_product.html.erb +3 -6
  162. data/app/views/spree/admin/orders/_adjustments.html.erb +18 -20
  163. data/app/views/spree/admin/orders/_carton_manifest.html.erb +1 -1
  164. data/app/views/spree/admin/orders/_form.html.erb +5 -29
  165. data/app/views/spree/admin/orders/_line_items.html.erb +22 -48
  166. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +6 -31
  167. data/app/views/spree/admin/orders/_order_details.html.erb +32 -0
  168. data/app/views/spree/admin/orders/_shipment.html.erb +10 -13
  169. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +3 -3
  170. data/app/views/spree/admin/orders/cart.html.erb +4 -14
  171. data/app/views/spree/admin/orders/confirm.html.erb +3 -3
  172. data/app/views/spree/admin/orders/confirm/_customer_details.html.erb +2 -2
  173. data/app/views/spree/admin/orders/confirm/_payments.html.erb +1 -1
  174. data/app/views/spree/admin/orders/confirm/_shipment_manifest.html.erb +1 -1
  175. data/app/views/spree/admin/orders/customer_details/_form.html.erb +24 -20
  176. data/app/views/spree/admin/orders/customer_details/edit.html.erb +13 -11
  177. data/app/views/spree/admin/orders/customer_details/show.html.erb +2 -2
  178. data/app/views/spree/admin/orders/edit.html.erb +2 -1
  179. data/app/views/spree/admin/orders/index.html.erb +22 -20
  180. data/app/views/spree/admin/payment_methods/_form.html.erb +6 -6
  181. data/app/views/spree/admin/payment_methods/edit.html.erb +3 -3
  182. data/app/views/spree/admin/payment_methods/index.html.erb +4 -4
  183. data/app/views/spree/admin/payment_methods/new.html.erb +3 -3
  184. data/app/views/spree/admin/payments/_form.html.erb +10 -8
  185. data/app/views/spree/admin/payments/_list.html.erb +2 -2
  186. data/app/views/spree/admin/payments/credit.html.erb +1 -1
  187. data/app/views/spree/admin/payments/index.html.erb +3 -3
  188. data/app/views/spree/admin/payments/new.html.erb +4 -4
  189. data/app/views/spree/admin/payments/show.html.erb +3 -3
  190. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +6 -9
  191. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +1 -1
  192. data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +1 -1
  193. data/app/views/spree/admin/prices/_form.html.erb +4 -15
  194. data/app/views/spree/admin/prices/_master_variant_table.html.erb +3 -3
  195. data/app/views/spree/admin/prices/_table.html.erb +2 -2
  196. data/app/views/spree/admin/prices/edit.html.erb +1 -1
  197. data/app/views/spree/admin/prices/index.html.erb +6 -6
  198. data/app/views/spree/admin/prices/new.html.erb +2 -2
  199. data/app/views/spree/admin/prices/new.js.erb +1 -1
  200. data/app/views/spree/admin/product_properties/index.html.erb +5 -5
  201. data/app/views/spree/admin/products/_form.html.erb +21 -27
  202. data/app/views/spree/admin/products/edit.html.erb +6 -6
  203. data/app/views/spree/admin/products/index.html.erb +15 -15
  204. data/app/views/spree/admin/products/new.html.erb +14 -14
  205. data/app/views/spree/admin/products/new.js.erb +1 -1
  206. data/app/views/spree/admin/promotion_actions/create.js.erb +3 -2
  207. data/app/views/spree/admin/promotion_categories/_form.html.erb +4 -4
  208. data/app/views/spree/admin/promotion_categories/edit.html.erb +3 -3
  209. data/app/views/spree/admin/promotion_categories/index.html.erb +2 -2
  210. data/app/views/spree/admin/promotion_categories/new.html.erb +3 -3
  211. data/app/views/spree/admin/promotion_code_batches/download.csv.ruby +6 -0
  212. data/app/views/spree/admin/promotion_code_batches/index.html.erb +65 -0
  213. data/app/views/spree/admin/promotion_code_batches/new.html.erb +23 -0
  214. data/app/views/spree/admin/promotion_codes/index.csv.ruby +1 -1
  215. data/app/views/spree/admin/promotion_codes/index.html.erb +28 -0
  216. data/app/views/spree/admin/promotion_rules/create.js.erb +1 -1
  217. data/app/views/spree/admin/promotions/_actions.html.erb +4 -4
  218. data/app/views/spree/admin/promotions/_activations_edit.html.erb +22 -0
  219. data/app/views/spree/admin/promotions/_activations_new.html.erb +66 -0
  220. data/app/views/spree/admin/promotions/_form.html.erb +51 -64
  221. data/app/views/spree/admin/promotions/_promotion_action.html.erb +4 -4
  222. data/app/views/spree/admin/promotions/_promotion_rule.html.erb +4 -4
  223. data/app/views/spree/admin/promotions/_rules.html.erb +6 -8
  224. data/app/views/spree/admin/promotions/actions/_create_quantity_adjustments.html.erb +2 -2
  225. data/app/views/spree/admin/promotions/actions/_promotion_calculators_with_custom_fields.html.erb +21 -22
  226. data/app/views/spree/admin/promotions/calculators/flat_rate/_fields.html.erb +4 -0
  227. data/app/views/spree/admin/promotions/calculators/tiered_flat_rate/_fields.html.erb +8 -6
  228. data/app/views/spree/admin/promotions/calculators/tiered_percent/_fields.html.erb +8 -6
  229. data/app/views/spree/admin/promotions/edit.html.erb +15 -12
  230. data/app/views/spree/admin/promotions/index.html.erb +9 -9
  231. data/app/views/spree/admin/promotions/new.html.erb +5 -6
  232. data/app/views/spree/admin/promotions/rules/_first_repeat_purchase_since.html.erb +3 -3
  233. data/app/views/spree/admin/promotions/rules/_item_total.html.erb +7 -10
  234. data/app/views/spree/admin/promotions/rules/_landing_page.html.erb +2 -2
  235. data/app/views/spree/admin/promotions/rules/_nth_order.html.erb +4 -4
  236. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +3 -3
  237. data/app/views/spree/admin/promotions/rules/_product.html.erb +4 -4
  238. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +4 -4
  239. data/app/views/spree/admin/promotions/rules/_user.html.erb +1 -1
  240. data/app/views/spree/admin/properties/_form.html.erb +4 -4
  241. data/app/views/spree/admin/properties/edit.html.erb +3 -3
  242. data/app/views/spree/admin/properties/index.html.erb +7 -7
  243. data/app/views/spree/admin/properties/new.html.erb +3 -3
  244. data/app/views/spree/admin/properties/new.js.erb +1 -1
  245. data/app/views/spree/admin/refund_reasons/edit.html.erb +3 -3
  246. data/app/views/spree/admin/refund_reasons/index.html.erb +1 -1
  247. data/app/views/spree/admin/refund_reasons/new.html.erb +3 -3
  248. data/app/views/spree/admin/refund_reasons/shared/_form.html.erb +3 -3
  249. data/app/views/spree/admin/refunds/edit.html.erb +2 -2
  250. data/app/views/spree/admin/refunds/new.html.erb +4 -4
  251. data/app/views/spree/admin/reimbursements/edit.html.erb +6 -6
  252. data/app/views/spree/admin/reimbursements/index.html.erb +2 -2
  253. data/app/views/spree/admin/reimbursements/show.html.erb +6 -6
  254. data/app/views/spree/admin/reports/sales_total.html.erb +1 -1
  255. data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -7
  256. data/app/views/spree/admin/return_authorizations/edit.html.erb +3 -3
  257. data/app/views/spree/admin/return_authorizations/index.html.erb +3 -3
  258. data/app/views/spree/admin/return_authorizations/new.html.erb +3 -3
  259. data/app/views/spree/admin/shared/_address_form.html.erb +12 -20
  260. data/app/views/spree/admin/shared/_calculator_fields.html.erb +10 -13
  261. data/app/views/spree/admin/shared/_configuration_menu.html.erb +2 -2
  262. data/app/views/spree/admin/shared/_head.html.erb +1 -1
  263. data/app/views/spree/admin/shared/_image.html.erb +7 -0
  264. data/app/views/spree/admin/shared/_js_locale_data.html.erb +47 -0
  265. data/app/views/spree/admin/shared/_new_resource_links.html.erb +1 -1
  266. data/app/views/spree/admin/shared/_number_with_currency.html.erb +16 -0
  267. data/app/views/spree/admin/shared/_order_submenu.html.erb +1 -1
  268. data/app/views/spree/admin/shared/_order_summary.html.erb +16 -17
  269. data/app/views/spree/admin/shared/_product_tabs.html.erb +6 -6
  270. data/app/views/spree/admin/shared/_report_criteria.html.erb +7 -7
  271. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +9 -9
  272. data/app/views/spree/admin/shared/_settings_sub_menu.html.erb +2 -2
  273. data/app/views/spree/admin/shared/_sidebar.html.erb +1 -1
  274. data/app/views/spree/admin/shared/_variant_search.html.erb +4 -4
  275. data/app/views/spree/admin/shared/named_types/_edit.html.erb +3 -3
  276. data/app/views/spree/admin/shared/named_types/_form.html.erb +8 -10
  277. data/app/views/spree/admin/shared/named_types/_index.html.erb +1 -1
  278. data/app/views/spree/admin/shared/named_types/_new.html.erb +3 -3
  279. data/app/views/spree/admin/shipping_categories/edit.html.erb +3 -3
  280. data/app/views/spree/admin/shipping_categories/index.html.erb +3 -3
  281. data/app/views/spree/admin/shipping_categories/new.html.erb +3 -3
  282. data/app/views/spree/admin/shipping_methods/_form.html.erb +15 -15
  283. data/app/views/spree/admin/shipping_methods/edit.html.erb +3 -3
  284. data/app/views/spree/admin/shipping_methods/index.html.erb +4 -4
  285. data/app/views/spree/admin/shipping_methods/new.html.erb +3 -3
  286. data/app/views/spree/admin/states/_form.html.erb +4 -4
  287. data/app/views/spree/admin/states/_new.html.erb +2 -2
  288. data/app/views/spree/admin/states/_state_list.html.erb +2 -2
  289. data/app/views/spree/admin/states/edit.html.erb +3 -3
  290. data/app/views/spree/admin/states/index.html.erb +6 -6
  291. data/app/views/spree/admin/states/new.html.erb +3 -3
  292. data/app/views/spree/admin/stock_items/_stock_management.html.erb +3 -3
  293. data/app/views/spree/admin/stock_items/index.html.erb +4 -4
  294. data/app/views/spree/admin/stock_locations/_form.html.erb +10 -10
  295. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +5 -5
  296. data/app/views/spree/admin/stock_locations/edit.html.erb +3 -3
  297. data/app/views/spree/admin/stock_locations/index.html.erb +4 -4
  298. data/app/views/spree/admin/stock_locations/new.html.erb +3 -3
  299. data/app/views/spree/admin/stock_movements/index.html.erb +2 -8
  300. data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +1 -1
  301. data/app/views/spree/admin/stock_transfers/_transfer_item_table.html.erb +1 -1
  302. data/app/views/spree/admin/stock_transfers/edit.html.erb +1 -1
  303. data/app/views/spree/admin/stock_transfers/index.html.erb +9 -9
  304. data/app/views/spree/admin/stock_transfers/receive.html.erb +1 -1
  305. data/app/views/spree/admin/stock_transfers/show.html.erb +5 -5
  306. data/app/views/spree/admin/store_credits/_form.html.erb +7 -6
  307. data/app/views/spree/admin/store_credits/_update_reason_field.html.erb +1 -1
  308. data/app/views/spree/admin/store_credits/edit_amount.html.erb +1 -1
  309. data/app/views/spree/admin/store_credits/index.html.erb +14 -11
  310. data/app/views/spree/admin/store_credits/new.html.erb +2 -2
  311. data/app/views/spree/admin/stores/_form.html.erb +51 -0
  312. data/app/views/spree/admin/stores/edit.html.erb +19 -0
  313. data/app/views/spree/admin/stores/index.html.erb +41 -0
  314. data/app/views/spree/admin/stores/new.html.erb +15 -0
  315. data/app/views/spree/admin/style_guide/topics/forms/_building_forms.html.erb +10 -8
  316. data/app/views/spree/admin/style_guide/topics/tables/_building_tables.html.erb +23 -4
  317. data/app/views/spree/admin/tax_categories/_form.html.erb +8 -8
  318. data/app/views/spree/admin/tax_categories/edit.html.erb +3 -3
  319. data/app/views/spree/admin/tax_categories/index.html.erb +4 -4
  320. data/app/views/spree/admin/tax_categories/new.html.erb +3 -3
  321. data/app/views/spree/admin/tax_rates/_form.html.erb +7 -7
  322. data/app/views/spree/admin/tax_rates/edit.html.erb +3 -3
  323. data/app/views/spree/admin/tax_rates/index.html.erb +3 -3
  324. data/app/views/spree/admin/tax_rates/new.html.erb +3 -3
  325. data/app/views/spree/admin/taxonomies/_form.html.erb +1 -1
  326. data/app/views/spree/admin/taxonomies/_list.html.erb +2 -2
  327. data/app/views/spree/admin/taxonomies/_taxon.html.erb +1 -1
  328. data/app/views/spree/admin/taxonomies/edit.erb +1 -1
  329. data/app/views/spree/admin/taxonomies/index.html.erb +2 -2
  330. data/app/views/spree/admin/taxonomies/new.html.erb +1 -1
  331. data/app/views/spree/admin/taxons/_form.html.erb +10 -10
  332. data/app/views/spree/admin/taxons/_taxon_table.html.erb +1 -1
  333. data/app/views/spree/admin/taxons/edit.html.erb +2 -2
  334. data/app/views/spree/admin/taxons/index.html.erb +2 -2
  335. data/app/views/spree/admin/users/_addresses_form.html.erb +4 -4
  336. data/app/views/spree/admin/users/_form.html.erb +8 -7
  337. data/app/views/spree/admin/users/addresses.html.erb +5 -5
  338. data/app/views/spree/admin/users/edit.html.erb +15 -15
  339. data/app/views/spree/admin/users/index.html.erb +5 -5
  340. data/app/views/spree/admin/users/items.html.erb +7 -7
  341. data/app/views/spree/admin/users/new.html.erb +3 -3
  342. data/app/views/spree/admin/users/orders.html.erb +7 -7
  343. data/app/views/spree/admin/variants/_form.html.erb +14 -14
  344. data/app/views/spree/admin/variants/_table.html.erb +2 -2
  345. data/app/views/spree/admin/variants/_table_filter.html.erb +3 -3
  346. data/app/views/spree/admin/variants/edit.html.erb +4 -4
  347. data/app/views/spree/admin/variants/index.html.erb +2 -2
  348. data/app/views/spree/admin/variants/new.html.erb +4 -4
  349. data/app/views/spree/admin/variants/new.js.erb +1 -1
  350. data/app/views/spree/admin/zones/_country_members.html.erb +1 -1
  351. data/app/views/spree/admin/zones/_form.html.erb +9 -9
  352. data/app/views/spree/admin/zones/_state_members.html.erb +1 -1
  353. data/app/views/spree/admin/zones/edit.html.erb +3 -3
  354. data/app/views/spree/admin/zones/index.html.erb +6 -6
  355. data/app/views/spree/admin/zones/new.html.erb +3 -3
  356. data/app/views/spree/layouts/admin.html.erb +3 -3
  357. data/app/views/spree/layouts/admin_style_guide.html.erb +1 -1
  358. data/config/initializers/assets.rb +1 -7
  359. data/config/routes.rb +6 -2
  360. data/lib/spree/backend.rb +0 -1
  361. data/lib/spree/backend/engine.rb +0 -5
  362. data/solidus_backend.gemspec +0 -1
  363. data/spec/controllers/spree/admin/payments_controller_spec.rb +21 -7
  364. data/spec/controllers/spree/admin/promotions_controller_spec.rb +30 -36
  365. data/spec/controllers/spree/admin/store_credits_controller_spec.rb +1 -0
  366. data/spec/controllers/spree/admin/users_controller_spec.rb +9 -1
  367. data/spec/features/admin/configuration/payment_methods_spec.rb +1 -1
  368. data/spec/features/admin/configuration/shipping_methods_spec.rb +21 -13
  369. data/spec/features/admin/configuration/stock_locations_spec.rb +3 -2
  370. data/spec/features/admin/configuration/{general_settings_spec.rb → store_spec.rb} +8 -9
  371. data/spec/features/admin/javascript_format_money_spec.rb +20 -0
  372. data/spec/features/admin/orders/customer_details_spec.rb +16 -12
  373. data/spec/features/admin/orders/line_items_spec.rb +2 -2
  374. data/spec/features/admin/orders/listing_spec.rb +25 -10
  375. data/spec/features/admin/orders/new_order_spec.rb +18 -31
  376. data/spec/features/admin/orders/order_details_spec.rb +22 -27
  377. data/spec/features/admin/orders/payments_spec.rb +5 -12
  378. data/spec/features/admin/orders/shipments_spec.rb +36 -2
  379. data/spec/features/admin/products/edit/images_spec.rb +1 -1
  380. data/spec/features/admin/products/edit/products_spec.rb +3 -3
  381. data/spec/features/admin/products/pricing_spec.rb +1 -1
  382. data/spec/features/admin/promotion_adjustments_spec.rb +42 -20
  383. data/spec/features/admin/stock_transfer_spec.rb +4 -4
  384. data/spec/features/admin/users_spec.rb +14 -0
  385. data/spec/javascripts/fixtures/_boot.html.erb +8 -0
  386. data/spec/javascripts/fixtures/number_with_currency/with_currency_select.html.erb +3 -0
  387. data/spec/javascripts/fixtures/number_with_currency/without_select.html.erb +3 -0
  388. data/spec/javascripts/format_money_spec.js +48 -0
  389. data/spec/javascripts/spec_helper.js +11 -0
  390. data/spec/javascripts/support/show_errors.js +8 -0
  391. data/spec/javascripts/support/with_translations.js +11 -0
  392. data/spec/javascripts/translation_spec.js +50 -0
  393. data/spec/javascripts/views/number_with_currency_spec.js +72 -0
  394. data/spec/spec_helper.rb +1 -0
  395. data/spec/support/feature/order_feature_helper.rb +8 -0
  396. data/spec/teaspoon_env.rb +17 -0
  397. data/vendor/assets/images/solidus_admin/select2-spinner.gif +0 -0
  398. data/vendor/assets/images/solidus_admin/select2.png +0 -0
  399. data/vendor/assets/images/solidus_admin/select2x2.png +0 -0
  400. data/vendor/assets/javascripts/solidus_admin/accounting.js +4 -0
  401. data/vendor/assets/javascripts/solidus_admin/backbone-nested-models.js +193 -0
  402. data/vendor/assets/javascripts/solidus_admin/bootstrap.js +1775 -1800
  403. data/vendor/assets/javascripts/solidus_admin/select2.js +3729 -0
  404. data/vendor/assets/javascripts/solidus_admin/select2_locales/index.js +1 -0
  405. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ar.js +19 -0
  406. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_az.js +20 -0
  407. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_bg.js +20 -0
  408. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ca.js +19 -0
  409. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_cs.js +51 -0
  410. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_da.js +19 -0
  411. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_de.js +18 -0
  412. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_el.js +19 -0
  413. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_es.js +19 -0
  414. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_et.js +19 -0
  415. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_eu.js +45 -0
  416. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_fa.js +21 -0
  417. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_fi.js +30 -0
  418. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_fr.js +18 -0
  419. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_gl.js +45 -0
  420. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_he.js +19 -0
  421. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_hr.js +24 -0
  422. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_hu.js +17 -0
  423. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_id.js +21 -0
  424. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_is.js +17 -0
  425. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_it.js +17 -0
  426. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ja.js +17 -0
  427. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ka.js +19 -0
  428. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ko.js +19 -0
  429. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_lt.js +26 -0
  430. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_lv.js +19 -0
  431. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_mk.js +19 -0
  432. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ms.js +21 -0
  433. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_nb.js +22 -0
  434. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_nl.js +17 -0
  435. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_pl.js +54 -0
  436. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_pt-BR.js +18 -0
  437. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_pt-PT.js +17 -0
  438. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ro.js +17 -0
  439. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_rs.js +19 -0
  440. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ru.js +23 -0
  441. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_sk.js +50 -0
  442. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_sv.js +19 -0
  443. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_th.js +19 -0
  444. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_tr.js +20 -0
  445. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ug-CN.js +16 -0
  446. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_uk.js +25 -0
  447. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_vi.js +20 -0
  448. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_zh-CN.js +16 -0
  449. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_zh-TW.js +16 -0
  450. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_alert.scss +5 -15
  451. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_badge.scss +77 -0
  452. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_breadcrumb.scss +25 -10
  453. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_button-group.scss +38 -60
  454. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_buttons.scss +27 -30
  455. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_card.scss +66 -82
  456. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_carousel.scss +99 -173
  457. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_close.scss +6 -3
  458. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_code.scss +13 -7
  459. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_custom-forms.scss +151 -114
  460. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_custom.scss +4 -0
  461. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_dropdown.scss +28 -60
  462. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_forms.scss +154 -218
  463. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_grid.scss +22 -46
  464. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_images.scss +7 -17
  465. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_input-group.scss +43 -54
  466. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_list-group.scss +80 -79
  467. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_media.scss +6 -84
  468. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_mixins.scss +9 -7
  469. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_modal.scss +38 -42
  470. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_nav.scss +41 -84
  471. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_navbar.scss +171 -133
  472. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_normalize.scss +230 -197
  473. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_pagination.scss +16 -22
  474. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_popover.scss +87 -56
  475. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_print.scss +96 -65
  476. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_progress.scss +17 -141
  477. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_reboot.scss +76 -34
  478. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_responsive-embed.scss +18 -5
  479. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tables.scss +26 -66
  480. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tooltip.scss +23 -18
  481. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_transitions.scss +34 -0
  482. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_type.scss +16 -30
  483. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_utilities.scss +13 -95
  484. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_variables.scss +542 -247
  485. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-grid.scss +20 -39
  486. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-reboot.scss +2 -2
  487. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap.scss +6 -8
  488. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_background-variant.scss +1 -2
  489. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/{_label.scss → _badge.scss} +2 -2
  490. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_breakpoints.scss +25 -16
  491. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_buttons.scss +39 -53
  492. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_cards.scss +11 -2
  493. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_clearfix.scss +1 -1
  494. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_float.scss +9 -0
  495. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_forms.scss +11 -21
  496. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_gradients.scss +5 -11
  497. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid-framework.scss +39 -18
  498. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid.scss +52 -27
  499. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_hover.scss +10 -9
  500. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_image.scss +6 -4
  501. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_list-group.scss +3 -5
  502. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_pagination.scss +2 -3
  503. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_reset-text.scss +3 -4
  504. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_screen-reader.scss +2 -2
  505. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-emphasis.scss +1 -1
  506. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-hide.scss +1 -1
  507. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_transforms.scss +14 -0
  508. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_visibility.scss +5 -0
  509. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_align.scss +6 -0
  510. data/vendor/assets/stylesheets/solidus_admin/bootstrap/{_utilities-background.scss → utilities/_background.scss} +3 -8
  511. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_borders.scss +37 -0
  512. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_clearfix.scss +3 -0
  513. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_display.scss +18 -0
  514. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_flex.scss +48 -0
  515. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_float.scss +9 -0
  516. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_position.scss +23 -0
  517. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_screenreaders.scss +11 -0
  518. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_sizing.scss +10 -0
  519. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_spacing.scss +43 -0
  520. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_text.scss +61 -0
  521. data/vendor/assets/stylesheets/solidus_admin/bootstrap/{_utilities-responsive.scss → utilities/_visibility.scss} +7 -1
  522. data/vendor/assets/stylesheets/solidus_admin/select2.scss +692 -0
  523. metadata +149 -48
  524. data/app/assets/javascripts/spree/backend/handlebars_extensions.coffee +0 -19
  525. data/app/assets/javascripts/spree/backend/line_items.js.coffee +0 -55
  526. data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +0 -62
  527. data/app/assets/javascripts/spree/backend/returns/expedited_exchanges_warning.coffee +0 -4
  528. data/app/assets/javascripts/spree/backend/stock_movement.js.coffee +0 -21
  529. data/app/assets/javascripts/spree/backend/variant_management.js.coffee +0 -10
  530. data/app/assets/javascripts/spree/backend/zone.js.coffee +0 -43
  531. data/app/views/spree/admin/general_settings/edit.html.erb +0 -80
  532. data/app/views/spree/admin/shared/_translations.html.erb +0 -29
  533. data/app/views/spree/admin/stock_movements/_form.html.erb +0 -12
  534. data/app/views/spree/admin/stock_movements/new.html.erb +0 -15
  535. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_animation.scss +0 -27
  536. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_labels.scss +0 -77
  537. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_pager.scss +0 -57
  538. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_utilities-spacing.scss +0 -39
  539. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-flex.scss +0 -8
  540. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_center-block.scss +0 -7
  541. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_progress.scss +0 -18
  542. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_pulls.scss +0 -6
  543. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  544. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_tab-focus.scss +0 -9
@@ -10,8 +10,7 @@
10
10
  display: inline-block;
11
11
  width: 0;
12
12
  height: 0;
13
- margin-right: .25rem;
14
- margin-left: .25rem;
13
+ margin-left: $caret-width;
15
14
  vertical-align: middle;
16
15
  content: "";
17
16
  border-top: $caret-width solid;
@@ -42,10 +41,10 @@
42
41
  z-index: $zindex-dropdown;
43
42
  display: none; // none by default, but block on "open" of the menu
44
43
  float: left;
45
- min-width: 160px;
46
- padding: 5px 0;
47
- margin: 2px 0 0; // override default ul
48
- font-size: $font-size-base;
44
+ min-width: $dropdown-min-width;
45
+ padding: $dropdown-padding-y 0;
46
+ margin: $dropdown-margin-top 0 0; // override default ul
47
+ font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues
49
48
  color: $body-color;
50
49
  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
51
50
  list-style: none;
@@ -53,7 +52,7 @@
53
52
  background-clip: padding-box;
54
53
  border: $dropdown-border-width solid $dropdown-border-color;
55
54
  @include border-radius($border-radius);
56
- @include box-shadow(0 6px 12px rgba(0,0,0,.175));
55
+ @include box-shadow($dropdown-box-shadow);
57
56
  }
58
57
 
59
58
  // Dividers (basically an `<hr>`) within the dropdown
@@ -67,10 +66,9 @@
67
66
  .dropdown-item {
68
67
  display: block;
69
68
  width: 100%; // For `<button>`s
70
- padding: 3px 20px;
69
+ padding: 3px $dropdown-item-padding-x;
71
70
  clear: both;
72
- font-weight: normal;
73
- line-height: $line-height;
71
+ font-weight: $font-weight-normal;
74
72
  color: $dropdown-link-color;
75
73
  text-align: inherit; // For `<button>`s
76
74
  white-space: nowrap; // prevent links from randomly breaking onto new lines
@@ -83,37 +81,27 @@
83
81
  background-color: $dropdown-link-hover-bg;
84
82
  }
85
83
 
86
- // Active state
87
- &.active {
88
- @include plain-hover-focus {
89
- color: $dropdown-link-active-color;
90
- text-decoration: none;
91
- background-color: $dropdown-link-active-bg;
92
- outline: 0;
93
- }
84
+ &.active,
85
+ &:active {
86
+ color: $dropdown-link-active-color;
87
+ text-decoration: none;
88
+ background-color: $dropdown-link-active-bg;
94
89
  }
95
90
 
96
- // Disabled state
97
- //
98
- // Gray out text and ensure the hover/focus state remains gray
99
- &.disabled {
100
- @include plain-hover-focus {
101
- color: $dropdown-link-disabled-color;
102
- }
103
-
104
- // Nuke hover/focus effects
105
- @include hover-focus {
106
- text-decoration: none;
107
- cursor: $cursor-disabled;
108
- background-color: transparent;
109
- background-image: none; // Remove CSS gradient
110
- @include reset-filter();
91
+ &.disabled,
92
+ &:disabled {
93
+ color: $dropdown-link-disabled-color;
94
+ cursor: $cursor-disabled;
95
+ background-color: transparent;
96
+ // Remove CSS gradients if they're enabled
97
+ @if $enable-gradients {
98
+ background-image: none;
111
99
  }
112
100
  }
113
101
  }
114
102
 
115
103
  // Open state for the dropdown
116
- .open {
104
+ .show {
117
105
  // Show the menu
118
106
  > .dropdown-menu {
119
107
  display: block;
@@ -133,12 +121,7 @@
133
121
  right: 0;
134
122
  left: auto; // Reset the default from `.dropdown-menu`
135
123
  }
136
- // With v3, we enabled auto-flipping if you have a dropdown within a right
137
- // aligned nav component. To enable the undoing of that, we provide an override
138
- // to restore the default dropdown menu alignment.
139
- //
140
- // This is only for left-aligning a dropdown menu within a `.navbar-right` or
141
- // `.pull-right` nav component.
124
+
142
125
  .dropdown-menu-left {
143
126
  right: auto;
144
127
  left: 0;
@@ -147,9 +130,9 @@
147
130
  // Dropdown section headers
148
131
  .dropdown-header {
149
132
  display: block;
150
- padding: 3px 20px;
133
+ padding: $dropdown-padding-y $dropdown-item-padding-x;
134
+ margin-bottom: 0; // for use with heading elements
151
135
  font-size: $font-size-sm;
152
- line-height: $line-height;
153
136
  color: $dropdown-header-color;
154
137
  white-space: nowrap; // as with > li > a
155
138
  }
@@ -161,33 +144,18 @@
161
144
  right: 0;
162
145
  bottom: 0;
163
146
  left: 0;
164
- z-index: ($zindex-dropdown - 10);
165
- }
166
-
167
- // Right aligned dropdowns
168
- .pull-right > .dropdown-menu {
169
- right: 0;
170
- left: auto;
147
+ z-index: $zindex-dropdown-backdrop;
171
148
  }
172
149
 
173
150
  // Allow for dropdowns to go bottom up (aka, dropup-menu)
174
151
  //
175
152
  // Just add .dropup after the standard .dropdown class and you're set.
176
- // TODO: abstract this so that the navbar fixed styles are not placed here?
177
-
178
- .dropup,
179
- .navbar-fixed-bottom .dropdown {
180
- // Reverse the caret
181
- .caret {
182
- content: "";
183
- border-top: 0;
184
- border-bottom: $caret-width solid;
185
- }
186
153
 
154
+ .dropup {
187
155
  // Different positioning for bottom up menu
188
156
  .dropdown-menu {
189
157
  top: auto;
190
158
  bottom: 100%;
191
- margin-bottom: 2px;
159
+ margin-bottom: $dropdown-margin-top;
192
160
  }
193
161
  }
@@ -1,3 +1,5 @@
1
+ // scss-lint:disable QualifyingElement
2
+
1
3
  //
2
4
  // Textual form controls
3
5
  //
@@ -9,24 +11,25 @@
9
11
  // height: $input-height;
10
12
  padding: $input-padding-y $input-padding-x;
11
13
  font-size: $font-size-base;
12
- line-height: $line-height;
14
+ line-height: $input-line-height;
13
15
  color: $input-color;
14
16
  background-color: $input-bg;
15
17
  // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214.
16
18
  background-image: none;
19
+ background-clip: padding-box;
17
20
  border: $input-btn-border-width solid $input-border-color;
21
+
18
22
  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
19
- @include border-radius($input-border-radius);
20
- @include box-shadow($input-box-shadow);
21
- @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
23
+ @if $enable-rounded {
24
+ // Manually use the if/else instead of the mixin to account for iOS override
25
+ border-radius: $input-border-radius;
26
+ } @else {
27
+ // Otherwise undo the iOS default
28
+ border-radius: 0;
29
+ }
22
30
 
23
- // Make inputs at least the height of their button counterpart (base line-height + padding + border).
24
- // Only apply the height to textual inputs and some selects.
25
- // &:not(textarea),
26
- // &:not(select[size]),
27
- // &:not(select[multiple]) {
28
- // height: $input-height;
29
- // }
31
+ @include box-shadow($input-box-shadow);
32
+ @include transition($input-transition);
30
33
 
31
34
  // Unstyle the caret on `<select>`s in IE10+.
32
35
  &::-ms-expand {
@@ -61,6 +64,22 @@
61
64
  }
62
65
  }
63
66
 
67
+ select.form-control {
68
+ &:not([size]):not([multiple]) {
69
+ $select-border-width: ($border-width * 2);
70
+ height: calc(#{$input-height} + #{$select-border-width});
71
+ }
72
+
73
+ &:focus::-ms-value {
74
+ // Suppress the nested default white text on blue background highlight given to
75
+ // the selected option text when the (still closed) <select> receives focus
76
+ // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to
77
+ // match the appearance of the native widget.
78
+ // See https://github.com/twbs/bootstrap/issues/19398.
79
+ color: $input-color;
80
+ background-color: $input-bg;
81
+ }
82
+ }
64
83
 
65
84
  // Make file inputs better match text inputs by forcing them to new lines.
66
85
  .form-control-file,
@@ -75,42 +94,36 @@
75
94
 
76
95
  // For use with horizontal and inline forms, when you need the label text to
77
96
  // align with the form controls.
78
- .form-control-label {
79
- padding: $input-padding-y $input-padding-x;
97
+ .col-form-label {
98
+ padding-top: calc(#{$input-padding-y} - #{$input-btn-border-width} * 2);
99
+ padding-bottom: calc(#{$input-padding-y} - #{$input-btn-border-width} * 2);
80
100
  margin-bottom: 0; // Override the `<label>` default
81
101
  }
82
102
 
103
+ .col-form-label-lg {
104
+ padding-top: calc(#{$input-padding-y-lg} - #{$input-btn-border-width} * 2);
105
+ padding-bottom: calc(#{$input-padding-y-lg} - #{$input-btn-border-width} * 2);
106
+ font-size: $font-size-lg;
107
+ }
108
+
109
+ .col-form-label-sm {
110
+ padding-top: calc(#{$input-padding-y-sm} - #{$input-btn-border-width} * 2);
111
+ padding-bottom: calc(#{$input-padding-y-sm} - #{$input-btn-border-width} * 2);
112
+ font-size: $font-size-sm;
113
+ }
83
114
 
84
- // Todo: clear this up
85
115
 
86
- // Special styles for iOS temporal inputs
87
116
  //
88
- // In Mobile Safari, setting `display: block` on temporal inputs causes the
89
- // text within the input to become vertically misaligned. As a workaround, we
90
- // set a pixel line-height that matches the given height of the input, but only
91
- // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
117
+ // Legends
92
118
  //
93
- // Note that as of 8.3, iOS doesn't support `datetime` or `week`.
94
-
95
- @media screen and (-webkit-min-device-pixel-ratio: 0) {
96
- input[type="date"],
97
- input[type="time"],
98
- input[type="datetime-local"],
99
- input[type="month"] {
100
- &.form-control {
101
- line-height: $input-height;
102
- }
103
119
 
104
- &.input-sm,
105
- .input-group-sm &.form-control {
106
- line-height: $input-height-sm;
107
- }
108
-
109
- &.input-lg,
110
- .input-group-lg &.form-control {
111
- line-height: $input-height-lg;
112
- }
113
- }
120
+ // For use with horizontal and inline forms, when you need the legend text to
121
+ // be the same size as regular labels, and to align with the form controls.
122
+ .col-form-legend {
123
+ padding-top: $input-padding-y;
124
+ padding-bottom: $input-padding-y;
125
+ margin-bottom: 0;
126
+ font-size: $font-size-base;
114
127
  }
115
128
 
116
129
 
@@ -120,12 +133,12 @@
120
133
  // horizontal form layout.
121
134
 
122
135
  .form-control-static {
123
- min-height: $input-height;
124
- // Size it appropriately next to real form controls
125
136
  padding-top: $input-padding-y;
126
137
  padding-bottom: $input-padding-y;
127
- // Remove default margin from `p`
128
- margin-bottom: 0;
138
+ margin-bottom: 0; // match inputs if this class comes on inputs with default margins
139
+ line-height: $input-line-height;
140
+ border: solid transparent;
141
+ border-width: $input-btn-border-width 0;
129
142
 
130
143
  &.form-control-sm,
131
144
  &.form-control-lg {
@@ -144,21 +157,29 @@
144
157
  // issue documented in https://github.com/twbs/bootstrap/issues/15074.
145
158
 
146
159
  .form-control-sm {
147
- // height: $input-height-sm;
148
160
  padding: $input-padding-y-sm $input-padding-x-sm;
149
161
  font-size: $font-size-sm;
150
- line-height: $line-height-sm;
151
162
  @include border-radius($input-border-radius-sm);
152
163
  }
153
164
 
165
+ select.form-control-sm {
166
+ &:not([size]):not([multiple]) {
167
+ height: $input-height-sm;
168
+ }
169
+ }
170
+
154
171
  .form-control-lg {
155
- // height: $input-height-lg;
156
172
  padding: $input-padding-y-lg $input-padding-x-lg;
157
173
  font-size: $font-size-lg;
158
- line-height: $line-height-lg;
159
174
  @include border-radius($input-border-radius-lg);
160
175
  }
161
176
 
177
+ select.form-control-lg {
178
+ &:not([size]):not([multiple]) {
179
+ height: $input-height-lg;
180
+ }
181
+ }
182
+
162
183
 
163
184
  // Form groups
164
185
  //
@@ -169,88 +190,55 @@
169
190
  margin-bottom: $form-group-margin-bottom;
170
191
  }
171
192
 
193
+ .form-text {
194
+ display: block;
195
+ margin-top: $form-text-margin-top;
196
+ }
197
+
172
198
 
173
199
  // Checkboxes and radios
174
200
  //
175
201
  // Indent the labels to position radios/checkboxes as hanging controls.
176
202
 
177
- .radio,
178
- .checkbox {
203
+ .form-check {
179
204
  position: relative;
180
205
  display: block;
181
- // margin-top: ($spacer * .75);
182
- margin-bottom: ($spacer * .75);
183
-
184
- label {
185
- padding-left: 1.25rem;
186
- margin-bottom: 0;
187
- font-weight: normal;
188
- cursor: pointer;
206
+ margin-bottom: $form-check-margin-bottom;
189
207
 
190
- // When there's no labels, don't position the input.
191
- input:only-child {
192
- position: static;
208
+ &.disabled {
209
+ .form-check-label {
210
+ color: $text-muted;
211
+ cursor: $cursor-disabled;
193
212
  }
194
213
  }
195
214
  }
196
- .radio input[type="radio"],
197
- .radio-inline input[type="radio"],
198
- .checkbox input[type="checkbox"],
199
- .checkbox-inline input[type="checkbox"] {
200
- position: absolute;
201
- margin-top: .25rem;
202
- // margin-top: 4px \9;
203
- margin-left: -1.25rem;
215
+
216
+ .form-check-label {
217
+ padding-left: $form-check-input-gutter;
218
+ margin-bottom: 0; // Override default `<label>` bottom margin
219
+ cursor: pointer;
204
220
  }
205
221
 
206
- .radio + .radio,
207
- .checkbox + .checkbox {
208
- // Move up sibling radios or checkboxes for tighter spacing
209
- margin-top: -.25rem;
222
+ .form-check-input {
223
+ position: absolute;
224
+ margin-top: $form-check-input-margin-y;
225
+ margin-left: -$form-check-input-gutter;
226
+
227
+ &:only-child {
228
+ position: static;
229
+ }
210
230
  }
211
231
 
212
232
  // Radios and checkboxes on same line
213
- .radio-inline,
214
- .checkbox-inline {
215
- position: relative;
233
+ .form-check-inline {
216
234
  display: inline-block;
217
- padding-left: 1.25rem;
218
- margin-bottom: 0;
219
- font-weight: normal;
220
- vertical-align: middle;
221
- cursor: pointer;
222
- }
223
- .radio-inline + .radio-inline,
224
- .checkbox-inline + .checkbox-inline {
225
- margin-top: 0;
226
- margin-left: .75rem;
227
- }
228
235
 
229
- // Apply same disabled cursor tweak as for inputs
230
- // Some special care is needed because <label>s don't inherit their parent's `cursor`.
231
- //
232
- // Note: Neither radios nor checkboxes can be readonly.
233
- input[type="radio"],
234
- input[type="checkbox"] {
235
- &:disabled,
236
- &.disabled {
237
- cursor: $cursor-disabled;
238
- }
239
- }
240
- // These classes are used directly on <label>s
241
- .radio-inline,
242
- .checkbox-inline {
243
- &.disabled {
244
- cursor: $cursor-disabled;
236
+ .form-check-label {
237
+ vertical-align: middle;
245
238
  }
246
- }
247
- // These classes are used on elements with <label> descendants
248
- .radio,
249
- .checkbox {
250
- &.disabled {
251
- label {
252
- cursor: $cursor-disabled;
253
- }
239
+
240
+ + .form-check-inline {
241
+ margin-left: $form-check-inline-margin-x;
254
242
  }
255
243
  }
256
244
 
@@ -259,13 +247,17 @@ input[type="checkbox"] {
259
247
  //
260
248
  // Apply contextual and semantic states to individual form controls.
261
249
 
250
+ .form-control-feedback {
251
+ margin-top: $form-feedback-margin-top;
252
+ }
253
+
262
254
  .form-control-success,
263
255
  .form-control-warning,
264
256
  .form-control-danger {
265
257
  padding-right: ($input-padding-x * 3);
266
258
  background-repeat: no-repeat;
267
- background-position: center right ($input-height * .25);
268
- background-size: ($input-height * .65) ($input-height * .65);
259
+ background-position: center right ($input-height / 4);
260
+ background-size: ($input-height / 2) ($input-height / 2);
269
261
  }
270
262
 
271
263
  // Form validation states
@@ -273,7 +265,7 @@ input[type="checkbox"] {
273
265
  @include form-control-validation($brand-success);
274
266
 
275
267
  .form-control-success {
276
- background-image: url($form-icon-success);
268
+ background-image: $form-icon-success;
277
269
  }
278
270
  }
279
271
 
@@ -281,7 +273,7 @@ input[type="checkbox"] {
281
273
  @include form-control-validation($brand-warning);
282
274
 
283
275
  .form-control-warning {
284
- background-image: url($form-icon-warning);
276
+ background-image: $form-icon-warning;
285
277
  }
286
278
  }
287
279
 
@@ -289,89 +281,11 @@ input[type="checkbox"] {
289
281
  @include form-control-validation($brand-danger);
290
282
 
291
283
  .form-control-danger {
292
- background-image: url($form-icon-danger);
284
+ background-image: $form-icon-danger;
293
285
  }
294
286
  }
295
287
 
296
288
 
297
-
298
-
299
- // .form-control-success {
300
- // background-image: url("#{$form-icon-success}");
301
- // border-color: $brand-success;
302
- // }
303
- //
304
- // .form-control-warning {
305
- // background-image: url("#{$form-icon-warning}");
306
- // border-color: $brand-warning;
307
- // }
308
- //
309
- // .form-control-error {
310
- // background-image: url("#{$form-icon-danger}");
311
- // border-color: $brand-danger;
312
- // }
313
-
314
-
315
- // .has-feedback {
316
- // // Enable absolute positioning
317
- // position: relative;
318
- //
319
- // // Ensure icons don't overlap text
320
- // .form-control {
321
- // padding-right: ($input-height * 1.25);
322
- // }
323
- // }
324
- // // Feedback icon
325
- // .form-control-feedback {
326
- // position: absolute;
327
- // top: 0;
328
- // right: 0;
329
- // z-index: 2; // Ensure icon is above input groups
330
- // display: block;
331
- // width: $input-height;
332
- // height: $input-height;
333
- // line-height: $input-height;
334
- // text-align: center;
335
- // pointer-events: none;
336
- // }
337
- // .input-lg + .form-control-feedback,
338
- // .input-group-lg + .form-control-feedback {
339
- // width: $input-height-lg;
340
- // height: $input-height-lg;
341
- // line-height: $input-height-lg;
342
- // }
343
- // .input-sm + .form-control-feedback,
344
- // .input-group-sm + .form-control-feedback {
345
- // width: $input-height-sm;
346
- // height: $input-height-sm;
347
- // line-height: $input-height-sm;
348
- // }
349
- //
350
- // // Form validation states
351
- // .has-success {
352
- // @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);
353
- // }
354
- // .has-warning {
355
- // @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
356
- // }
357
- // .has-danger {
358
- // @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
359
- // }
360
- //
361
- // // Reposition feedback icon if input has visible label above
362
- // .has-feedback label {
363
- //
364
- // ~ .form-control-feedback {
365
- // // TODO: redo this since we nuked the `$line-height-computed`
366
- // top: 0; // Height of the `label` and its margin
367
- // }
368
- //
369
- // &.sr-only ~ .form-control-feedback {
370
- // top: 0;
371
- // }
372
- // }
373
-
374
-
375
289
  // Inline forms
376
290
  //
377
291
  // Make forms appear inline(-block) by adding the `.form-inline` class. Inline
@@ -382,14 +296,33 @@ input[type="checkbox"] {
382
296
  // default HTML form controls and our custom form controls (e.g., input groups).
383
297
 
384
298
  .form-inline {
299
+ display: flex;
300
+ flex-flow: row wrap;
301
+ align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)
302
+
303
+ // Because we use flex, the initial sizing of checkboxes is collapsed and
304
+ // doesn't occupy the full-width (which is what we want for xs grid tier),
305
+ // so we force that here.
306
+ .form-check {
307
+ width: 100%;
308
+ }
385
309
 
386
310
  // Kick in the inline
387
311
  @include media-breakpoint-up(sm) {
312
+ label {
313
+ display: flex;
314
+ align-items: center;
315
+ justify-content: center;
316
+ margin-bottom: 0;
317
+ }
318
+
388
319
  // Inline-block all the things for "inline"
389
320
  .form-group {
390
- display: inline-block;
321
+ display: flex;
322
+ flex: 0 0 auto;
323
+ flex-flow: row wrap;
324
+ align-items: center;
391
325
  margin-bottom: 0;
392
- vertical-align: middle;
393
326
  }
394
327
 
395
328
  // Allow folks to *not* use `.form-group`
@@ -405,19 +338,7 @@ input[type="checkbox"] {
405
338
  }
406
339
 
407
340
  .input-group {
408
- display: inline-table;
409
- vertical-align: middle;
410
-
411
- .input-group-addon,
412
- .input-group-btn,
413
- .form-control {
414
- width: auto;
415
- }
416
- }
417
-
418
- // Input groups need that 100% width though
419
- .input-group > .form-control {
420
- width: 100%;
341
+ width: auto;
421
342
  }
422
343
 
423
344
  .form-control-label {
@@ -427,23 +348,38 @@ input[type="checkbox"] {
427
348
 
428
349
  // Remove default margin on radios/checkboxes that were used for stacking, and
429
350
  // then undo the floating of radios and checkboxes to match.
430
- .radio,
431
- .checkbox {
432
- display: inline-block;
351
+ .form-check {
352
+ display: flex;
353
+ align-items: center;
354
+ justify-content: center;
355
+ width: auto;
433
356
  margin-top: 0;
434
357
  margin-bottom: 0;
435
- vertical-align: middle;
436
-
437
- label {
438
- padding-left: 0;
439
- }
440
358
  }
441
- .radio input[type="radio"],
442
- .checkbox input[type="checkbox"] {
359
+ .form-check-label {
360
+ padding-left: 0;
361
+ }
362
+ .form-check-input {
443
363
  position: relative;
364
+ margin-top: 0;
365
+ margin-right: $form-check-input-margin-x;
444
366
  margin-left: 0;
445
367
  }
446
368
 
369
+ // Custom form controls
370
+ .custom-control {
371
+ display: flex;
372
+ align-items: center;
373
+ justify-content: center;
374
+ padding-left: 0;
375
+ }
376
+ .custom-control-indicator {
377
+ position: static;
378
+ display: inline-block;
379
+ margin-right: $form-check-input-margin-x; // Flexbox alignment means we lose our HTML space here, so we compensate.
380
+ vertical-align: text-bottom;
381
+ }
382
+
447
383
  // Re-override the feedback icon.
448
384
  .has-feedback .form-control-feedback {
449
385
  top: 0;