solidus_admin 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +60 -6
  3. data/Rakefile +1 -0
  4. data/app/assets/builds/solidus_admin/tailwind.css +197 -162
  5. data/app/assets/stylesheets/solidus_admin/dark.css +1 -0
  6. data/app/assets/stylesheets/solidus_admin/dimmed.css +1 -0
  7. data/app/components/solidus_admin/adjustment_reasons/edit/component.html.erb +27 -0
  8. data/app/components/solidus_admin/adjustment_reasons/edit/component.rb +12 -0
  9. data/app/components/solidus_admin/adjustment_reasons/edit/component.yml +8 -0
  10. data/app/components/solidus_admin/adjustment_reasons/index/component.rb +19 -2
  11. data/app/components/solidus_admin/adjustment_reasons/new/component.html.erb +28 -0
  12. data/app/components/solidus_admin/adjustment_reasons/new/component.rb +12 -0
  13. data/app/components/solidus_admin/adjustment_reasons/new/component.yml +8 -0
  14. data/app/components/solidus_admin/base_component.rb +0 -25
  15. data/app/components/solidus_admin/option_types/index/component.rb +1 -1
  16. data/app/components/solidus_admin/orders/index/component.rb +8 -8
  17. data/app/components/solidus_admin/orders/index/component.yml +1 -0
  18. data/app/components/solidus_admin/orders/show/address/component.html.erb +56 -54
  19. data/app/components/solidus_admin/orders/show/adjustments/index/adjustable/component.rb +27 -0
  20. data/app/components/solidus_admin/orders/show/adjustments/index/adjustable/spree_line_item/component.rb +14 -0
  21. data/app/components/solidus_admin/orders/show/adjustments/index/adjustable/spree_order/component.rb +11 -0
  22. data/app/components/solidus_admin/orders/show/adjustments/index/adjustable/spree_shipment/component.rb +15 -0
  23. data/app/components/solidus_admin/orders/show/adjustments/index/component.rb +147 -0
  24. data/app/components/solidus_admin/orders/show/adjustments/index/component.yml +21 -0
  25. data/app/components/solidus_admin/orders/show/adjustments/index/source/component.rb +26 -0
  26. data/app/components/solidus_admin/orders/show/adjustments/index/source/spree_tax_rate/component.rb +17 -0
  27. data/app/components/solidus_admin/orders/show/adjustments/index/source/spree_unit_cancel/component.rb +7 -0
  28. data/app/components/solidus_admin/orders/show/component.html.erb +7 -3
  29. data/app/components/solidus_admin/orders/show/component.rb +8 -0
  30. data/app/components/solidus_admin/orders/show/email/component.html.erb +18 -13
  31. data/app/components/solidus_admin/orders/show/email/component.rb +0 -4
  32. data/app/components/solidus_admin/orders/show/summary/component.html.erb +1 -1
  33. data/app/components/solidus_admin/payment_methods/index/component.rb +1 -1
  34. data/app/components/solidus_admin/products/index/component.rb +8 -5
  35. data/app/components/solidus_admin/products/show/component.html.erb +14 -3
  36. data/app/components/solidus_admin/products/status/component.rb +4 -1
  37. data/app/components/solidus_admin/products/status/component.yml +1 -0
  38. data/app/components/solidus_admin/properties/index/component.rb +1 -1
  39. data/app/components/solidus_admin/refund_reasons/edit/component.html.erb +27 -0
  40. data/app/components/solidus_admin/refund_reasons/edit/component.rb +12 -0
  41. data/app/components/solidus_admin/refund_reasons/edit/component.yml +8 -0
  42. data/app/components/solidus_admin/refund_reasons/index/component.rb +11 -4
  43. data/app/components/solidus_admin/refund_reasons/new/component.html.erb +27 -0
  44. data/app/components/solidus_admin/refund_reasons/new/component.rb +12 -0
  45. data/app/components/solidus_admin/refund_reasons/new/component.yml +6 -0
  46. data/app/components/solidus_admin/return_reasons/edit/component.html.erb +26 -0
  47. data/app/components/solidus_admin/return_reasons/edit/component.rb +12 -0
  48. data/app/components/solidus_admin/return_reasons/edit/component.yml +8 -0
  49. data/app/components/solidus_admin/return_reasons/index/component.rb +20 -2
  50. data/app/components/solidus_admin/return_reasons/new/component.html.erb +27 -0
  51. data/app/components/solidus_admin/return_reasons/new/component.rb +12 -0
  52. data/app/components/solidus_admin/return_reasons/new/component.yml +8 -0
  53. data/app/components/solidus_admin/roles/edit/component.html.erb +33 -0
  54. data/app/components/solidus_admin/roles/edit/component.rb +20 -0
  55. data/app/components/solidus_admin/roles/edit/component.yml +19 -0
  56. data/app/components/solidus_admin/roles/index/component.rb +70 -0
  57. data/app/components/solidus_admin/roles/index/component.yml +6 -0
  58. data/app/components/solidus_admin/roles/new/component.html.erb +33 -0
  59. data/app/components/solidus_admin/roles/new/component.rb +20 -0
  60. data/app/components/solidus_admin/roles/new/component.yml +19 -0
  61. data/app/components/solidus_admin/shipping_categories/edit/component.html.erb +16 -0
  62. data/app/components/solidus_admin/shipping_categories/edit/component.rb +12 -0
  63. data/app/components/solidus_admin/shipping_categories/edit/component.yml +6 -0
  64. data/app/components/solidus_admin/shipping_categories/index/component.rb +20 -3
  65. data/app/components/solidus_admin/shipping_categories/new/component.html.erb +17 -0
  66. data/app/components/solidus_admin/shipping_categories/new/component.rb +12 -0
  67. data/app/components/solidus_admin/shipping_categories/new/component.yml +6 -0
  68. data/app/components/solidus_admin/shipping_methods/index/component.rb +2 -2
  69. data/app/components/solidus_admin/stock_items/edit/component.html.erb +66 -72
  70. data/app/components/solidus_admin/stock_items/edit/component.rb +0 -5
  71. data/app/components/solidus_admin/stock_items/index/component.rb +5 -6
  72. data/app/components/solidus_admin/stock_locations/index/component.rb +1 -1
  73. data/app/components/solidus_admin/store_credit_reasons/edit/component.html.erb +26 -0
  74. data/app/components/solidus_admin/store_credit_reasons/edit/component.rb +12 -0
  75. data/app/components/solidus_admin/store_credit_reasons/edit/component.yml +8 -0
  76. data/app/components/solidus_admin/store_credit_reasons/index/component.rb +11 -4
  77. data/app/components/solidus_admin/store_credit_reasons/new/component.html.erb +27 -0
  78. data/app/components/solidus_admin/store_credit_reasons/new/component.rb +12 -0
  79. data/app/components/solidus_admin/store_credit_reasons/new/component.yml +8 -0
  80. data/app/components/solidus_admin/stores/index/component.rb +1 -1
  81. data/app/components/solidus_admin/tax_categories/edit/component.html.erb +28 -0
  82. data/app/components/solidus_admin/tax_categories/edit/component.rb +12 -0
  83. data/app/components/solidus_admin/tax_categories/edit/component.yml +8 -0
  84. data/app/components/solidus_admin/tax_categories/index/component.rb +11 -4
  85. data/app/components/solidus_admin/tax_categories/new/component.html.erb +28 -0
  86. data/app/components/solidus_admin/tax_categories/new/component.rb +12 -0
  87. data/app/components/solidus_admin/tax_categories/new/component.yml +8 -0
  88. data/app/components/solidus_admin/tax_rates/index/component.rb +3 -3
  89. data/app/components/solidus_admin/taxonomies/index/component.rb +1 -1
  90. data/app/components/solidus_admin/ui/button/component.rb +1 -1
  91. data/app/components/solidus_admin/ui/checkbox_row/component.html.erb +29 -0
  92. data/app/components/solidus_admin/ui/checkbox_row/component.rb +11 -0
  93. data/app/components/solidus_admin/ui/forms/address/component.html.erb +27 -9
  94. data/app/components/solidus_admin/ui/forms/address/component.js +38 -13
  95. data/app/components/solidus_admin/ui/forms/search/component.html.erb +2 -3
  96. data/app/components/solidus_admin/ui/forms/search/component.js +3 -3
  97. data/app/components/solidus_admin/ui/modal/component.html.erb +7 -7
  98. data/app/components/solidus_admin/ui/modal/component.js +7 -0
  99. data/app/components/solidus_admin/ui/modal/component.rb +1 -1
  100. data/app/components/solidus_admin/ui/pages/index/component.html.erb +17 -3
  101. data/app/components/solidus_admin/ui/pages/index/component.rb +29 -43
  102. data/app/components/solidus_admin/ui/panel/component.html.erb +5 -16
  103. data/app/components/solidus_admin/ui/panel/component.rb +11 -7
  104. data/app/components/solidus_admin/ui/table/component.js +31 -2
  105. data/app/components/solidus_admin/ui/table/component.rb +23 -7
  106. data/app/components/solidus_admin/ui/table/component.yml +1 -0
  107. data/app/components/solidus_admin/ui/thumbnail/component.rb +1 -1
  108. data/app/components/solidus_admin/ui/thumbnail_with_caption/component.html.erb +17 -0
  109. data/app/components/solidus_admin/ui/thumbnail_with_caption/component.rb +15 -0
  110. data/app/components/solidus_admin/users/addresses/component.html.erb +46 -0
  111. data/app/components/solidus_admin/users/addresses/component.rb +61 -0
  112. data/app/components/solidus_admin/users/addresses/component.yml +14 -0
  113. data/app/components/solidus_admin/users/edit/api_access/component.html.erb +49 -0
  114. data/app/components/solidus_admin/users/edit/api_access/component.js +9 -0
  115. data/app/components/solidus_admin/users/edit/api_access/component.rb +7 -0
  116. data/app/components/solidus_admin/users/edit/api_access/component.yml +10 -0
  117. data/app/components/solidus_admin/users/edit/component.html.erb +52 -0
  118. data/app/components/solidus_admin/users/edit/component.rb +51 -0
  119. data/app/components/solidus_admin/users/edit/component.yml +12 -0
  120. data/app/components/solidus_admin/users/index/component.rb +10 -8
  121. data/app/components/solidus_admin/users/items/component.html.erb +41 -0
  122. data/app/components/solidus_admin/users/items/component.rb +170 -0
  123. data/app/components/solidus_admin/users/items/component.yml +16 -0
  124. data/app/components/solidus_admin/users/orders/component.html.erb +42 -0
  125. data/app/components/solidus_admin/users/orders/component.rb +131 -0
  126. data/app/components/solidus_admin/users/orders/component.yml +12 -0
  127. data/app/components/solidus_admin/users/stats/component.html.erb +11 -0
  128. data/app/components/solidus_admin/users/stats/component.rb +9 -0
  129. data/app/components/solidus_admin/users/stats/component.yml +2 -0
  130. data/app/components/solidus_admin/users_and_roles/component.rb +24 -0
  131. data/app/components/solidus_admin/users_and_roles/component.yml +2 -0
  132. data/app/components/solidus_admin/zones/index/component.rb +1 -1
  133. data/app/controllers/solidus_admin/addresses_controller.rb +6 -1
  134. data/app/controllers/solidus_admin/adjustment_reasons_controller.rb +85 -10
  135. data/app/controllers/solidus_admin/adjustments_controller.rb +57 -0
  136. data/app/controllers/solidus_admin/customers_controller.rb +5 -1
  137. data/app/controllers/solidus_admin/orders_controller.rb +5 -1
  138. data/app/controllers/solidus_admin/products_controller.rb +11 -0
  139. data/app/controllers/solidus_admin/refund_reasons_controller.rb +85 -10
  140. data/app/controllers/solidus_admin/reimbursement_types_controller.rb +0 -5
  141. data/app/controllers/solidus_admin/return_reasons_controller.rb +85 -10
  142. data/app/controllers/solidus_admin/roles_controller.rb +118 -0
  143. data/app/controllers/solidus_admin/shipping_categories_controller.rb +87 -10
  144. data/app/controllers/solidus_admin/shipping_methods_controller.rb +0 -5
  145. data/app/controllers/solidus_admin/stock_items_controller.rb +6 -6
  146. data/app/controllers/solidus_admin/stock_locations_controller.rb +0 -5
  147. data/app/controllers/solidus_admin/store_credit_reasons_controller.rb +85 -10
  148. data/app/controllers/solidus_admin/stores_controller.rb +0 -5
  149. data/app/controllers/solidus_admin/tax_categories_controller.rb +89 -10
  150. data/app/controllers/solidus_admin/tax_rates_controller.rb +0 -5
  151. data/app/controllers/solidus_admin/users_controller.rb +85 -6
  152. data/app/controllers/solidus_admin/zones_controller.rb +0 -5
  153. data/app/helpers/solidus_admin/last_login_helper.rb +16 -0
  154. data/app/helpers/solidus_admin/permission_sets_helper.rb +32 -0
  155. data/app/views/layouts/solidus_admin/application.html.erb +2 -1
  156. data/config/locales/adjustment_reasons.en.yml +5 -1
  157. data/config/locales/adjustments.en.yml +10 -0
  158. data/config/locales/refund_reasons.en.yml +10 -0
  159. data/config/locales/return_reasons.en.yml +5 -1
  160. data/config/locales/roles.en.yml +10 -0
  161. data/config/locales/shipping_categories.en.yml +4 -0
  162. data/config/locales/store_credit_reasons.en.yml +5 -1
  163. data/config/locales/tax_categories.en.yml +4 -0
  164. data/config/locales/users.en.yml +10 -0
  165. data/config/routes.rb +24 -7
  166. data/docs/components.md +109 -0
  167. data/docs/{customizing_view_components.md → customizing_components.md} +2 -7
  168. data/docs/index_pages.md +146 -0
  169. data/docs/{customizing_menu_items.md → menu_items.md} +1 -1
  170. data/docs/stimulusjs.md +85 -0
  171. data/docs/{customizing_tailwindcss.md → tailwindcss.md} +27 -8
  172. data/lib/solidus_admin/component_registry.rb +40 -0
  173. data/lib/solidus_admin/configuration.rb +2 -26
  174. data/lib/solidus_admin/install_tailwindcss.rb +3 -1
  175. data/lib/solidus_admin/testing_support/admin_assets.rb +10 -0
  176. data/lib/solidus_admin/testing_support/component_helpers.rb +27 -0
  177. data/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb +60 -0
  178. data/lib/solidus_admin/testing_support/feature_helpers.rb +34 -0
  179. data/lib/solidus_admin/version.rb +1 -1
  180. data/solidus_admin.gemspec +7 -3
  181. metadata +108 -19
  182. data/app/components/solidus_admin/promotion_categories/index/component.rb +0 -56
  183. data/app/components/solidus_admin/promotions/index/component.rb +0 -104
  184. data/app/components/solidus_admin/promotions/index/component.yml +0 -10
  185. data/app/controllers/solidus_admin/promotion_categories_controller.rb +0 -29
  186. data/app/controllers/solidus_admin/promotions_controller.rb +0 -46
  187. data/config/locales/promotion_categories.en.yml +0 -6
  188. data/config/locales/promotions.en.yml +0 -6
  189. data/config/locales/refund_reasons_.en.yml +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 28b57ee7cd36b6042c6a1f7a735587aaba8a9e78d6050744ff6687b3799154fc
4
- data.tar.gz: de8a6150a3b9c7445d4b572cc4cd6af8aba87e6be2ffcd81582b7bdfd96b2b8a
3
+ metadata.gz: 580c70a7d37e6019c6957b8dc05d2be0d92024a16a3984dd6dfd545f18dca187
4
+ data.tar.gz: a081d2f1b919de722f5edde8b6a8864e606d7b87acde8254124fc44fd7e4f9f1
5
5
  SHA512:
6
- metadata.gz: 9db4b1349c35d1778bad7f922951a8c9f9d35e97e90c25a78c71d97a7e3ec6f772c9411490f6b66a1323c016e94a283ed2311ff11c4a142891fee2695bee6ba4
7
- data.tar.gz: f24a6d904d75739bd41ef956f40489459b281e9aa9b3aa9981affdbe260865019a75c2200f56e201a0dd6f647d6d48d92483766ec5b6e99cc9e2f1d133924c65
6
+ metadata.gz: 06056cb24c3d85afc44b204d1c3cda73122ab514d6ab8e4b11c4d542d255d0230fa8573ca83e95821d912252ba1eced728bd46a1ed2dfd8ebc42ce4c46b37ada
7
+ data.tar.gz: d7649d39e90272165cdbb3ab1d64b1aaa1821dd4004de1d70b44160b0ecea6d51f7044f53469511569b81cb69290006ee2244a24e77a58fd3cba062e72e6d3f7
data/README.md CHANGED
@@ -1,17 +1,68 @@
1
- # solidus_admin (WIP)
1
+ # Solidus Admin
2
2
 
3
3
  A Rails engine that provides an administrative interface to the Solidus ecommerce platform.
4
4
 
5
+ ## Overview
6
+
7
+ - Based on ViewComponent and TailwindCSS
8
+ - Uses StimulusJS and Turbo for interactivity
9
+ - Works as a separate engine with its own routes
10
+ - Uses the same models as the main Solidus engine
11
+ - Has its own set of controllers
12
+
13
+ ## Installation
14
+
15
+ `solidus_admin` is included by default in new stores generated with Solidus 4.3 or later, as well as those generated from the main branch.
16
+
17
+ `solidus_admin` can be added to existing stores by bundling it in the Gemfile and running the installer generator:
18
+
19
+ ```bash
20
+ bundle add solidus_admin
21
+ bin/rails g solidus_admin:install
22
+ ```
23
+
24
+ If you're using an authentication system other than `solidus_auth_devise` you'll need to manually configure authentication methods (see api documentation for `SolidusAdmin::Configuration`).
25
+
26
+ If you encounter the error `couldn't find file 'solidus_admin/tailwind.css'` when loading admin pages, you need to manually build the `solidus_admin` tailwind CSS styles.
27
+ This issue typically occurs when you bundle Solidus from a GitHub branch or from the local filesystem, or with the sandbox application.
28
+ Please see [Customizing tailwind](docs/tailwindcss.md) for more information.
29
+
30
+ ### Components
31
+
32
+ See [docs/contributing/components.md](docs/components.md) for more information about components.
33
+
34
+ ### Using it alongside `solidus_backend`
35
+
36
+ `solidus_backend` is the current admin interface for Solidus. `SolidusAdmin` is under development, acts as a drop-in replacement for `solidus_backend` and will eventually replace it. It's designed to gradually take over existing functions.
37
+
38
+ For now, you can use both `solidus_backend` and `SolidusAdmin` in the same application. To do this, mount the `SolidusAdmin` engine before `Spree::Core::Engine`.
39
+
40
+ You can use a route `constraint` to replace any `solidus_backend` routes with `SolidusAdmin` routes.
41
+
42
+ By default, `SolidusAdmin` routes are turned off if a cookie named `solidus_admin` is set to `false`, or if a query parameter named `solidus_admin` is set to `false`. This lets you switch between the two admin interfaces easily.
43
+
44
+ This constraint is set up in the application's routes file, so you can easily change it:
45
+
46
+ ```ruby
47
+ # config/routes.rb
48
+ mount SolidusAdmin::Engine, at: '/admin', constraints: ->(req) {
49
+ $redis.get('solidus_admin') == 'true' # or any other logic
50
+ }
51
+ ```
52
+
53
+ ### Authentication & Authorization
54
+
55
+ - Solidus Amidn delegates authentication to `solidus_backend` and relies on `solidus_core` for authorization.
56
+
5
57
  ## Development
6
58
 
7
- - [Customizing tailwind](docs/customizing_tailwind.md)
8
- - [Customizing view components](docs/customizing_view_components.md)
9
- - [Customizing the main navigation](docs/customizing_menu_items.md)
59
+ - [Customizing tailwind](docs/tailwindcss.md)
60
+ - [Customizing view components](docs/customizing_components.md)
61
+ - [Customizing the main navigation](docs/menu_items.md)
10
62
 
11
63
  ### Adding components to Solidus Admin
12
64
 
13
- When using the component generator from within the admin folder it will generate the component in the library
14
- instead of the sandbox application.
65
+ Solidus Admin components can be generated with the `solidus_admin:component`generator:
15
66
 
16
67
  ```bash
17
68
  # the `solidus_admin/` namespace is added by default
@@ -23,6 +74,9 @@ bin/rails admin g solidus_admin:component foo
23
74
  create spec/components/solidus_admin/foo/component_spec.rb
24
75
  ```
25
76
 
77
+ Please note that when using the component generator from within the admin folder it will generate the component in the library
78
+ instead of the sandbox application.
79
+
26
80
  ## Releasing
27
81
 
28
82
  1. Update the version in `lib/solidus_admin/version.rb`
data/Rakefile CHANGED
@@ -5,6 +5,7 @@ require 'rake'
5
5
  require 'rake/testtask'
6
6
  require 'rspec/core/rake_task'
7
7
  require 'spree/testing_support/dummy_app/rake_tasks'
8
+ require 'solidus_admin/testing_support/dummy_app/rake_tasks'
8
9
  require 'bundler/gem_tasks'
9
10
 
10
11
  namespace :tailwindcss do
@@ -1,7 +1,115 @@
1
1
  @import url("https://rsms.me/inter/inter.css");
2
2
 
3
+ *, ::before, ::after{
4
+ --tw-border-spacing-x: 0;
5
+ --tw-border-spacing-y: 0;
6
+ --tw-translate-x: 0;
7
+ --tw-translate-y: 0;
8
+ --tw-rotate: 0;
9
+ --tw-skew-x: 0;
10
+ --tw-skew-y: 0;
11
+ --tw-scale-x: 1;
12
+ --tw-scale-y: 1;
13
+ --tw-pan-x: ;
14
+ --tw-pan-y: ;
15
+ --tw-pinch-zoom: ;
16
+ --tw-scroll-snap-strictness: proximity;
17
+ --tw-gradient-from-position: ;
18
+ --tw-gradient-via-position: ;
19
+ --tw-gradient-to-position: ;
20
+ --tw-ordinal: ;
21
+ --tw-slashed-zero: ;
22
+ --tw-numeric-figure: ;
23
+ --tw-numeric-spacing: ;
24
+ --tw-numeric-fraction: ;
25
+ --tw-ring-inset: ;
26
+ --tw-ring-offset-width: 0px;
27
+ --tw-ring-offset-color: #fff;
28
+ --tw-ring-color: rgb(59 130 246 / 0.5);
29
+ --tw-ring-offset-shadow: 0 0 #0000;
30
+ --tw-ring-shadow: 0 0 #0000;
31
+ --tw-shadow: 0 0 #0000;
32
+ --tw-shadow-colored: 0 0 #0000;
33
+ --tw-blur: ;
34
+ --tw-brightness: ;
35
+ --tw-contrast: ;
36
+ --tw-grayscale: ;
37
+ --tw-hue-rotate: ;
38
+ --tw-invert: ;
39
+ --tw-saturate: ;
40
+ --tw-sepia: ;
41
+ --tw-drop-shadow: ;
42
+ --tw-backdrop-blur: ;
43
+ --tw-backdrop-brightness: ;
44
+ --tw-backdrop-contrast: ;
45
+ --tw-backdrop-grayscale: ;
46
+ --tw-backdrop-hue-rotate: ;
47
+ --tw-backdrop-invert: ;
48
+ --tw-backdrop-opacity: ;
49
+ --tw-backdrop-saturate: ;
50
+ --tw-backdrop-sepia: ;
51
+ --tw-contain-size: ;
52
+ --tw-contain-layout: ;
53
+ --tw-contain-paint: ;
54
+ --tw-contain-style: ;
55
+ }
56
+
57
+ ::backdrop{
58
+ --tw-border-spacing-x: 0;
59
+ --tw-border-spacing-y: 0;
60
+ --tw-translate-x: 0;
61
+ --tw-translate-y: 0;
62
+ --tw-rotate: 0;
63
+ --tw-skew-x: 0;
64
+ --tw-skew-y: 0;
65
+ --tw-scale-x: 1;
66
+ --tw-scale-y: 1;
67
+ --tw-pan-x: ;
68
+ --tw-pan-y: ;
69
+ --tw-pinch-zoom: ;
70
+ --tw-scroll-snap-strictness: proximity;
71
+ --tw-gradient-from-position: ;
72
+ --tw-gradient-via-position: ;
73
+ --tw-gradient-to-position: ;
74
+ --tw-ordinal: ;
75
+ --tw-slashed-zero: ;
76
+ --tw-numeric-figure: ;
77
+ --tw-numeric-spacing: ;
78
+ --tw-numeric-fraction: ;
79
+ --tw-ring-inset: ;
80
+ --tw-ring-offset-width: 0px;
81
+ --tw-ring-offset-color: #fff;
82
+ --tw-ring-color: rgb(59 130 246 / 0.5);
83
+ --tw-ring-offset-shadow: 0 0 #0000;
84
+ --tw-ring-shadow: 0 0 #0000;
85
+ --tw-shadow: 0 0 #0000;
86
+ --tw-shadow-colored: 0 0 #0000;
87
+ --tw-blur: ;
88
+ --tw-brightness: ;
89
+ --tw-contrast: ;
90
+ --tw-grayscale: ;
91
+ --tw-hue-rotate: ;
92
+ --tw-invert: ;
93
+ --tw-saturate: ;
94
+ --tw-sepia: ;
95
+ --tw-drop-shadow: ;
96
+ --tw-backdrop-blur: ;
97
+ --tw-backdrop-brightness: ;
98
+ --tw-backdrop-contrast: ;
99
+ --tw-backdrop-grayscale: ;
100
+ --tw-backdrop-hue-rotate: ;
101
+ --tw-backdrop-invert: ;
102
+ --tw-backdrop-opacity: ;
103
+ --tw-backdrop-saturate: ;
104
+ --tw-backdrop-sepia: ;
105
+ --tw-contain-size: ;
106
+ --tw-contain-layout: ;
107
+ --tw-contain-paint: ;
108
+ --tw-contain-style: ;
109
+ }
110
+
3
111
  /*
4
- ! tailwindcss v3.4.0 | MIT License | https://tailwindcss.com
112
+ ! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com
5
113
  */
6
114
 
7
115
  /*
@@ -213,6 +321,8 @@ textarea {
213
321
  /* 1 */
214
322
  line-height: inherit;
215
323
  /* 1 */
324
+ letter-spacing: inherit;
325
+ /* 1 */
216
326
  color: inherit;
217
327
  /* 1 */
218
328
  margin: 0;
@@ -236,9 +346,9 @@ select {
236
346
  */
237
347
 
238
348
  button,
239
- [type='button'],
240
- [type='reset'],
241
- [type='submit'] {
349
+ input:where([type='button']),
350
+ input:where([type='reset']),
351
+ input:where([type='submit']) {
242
352
  -webkit-appearance: button;
243
353
  /* 1 */
244
354
  background-color: transparent;
@@ -458,106 +568,6 @@ summary{
458
568
  list-style: none;
459
569
  }
460
570
 
461
- *, ::before, ::after{
462
- --tw-border-spacing-x: 0;
463
- --tw-border-spacing-y: 0;
464
- --tw-translate-x: 0;
465
- --tw-translate-y: 0;
466
- --tw-rotate: 0;
467
- --tw-skew-x: 0;
468
- --tw-skew-y: 0;
469
- --tw-scale-x: 1;
470
- --tw-scale-y: 1;
471
- --tw-pan-x: ;
472
- --tw-pan-y: ;
473
- --tw-pinch-zoom: ;
474
- --tw-scroll-snap-strictness: proximity;
475
- --tw-gradient-from-position: ;
476
- --tw-gradient-via-position: ;
477
- --tw-gradient-to-position: ;
478
- --tw-ordinal: ;
479
- --tw-slashed-zero: ;
480
- --tw-numeric-figure: ;
481
- --tw-numeric-spacing: ;
482
- --tw-numeric-fraction: ;
483
- --tw-ring-inset: ;
484
- --tw-ring-offset-width: 0px;
485
- --tw-ring-offset-color: #fff;
486
- --tw-ring-color: rgb(59 130 246 / 0.5);
487
- --tw-ring-offset-shadow: 0 0 #0000;
488
- --tw-ring-shadow: 0 0 #0000;
489
- --tw-shadow: 0 0 #0000;
490
- --tw-shadow-colored: 0 0 #0000;
491
- --tw-blur: ;
492
- --tw-brightness: ;
493
- --tw-contrast: ;
494
- --tw-grayscale: ;
495
- --tw-hue-rotate: ;
496
- --tw-invert: ;
497
- --tw-saturate: ;
498
- --tw-sepia: ;
499
- --tw-drop-shadow: ;
500
- --tw-backdrop-blur: ;
501
- --tw-backdrop-brightness: ;
502
- --tw-backdrop-contrast: ;
503
- --tw-backdrop-grayscale: ;
504
- --tw-backdrop-hue-rotate: ;
505
- --tw-backdrop-invert: ;
506
- --tw-backdrop-opacity: ;
507
- --tw-backdrop-saturate: ;
508
- --tw-backdrop-sepia: ;
509
- }
510
-
511
- ::backdrop{
512
- --tw-border-spacing-x: 0;
513
- --tw-border-spacing-y: 0;
514
- --tw-translate-x: 0;
515
- --tw-translate-y: 0;
516
- --tw-rotate: 0;
517
- --tw-skew-x: 0;
518
- --tw-skew-y: 0;
519
- --tw-scale-x: 1;
520
- --tw-scale-y: 1;
521
- --tw-pan-x: ;
522
- --tw-pan-y: ;
523
- --tw-pinch-zoom: ;
524
- --tw-scroll-snap-strictness: proximity;
525
- --tw-gradient-from-position: ;
526
- --tw-gradient-via-position: ;
527
- --tw-gradient-to-position: ;
528
- --tw-ordinal: ;
529
- --tw-slashed-zero: ;
530
- --tw-numeric-figure: ;
531
- --tw-numeric-spacing: ;
532
- --tw-numeric-fraction: ;
533
- --tw-ring-inset: ;
534
- --tw-ring-offset-width: 0px;
535
- --tw-ring-offset-color: #fff;
536
- --tw-ring-color: rgb(59 130 246 / 0.5);
537
- --tw-ring-offset-shadow: 0 0 #0000;
538
- --tw-ring-shadow: 0 0 #0000;
539
- --tw-shadow: 0 0 #0000;
540
- --tw-shadow-colored: 0 0 #0000;
541
- --tw-blur: ;
542
- --tw-brightness: ;
543
- --tw-contrast: ;
544
- --tw-grayscale: ;
545
- --tw-hue-rotate: ;
546
- --tw-invert: ;
547
- --tw-saturate: ;
548
- --tw-sepia: ;
549
- --tw-drop-shadow: ;
550
- --tw-backdrop-blur: ;
551
- --tw-backdrop-brightness: ;
552
- --tw-backdrop-contrast: ;
553
- --tw-backdrop-grayscale: ;
554
- --tw-backdrop-hue-rotate: ;
555
- --tw-backdrop-invert: ;
556
- --tw-backdrop-opacity: ;
557
- --tw-backdrop-saturate: ;
558
- --tw-backdrop-sepia: ;
559
- }
560
-
561
571
  .form-input,.form-textarea,.form-select,.form-multiselect{
562
572
  -webkit-appearance: none;
563
573
  -moz-appearance: none;
@@ -604,6 +614,11 @@ summary{
604
614
 
605
615
  .form-input::-webkit-date-and-time-value{
606
616
  min-height: 1.5em;
617
+ text-align: inherit;
618
+ }
619
+
620
+ .form-input::-webkit-datetime-edit{
621
+ display: inline-flex;
607
622
  }
608
623
 
609
624
  .form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-year-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-second-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-meridiem-field{
@@ -621,6 +636,16 @@ summary{
621
636
  print-color-adjust: exact;
622
637
  }
623
638
 
639
+ .form-select:where([size]:not([size="1"])){
640
+ background-image: initial;
641
+ background-position: initial;
642
+ background-repeat: unset;
643
+ background-size: initial;
644
+ padding-right: 0.75rem;
645
+ -webkit-print-color-adjust: unset;
646
+ print-color-adjust: unset;
647
+ }
648
+
624
649
  .form-checkbox,.form-radio{
625
650
  -webkit-appearance: none;
626
651
  -moz-appearance: none;
@@ -672,6 +697,14 @@ summary{
672
697
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
673
698
  }
674
699
 
700
+ @media (forced-colors: active) {
701
+ .form-checkbox:checked{
702
+ -webkit-appearance: auto;
703
+ -moz-appearance: auto;
704
+ appearance: auto;
705
+ }
706
+ }
707
+
675
708
  .form-checkbox:checked:hover,.form-checkbox:checked:focus,.form-radio:checked:hover,.form-radio:checked:focus{
676
709
  border-color: transparent;
677
710
  background-color: currentColor;
@@ -686,6 +719,14 @@ summary{
686
719
  background-repeat: no-repeat;
687
720
  }
688
721
 
722
+ @media (forced-colors: active) {
723
+ .form-checkbox:indeterminate{
724
+ -webkit-appearance: auto;
725
+ -moz-appearance: auto;
726
+ appearance: auto;
727
+ }
728
+ }
729
+
689
730
  .form-checkbox:indeterminate:hover,.form-checkbox:indeterminate:focus{
690
731
  border-color: transparent;
691
732
  background-color: currentColor;
@@ -800,6 +841,10 @@ summary{
800
841
  margin: 1.5rem;
801
842
  }
802
843
 
844
+ .m-auto{
845
+ margin: auto;
846
+ }
847
+
803
848
  .mb-1{
804
849
  margin-bottom: 0.25rem;
805
850
  }
@@ -924,10 +969,6 @@ summary{
924
969
  height: 1rem;
925
970
  }
926
971
 
927
- .h-4\/5{
928
- height: 80%;
929
- }
930
-
931
972
  .h-5{
932
973
  height: 1.25rem;
933
974
  }
@@ -1044,6 +1085,10 @@ summary{
1044
1085
  width: 5rem;
1045
1086
  }
1046
1087
 
1088
+ .w-24{
1089
+ width: 6rem;
1090
+ }
1091
+
1047
1092
  .w-4{
1048
1093
  width: 1rem;
1049
1094
  }
@@ -1092,8 +1137,16 @@ summary{
1092
1137
  width: 1.5em;
1093
1138
  }
1094
1139
 
1095
- .w-\[17\.78rem\]{
1096
- width: 17.78rem;
1140
+ .w-\[10\%\]{
1141
+ width: 10%;
1142
+ }
1143
+
1144
+ .w-\[15\%\]{
1145
+ width: 15%;
1146
+ }
1147
+
1148
+ .w-\[18\%\]{
1149
+ width: 18%;
1097
1150
  }
1098
1151
 
1099
1152
  .w-\[1rem\]{
@@ -1104,6 +1157,10 @@ summary{
1104
1157
  width: 22px;
1105
1158
  }
1106
1159
 
1160
+ .w-\[24\%\]{
1161
+ width: 24%;
1162
+ }
1163
+
1107
1164
  .w-\[400px\]{
1108
1165
  width: 400px;
1109
1166
  }
@@ -1112,14 +1169,31 @@ summary{
1112
1169
  width: 52px;
1113
1170
  }
1114
1171
 
1172
+ .w-\[7\%\]{
1173
+ width: 7%;
1174
+ }
1175
+
1115
1176
  .w-\[72px\]{
1116
1177
  width: 72px;
1117
1178
  }
1118
1179
 
1180
+ .w-\[8\%\]{
1181
+ width: 8%;
1182
+ }
1183
+
1184
+ .w-\[calc\(5rem\+2rem\+2\.5rem\+1px\)\]{
1185
+ width: calc(5rem + 2rem + 2.5rem + 1px);
1186
+ }
1187
+
1119
1188
  .w-auto{
1120
1189
  width: auto;
1121
1190
  }
1122
1191
 
1192
+ .w-fit{
1193
+ width: -moz-fit-content;
1194
+ width: fit-content;
1195
+ }
1196
+
1123
1197
  .w-full{
1124
1198
  width: 100%;
1125
1199
  }
@@ -1136,6 +1210,10 @@ summary{
1136
1210
  min-width: 40rem;
1137
1211
  }
1138
1212
 
1213
+ .max-w-\[15rem\]{
1214
+ max-width: 15rem;
1215
+ }
1216
+
1139
1217
  .max-w-\[20px\]{
1140
1218
  max-width: 20px;
1141
1219
  }
@@ -1168,6 +1246,10 @@ summary{
1168
1246
  flex-grow: 1;
1169
1247
  }
1170
1248
 
1249
+ .basis-10{
1250
+ flex-basis: 2.5rem;
1251
+ }
1252
+
1171
1253
  .table-auto{
1172
1254
  table-layout: auto;
1173
1255
  }
@@ -1290,12 +1372,6 @@ summary{
1290
1372
  gap: 1.5rem;
1291
1373
  }
1292
1374
 
1293
- .space-y-0 > :not([hidden]) ~ :not([hidden]){
1294
- --tw-space-y-reverse: 0;
1295
- margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
1296
- margin-bottom: calc(0px * var(--tw-space-y-reverse));
1297
- }
1298
-
1299
1375
  .space-y-0\.5 > :not([hidden]) ~ :not([hidden]){
1300
1376
  --tw-space-y-reverse: 0;
1301
1377
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
@@ -1313,10 +1389,6 @@ summary{
1313
1389
  border-color: rgb(222 222 222 / var(--tw-divide-opacity));
1314
1390
  }
1315
1391
 
1316
- .self-end{
1317
- align-self: flex-end;
1318
- }
1319
-
1320
1392
  .overflow-auto{
1321
1393
  overflow: auto;
1322
1394
  }
@@ -1423,10 +1495,6 @@ summary{
1423
1495
  border-top-width: 1px;
1424
1496
  }
1425
1497
 
1426
- .border-dotted{
1427
- border-style: dotted;
1428
- }
1429
-
1430
1498
  .border-gray-100{
1431
1499
  --tw-border-opacity: 1;
1432
1500
  border-color: rgb(222 222 222 / var(--tw-border-opacity));
@@ -1600,20 +1668,11 @@ summary{
1600
1668
  padding: 1rem;
1601
1669
  }
1602
1670
 
1603
- .p-6{
1604
- padding: 1.5rem;
1605
- }
1606
-
1607
1671
  .\!px-10{
1608
1672
  padding-left: 2.5rem !important;
1609
1673
  padding-right: 2.5rem !important;
1610
1674
  }
1611
1675
 
1612
- .px-1{
1613
- padding-left: 0.25rem;
1614
- padding-right: 0.25rem;
1615
- }
1616
-
1617
1676
  .px-1\.5{
1618
1677
  padding-left: 0.375rem;
1619
1678
  padding-right: 0.375rem;
@@ -1644,11 +1703,6 @@ summary{
1644
1703
  padding-right: 0.75rem;
1645
1704
  }
1646
1705
 
1647
- .py-0{
1648
- padding-top: 0px;
1649
- padding-bottom: 0px;
1650
- }
1651
-
1652
1706
  .py-0\.5{
1653
1707
  padding-top: 0.125rem;
1654
1708
  padding-bottom: 0.125rem;
@@ -1694,10 +1748,6 @@ summary{
1694
1748
  padding-bottom: 0.5rem;
1695
1749
  }
1696
1750
 
1697
- .pb-0{
1698
- padding-bottom: 0px;
1699
- }
1700
-
1701
1751
  .pb-0\.5{
1702
1752
  padding-bottom: 0.125rem;
1703
1753
  }
@@ -1710,10 +1760,6 @@ summary{
1710
1760
  padding-bottom: 2rem;
1711
1761
  }
1712
1762
 
1713
- .pt-0{
1714
- padding-top: 0px;
1715
- }
1716
-
1717
1763
  .pt-0\.5{
1718
1764
  padding-top: 0.125rem;
1719
1765
  }
@@ -1722,10 +1768,6 @@ summary{
1722
1768
  padding-top: 0.5rem;
1723
1769
  }
1724
1770
 
1725
- .pt-20{
1726
- padding-top: 5rem;
1727
- }
1728
-
1729
1771
  .text-left{
1730
1772
  text-align: left;
1731
1773
  }
@@ -1841,6 +1883,11 @@ summary{
1841
1883
  line-height: 1;
1842
1884
  }
1843
1885
 
1886
+ .\!text-red-500{
1887
+ --tw-text-opacity: 1 !important;
1888
+ color: rgb(220 55 40 / var(--tw-text-opacity)) !important;
1889
+ }
1890
+
1844
1891
  .text-black{
1845
1892
  --tw-text-opacity: 1;
1846
1893
  color: rgb(34 34 34 / var(--tw-text-opacity));
@@ -2402,12 +2449,6 @@ summary{
2402
2449
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
2403
2450
  }
2404
2451
 
2405
- .focus\:ring-0:focus{
2406
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2407
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2408
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
2409
- }
2410
-
2411
2452
  .focus\:ring-2:focus{
2412
2453
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2413
2454
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
@@ -2528,12 +2569,6 @@ summary{
2528
2569
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
2529
2570
  }
2530
2571
 
2531
- .active\:ring-0:active{
2532
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2533
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2534
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
2535
- }
2536
-
2537
2572
  .active\:ring-gray-300:active{
2538
2573
  --tw-ring-opacity: 1;
2539
2574
  --tw-ring-color: rgb(186 186 186 / var(--tw-ring-opacity));
@@ -9,4 +9,5 @@ html {
9
9
 
10
10
  main img {
11
11
  filter: invert(100%) hue-rotate(-180deg);
12
+ background-color: #fff;
12
13
  }
@@ -8,4 +8,5 @@ html {
8
8
 
9
9
  main img {
10
10
  filter: invert(91%) brightness(1.5) contrast(1.5) hue-rotate(-180deg);
11
+ background-color: #ddd;
11
12
  }
@@ -0,0 +1,27 @@
1
+ <%= turbo_frame_tag :edit_adjustment_reason_modal do %>
2
+ <%= render component("ui/modal").new(title: t(".title")) do |modal| %>
3
+ <%= form_for @adjustment_reason, url: solidus_admin.adjustment_reason_path(@adjustment_reason), html: { id: form_id } do |f| %>
4
+ <div class="flex flex-col gap-6 pb-4">
5
+ <%= render component("ui/forms/field").text_field(f, :name, class: "required") %>
6
+ <%= render component("ui/forms/field").text_field(f, :code, class: "required") %>
7
+ <label class="flex gap-2 items-center">
8
+ <%= hidden_field_tag "#{f.object_name}[active]", "0" %>
9
+ <%= render component("ui/forms/checkbox").new(
10
+ name: "#{f.object_name}[active]",
11
+ value: "1",
12
+ checked: f.object.active
13
+ ) %>
14
+ <span class="font-semibold text-xs ml-2"><%= Spree::AdjustmentReason.human_attribute_name :active %></span>
15
+ <%= render component("ui/toggletip").new(text: t(".hints.active")) %>
16
+ </label>
17
+ </div>
18
+ <% modal.with_actions do %>
19
+ <form method="dialog">
20
+ <%= render component("ui/button").new(scheme: :secondary, text: t('.cancel')) %>
21
+ </form>
22
+ <%= render component("ui/button").new(form: form_id, type: :submit, text: t('.submit')) %>
23
+ <% end %>
24
+ <% end %>
25
+ <% end %>
26
+ <% end %>
27
+ <%= render component("adjustment_reasons/index").new(page: @page) %>
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ class SolidusAdmin::AdjustmentReasons::Edit::Component < SolidusAdmin::BaseComponent
4
+ def initialize(page:, adjustment_reason:)
5
+ @page = page
6
+ @adjustment_reason = adjustment_reason
7
+ end
8
+
9
+ def form_id
10
+ dom_id(@adjustment_reason, "#{stimulus_id}_edit_adjustment_reason_form")
11
+ end
12
+ end