localtower 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +121 -33
  3. data/app/assets/stylesheets/application.css +68 -0
  4. data/app/controllers/localtower/pages_controller.rb +20 -35
  5. data/app/javascript/application.js +46 -0
  6. data/app/javascript/components/DarkSelect.js +115 -0
  7. data/app/javascript/components/ModernTooltip.js +26 -0
  8. data/app/javascript/components/NewMigrationForm.js +687 -0
  9. data/app/javascript/components/NewModelForm.js +432 -0
  10. data/app/javascript/components/data/Stores.js +294 -0
  11. data/app/views/layouts/localtower/application.html.erb +80 -66
  12. data/app/views/localtower/_migration.html.erb +30 -0
  13. data/app/views/localtower/pages/_alert_no_models.html.erb +1 -1
  14. data/app/views/localtower/pages/migrations.html.erb +24 -55
  15. data/app/views/localtower/pages/new_migration.html.erb +33 -96
  16. data/app/views/localtower/pages/new_model.html.erb +17 -83
  17. data/config/routes.rb +1 -1
  18. data/lib/localtower/engine.rb +5 -2
  19. data/lib/localtower/generators/migration.rb +218 -91
  20. data/lib/localtower/generators/model.rb +29 -20
  21. data/lib/localtower/generators/service_objects/insert_array.rb +5 -3
  22. data/lib/localtower/generators/service_objects/insert_defaults.rb +73 -3
  23. data/lib/localtower/generators/service_objects/insert_foreign_keys.rb +35 -0
  24. data/lib/localtower/generators/service_objects/insert_indexes.rb +41 -18
  25. data/lib/localtower/generators/service_objects/insert_nullable.rb +5 -3
  26. data/lib/localtower/status.rb +3 -1
  27. data/lib/localtower/tools.rb +20 -9
  28. data/lib/localtower/version.rb +1 -1
  29. data/lib/localtower.rb +0 -6
  30. data/public/com/favicon-64.png +0 -0
  31. data/public/com/twitter-cover-1.png +0 -0
  32. data/public/com/twitter-cover-2.png +0 -0
  33. data/public/fonts/Circular/CircularStd-Black.otf +0 -0
  34. data/public/fonts/Circular/CircularStd-BlackItalic.otf +0 -0
  35. data/public/fonts/Circular/CircularStd-Bold.otf +0 -0
  36. data/public/fonts/Circular/CircularStd-BoldItalic.otf +0 -0
  37. data/public/fonts/Circular/CircularStd-Book.otf +0 -0
  38. data/public/fonts/Circular/CircularStd-BookItalic.otf +0 -0
  39. data/public/fonts/Circular/CircularStd-Light Italic.otf +0 -0
  40. data/public/fonts/Circular/CircularStd-Light.otf +0 -0
  41. data/public/fonts/Circular/CircularStd-Medium.otf +0 -0
  42. data/public/fonts/Circular/CircularStd-MediumItalic.otf +0 -0
  43. data/public/fonts/Circular/Read Me.txt +5 -0
  44. data/public/fonts/Circular/www.dfonts.org.url +2 -0
  45. data/public/javascripts/application.js +30830 -0
  46. data/public/javascripts/application.js.map +7 -0
  47. data/public/screenshots/v0.1.1/1_schema.png +0 -0
  48. data/public/screenshots/v0.1.1/2_models_1.png +0 -0
  49. data/public/screenshots/v0.1.1/2_models_2.png +0 -0
  50. data/public/screenshots/v0.1.1/3_relations.png +0 -0
  51. data/public/screenshots/v0.1.1/4_migrations.png +0 -0
  52. data/public/screenshots/v0.1.6/1_schema.png +0 -0
  53. data/public/screenshots/v0.1.6/2_models_1.png +0 -0
  54. data/public/screenshots/v0.1.6/3_relations.png +0 -0
  55. data/public/screenshots/v0.1.6/4_migrations.png +0 -0
  56. data/public/screenshots/v0.1.6/5_capture.png +0 -0
  57. data/public/screenshots/v1.0.0/migrations.png +0 -0
  58. data/public/screenshots/v1.0.0/models.png +0 -0
  59. data/public/screenshots/v1.0.0/new_migration.png +0 -0
  60. data/public/screenshots/v1.0.0/new_model.png +0 -0
  61. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.44.30.jpg +0 -0
  62. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.44.42.jpg +0 -0
  63. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.44.54.jpg +0 -0
  64. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.48.21.jpg +0 -0
  65. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.48.28.jpg +0 -0
  66. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.48.51.jpg +0 -0
  67. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.49.09.jpg +0 -0
  68. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.50.04.jpg +0 -0
  69. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.50.11.jpg +0 -0
  70. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.50.19.jpg +0 -0
  71. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.51.47.jpg +0 -0
  72. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.51.48.jpg +0 -0
  73. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.02.jpg +0 -0
  74. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.18.jpg +0 -0
  75. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.26.jpg +0 -0
  76. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.38.jpg +0 -0
  77. data/public/screenshots/v2.0.0/migrations.png +0 -0
  78. data/public/screenshots/v2.0.0/new_migration.png +0 -0
  79. data/public/screenshots/v2.0.0/new_model.png +0 -0
  80. data/public/stylesheets/application.css +1179 -0
  81. data/public/vendor/jquery-3.7.1.min.js +2 -0
  82. data/public/vendor/lucide.min.js +12 -0
  83. data/public/vendor/monokai-sublime.css +80 -0
  84. data/public/vendor/rails-ujs.min.js +8 -0
  85. data/spec/dummy/Gemfile +1 -1
  86. data/spec/dummy/Gemfile.lock +140 -102
  87. data/spec/dummy/app/models/user.rb +0 -1
  88. data/spec/dummy/config/database.yml +4 -6
  89. data/spec/dummy/config/puma.rb +1 -1
  90. data/spec/dummy/db/migrate/20241118233214_create_users.rb +9 -0
  91. data/spec/dummy/db/migrate/20241118233233_add_column_titme_for_user.rb +6 -0
  92. data/spec/dummy/db/schema.rb +3 -19
  93. data/spec/dummy/lib/tasks/reset.rake +16 -0
  94. data/spec/dummy/log/development.log +20995 -15969
  95. data/spec/dummy/log/localtower.log +588 -1906
  96. data/spec/dummy/log/test.log +716 -0
  97. data/spec/dummy/tmp/cache/sessions/localtower/726/FE1/_session_id%3A2%3A%3A69d6764784f832ea25700ea2f242210f3f8d94b48912b0f09ffc44311f0376eb +0 -0
  98. data/spec/dummy/tmp/cache/sessions/localtower/77E/121/_session_id%3A2%3A%3A0b3c1fe7154461ba023ba6c81dd1b999348757880b505f4b082faed263a627f9 +1 -0
  99. data/spec/dummy/tmp/cache/sessions/localtower/7EB/8A1/_session_id%3A2%3A%3Af88237c1d157546a5dcde894fd6c1410162a8eba318748d4ac573ee75e40df16 +0 -0
  100. data/spec/dummy/tmp/local_secret.txt +1 -0
  101. data/spec/dummy/tmp/pids/server.pid +1 -1
  102. data/spec/factories/migration.rb +77 -40
  103. data/spec/factories/model.rb +46 -26
  104. data/spec/lib/localtower/generators/migration_spec.rb +16 -24
  105. data/spec/lib/localtower/generators/model_spec.rb +71 -8
  106. data/spec/lib/localtower/generators/service_objects/insert_array_spec.rb +1 -1
  107. data/spec/lib/localtower/generators/service_objects/insert_defaults_spec.rb +1 -1
  108. data/spec/lib/localtower/generators/service_objects/insert_foreign_keys_spec.rb +101 -0
  109. data/spec/lib/localtower/generators/service_objects/insert_indexes_spec.rb +1 -1
  110. data/spec/lib/localtower/generators/service_objects/insert_nullable_spec.rb +2 -2
  111. data/spec/spec_helper.rb +2 -3
  112. metadata +111 -234
  113. data/app/views/localtower/pages/models.html.erb +0 -63
  114. data/public/css/app.css +0 -55
  115. data/public/js/app.js +0 -337
  116. data/public/light-bootstrap-dashboard-master/assets/css/animate.min.css +0 -6
  117. data/public/light-bootstrap-dashboard-master/assets/css/bootstrap.min.css +0 -5
  118. data/public/light-bootstrap-dashboard-master/assets/css/demo.css +0 -61
  119. data/public/light-bootstrap-dashboard-master/assets/css/light-bootstrap-dashboard.css +0 -2789
  120. data/public/light-bootstrap-dashboard-master/assets/css/pe-icon-7-stroke.css +0 -632
  121. data/public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.eot +0 -0
  122. data/public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.svg +0 -212
  123. data/public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.ttf +0 -0
  124. data/public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.woff +0 -0
  125. data/public/light-bootstrap-dashboard-master/assets/img/default-avatar.png +0 -0
  126. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-0.jpg +0 -0
  127. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-1.jpg +0 -0
  128. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-2.jpg +0 -0
  129. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-3.jpg +0 -0
  130. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-4.jpg +0 -0
  131. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-5.jpg +0 -0
  132. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-6.jpg +0 -0
  133. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-7.jpg +0 -0
  134. data/public/light-bootstrap-dashboard-master/assets/img/faces/tim_vector.jpe +0 -0
  135. data/public/light-bootstrap-dashboard-master/assets/img/favicon.ico +0 -0
  136. data/public/light-bootstrap-dashboard-master/assets/img/loading-bubbles.svg +0 -14
  137. data/public/light-bootstrap-dashboard-master/assets/img/mask.png +0 -0
  138. data/public/light-bootstrap-dashboard-master/assets/img/new_logo.png +0 -0
  139. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-1.jpg +0 -0
  140. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-2.jpg +0 -0
  141. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-3.jpg +0 -0
  142. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-4.jpg +0 -0
  143. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-5.jpg +0 -0
  144. data/public/light-bootstrap-dashboard-master/assets/img/tim_80x80.png +0 -0
  145. data/public/light-bootstrap-dashboard-master/assets/js/bootstrap-checkbox-radio-switch.js +0 -502
  146. data/public/light-bootstrap-dashboard-master/assets/js/bootstrap-notify.js +0 -404
  147. data/public/light-bootstrap-dashboard-master/assets/js/bootstrap-select.js +0 -438
  148. data/public/light-bootstrap-dashboard-master/assets/js/bootstrap.min.js +0 -7
  149. data/public/light-bootstrap-dashboard-master/assets/js/chartist.min.js +0 -9
  150. data/public/light-bootstrap-dashboard-master/assets/js/demo.js +0 -152
  151. data/public/light-bootstrap-dashboard-master/assets/js/jquery-1.10.2.js +0 -9789
  152. data/public/light-bootstrap-dashboard-master/assets/js/light-bootstrap-dashboard.js +0 -179
  153. data/public/logo-localtower-white-300.png +0 -0
  154. data/public/logo-localtower-white.png +0 -0
  155. data/public/logo-localtower.png +0 -0
  156. data/public/vendor/font-awesome.min.css +0 -4
  157. data/public/vendor/highlight-js-default.min.css +0 -9
  158. data/spec/dummy/app/models/post.rb +0 -3
  159. data/spec/dummy/db/migrate/20230119221452_create_users.rb +0 -14
  160. data/spec/dummy/db/migrate/20230119221751_change_users_at1674166670.rb +0 -7
  161. data/spec/dummy/db/migrate/20230119222054_create_posts.rb +0 -11
  162. data/spec/dummy/db/migrate/20230119222106_change_posts_at1674166865.rb +0 -5
  163. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/-Y/-YOiiBKqc2UODHFjctm8xc7xFoZaL7zOjWQj6qQ2wyE.cache +0 -1
  164. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/-d/-dwueM4vmPt8L51S3jeSyg_AjGDcj0GUN6pDpCA1gCg.cache +0 -3
  165. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0g/0gaJnJQdtd2ACbihXxn8OnjLWlDjnQ_WxfgOpbiLzhg.cache +0 -1
  166. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0r/0rFCsCV9kZnEYtZZ6sfig8329OU31bqjecDFqSVank8.cache +0 -1
  167. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/1J/1J2k_CpnQE3d-PZAQwOVGQALGkta4qVvhdsKjgG0e4Q.cache +0 -0
  168. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2p/2pYVH2Z_syqh6ok8QYxJNKxXpx1Iwppf6JGElZI0gpw.cache +0 -0
  169. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/3W/3WBmqd-2V6q5N-jvbyp-tlcfn3aHYMwBppbOUm7x4qg.cache +0 -1
  170. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/4K/4KFPlHkhdDW0riGUmlbaR-kmDz6JUnQvY6fwW8qsdaE.cache +0 -3
  171. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/6x/6xMeRWmLpNK_flx6-JA3KazvUxSCxyPxHv9Zm3eC26Q.cache +0 -1
  172. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7d/7dNqI_dCDJLJmI1oM4xwFp9nRRNOem-4P4OD7PMyz2E.cache +0 -0
  173. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8X/8XquhxVcp5A8QquLtxO8NgKTMJch0eqQmzFmRGIZP6I.cache +0 -1
  174. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ah/AhdfXXtU63kXS4TnsH2Vi1yWgVkIEeV8Z8XA68hrNQc.cache +0 -0
  175. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bt/BtAePnwLSGw82xUGI7wuhWDfuwarOQVS91YqCsweMcs.cache +0 -0
  176. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bx/BxzoG0KxeNLac4xTNeJv3qfeytbNBw58xj2zD-xdbrE.cache +0 -2
  177. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/CC/CCD0ROPX0yxHwNpVZmuP8ZNtgQpaVCMXpdzC0Wb5n24.cache +0 -1
  178. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/DS/DS43oxBg6K5PMWLn2mTy_4EnxI03ehHkxpjV7NCi8yM.cache +0 -1
  179. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Do/Do83AoOat5W-c1g7piDGy2GMmffsY6JY0Qfuh5PY3GM.cache +0 -2
  180. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EI/EI0Nxk-VRATWstMuVCVc0_GdYlQ-a0dx6n2g0l3vIik.cache +0 -0
  181. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EN/ENhJnzJAU2IK-7aHqubj9N8Jo_UTmjG_VEQqyIkolQ8.cache +0 -1
  182. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Fc/FcS6VUHN3Bd4pHGqd5NHA8jA4OLwWrU94s3b4GGxX9c.cache +0 -1
  183. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/G0/G0kukI-r0q0Vbrg6e_jnYJoYcOX8K__h-mwKbCf4twE.cache +0 -0
  184. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/I1/I1Jw08-mz8xzgrgi6giCzpf1UmzGTSbl4eJEw4DAoJM.cache +0 -1
  185. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/IV/IVOO1dXBmgjieDk__g57p6aYt0Z3CmfTa32jhegoyko.cache +0 -3
  186. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/JY/JYPmv5WP4wxdI9EKEEPkK_fVtqeSLfmint_5E8fQLQ8.cache +0 -1
  187. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/MX/MXI3KxaQPZGImSvCNZ_TbQVruWCJ3E0xiVxza1ZCAjM.cache +0 -1
  188. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/OU/OUoioCqXALK909jXPV3VSyCJIdNC7bsogUfdnRTpc5o.cache +0 -1
  189. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/PH/PHjtqNLUPAUDiSlu5AbPjlIo20mOGNm0uNjMLhX2NvM.cache +0 -0
  190. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RC/RC9vfALY5K634pTeau0BAhTHl7d5_5yA3tM-QTLiKtI.cache +0 -0
  191. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RG/RG1PrmlixwaUlG8BV0kcm_3F7OQekxsrLYjBdf403-k.cache +0 -2
  192. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ut/UtoMO6n6FHTpRCGk9VfxlfTI2Ao2GYJ_6kMzx3B9VH8.cache +0 -1
  193. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/VE/VExnbpDk3LxYdPk3htUrZQXPI8NK_zlKtSFfVXJlxU4.cache +0 -1
  194. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Wm/WmKTjykiU-Tx_Faf5zduEeEQ-DozAs5omKToM2l1cZM.cache +0 -0
  195. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/X-/X-KjhDPd0nI155N_FaxFSgaOiYo0_ytqlmkBlLM7ayw.cache +0 -1
  196. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/XX/XXVhj-O91tJ5c8pz7DQlTABOv8TIRVg5haw9VOq9HuI.cache +0 -1
  197. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/YC/YCiifo5NCMwDChFqYFiV4EaYEx8hy3Efle1PsGbIdak.cache +0 -1
  198. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ya/YayMISAqD-Y3vBFywwKrXbUovGf5o77HUF5s8mnQgO0.cache +0 -0
  199. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Zl/Zl-NEb0aDLmZ9gN4gdY1OYlbUXD4JhkFY_y23m55zmo.cache +0 -0
  200. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_h/_hnjPptBeD3GP5B0iJR6pvyVkiMiq-o2TxaYmGf9KJo.cache +0 -3
  201. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_p/_poEF6QbTPYJiQCFGoXxIXjmvcn6T0I87ElzJGHguk0.cache +0 -1
  202. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/aa/aaSj2zt8ddc87nZqTpOI9gRCKVnoalXKFBww7t4t3Kg.cache +0 -0
  203. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/bZ/bZHWUkrOLp0WM_Ogo36Qjt4cxDt-rOFgtcj4LNB-BVE.cache +0 -1
  204. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/cP/cPSNG_663TNT944Rke919luRS6FtpMwVc_7aDph645w.cache +0 -1
  205. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ce/ceq8fcZGIoqWrCl9vrCRrywEdx42iy9PrGG9CwFSIF4.cache +0 -0
  206. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/cl/cljhP0Jc018nLnG1rpdg-FUf6mlIqrQYvXTNXTNG9Bw.cache +0 -0
  207. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dm/dmod3fTZdoKso2FGM5RTQtb4kTB6vywsiXLWDygYFN4.cache +0 -1
  208. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dy/dySDGcUTqlKx2MTvOmIEP-WzhyhCfU5xhN9qgxbz3rI.cache +0 -0
  209. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gQ/gQYdmEzbLjTcFCnsfzXzEmeminOchF263snAk3IvXM0.cache +0 -1
  210. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gh/ghvuMAqccBGljlmEaI3Gt5tH5rEg6hseKYMYfRMkHdY.cache +0 -1
  211. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gt/gt8QC7k92A4hXA3HlCpQulW73tqd6x63I3uT-YrGMj0.cache +0 -1
  212. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/hf/hfVg-y7dPSQKbb7V3I7M5w7IpOhDiIB2H31d2tmbZMU.cache +0 -0
  213. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/iF/iFLwyhZIu1Jxm77NUT2qWeTDMmyELW4U85t9rGE_KVg.cache +0 -0
  214. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/kF/kFlIcBBnSyKE00OjpM90pqSn93mLMUv9esz86nrO-Cs.cache +0 -1
  215. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ma/MazNt_5OaYexRuZnccZZ_7AONlxn1a4W3KdWyHyBdws.cache +0 -0
  216. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ma/ma3w08gnDTeqwY2-C9BlToxA6-AS8bvXlu-nBiz0UYs.cache +0 -1
  217. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +0 -2
  218. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +0 -2
  219. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/pv/pv6tV3CDkIAmLXdU8EPLlNEkXAKJPufVD4VP30o4fWo.cache +0 -0
  220. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache +0 -2
  221. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/sY/sYvTb1uPWWmnHJNXKuW_xSco-aUb-rN2f0J35zSIzuc.cache +0 -1
  222. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/su/suQ_jjDxRiIn4VEqFJYKaBWJILaeGKBvoTv49XNX0vo.cache +0 -1
  223. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/u8/u8IrW5IIQ7espwk2Vpk23zheL9YZA0tnbKq9X7E-WA0.cache +0 -1
  224. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wh/whzETExjcZCkn4msasD2aylgfhfpKPZrNxTkY-SOIDg.cache +0 -2
  225. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache +0 -2
  226. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/y6/y6oxsJD3pAY9ph1_5M-77uiEjTVw8BheLZNygCKPm1g.cache +0 -1
  227. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/yH/yHZ-a1J23ZCf2n5mEHINMz23Iec2cLGTKauW7k4yGTE.cache +0 -0
  228. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/z7/z7KfUWYoSaGq8tQ5mbHwyfXyT3Pa4FWKJswHcIdJuds.cache +0 -1
  229. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/zu/zuExWc5WHxeOUPZUKHl9a9ZRmN50g7jMOD28macn6M0.cache +0 -0
@@ -0,0 +1,1179 @@
1
+ *, ::before, ::after {
2
+ --tw-border-spacing-x: 0;
3
+ --tw-border-spacing-y: 0;
4
+ --tw-translate-x: 0;
5
+ --tw-translate-y: 0;
6
+ --tw-rotate: 0;
7
+ --tw-skew-x: 0;
8
+ --tw-skew-y: 0;
9
+ --tw-scale-x: 1;
10
+ --tw-scale-y: 1;
11
+ --tw-pan-x: ;
12
+ --tw-pan-y: ;
13
+ --tw-pinch-zoom: ;
14
+ --tw-scroll-snap-strictness: proximity;
15
+ --tw-gradient-from-position: ;
16
+ --tw-gradient-via-position: ;
17
+ --tw-gradient-to-position: ;
18
+ --tw-ordinal: ;
19
+ --tw-slashed-zero: ;
20
+ --tw-numeric-figure: ;
21
+ --tw-numeric-spacing: ;
22
+ --tw-numeric-fraction: ;
23
+ --tw-ring-inset: ;
24
+ --tw-ring-offset-width: 0px;
25
+ --tw-ring-offset-color: #fff;
26
+ --tw-ring-color: rgb(59 130 246 / 0.5);
27
+ --tw-ring-offset-shadow: 0 0 #0000;
28
+ --tw-ring-shadow: 0 0 #0000;
29
+ --tw-shadow: 0 0 #0000;
30
+ --tw-shadow-colored: 0 0 #0000;
31
+ --tw-blur: ;
32
+ --tw-brightness: ;
33
+ --tw-contrast: ;
34
+ --tw-grayscale: ;
35
+ --tw-hue-rotate: ;
36
+ --tw-invert: ;
37
+ --tw-saturate: ;
38
+ --tw-sepia: ;
39
+ --tw-drop-shadow: ;
40
+ --tw-backdrop-blur: ;
41
+ --tw-backdrop-brightness: ;
42
+ --tw-backdrop-contrast: ;
43
+ --tw-backdrop-grayscale: ;
44
+ --tw-backdrop-hue-rotate: ;
45
+ --tw-backdrop-invert: ;
46
+ --tw-backdrop-opacity: ;
47
+ --tw-backdrop-saturate: ;
48
+ --tw-backdrop-sepia: ;
49
+ --tw-contain-size: ;
50
+ --tw-contain-layout: ;
51
+ --tw-contain-paint: ;
52
+ --tw-contain-style: ;
53
+ }
54
+
55
+ ::backdrop {
56
+ --tw-border-spacing-x: 0;
57
+ --tw-border-spacing-y: 0;
58
+ --tw-translate-x: 0;
59
+ --tw-translate-y: 0;
60
+ --tw-rotate: 0;
61
+ --tw-skew-x: 0;
62
+ --tw-skew-y: 0;
63
+ --tw-scale-x: 1;
64
+ --tw-scale-y: 1;
65
+ --tw-pan-x: ;
66
+ --tw-pan-y: ;
67
+ --tw-pinch-zoom: ;
68
+ --tw-scroll-snap-strictness: proximity;
69
+ --tw-gradient-from-position: ;
70
+ --tw-gradient-via-position: ;
71
+ --tw-gradient-to-position: ;
72
+ --tw-ordinal: ;
73
+ --tw-slashed-zero: ;
74
+ --tw-numeric-figure: ;
75
+ --tw-numeric-spacing: ;
76
+ --tw-numeric-fraction: ;
77
+ --tw-ring-inset: ;
78
+ --tw-ring-offset-width: 0px;
79
+ --tw-ring-offset-color: #fff;
80
+ --tw-ring-color: rgb(59 130 246 / 0.5);
81
+ --tw-ring-offset-shadow: 0 0 #0000;
82
+ --tw-ring-shadow: 0 0 #0000;
83
+ --tw-shadow: 0 0 #0000;
84
+ --tw-shadow-colored: 0 0 #0000;
85
+ --tw-blur: ;
86
+ --tw-brightness: ;
87
+ --tw-contrast: ;
88
+ --tw-grayscale: ;
89
+ --tw-hue-rotate: ;
90
+ --tw-invert: ;
91
+ --tw-saturate: ;
92
+ --tw-sepia: ;
93
+ --tw-drop-shadow: ;
94
+ --tw-backdrop-blur: ;
95
+ --tw-backdrop-brightness: ;
96
+ --tw-backdrop-contrast: ;
97
+ --tw-backdrop-grayscale: ;
98
+ --tw-backdrop-hue-rotate: ;
99
+ --tw-backdrop-invert: ;
100
+ --tw-backdrop-opacity: ;
101
+ --tw-backdrop-saturate: ;
102
+ --tw-backdrop-sepia: ;
103
+ --tw-contain-size: ;
104
+ --tw-contain-layout: ;
105
+ --tw-contain-paint: ;
106
+ --tw-contain-style: ;
107
+ }/*
108
+ ! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com
109
+ *//*
110
+ 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
111
+ 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
112
+ */
113
+
114
+ *,
115
+ ::before,
116
+ ::after {
117
+ box-sizing: border-box; /* 1 */
118
+ border-width: 0; /* 2 */
119
+ border-style: solid; /* 2 */
120
+ border-color: #e5e7eb; /* 2 */
121
+ }
122
+
123
+ ::before,
124
+ ::after {
125
+ --tw-content: '';
126
+ }
127
+
128
+ /*
129
+ 1. Use a consistent sensible line-height in all browsers.
130
+ 2. Prevent adjustments of font size after orientation changes in iOS.
131
+ 3. Use a more readable tab size.
132
+ 4. Use the user's configured `sans` font-family by default.
133
+ 5. Use the user's configured `sans` font-feature-settings by default.
134
+ 6. Use the user's configured `sans` font-variation-settings by default.
135
+ 7. Disable tap highlights on iOS
136
+ */
137
+
138
+ html,
139
+ :host {
140
+ line-height: 1.5; /* 1 */
141
+ -webkit-text-size-adjust: 100%; /* 2 */
142
+ -moz-tab-size: 4; /* 3 */
143
+ -o-tab-size: 4;
144
+ tab-size: 4; /* 3 */
145
+ font-family: Circular, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
146
+ font-feature-settings: normal; /* 5 */
147
+ font-variation-settings: normal; /* 6 */
148
+ -webkit-tap-highlight-color: transparent; /* 7 */
149
+ }
150
+
151
+ /*
152
+ 1. Remove the margin in all browsers.
153
+ 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
154
+ */
155
+
156
+ body {
157
+ margin: 0; /* 1 */
158
+ line-height: inherit; /* 2 */
159
+ }
160
+
161
+ /*
162
+ 1. Add the correct height in Firefox.
163
+ 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
164
+ 3. Ensure horizontal rules are visible by default.
165
+ */
166
+
167
+ hr {
168
+ height: 0; /* 1 */
169
+ color: inherit; /* 2 */
170
+ border-top-width: 1px; /* 3 */
171
+ }
172
+
173
+ /*
174
+ Add the correct text decoration in Chrome, Edge, and Safari.
175
+ */
176
+
177
+ abbr:where([title]) {
178
+ -webkit-text-decoration: underline dotted;
179
+ text-decoration: underline dotted;
180
+ }
181
+
182
+ /*
183
+ Remove the default font size and weight for headings.
184
+ */
185
+
186
+ h1,
187
+ h2,
188
+ h3,
189
+ h4,
190
+ h5,
191
+ h6 {
192
+ font-size: inherit;
193
+ font-weight: inherit;
194
+ }
195
+
196
+ /*
197
+ Reset links to optimize for opt-in styling instead of opt-out.
198
+ */
199
+
200
+ a {
201
+ color: inherit;
202
+ text-decoration: inherit;
203
+ }
204
+
205
+ /*
206
+ Add the correct font weight in Edge and Safari.
207
+ */
208
+
209
+ b,
210
+ strong {
211
+ font-weight: bolder;
212
+ }
213
+
214
+ /*
215
+ 1. Use the user's configured `mono` font-family by default.
216
+ 2. Use the user's configured `mono` font-feature-settings by default.
217
+ 3. Use the user's configured `mono` font-variation-settings by default.
218
+ 4. Correct the odd `em` font sizing in all browsers.
219
+ */
220
+
221
+ code,
222
+ kbd,
223
+ samp,
224
+ pre {
225
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
226
+ font-feature-settings: normal; /* 2 */
227
+ font-variation-settings: normal; /* 3 */
228
+ font-size: 1em; /* 4 */
229
+ }
230
+
231
+ /*
232
+ Add the correct font size in all browsers.
233
+ */
234
+
235
+ small {
236
+ font-size: 80%;
237
+ }
238
+
239
+ /*
240
+ Prevent `sub` and `sup` elements from affecting the line height in all browsers.
241
+ */
242
+
243
+ sub,
244
+ sup {
245
+ font-size: 75%;
246
+ line-height: 0;
247
+ position: relative;
248
+ vertical-align: baseline;
249
+ }
250
+
251
+ sub {
252
+ bottom: -0.25em;
253
+ }
254
+
255
+ sup {
256
+ top: -0.5em;
257
+ }
258
+
259
+ /*
260
+ 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
261
+ 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
262
+ 3. Remove gaps between table borders by default.
263
+ */
264
+
265
+ table {
266
+ text-indent: 0; /* 1 */
267
+ border-color: inherit; /* 2 */
268
+ border-collapse: collapse; /* 3 */
269
+ }
270
+
271
+ /*
272
+ 1. Change the font styles in all browsers.
273
+ 2. Remove the margin in Firefox and Safari.
274
+ 3. Remove default padding in all browsers.
275
+ */
276
+
277
+ button,
278
+ input,
279
+ optgroup,
280
+ select,
281
+ textarea {
282
+ font-family: inherit; /* 1 */
283
+ font-feature-settings: inherit; /* 1 */
284
+ font-variation-settings: inherit; /* 1 */
285
+ font-size: 100%; /* 1 */
286
+ font-weight: inherit; /* 1 */
287
+ line-height: inherit; /* 1 */
288
+ letter-spacing: inherit; /* 1 */
289
+ color: inherit; /* 1 */
290
+ margin: 0; /* 2 */
291
+ padding: 0; /* 3 */
292
+ }
293
+
294
+ /*
295
+ Remove the inheritance of text transform in Edge and Firefox.
296
+ */
297
+
298
+ button,
299
+ select {
300
+ text-transform: none;
301
+ }
302
+
303
+ /*
304
+ 1. Correct the inability to style clickable types in iOS and Safari.
305
+ 2. Remove default button styles.
306
+ */
307
+
308
+ button,
309
+ input:where([type='button']),
310
+ input:where([type='reset']),
311
+ input:where([type='submit']) {
312
+ -webkit-appearance: button; /* 1 */
313
+ background-color: transparent; /* 2 */
314
+ background-image: none; /* 2 */
315
+ }
316
+
317
+ /*
318
+ Use the modern Firefox focus style for all focusable elements.
319
+ */
320
+
321
+ :-moz-focusring {
322
+ outline: auto;
323
+ }
324
+
325
+ /*
326
+ Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
327
+ */
328
+
329
+ :-moz-ui-invalid {
330
+ box-shadow: none;
331
+ }
332
+
333
+ /*
334
+ Add the correct vertical alignment in Chrome and Firefox.
335
+ */
336
+
337
+ progress {
338
+ vertical-align: baseline;
339
+ }
340
+
341
+ /*
342
+ Correct the cursor style of increment and decrement buttons in Safari.
343
+ */
344
+
345
+ ::-webkit-inner-spin-button,
346
+ ::-webkit-outer-spin-button {
347
+ height: auto;
348
+ }
349
+
350
+ /*
351
+ 1. Correct the odd appearance in Chrome and Safari.
352
+ 2. Correct the outline style in Safari.
353
+ */
354
+
355
+ [type='search'] {
356
+ -webkit-appearance: textfield; /* 1 */
357
+ outline-offset: -2px; /* 2 */
358
+ }
359
+
360
+ /*
361
+ Remove the inner padding in Chrome and Safari on macOS.
362
+ */
363
+
364
+ ::-webkit-search-decoration {
365
+ -webkit-appearance: none;
366
+ }
367
+
368
+ /*
369
+ 1. Correct the inability to style clickable types in iOS and Safari.
370
+ 2. Change font properties to `inherit` in Safari.
371
+ */
372
+
373
+ ::-webkit-file-upload-button {
374
+ -webkit-appearance: button; /* 1 */
375
+ font: inherit; /* 2 */
376
+ }
377
+
378
+ /*
379
+ Add the correct display in Chrome and Safari.
380
+ */
381
+
382
+ summary {
383
+ display: list-item;
384
+ }
385
+
386
+ /*
387
+ Removes the default spacing and border for appropriate elements.
388
+ */
389
+
390
+ blockquote,
391
+ dl,
392
+ dd,
393
+ h1,
394
+ h2,
395
+ h3,
396
+ h4,
397
+ h5,
398
+ h6,
399
+ hr,
400
+ figure,
401
+ p,
402
+ pre {
403
+ margin: 0;
404
+ }
405
+
406
+ fieldset {
407
+ margin: 0;
408
+ padding: 0;
409
+ }
410
+
411
+ legend {
412
+ padding: 0;
413
+ }
414
+
415
+ ol,
416
+ ul,
417
+ menu {
418
+ list-style: none;
419
+ margin: 0;
420
+ padding: 0;
421
+ }
422
+
423
+ /*
424
+ Reset default styling for dialogs.
425
+ */
426
+ dialog {
427
+ padding: 0;
428
+ }
429
+
430
+ /*
431
+ Prevent resizing textareas horizontally by default.
432
+ */
433
+
434
+ textarea {
435
+ resize: vertical;
436
+ }
437
+
438
+ /*
439
+ 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
440
+ 2. Set the default placeholder color to the user's configured gray 400 color.
441
+ */
442
+
443
+ input::-moz-placeholder, textarea::-moz-placeholder {
444
+ opacity: 1; /* 1 */
445
+ color: #9ca3af; /* 2 */
446
+ }
447
+
448
+ input::placeholder,
449
+ textarea::placeholder {
450
+ opacity: 1; /* 1 */
451
+ color: #9ca3af; /* 2 */
452
+ }
453
+
454
+ /*
455
+ Set the default cursor for buttons.
456
+ */
457
+
458
+ button,
459
+ [role="button"] {
460
+ cursor: pointer;
461
+ }
462
+
463
+ /*
464
+ Make sure disabled buttons don't get the pointer cursor.
465
+ */
466
+ :disabled {
467
+ cursor: default;
468
+ }
469
+
470
+ /*
471
+ 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
472
+ 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
473
+ This can trigger a poorly considered lint error in some tools but is included by design.
474
+ */
475
+
476
+ img,
477
+ svg,
478
+ video,
479
+ canvas,
480
+ audio,
481
+ iframe,
482
+ embed,
483
+ object {
484
+ display: block; /* 1 */
485
+ vertical-align: middle; /* 2 */
486
+ }
487
+
488
+ /*
489
+ Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
490
+ */
491
+
492
+ img,
493
+ video {
494
+ max-width: 100%;
495
+ height: auto;
496
+ }
497
+
498
+ /* Make elements with the HTML hidden attribute stay hidden by default */
499
+ [hidden]:where(:not([hidden="until-found"])) {
500
+ display: none;
501
+ }
502
+ .container {
503
+ width: 100%;
504
+ }
505
+ @media (min-width: 640px) {
506
+
507
+ .container {
508
+ max-width: 640px;
509
+ }
510
+ }
511
+ @media (min-width: 768px) {
512
+
513
+ .container {
514
+ max-width: 768px;
515
+ }
516
+ }
517
+ @media (min-width: 1024px) {
518
+
519
+ .container {
520
+ max-width: 1024px;
521
+ }
522
+ }
523
+ @media (min-width: 1280px) {
524
+
525
+ .container {
526
+ max-width: 1280px;
527
+ }
528
+ }
529
+ @media (min-width: 1536px) {
530
+
531
+ .container {
532
+ max-width: 1536px;
533
+ }
534
+ }
535
+ .absolute {
536
+ position: absolute;
537
+ }
538
+ .relative {
539
+ position: relative;
540
+ }
541
+ .inset-y-0 {
542
+ top: 0px;
543
+ bottom: 0px;
544
+ }
545
+ .-left-3\/4 {
546
+ left: -75%;
547
+ }
548
+ .right-0 {
549
+ right: 0px;
550
+ }
551
+ .z-10 {
552
+ z-index: 10;
553
+ }
554
+ .z-30 {
555
+ z-index: 30;
556
+ }
557
+ .\!m-0 {
558
+ margin: 0px !important;
559
+ }
560
+ .mx-2 {
561
+ margin-left: 0.5rem;
562
+ margin-right: 0.5rem;
563
+ }
564
+ .my-2 {
565
+ margin-top: 0.5rem;
566
+ margin-bottom: 0.5rem;
567
+ }
568
+ .\!mt-0 {
569
+ margin-top: 0px !important;
570
+ }
571
+ .\!mt-1 {
572
+ margin-top: 0.25rem !important;
573
+ }
574
+ .block {
575
+ display: block;
576
+ }
577
+ .inline-block {
578
+ display: inline-block;
579
+ }
580
+ .flex {
581
+ display: flex;
582
+ }
583
+ .inline-flex {
584
+ display: inline-flex;
585
+ }
586
+ .table {
587
+ display: table;
588
+ }
589
+ .grid {
590
+ display: grid;
591
+ }
592
+ .hidden {
593
+ display: none;
594
+ }
595
+ .\!h-\[34px\] {
596
+ height: 34px !important;
597
+ }
598
+ .h-1 {
599
+ height: 0.25rem;
600
+ }
601
+ .h-8 {
602
+ height: 2rem;
603
+ }
604
+ .h-screen {
605
+ height: 100vh;
606
+ }
607
+ .\!min-h-\[24px\] {
608
+ min-height: 24px !important;
609
+ }
610
+ .\!w-40 {
611
+ width: 10rem !important;
612
+ }
613
+ .\!w-96 {
614
+ width: 24rem !important;
615
+ }
616
+ .\!w-\[450px\] {
617
+ width: 450px !important;
618
+ }
619
+ .w-40 {
620
+ width: 10rem;
621
+ }
622
+ .w-48 {
623
+ width: 12rem;
624
+ }
625
+ .w-5 {
626
+ width: 1.25rem;
627
+ }
628
+ .w-56 {
629
+ width: 14rem;
630
+ }
631
+ .w-60 {
632
+ width: 15rem;
633
+ }
634
+ .w-64 {
635
+ width: 16rem;
636
+ }
637
+ .w-80 {
638
+ width: 20rem;
639
+ }
640
+ .w-\[200px\] {
641
+ width: 200px;
642
+ }
643
+ .w-full {
644
+ width: 100%;
645
+ }
646
+ .max-w-screen-xl {
647
+ max-width: 1280px;
648
+ }
649
+ .flex-1 {
650
+ flex: 1 1 0%;
651
+ }
652
+ .flex-shrink-0 {
653
+ flex-shrink: 0;
654
+ }
655
+ .\!cursor-pointer {
656
+ cursor: pointer !important;
657
+ }
658
+ .cursor-not-allowed {
659
+ cursor: not-allowed;
660
+ }
661
+ .cursor-pointer {
662
+ cursor: pointer;
663
+ }
664
+ .select-none {
665
+ -webkit-user-select: none;
666
+ -moz-user-select: none;
667
+ user-select: none;
668
+ }
669
+ .flex-row {
670
+ flex-direction: row;
671
+ }
672
+ .flex-col {
673
+ flex-direction: column;
674
+ }
675
+ .items-center {
676
+ align-items: center;
677
+ }
678
+ .justify-start {
679
+ justify-content: flex-start;
680
+ }
681
+ .justify-end {
682
+ justify-content: flex-end;
683
+ }
684
+ .justify-center {
685
+ justify-content: center;
686
+ }
687
+ .gap-0\.5 {
688
+ gap: 0.125rem;
689
+ }
690
+ .gap-1 {
691
+ gap: 0.25rem;
692
+ }
693
+ .gap-2 {
694
+ gap: 0.5rem;
695
+ }
696
+ .gap-3 {
697
+ gap: 0.75rem;
698
+ }
699
+ .gap-4 {
700
+ gap: 1rem;
701
+ }
702
+ .space-x-1 > :not([hidden]) ~ :not([hidden]) {
703
+ --tw-space-x-reverse: 0;
704
+ margin-right: calc(0.25rem * var(--tw-space-x-reverse));
705
+ margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
706
+ }
707
+ .overflow-hidden {
708
+ overflow: hidden;
709
+ }
710
+ .overflow-y-auto {
711
+ overflow-y: auto;
712
+ }
713
+ .\!rounded {
714
+ border-radius: 0.25rem !important;
715
+ }
716
+ .\!rounded-md {
717
+ border-radius: 0.375rem !important;
718
+ }
719
+ .rounded {
720
+ border-radius: 0.25rem;
721
+ }
722
+ .rounded-full {
723
+ border-radius: 9999px;
724
+ }
725
+ .rounded-lg {
726
+ border-radius: 0.5rem;
727
+ }
728
+ .rounded-md {
729
+ border-radius: 0.375rem;
730
+ }
731
+ .rounded-sm {
732
+ border-radius: 0.125rem;
733
+ }
734
+ .\!border {
735
+ border-width: 1px !important;
736
+ }
737
+ .border {
738
+ border-width: 1px;
739
+ }
740
+ .border-b {
741
+ border-bottom-width: 1px;
742
+ }
743
+ .border-r {
744
+ border-right-width: 1px;
745
+ }
746
+ .border-t {
747
+ border-top-width: 1px;
748
+ }
749
+ .\!border-localtower-300 {
750
+ --tw-border-opacity: 1 !important;
751
+ border-color: rgb(184 184 184 / var(--tw-border-opacity)) !important;
752
+ }
753
+ .\!border-localtower-500 {
754
+ --tw-border-opacity: 1 !important;
755
+ border-color: rgb(49 49 49 / var(--tw-border-opacity)) !important;
756
+ }
757
+ .border-green-700 {
758
+ --tw-border-opacity: 1;
759
+ border-color: rgb(21 128 61 / var(--tw-border-opacity));
760
+ }
761
+ .border-localtower-500 {
762
+ --tw-border-opacity: 1;
763
+ border-color: rgb(49 49 49 / var(--tw-border-opacity));
764
+ }
765
+ .border-localtower-600 {
766
+ --tw-border-opacity: 1;
767
+ border-color: rgb(28 28 28 / var(--tw-border-opacity));
768
+ }
769
+ .border-red-500 {
770
+ --tw-border-opacity: 1;
771
+ border-color: rgb(239 68 68 / var(--tw-border-opacity));
772
+ }
773
+ .\!bg-localtower-500 {
774
+ --tw-bg-opacity: 1 !important;
775
+ background-color: rgb(49 49 49 / var(--tw-bg-opacity)) !important;
776
+ }
777
+ .\!bg-localtower-600 {
778
+ --tw-bg-opacity: 1 !important;
779
+ background-color: rgb(28 28 28 / var(--tw-bg-opacity)) !important;
780
+ }
781
+ .\!bg-localtower-900 {
782
+ --tw-bg-opacity: 1 !important;
783
+ background-color: rgb(8 8 8 / var(--tw-bg-opacity)) !important;
784
+ }
785
+ .bg-green-800 {
786
+ --tw-bg-opacity: 1;
787
+ background-color: rgb(22 101 52 / var(--tw-bg-opacity));
788
+ }
789
+ .bg-localtower-300 {
790
+ --tw-bg-opacity: 1;
791
+ background-color: rgb(184 184 184 / var(--tw-bg-opacity));
792
+ }
793
+ .bg-localtower-500 {
794
+ --tw-bg-opacity: 1;
795
+ background-color: rgb(49 49 49 / var(--tw-bg-opacity));
796
+ }
797
+ .bg-localtower-600 {
798
+ --tw-bg-opacity: 1;
799
+ background-color: rgb(28 28 28 / var(--tw-bg-opacity));
800
+ }
801
+ .bg-localtower-700 {
802
+ --tw-bg-opacity: 1;
803
+ background-color: rgb(23 23 23 / var(--tw-bg-opacity));
804
+ }
805
+ .bg-localtower-800 {
806
+ --tw-bg-opacity: 1;
807
+ background-color: rgb(15 15 15 / var(--tw-bg-opacity));
808
+ }
809
+ .bg-orange-700 {
810
+ --tw-bg-opacity: 1;
811
+ background-color: rgb(194 65 12 / var(--tw-bg-opacity));
812
+ }
813
+ .\!p-0 {
814
+ padding: 0px !important;
815
+ }
816
+ .\!p-2 {
817
+ padding: 0.5rem !important;
818
+ }
819
+ .p-1 {
820
+ padding: 0.25rem;
821
+ }
822
+ .p-2 {
823
+ padding: 0.5rem;
824
+ }
825
+ .p-8 {
826
+ padding: 2rem;
827
+ }
828
+ .\!px-2\.5 {
829
+ padding-left: 0.625rem !important;
830
+ padding-right: 0.625rem !important;
831
+ }
832
+ .\!py-1\.5 {
833
+ padding-top: 0.375rem !important;
834
+ padding-bottom: 0.375rem !important;
835
+ }
836
+ .px-1\.5 {
837
+ padding-left: 0.375rem;
838
+ padding-right: 0.375rem;
839
+ }
840
+ .px-2 {
841
+ padding-left: 0.5rem;
842
+ padding-right: 0.5rem;
843
+ }
844
+ .px-3 {
845
+ padding-left: 0.75rem;
846
+ padding-right: 0.75rem;
847
+ }
848
+ .px-4 {
849
+ padding-left: 1rem;
850
+ padding-right: 1rem;
851
+ }
852
+ .py-0\.5 {
853
+ padding-top: 0.125rem;
854
+ padding-bottom: 0.125rem;
855
+ }
856
+ .py-1 {
857
+ padding-top: 0.25rem;
858
+ padding-bottom: 0.25rem;
859
+ }
860
+ .py-1\.5 {
861
+ padding-top: 0.375rem;
862
+ padding-bottom: 0.375rem;
863
+ }
864
+ .py-10 {
865
+ padding-top: 2.5rem;
866
+ padding-bottom: 2.5rem;
867
+ }
868
+ .py-2 {
869
+ padding-top: 0.5rem;
870
+ padding-bottom: 0.5rem;
871
+ }
872
+ .py-2\.5 {
873
+ padding-top: 0.625rem;
874
+ padding-bottom: 0.625rem;
875
+ }
876
+ .py-3 {
877
+ padding-top: 0.75rem;
878
+ padding-bottom: 0.75rem;
879
+ }
880
+ .py-4 {
881
+ padding-top: 1rem;
882
+ padding-bottom: 1rem;
883
+ }
884
+ .pb-0\.5 {
885
+ padding-bottom: 0.125rem;
886
+ }
887
+ .pb-10 {
888
+ padding-bottom: 2.5rem;
889
+ }
890
+ .pb-2 {
891
+ padding-bottom: 0.5rem;
892
+ }
893
+ .pb-4 {
894
+ padding-bottom: 1rem;
895
+ }
896
+ .pl-3 {
897
+ padding-left: 0.75rem;
898
+ }
899
+ .pr-1 {
900
+ padding-right: 0.25rem;
901
+ }
902
+ .pr-2\.5 {
903
+ padding-right: 0.625rem;
904
+ }
905
+ .pr-3 {
906
+ padding-right: 0.75rem;
907
+ }
908
+ .pr-8 {
909
+ padding-right: 2rem;
910
+ }
911
+ .align-middle {
912
+ vertical-align: middle;
913
+ }
914
+ .font-mono {
915
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
916
+ }
917
+ .font-sans {
918
+ font-family: Circular, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
919
+ }
920
+ .text-sm {
921
+ font-size: 0.875rem;
922
+ line-height: 1.25rem;
923
+ }
924
+ .text-xs {
925
+ font-size: 0.75rem;
926
+ line-height: 1rem;
927
+ }
928
+ .font-bold {
929
+ font-weight: 700;
930
+ }
931
+ .font-medium {
932
+ font-weight: 500;
933
+ }
934
+ .uppercase {
935
+ text-transform: uppercase;
936
+ }
937
+ .\!text-blue-200 {
938
+ --tw-text-opacity: 1 !important;
939
+ color: rgb(191 219 254 / var(--tw-text-opacity)) !important;
940
+ }
941
+ .\!text-gray-400 {
942
+ --tw-text-opacity: 1 !important;
943
+ color: rgb(156 163 175 / var(--tw-text-opacity)) !important;
944
+ }
945
+ .\!text-gray-500 {
946
+ --tw-text-opacity: 1 !important;
947
+ color: rgb(107 114 128 / var(--tw-text-opacity)) !important;
948
+ }
949
+ .\!text-localtower-100 {
950
+ --tw-text-opacity: 1 !important;
951
+ color: rgb(235 235 235 / var(--tw-text-opacity)) !important;
952
+ }
953
+ .\!text-white {
954
+ --tw-text-opacity: 1 !important;
955
+ color: rgb(255 255 255 / var(--tw-text-opacity)) !important;
956
+ }
957
+ .text-gray-400 {
958
+ --tw-text-opacity: 1;
959
+ color: rgb(156 163 175 / var(--tw-text-opacity));
960
+ }
961
+ .text-localtower-100 {
962
+ --tw-text-opacity: 1;
963
+ color: rgb(235 235 235 / var(--tw-text-opacity));
964
+ }
965
+ .text-localtower-200 {
966
+ --tw-text-opacity: 1;
967
+ color: rgb(214 214 214 / var(--tw-text-opacity));
968
+ }
969
+ .text-localtower-300 {
970
+ --tw-text-opacity: 1;
971
+ color: rgb(184 184 184 / var(--tw-text-opacity));
972
+ }
973
+ .text-localtower-400 {
974
+ --tw-text-opacity: 1;
975
+ color: rgb(144 144 144 / var(--tw-text-opacity));
976
+ }
977
+ .text-localtower-450 {
978
+ --tw-text-opacity: 1;
979
+ color: rgb(110 110 110 / var(--tw-text-opacity));
980
+ }
981
+ .text-localtower-50 {
982
+ --tw-text-opacity: 1;
983
+ color: rgb(249 249 249 / var(--tw-text-opacity));
984
+ }
985
+ .text-localtower-700 {
986
+ --tw-text-opacity: 1;
987
+ color: rgb(23 23 23 / var(--tw-text-opacity));
988
+ }
989
+ .text-red-500 {
990
+ --tw-text-opacity: 1;
991
+ color: rgb(239 68 68 / var(--tw-text-opacity));
992
+ }
993
+ .opacity-50 {
994
+ opacity: 0.5;
995
+ }
996
+ .\!shadow-none {
997
+ --tw-shadow: 0 0 #0000 !important;
998
+ --tw-shadow-colored: 0 0 #0000 !important;
999
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
1000
+ }
1001
+ .shadow-lg {
1002
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1003
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
1004
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1005
+ }
1006
+ .\!outline-none {
1007
+ outline: 2px solid transparent !important;
1008
+ outline-offset: 2px !important;
1009
+ }
1010
+ .outline-none {
1011
+ outline: 2px solid transparent;
1012
+ outline-offset: 2px;
1013
+ }
1014
+ .filter {
1015
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1016
+ }
1017
+ .\!transition-colors {
1018
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke !important;
1019
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
1020
+ transition-duration: 150ms !important;
1021
+ }
1022
+ .transition-all {
1023
+ transition-property: all;
1024
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1025
+ transition-duration: 150ms;
1026
+ }
1027
+ .transition-colors {
1028
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
1029
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1030
+ transition-duration: 150ms;
1031
+ }
1032
+ .duration-200 {
1033
+ transition-duration: 200ms;
1034
+ }
1035
+ th {
1036
+ font-weight: 400;
1037
+ text-align: left;
1038
+ }
1039
+ .text-xss {
1040
+ font-size: 0.6rem;
1041
+ line-height: 0.9rem;
1042
+ }
1043
+ input[type="checkbox"] {
1044
+ -webkit-appearance: none;
1045
+ -moz-appearance: none;
1046
+ appearance: none;
1047
+ background-color: #000;
1048
+ margin: 0;
1049
+ font: inherit;
1050
+ color: currentColor;
1051
+ width: 1.2em;
1052
+ height: 1.2em;
1053
+ border: 0.1em solid currentColor;
1054
+ border-radius: 0.15em;
1055
+ transform: translateY(-0.075em);
1056
+ display: grid;
1057
+ place-content: center;
1058
+ cursor: pointer;
1059
+ }
1060
+ input[type="checkbox"]:active {
1061
+ opacity: 0.6;
1062
+ }
1063
+ input[type="checkbox"]::before {
1064
+ content: "";
1065
+ width: 0.65em;
1066
+ height: 0.65em;
1067
+ transform: scale(0);
1068
+ transition: 120ms transform ease-in-out;
1069
+ box-shadow: inset 1em 1em rgb(19, 187, 59);
1070
+
1071
+ transform-origin: bottom left;
1072
+ clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
1073
+ }
1074
+ input[type="checkbox"]:checked::before {
1075
+ transform: scale(1);
1076
+ }
1077
+ /*---------------*/
1078
+ .full-message {
1079
+ z-index: 999;
1080
+ position: fixed;
1081
+ background: rgba(0,0,0,0.9);
1082
+ top: 0;
1083
+ right: 0;
1084
+ bottom: 0;
1085
+ left: 0;
1086
+
1087
+ color: #fff;
1088
+ }
1089
+ .grid-sizer, .grid-item {
1090
+ box-sizing: border-box;
1091
+ width: 45%;
1092
+ margin: 2%;
1093
+ }
1094
+ .placeholder\:italic::-moz-placeholder {
1095
+ font-style: italic;
1096
+ }
1097
+ .placeholder\:italic::placeholder {
1098
+ font-style: italic;
1099
+ }
1100
+ .placeholder\:text-localtower-450::-moz-placeholder {
1101
+ --tw-text-opacity: 1;
1102
+ color: rgb(110 110 110 / var(--tw-text-opacity));
1103
+ }
1104
+ .placeholder\:text-localtower-450::placeholder {
1105
+ --tw-text-opacity: 1;
1106
+ color: rgb(110 110 110 / var(--tw-text-opacity));
1107
+ }
1108
+ .hover\:\!border-localtower-300:hover {
1109
+ --tw-border-opacity: 1 !important;
1110
+ border-color: rgb(184 184 184 / var(--tw-border-opacity)) !important;
1111
+ }
1112
+ .hover\:border-green-500:hover {
1113
+ --tw-border-opacity: 1;
1114
+ border-color: rgb(34 197 94 / var(--tw-border-opacity));
1115
+ }
1116
+ .hover\:border-localtower-450:hover {
1117
+ --tw-border-opacity: 1;
1118
+ border-color: rgb(110 110 110 / var(--tw-border-opacity));
1119
+ }
1120
+ .hover\:border-red-300:hover {
1121
+ --tw-border-opacity: 1;
1122
+ border-color: rgb(252 165 165 / var(--tw-border-opacity));
1123
+ }
1124
+ .hover\:\!bg-localtower-900:hover {
1125
+ --tw-bg-opacity: 1 !important;
1126
+ background-color: rgb(8 8 8 / var(--tw-bg-opacity)) !important;
1127
+ }
1128
+ .hover\:bg-green-700:hover {
1129
+ --tw-bg-opacity: 1;
1130
+ background-color: rgb(21 128 61 / var(--tw-bg-opacity));
1131
+ }
1132
+ .hover\:bg-localtower-500:hover {
1133
+ --tw-bg-opacity: 1;
1134
+ background-color: rgb(49 49 49 / var(--tw-bg-opacity));
1135
+ }
1136
+ .hover\:bg-localtower-600:hover {
1137
+ --tw-bg-opacity: 1;
1138
+ background-color: rgb(28 28 28 / var(--tw-bg-opacity));
1139
+ }
1140
+ .hover\:bg-localtower-900:hover {
1141
+ --tw-bg-opacity: 1;
1142
+ background-color: rgb(8 8 8 / var(--tw-bg-opacity));
1143
+ }
1144
+ .hover\:\!text-gray-300:hover {
1145
+ --tw-text-opacity: 1 !important;
1146
+ color: rgb(209 213 219 / var(--tw-text-opacity)) !important;
1147
+ }
1148
+ .hover\:\!text-white:hover {
1149
+ --tw-text-opacity: 1 !important;
1150
+ color: rgb(255 255 255 / var(--tw-text-opacity)) !important;
1151
+ }
1152
+ .hover\:text-white:hover {
1153
+ --tw-text-opacity: 1;
1154
+ color: rgb(255 255 255 / var(--tw-text-opacity));
1155
+ }
1156
+ .focus\:border-localtower-400:focus {
1157
+ --tw-border-opacity: 1;
1158
+ border-color: rgb(144 144 144 / var(--tw-border-opacity));
1159
+ }
1160
+ .focus\:placeholder\:text-localtower-600:focus::-moz-placeholder {
1161
+ --tw-text-opacity: 1;
1162
+ color: rgb(28 28 28 / var(--tw-text-opacity));
1163
+ }
1164
+ .focus\:placeholder\:text-localtower-600:focus::placeholder {
1165
+ --tw-text-opacity: 1;
1166
+ color: rgb(28 28 28 / var(--tw-text-opacity));
1167
+ }
1168
+ .active\:opacity-60:active {
1169
+ opacity: 0.6;
1170
+ }
1171
+ .active\:opacity-70:active {
1172
+ opacity: 0.7;
1173
+ }
1174
+ .disabled\:cursor-not-allowed:disabled {
1175
+ cursor: not-allowed;
1176
+ }
1177
+ .disabled\:opacity-60:disabled {
1178
+ opacity: 0.6;
1179
+ }