hyrax 5.2.0 → 5.3.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 (527) hide show
  1. checksums.yaml +4 -4
  2. data/.dassie/.env +5 -1
  3. data/.dassie/Gemfile +4 -2
  4. data/.dassie/app/assets/images/bulkrax/removed.png +0 -0
  5. data/.dassie/app/assets/javascripts/application.js +2 -0
  6. data/.dassie/app/assets/stylesheets/application.css +1 -0
  7. data/.dassie/app/controllers/catalog_controller.rb +1 -0
  8. data/.dassie/app/forms/admin_set_resource_form.rb +6 -0
  9. data/.dassie/app/forms/collection_resource_form.rb +5 -2
  10. data/.dassie/app/forms/generic_work_resource_form.rb +5 -2
  11. data/.dassie/app/forms/monograph_form.rb +5 -3
  12. data/.dassie/app/indexers/admin_set_resource_indexer.rb +5 -0
  13. data/.dassie/app/indexers/collection_resource_indexer.rb +3 -3
  14. data/.dassie/app/indexers/generic_work_resource_indexer.rb +6 -3
  15. data/.dassie/app/indexers/monograph_indexer.rb +6 -2
  16. data/.dassie/app/models/ability.rb +8 -0
  17. data/.dassie/app/models/collection_resource.rb +4 -2
  18. data/.dassie/app/models/concerns/bulkrax/has_local_processing.rb +8 -0
  19. data/.dassie/app/models/generic_work_resource.rb +5 -2
  20. data/.dassie/app/models/monograph.rb +5 -2
  21. data/.dassie/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
  22. data/.dassie/bin/importer +142 -0
  23. data/.dassie/bin/web +4 -0
  24. data/.dassie/config/browse_everything_providers.yml +1 -1
  25. data/.dassie/config/bulkrax_api.yml +86 -0
  26. data/.dassie/config/initializers/bulkrax.rb +92 -0
  27. data/.dassie/config/initializers/clamav.rb +2 -0
  28. data/.dassie/config/initializers/hyrax.rb +7 -1
  29. data/.dassie/config/initializers/riiif.rb +4 -80
  30. data/.dassie/config/initializers/wings.rb +1 -1
  31. data/.dassie/config/metadata_profiles/m3_profile.yaml +929 -0
  32. data/.dassie/config/puma.rb +4 -2
  33. data/.dassie/config/routes.rb +7 -0
  34. data/.dassie/config/sidekiq.yml +17 -0
  35. data/.dassie/config/uv/uv.html +63 -81
  36. data/.dassie/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb +9 -0
  37. data/.dassie/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb +5 -0
  38. data/.dassie/db/migrate/20250826142438_create_bulkrax_importers.bulkrax.rb +19 -0
  39. data/.dassie/db/migrate/20250826142439_create_bulkrax_importer_runs.bulkrax.rb +17 -0
  40. data/.dassie/db/migrate/20250826142440_create_bulkrax_entries.bulkrax.rb +17 -0
  41. data/.dassie/db/migrate/20250826142441_add_status_to_entry.bulkrax.rb +10 -0
  42. data/.dassie/db/migrate/20250826142442_add_collections_to_importer_runs.bulkrax.rb +7 -0
  43. data/.dassie/db/migrate/20250826142443_change_collection_ids_on_entries.bulkrax.rb +6 -0
  44. data/.dassie/db/migrate/20250826142444_create_bulkrax_exporters.bulkrax.rb +20 -0
  45. data/.dassie/db/migrate/20250826142445_create_bulkrax_exporter_runs.bulkrax.rb +15 -0
  46. data/.dassie/db/migrate/20250826142446_change_importer_and_exporter_to_polymorphic.bulkrax.rb +19 -0
  47. data/.dassie/db/migrate/20250826142447_add_total_collection_records_to_importer_runs.bulkrax.rb +6 -0
  48. data/.dassie/db/migrate/20250826142448_add_children_to_importer_runs.bulkrax.rb +7 -0
  49. data/.dassie/db/migrate/20250826142449_change_total_records_to_total_work_entries.bulkrax.rb +7 -0
  50. data/.dassie/db/migrate/20250826142450_change_entry_last_error.bulkrax.rb +20 -0
  51. data/.dassie/db/migrate/20250826142451_add_validate_only_to_bulkrax_importers.bulkrax.rb +6 -0
  52. data/.dassie/db/migrate/20250826142452_add_status_to_importers.bulkrax.rb +10 -0
  53. data/.dassie/db/migrate/20250826142453_remove_foreign_key_from_bulkrax_entries.bulkrax.rb +6 -0
  54. data/.dassie/db/migrate/20250826142454_add_status_to_exporters.bulkrax.rb +8 -0
  55. data/.dassie/db/migrate/20250826142455_add_invalid_record_to_importer_run.bulkrax.rb +6 -0
  56. data/.dassie/db/migrate/20250826142456_create_bulkrax_statuses.bulkrax.rb +19 -0
  57. data/.dassie/db/migrate/20250826142457_move_to_statuses.bulkrax.rb +31 -0
  58. data/.dassie/db/migrate/20250826142458_add_date_filter_and_status_to_bulkrax_exporters.bulkrax.rb +8 -0
  59. data/.dassie/db/migrate/20250826142459_add_workflow_status_to_bulkrax_exporter.bulkrax.rb +6 -0
  60. data/.dassie/db/migrate/20250826142460_remove_unused_last_error.bulkrax.rb +8 -0
  61. data/.dassie/db/migrate/20250826142461_increase_text_sizes.bulkrax.rb +13 -0
  62. data/.dassie/db/migrate/20250826142462_change_bulkrax_statuses_error_message_column_type_to_text.bulkrax.rb +6 -0
  63. data/.dassie/db/migrate/20250826142463_rename_children_counters_to_relationships.bulkrax.rb +7 -0
  64. data/.dassie/db/migrate/20250826142464_add_file_set_counters_to_importer_runs.bulkrax.rb +8 -0
  65. data/.dassie/db/migrate/20250826142465_add_import_attempts_to_entries.bulkrax.rb +6 -0
  66. data/.dassie/db/migrate/20250826142466_add_work_counters_to_importer_runs.bulkrax.rb +7 -0
  67. data/.dassie/db/migrate/20250826142467_create_bulkrax_pending_relationships.bulkrax.rb +14 -0
  68. data/.dassie/db/migrate/20250826142468_add_order_to_bulkrax_pending_relationships.bulkrax.rb +6 -0
  69. data/.dassie/db/migrate/20250826142469_add_include_thumbnails_to_bulkrax_exporters.bulkrax.rb +6 -0
  70. data/.dassie/db/migrate/20250826142470_add_generated_metadata_to_bulkrax_exporters.bulkrax.rb +6 -0
  71. data/.dassie/db/migrate/20250826142471_rename_bulkrax_importer_run_to_importer_run.bulkrax.rb +18 -0
  72. data/.dassie/db/migrate/20250826142472_add_indices_to_bulkrax.bulkrax.rb +26 -0
  73. data/.dassie/db/migrate/20250826142473_denormalize_status_message.bulkrax.rb +8 -0
  74. data/.dassie/db/migrate/20250826142474_update_identifier_index.bulkrax.rb +7 -0
  75. data/.dassie/db/migrate/20250826142475_add_index_to_metadata_bulkrax_identifier.bulkrax.rb +19 -0
  76. data/.dassie/db/migrate/20250826142476_add_file_name_to_uploaded_files.bulkrax.rb +6 -0
  77. data/.dassie/db/migrate/20250826142477_add_error_tracking_to_pending_relationships.bulkrax.rb +6 -0
  78. data/.dassie/db/migrate/20250826142478_add_last_imported_at_to_bulkrax_importers.bulkrax.rb +6 -0
  79. data/.dassie/db/migrate/20250826142479_add_next_import_at_to_bulkrax_importers.bulkrax.rb +6 -0
  80. data/.dassie/db/migrate/20250826142480_entry_error_denormalization.bulkrax.rb +8 -0
  81. data/.dassie/db/migrate/20250826142481_faster_first_entry.bulkrax.rb +8 -0
  82. data/.dassie/db/migrate/20260430000001_create_hyrax_redirect_paths.hyrax.rb +13 -0
  83. data/.dassie/db/migrate/20260521003627_add_additional_redirect_info.hyrax.rb +32 -0
  84. data/.dassie/db/schema.rb +154 -1
  85. data/.dassie/package.json +1 -1
  86. data/.dassie/rspec_split_configuration.json +835 -0
  87. data/.dassie/solr/conf/solrconfig.xml +21 -5
  88. data/.github/{ISSUE_TEMPLATE.md → ISSUE_TEMPLATE/issue_template.md} +5 -0
  89. data/.github/workflows/lint-build-test.yml +5 -1
  90. data/.github/workflows/release-charts.yml +48 -0
  91. data/.gitignore +6 -0
  92. data/.koppie/.env +5 -1
  93. data/.koppie/Gemfile +3 -1
  94. data/.koppie/app/assets/images/bulkrax/removed.png +0 -0
  95. data/.koppie/app/assets/javascripts/application.js +2 -0
  96. data/.koppie/app/assets/stylesheets/application.css +1 -0
  97. data/.koppie/app/controllers/catalog_controller.rb +1 -1
  98. data/.koppie/app/forms/collection_resource_form.rb +5 -2
  99. data/.koppie/app/forms/file_set_form.rb +5 -0
  100. data/.koppie/app/forms/generic_work_form.rb +5 -3
  101. data/.koppie/app/forms/monograph_form.rb +5 -3
  102. data/.koppie/app/indexers/collection_resource_indexer.rb +5 -2
  103. data/.koppie/app/indexers/file_set_indexer.rb +7 -0
  104. data/.koppie/app/indexers/generic_work_indexer.rb +6 -3
  105. data/.koppie/app/indexers/monograph_indexer.rb +6 -2
  106. data/.koppie/app/models/ability.rb +8 -0
  107. data/.koppie/app/models/collection_resource.rb +4 -2
  108. data/.koppie/app/models/concerns/bulkrax/has_local_processing.rb +8 -0
  109. data/.koppie/app/models/generic_work.rb +5 -2
  110. data/.koppie/app/models/monograph.rb +5 -2
  111. data/.koppie/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
  112. data/.koppie/bin/importer +142 -0
  113. data/.koppie/bin/web +4 -0
  114. data/.koppie/config/browse_everything_providers.yml +2 -0
  115. data/.koppie/config/bulkrax_api.yml +86 -0
  116. data/.koppie/config/initializers/bulkrax.rb +92 -0
  117. data/.koppie/config/initializers/clamav.rb +2 -0
  118. data/.koppie/config/initializers/hyrax.rb +11 -3
  119. data/.koppie/config/initializers/riiif.rb +4 -82
  120. data/.koppie/config/metadata_profiles/m3_profile.yaml +930 -0
  121. data/.koppie/config/routes.rb +7 -0
  122. data/.koppie/config/sidekiq.yml +2 -0
  123. data/.koppie/config/uv/uv.html +63 -81
  124. data/.koppie/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb +9 -0
  125. data/.koppie/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb +5 -0
  126. data/.koppie/db/migrate/20250826142438_create_bulkrax_importers.bulkrax.rb +19 -0
  127. data/.koppie/db/migrate/20250826142439_create_bulkrax_importer_runs.bulkrax.rb +17 -0
  128. data/.koppie/db/migrate/20250826142440_create_bulkrax_entries.bulkrax.rb +17 -0
  129. data/.koppie/db/migrate/20250826142441_add_status_to_entry.bulkrax.rb +10 -0
  130. data/.koppie/db/migrate/20250826142442_add_collections_to_importer_runs.bulkrax.rb +7 -0
  131. data/.koppie/db/migrate/20250826142443_change_collection_ids_on_entries.bulkrax.rb +6 -0
  132. data/.koppie/db/migrate/20250826142444_create_bulkrax_exporters.bulkrax.rb +20 -0
  133. data/.koppie/db/migrate/20250826142445_create_bulkrax_exporter_runs.bulkrax.rb +15 -0
  134. data/.koppie/db/migrate/20250826142446_change_importer_and_exporter_to_polymorphic.bulkrax.rb +19 -0
  135. data/.koppie/db/migrate/20250826142447_add_total_collection_records_to_importer_runs.bulkrax.rb +6 -0
  136. data/.koppie/db/migrate/20250826142448_add_children_to_importer_runs.bulkrax.rb +7 -0
  137. data/.koppie/db/migrate/20250826142449_change_total_records_to_total_work_entries.bulkrax.rb +7 -0
  138. data/.koppie/db/migrate/20250826142450_change_entry_last_error.bulkrax.rb +20 -0
  139. data/.koppie/db/migrate/20250826142451_add_validate_only_to_bulkrax_importers.bulkrax.rb +6 -0
  140. data/.koppie/db/migrate/20250826142452_add_status_to_importers.bulkrax.rb +10 -0
  141. data/.koppie/db/migrate/20250826142453_remove_foreign_key_from_bulkrax_entries.bulkrax.rb +6 -0
  142. data/.koppie/db/migrate/20250826142454_add_status_to_exporters.bulkrax.rb +8 -0
  143. data/.koppie/db/migrate/20250826142455_add_invalid_record_to_importer_run.bulkrax.rb +6 -0
  144. data/.koppie/db/migrate/20250826142456_create_bulkrax_statuses.bulkrax.rb +19 -0
  145. data/.koppie/db/migrate/20250826142457_move_to_statuses.bulkrax.rb +31 -0
  146. data/.koppie/db/migrate/20250826142458_add_date_filter_and_status_to_bulkrax_exporters.bulkrax.rb +8 -0
  147. data/.koppie/db/migrate/20250826142459_add_workflow_status_to_bulkrax_exporter.bulkrax.rb +6 -0
  148. data/.koppie/db/migrate/20250826142460_remove_unused_last_error.bulkrax.rb +8 -0
  149. data/.koppie/db/migrate/20250826142461_increase_text_sizes.bulkrax.rb +13 -0
  150. data/.koppie/db/migrate/20250826142462_change_bulkrax_statuses_error_message_column_type_to_text.bulkrax.rb +6 -0
  151. data/.koppie/db/migrate/20250826142463_rename_children_counters_to_relationships.bulkrax.rb +7 -0
  152. data/.koppie/db/migrate/20250826142464_add_file_set_counters_to_importer_runs.bulkrax.rb +8 -0
  153. data/.koppie/db/migrate/20250826142465_add_import_attempts_to_entries.bulkrax.rb +6 -0
  154. data/.koppie/db/migrate/20250826142466_add_work_counters_to_importer_runs.bulkrax.rb +7 -0
  155. data/.koppie/db/migrate/20250826142467_create_bulkrax_pending_relationships.bulkrax.rb +14 -0
  156. data/.koppie/db/migrate/20250826142468_add_order_to_bulkrax_pending_relationships.bulkrax.rb +6 -0
  157. data/.koppie/db/migrate/20250826142469_add_include_thumbnails_to_bulkrax_exporters.bulkrax.rb +6 -0
  158. data/.koppie/db/migrate/20250826142470_add_generated_metadata_to_bulkrax_exporters.bulkrax.rb +6 -0
  159. data/.koppie/db/migrate/20250826142471_rename_bulkrax_importer_run_to_importer_run.bulkrax.rb +18 -0
  160. data/.koppie/db/migrate/20250826142472_add_indices_to_bulkrax.bulkrax.rb +26 -0
  161. data/.koppie/db/migrate/20250826142473_denormalize_status_message.bulkrax.rb +8 -0
  162. data/.koppie/db/migrate/20250826142474_update_identifier_index.bulkrax.rb +7 -0
  163. data/.koppie/db/migrate/20250826142475_add_index_to_metadata_bulkrax_identifier.bulkrax.rb +19 -0
  164. data/.koppie/db/migrate/20250826142476_add_file_name_to_uploaded_files.bulkrax.rb +6 -0
  165. data/.koppie/db/migrate/20250826142477_add_error_tracking_to_pending_relationships.bulkrax.rb +6 -0
  166. data/.koppie/db/migrate/20250826142478_add_last_imported_at_to_bulkrax_importers.bulkrax.rb +6 -0
  167. data/.koppie/db/migrate/20250826142479_add_next_import_at_to_bulkrax_importers.bulkrax.rb +6 -0
  168. data/.koppie/db/migrate/20250826142480_entry_error_denormalization.bulkrax.rb +8 -0
  169. data/.koppie/db/migrate/20250826142481_faster_first_entry.bulkrax.rb +8 -0
  170. data/.koppie/db/migrate/20260430000001_create_hyrax_redirect_paths.hyrax.rb +13 -0
  171. data/.koppie/db/migrate/20260521003627_add_additional_redirect_info.hyrax.rb +32 -0
  172. data/.koppie/db/schema.rb +154 -1
  173. data/.koppie/package.json +1 -1
  174. data/.koppie/rspec_split_configuration.json +835 -0
  175. data/.koppie/solr/conf/solrconfig.xml +0 -5
  176. data/.koppie/yarn.lock +5587 -752
  177. data/.rubocop.yml +1 -0
  178. data/CONTAINERS.md +2 -0
  179. data/Dockerfile +9 -22
  180. data/Gemfile +0 -1
  181. data/Gemfile.allinson +2 -0
  182. data/README.md +1 -2
  183. data/app/actors/hyrax/actors/file_actor.rb +2 -0
  184. data/app/actors/hyrax/actors/file_set_actor.rb +1 -1
  185. data/app/assets/javascripts/hyrax/app.js.erb +143 -10
  186. data/app/assets/javascripts/hyrax/collection_select.js +68 -0
  187. data/app/assets/javascripts/hyrax/copy_permalink_button.js +28 -0
  188. data/app/assets/javascripts/hyrax/redirects.js +45 -0
  189. data/app/assets/javascripts/hyrax/relationships/control.es6 +21 -1
  190. data/app/assets/javascripts/hyrax/select_work_type.es6 +7 -2
  191. data/app/assets/javascripts/hyrax.js +3 -1
  192. data/app/assets/stylesheets/hyrax/_file-show.scss +1 -0
  193. data/app/assets/stylesheets/hyrax/_viewer.scss +8 -0
  194. data/app/assets/stylesheets/hyrax/dashboard.scss +22 -1
  195. data/app/assets/stylesheets/hyrax/sidebar.scss +98 -3
  196. data/app/authorities/qa/authorities/collections.rb +9 -9
  197. data/app/controllers/concerns/hyrax/analytics_error_handling.rb +97 -0
  198. data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +3 -1
  199. data/app/controllers/concerns/hyrax/ensure_migrated_behavior.rb +50 -0
  200. data/app/controllers/concerns/hyrax/flexible_catalog_behavior.rb +206 -0
  201. data/app/controllers/concerns/hyrax/flexible_schema_behavior.rb +17 -0
  202. data/app/controllers/concerns/hyrax/redirect_to_display_url.rb +54 -0
  203. data/app/controllers/concerns/hyrax/works_controller_behavior.rb +52 -10
  204. data/app/controllers/hyrax/admin/admin_sets_controller.rb +21 -13
  205. data/app/controllers/hyrax/admin/analytics/collection_reports_controller.rb +2 -0
  206. data/app/controllers/hyrax/admin/analytics/work_reports_controller.rb +1 -0
  207. data/app/controllers/hyrax/admin/metadata_profiles_controller.rb +66 -0
  208. data/app/controllers/hyrax/batch_uploads_controller.rb +2 -0
  209. data/app/controllers/hyrax/dashboard/collections_controller.rb +27 -6
  210. data/app/controllers/hyrax/dashboard/nest_collections_controller.rb +2 -1
  211. data/app/controllers/hyrax/dashboard_controller.rb +2 -1
  212. data/app/controllers/hyrax/file_sets_controller.rb +19 -1
  213. data/app/controllers/hyrax/homepage_controller.rb +7 -0
  214. data/app/controllers/hyrax/my/works_controller.rb +2 -21
  215. data/app/controllers/hyrax/permissions_controller.rb +4 -2
  216. data/app/controllers/hyrax/redirects_controller.rb +56 -0
  217. data/app/controllers/hyrax/single_use_links_viewer_controller.rb +2 -1
  218. data/app/controllers/hyrax/transcripts_controller.rb +31 -0
  219. data/app/controllers/hyrax/uploads_controller.rb +18 -9
  220. data/app/forms/concerns/hyrax/based_near_field_behavior.rb +77 -0
  221. data/app/forms/concerns/hyrax/flexible_form_behavior.rb +37 -0
  222. data/app/forms/concerns/hyrax/redirects_field_behavior.rb +95 -0
  223. data/app/forms/concerns/hyrax/transcripts_behavior.rb +40 -0
  224. data/app/forms/hyrax/forms/admin_set_form.rb +1 -1
  225. data/app/forms/hyrax/forms/administrative_set_form.rb +3 -0
  226. data/app/forms/hyrax/forms/batch_edit_form.rb +1 -3
  227. data/app/forms/hyrax/forms/batch_upload_form.rb +14 -0
  228. data/app/forms/hyrax/forms/file_set_edit_form.rb +1 -1
  229. data/app/forms/hyrax/forms/file_set_form.rb +6 -7
  230. data/app/forms/hyrax/forms/pcdm_collection_form.rb +17 -5
  231. data/app/forms/hyrax/forms/pcdm_object_form.rb +11 -3
  232. data/app/forms/hyrax/forms/resource_batch_edit_form.rb +8 -22
  233. data/app/forms/hyrax/forms/resource_form.rb +110 -10
  234. data/app/forms/hyrax/forms.rb +1 -0
  235. data/app/helpers/hyrax/attributes_helper.rb +109 -0
  236. data/app/helpers/hyrax/blacklight_override.rb +26 -0
  237. data/app/helpers/hyrax/collections_helper.rb +2 -0
  238. data/app/helpers/hyrax/file_set_form_helper.rb +24 -0
  239. data/app/helpers/hyrax/hyrax_helper_behavior.rb +51 -2
  240. data/app/helpers/hyrax/iiif_helper.rb +11 -1
  241. data/app/helpers/hyrax/permalink_helper.rb +37 -0
  242. data/app/helpers/hyrax/redirects_tab_helper.rb +29 -0
  243. data/app/helpers/hyrax/work_form_helper.rb +9 -5
  244. data/app/helpers/hyrax/works_helper.rb +14 -0
  245. data/app/indexers/concerns/hyrax/workflow_indexer.rb +30 -0
  246. data/app/indexers/hyrax/file_set_indexer.rb +1 -0
  247. data/app/indexers/hyrax/indexers/administrative_set_indexer.rb +2 -1
  248. data/app/indexers/hyrax/indexers/file_set_indexer.rb +6 -2
  249. data/app/indexers/hyrax/indexers/pcdm_collection_indexer.rb +11 -1
  250. data/app/indexers/hyrax/indexers/pcdm_object_indexer.rb +25 -4
  251. data/app/indexers/hyrax/indexers/redirects_indexer.rb +29 -0
  252. data/app/indexers/hyrax/indexers/resource_indexer.rb +4 -0
  253. data/app/indexers/hyrax/indexers.rb +2 -0
  254. data/app/inputs/controlled_vocabulary_input.rb +7 -1
  255. data/app/jobs/content_deposit_error_event_job.rb +14 -0
  256. data/app/jobs/create_work_job.rb +2 -0
  257. data/app/jobs/migrate_files_to_valkyrie_job.rb +7 -1
  258. data/app/models/batch_upload_item.rb +4 -0
  259. data/app/models/concerns/hyrax/ability/flexible_metadata_ability.rb +10 -0
  260. data/app/models/concerns/hyrax/ability.rb +3 -1
  261. data/app/models/concerns/hyrax/collection_behavior.rb +4 -0
  262. data/app/models/concerns/hyrax/file_set/transcripts.rb +16 -0
  263. data/app/models/concerns/hyrax/file_set_behavior.rb +9 -0
  264. data/app/models/concerns/hyrax/flexibility.rb +107 -0
  265. data/app/models/concerns/hyrax/redirects_normalization.rb +38 -0
  266. data/app/models/concerns/hyrax/solr_document/characterization.rb +1 -1
  267. data/app/models/concerns/hyrax/solr_document/metadata.rb +9 -0
  268. data/app/models/concerns/hyrax/solr_document/ordered_members.rb +4 -0
  269. data/app/models/concerns/hyrax/solr_document_behavior.rb +28 -6
  270. data/app/models/concerns/hyrax/suppressible.rb +1 -1
  271. data/app/models/concerns/hyrax/valkyrie_lazy_migration.rb +1 -1
  272. data/app/models/concerns/hyrax/with_embargoes_and_leases.rb +30 -0
  273. data/app/models/concerns/hyrax/work_behavior.rb +8 -0
  274. data/app/models/hyrax/administrative_set.rb +1 -1
  275. data/app/models/hyrax/change_set.rb +3 -1
  276. data/app/models/hyrax/embargo.rb +3 -1
  277. data/app/models/hyrax/file_set.rb +4 -2
  278. data/app/models/hyrax/flexible_schema.rb +219 -0
  279. data/app/models/hyrax/lease.rb +3 -1
  280. data/app/models/hyrax/pcdm_collection.rb +4 -1
  281. data/app/models/hyrax/redirect.rb +64 -0
  282. data/app/models/hyrax/redirect_path.rb +14 -0
  283. data/app/models/hyrax/resource.rb +22 -25
  284. data/app/models/hyrax/riiif/file.rb +43 -0
  285. data/app/models/hyrax/riiif/file_resolver.rb +65 -0
  286. data/app/models/hyrax/uploaded_file.rb +9 -0
  287. data/app/models/hyrax/virus_scanner.rb +16 -3
  288. data/app/models/hyrax/work.rb +4 -1
  289. data/app/models/job_io_wrapper.rb +12 -3
  290. data/app/models/user_mailbox.rb +3 -1
  291. data/app/presenters/hyrax/admin_set_presenter.rb +11 -0
  292. data/app/presenters/hyrax/annotates_content.rb +35 -0
  293. data/app/presenters/hyrax/collection_presenter.rb +5 -1
  294. data/app/presenters/hyrax/displays_content.rb +133 -0
  295. data/app/presenters/hyrax/displays_image.rb +11 -4
  296. data/app/presenters/hyrax/displays_transcripts.rb +59 -0
  297. data/app/presenters/hyrax/file_set_presenter.rb +8 -18
  298. data/app/presenters/hyrax/google_scholar_presenter.rb +39 -0
  299. data/app/presenters/hyrax/iiif_manifest_presenter.rb +22 -4
  300. data/app/presenters/hyrax/missing_method_behavior.rb +15 -0
  301. data/app/presenters/hyrax/pcdm_member_presenter_factory.rb +2 -4
  302. data/app/presenters/hyrax/work_show_presenter.rb +56 -14
  303. data/app/renderers/hyrax/renderers/attribute_renderer.rb +6 -2
  304. data/app/renderers/hyrax/renderers/license_attribute_renderer.rb +10 -10
  305. data/app/renderers/hyrax/renderers/redirects_label_attribute_renderer.rb +25 -0
  306. data/app/renderers/hyrax/renderers/rights_statement_attribute_renderer.rb +10 -11
  307. data/app/search_builders/hyrax/dashboard/nested_collections_search_builder.rb +1 -5
  308. data/app/search_builders/hyrax/filter_by_type.rb +1 -1
  309. data/app/services/hyrax/action/create_valkyrie_work.rb +3 -2
  310. data/app/services/hyrax/authority_rendering_helper.rb +28 -0
  311. data/app/services/hyrax/authority_service.rb +107 -0
  312. data/app/services/hyrax/callbacks.rb +2 -2
  313. data/app/services/hyrax/collections/nested_collection_query_service.rb +9 -3
  314. data/app/services/hyrax/collections_service.rb +17 -0
  315. data/app/services/hyrax/custom_queries/find_by_property_value.rb +89 -0
  316. data/app/services/hyrax/edit_permissions_service.rb +4 -4
  317. data/app/services/hyrax/file_set_type_service.rb +12 -4
  318. data/app/services/hyrax/flexible_schema_validator_service.rb +153 -0
  319. data/app/services/hyrax/flexible_schema_validators/class_validator.rb +123 -0
  320. data/app/services/hyrax/flexible_schema_validators/core_metadata_validator.rb +211 -0
  321. data/app/services/hyrax/flexible_schema_validators/existing_records_validator.rb +83 -0
  322. data/app/services/hyrax/flexible_schema_validators/redirects_validator.rb +116 -0
  323. data/app/services/hyrax/flexible_schema_validators/schema_validator.rb +34 -0
  324. data/app/services/hyrax/flexible_schema_validators/sort_properties_validator.rb +54 -0
  325. data/app/services/hyrax/license_service.rb +1 -1
  326. data/app/services/hyrax/listeners/metadata_index_listener.rb +11 -0
  327. data/app/services/hyrax/m3_profile_editor.rb +32 -0
  328. data/app/services/hyrax/m3_schema_loader.rb +119 -0
  329. data/app/services/hyrax/manifest_builder_service.rb +18 -24
  330. data/app/services/hyrax/permalink_path.rb +25 -0
  331. data/app/services/hyrax/qa_select_service.rb +9 -5
  332. data/app/services/hyrax/redirect_path_normalizer.rb +58 -0
  333. data/app/services/hyrax/redirects_lookup.rb +59 -0
  334. data/app/services/hyrax/resource_permissions_visibility_propagator.rb +54 -0
  335. data/app/services/hyrax/resource_types_service.rb +3 -20
  336. data/app/services/hyrax/rights_statement_service.rb +1 -1
  337. data/app/services/hyrax/schema_loader.rb +205 -0
  338. data/app/services/hyrax/search_service.rb +1 -1
  339. data/app/services/hyrax/simple_schema_loader.rb +28 -127
  340. data/app/services/hyrax/solr_service.rb +39 -2
  341. data/app/services/hyrax/tolerant_select_service.rb +5 -3
  342. data/app/services/hyrax/valkyrie_upload.rb +2 -2
  343. data/app/services/hyrax/visibility_propagator.rb +4 -1
  344. data/app/services/hyrax/work_uploads_handler.rb +17 -9
  345. data/app/services/hyrax/workflow/workflow_factory.rb +5 -4
  346. data/app/services/migrate_resource_service.rb +7 -1
  347. data/app/uploaders/hyrax/uploaded_file_uploader.rb +2 -2
  348. data/app/utils/hyrax/data_destroyers/collection_branding_destroyer.rb +1 -1
  349. data/app/utils/hyrax/required_data_seeder.rb +1 -0
  350. data/app/utils/hyrax/required_data_seeders/collection_type_seeder.rb +1 -1
  351. data/app/utils/hyrax/required_data_seeders/flexible_profile_seeder.rb +28 -0
  352. data/app/validators/hyrax/controlled_vocabulary_validator.rb +64 -0
  353. data/app/validators/hyrax/redirect_validator.rb +128 -0
  354. data/app/views/catalog/_thumbnail_list_default.html.erb +2 -2
  355. data/app/views/collections/edit_fields/_schema_version.html.erb +1 -0
  356. data/app/views/hyrax/admin/admin_sets/_form_metadata.html.erb +24 -2
  357. data/app/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb +1 -1
  358. data/app/views/hyrax/admin/admin_sets/show.html.erb +1 -1
  359. data/app/views/hyrax/admin/analytics/_analytics_error.html.erb +42 -0
  360. data/app/views/hyrax/admin/analytics/collection_reports/index.html.erb +11 -9
  361. data/app/views/hyrax/admin/analytics/work_reports/index.html.erb +60 -57
  362. data/app/views/hyrax/admin/features/index.html.erb +1 -1
  363. data/app/views/hyrax/admin/metadata_profiles/_import_modal.html.erb +20 -0
  364. data/app/views/hyrax/admin/metadata_profiles/index.html.erb +54 -0
  365. data/app/views/hyrax/base/_attribute_rows.html.erb +4 -21
  366. data/app/views/hyrax/base/_citations.html.erb +1 -0
  367. data/app/views/hyrax/base/_currently_shared.html.erb +2 -1
  368. data/app/views/hyrax/base/_file_manager_thumbnail.html.erb +1 -1
  369. data/app/views/hyrax/base/_form_member_of_collections.html.erb +6 -6
  370. data/app/views/hyrax/base/_form_redirects.html.erb +125 -0
  371. data/app/views/hyrax/base/_form_share.html.erb +7 -2
  372. data/app/views/hyrax/base/_member.html.erb +1 -1
  373. data/app/views/hyrax/base/_social_media.html.erb +1 -1
  374. data/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb +1 -1
  375. data/app/views/hyrax/base/show.html.erb +3 -0
  376. data/app/views/hyrax/collections/_default_group.html.erb +3 -0
  377. data/app/views/hyrax/collections/_list_collections.html.erb +3 -0
  378. data/app/views/hyrax/collections/_list_works.html.erb +1 -1
  379. data/app/views/hyrax/collections/_show_document_list_row.html.erb +1 -1
  380. data/app/views/hyrax/collections/show.html.erb +4 -0
  381. data/app/views/hyrax/dashboard/_sidebar.html.erb +4 -2
  382. data/app/views/hyrax/dashboard/collections/_button_for_update_collection.html.erb +2 -1
  383. data/app/views/hyrax/dashboard/collections/_default_group.html.erb +3 -0
  384. data/app/views/hyrax/dashboard/collections/_form.html.erb +17 -0
  385. data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +7 -10
  386. data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +3 -0
  387. data/app/views/hyrax/dashboard/collections/_list_works.html.erb +1 -1
  388. data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +1 -1
  389. data/app/views/hyrax/dashboard/profiles/_edit_primary.html.erb +1 -8
  390. data/app/views/hyrax/dashboard/profiles/_trophy_edit.html.erb +1 -1
  391. data/app/views/hyrax/dashboard/profiles/show.html.erb +5 -5
  392. data/app/views/hyrax/dashboard/sidebar/_metadata.html.erb +11 -0
  393. data/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb +1 -0
  394. data/app/views/hyrax/dashboard/works/_default_group.html.erb +3 -0
  395. data/app/views/hyrax/dashboard/works/_list_works.html.erb +4 -2
  396. data/app/views/hyrax/file_sets/_form.html.erb +16 -3
  397. data/app/views/hyrax/file_sets/_metadata.html.erb +35 -0
  398. data/app/views/hyrax/file_sets/_valkyrie_form.html.erb +37 -0
  399. data/app/views/hyrax/file_sets/edit.html.erb +14 -8
  400. data/app/views/hyrax/file_sets/media_display/_audio.html.erb +4 -0
  401. data/app/views/hyrax/file_sets/media_display/_image.html.erb +2 -2
  402. data/app/views/hyrax/file_sets/media_display/_video.html.erb +4 -0
  403. data/app/views/hyrax/homepage/_explore_collections.html.erb +1 -1
  404. data/app/views/hyrax/homepage/_featured_fields.html.erb +1 -1
  405. data/app/views/hyrax/homepage/_recent_document.html.erb +1 -1
  406. data/app/views/hyrax/homepage/robots.text.erb +17 -0
  407. data/app/views/hyrax/my/collections/_default_group.html.erb +3 -0
  408. data/app/views/hyrax/my/collections/_list_collections.html.erb +3 -0
  409. data/app/views/hyrax/my/collections/_modal_add_subcollection.html.erb +2 -2
  410. data/app/views/hyrax/my/collections/_modal_add_to_collection.html.erb +2 -2
  411. data/app/views/hyrax/my/works/_default_group.html.erb +3 -0
  412. data/app/views/hyrax/my/works/_list_works.html.erb +5 -2
  413. data/app/views/hyrax/shared/_copy_permalink.html.erb +10 -0
  414. data/app/views/hyrax/users/_user_info.html.erb +1 -6
  415. data/app/views/layouts/_head_tag_content.html.erb +2 -0
  416. data/app/views/layouts/hyrax/dashboard.html.erb +2 -1
  417. data/app/views/records/edit_fields/_contexts.html.erb +1 -0
  418. data/app/views/records/edit_fields/_license.html.erb +17 -5
  419. data/app/views/records/edit_fields/_resource_type.html.erb +16 -2
  420. data/app/views/records/edit_fields/_rights_statement.html.erb +17 -5
  421. data/app/views/records/edit_fields/_schema_version.html.erb +1 -0
  422. data/app/views/records/edit_fields/_transcript_ids.html.erb +18 -0
  423. data/app/views/records/show_fields/_rights.html.erb +1 -1
  424. data/app/views/shared/_citations.html.erb +46 -31
  425. data/app/views/shared/_schema_version.html.erb +38 -0
  426. data/bin/dev-entrypoint.sh +14 -4
  427. data/chart/hyrax/Chart.yaml +4 -4
  428. data/chart/hyrax/templates/ingress.yaml +3 -0
  429. data/chart/hyrax/values.yaml +10 -8
  430. data/config/features.rb +27 -0
  431. data/config/initializers/blacklight_dynamic_sitemap.rb +43 -0
  432. data/config/initializers/deprecation_patch.rb +27 -0
  433. data/config/initializers/hydra_works.rb +3 -0
  434. data/config/initializers/i18n_extensions.rb +197 -0
  435. data/config/initializers/storage_adapter_initializer.rb +15 -9
  436. data/config/locales/hyrax.de.yml +172 -54
  437. data/config/locales/hyrax.en.yml +183 -66
  438. data/config/locales/hyrax.es.yml +174 -49
  439. data/config/locales/hyrax.fr.yml +169 -45
  440. data/config/locales/hyrax.it.yml +172 -48
  441. data/config/locales/hyrax.pt-BR.yml +172 -54
  442. data/config/locales/hyrax.zh.yml +145 -21
  443. data/config/metadata/basic_metadata.yaml +66 -0
  444. data/config/metadata/batch_edit_metadata.yaml +119 -0
  445. data/config/metadata/file_set_metadata.yaml +19 -0
  446. data/config/metadata/redirects.yaml +15 -0
  447. data/config/metadata_profiles/m3_json_schema.json +487 -0
  448. data/config/metadata_profiles/m3_profile.yaml +954 -0
  449. data/config/routes.rb +9 -0
  450. data/docker-compose-allinson.yml +176 -0
  451. data/docker-compose-dassie.yml +14 -6
  452. data/docker-compose-koppie.yml +18 -10
  453. data/docker-compose-sirenia.yml +20 -10
  454. data/documentation/copy_permalink.md +29 -0
  455. data/documentation/developing-your-hyrax-based-app.md +2 -2
  456. data/documentation/file-ingest-characterization.md +763 -0
  457. data/documentation/flexible_metadata.md +113 -0
  458. data/documentation/forms/field_behaviors.md +297 -0
  459. data/documentation/redirects.md +428 -0
  460. data/hyrax.gemspec +7 -2
  461. data/lib/freyja/metadata_adapter.rb +1 -1
  462. data/lib/freyja/persister.rb +25 -1
  463. data/lib/generators/hyrax/collection_resource/collection_resource_generator.rb +2 -2
  464. data/lib/generators/hyrax/collection_resource/templates/collection.rb.erb +5 -1
  465. data/lib/generators/hyrax/collection_resource/templates/collection_form.rb.erb +5 -1
  466. data/lib/generators/hyrax/collection_resource/templates/collection_indexer.rb.erb +6 -1
  467. data/lib/generators/hyrax/iiif_viewer/USAGE +22 -0
  468. data/lib/generators/hyrax/iiif_viewer/iiif_viewer_generator.rb +49 -0
  469. data/lib/generators/hyrax/iiif_viewer/templates/_clover.html.erb +7 -0
  470. data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.css +3328 -0
  471. data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.html +16 -0
  472. data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.js +237 -0
  473. data/lib/generators/hyrax/install_generator.rb +25 -1
  474. data/lib/generators/hyrax/riiif_generator.rb +1 -1
  475. data/lib/generators/hyrax/templates/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
  476. data/lib/generators/hyrax/templates/config/clamav.rb +2 -0
  477. data/lib/generators/hyrax/templates/config/initializers/riiif.rb +4 -80
  478. data/lib/generators/hyrax/templates/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb.erb +9 -0
  479. data/lib/generators/hyrax/templates/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb.erb +5 -0
  480. data/lib/generators/hyrax/templates/db/migrate/20260430000001_create_hyrax_redirect_paths.rb.erb +22 -0
  481. data/lib/generators/hyrax/templates/db/migrate/20260521003627_add_additional_redirect_info.rb.erb +39 -0
  482. data/lib/generators/hyrax/templates/package.json +1 -1
  483. data/lib/generators/hyrax/templates/uv.html +60 -82
  484. data/lib/generators/hyrax/work/templates/indexer.rb.erb +1 -1
  485. data/lib/generators/hyrax/work/templates/model.rb.erb +5 -1
  486. data/lib/generators/hyrax/work_resource/templates/form.rb.erb +5 -2
  487. data/lib/generators/hyrax/work_resource/templates/indexer.rb.erb +6 -2
  488. data/lib/generators/hyrax/work_resource/templates/work.rb.erb +5 -2
  489. data/lib/generators/hyrax/work_resource/work_resource_generator.rb +1 -0
  490. data/lib/hyrax/active_fedora_dummy_model.rb +6 -0
  491. data/lib/hyrax/configuration.rb +197 -3
  492. data/lib/hyrax/deprecation.rb +31 -0
  493. data/lib/hyrax/engine.rb +2 -0
  494. data/lib/hyrax/form_fields.rb +17 -5
  495. data/lib/hyrax/indexer.rb +31 -2
  496. data/lib/hyrax/resource_sync/resource_list_writer.rb +3 -0
  497. data/lib/hyrax/schema.rb +15 -4
  498. data/lib/hyrax/specs/shared_specs/factories/administrative_sets.rb +12 -0
  499. data/lib/hyrax/specs/shared_specs/factories/hyrax_embargo.rb +1 -1
  500. data/lib/hyrax/specs/shared_specs/factories/hyrax_file_set.rb +13 -0
  501. data/lib/hyrax/specs/shared_specs/factories/hyrax_lease.rb +5 -1
  502. data/lib/hyrax/specs/shared_specs/factories/hyrax_work.rb +14 -0
  503. data/lib/hyrax/specs/shared_specs/simple_work.rb +41 -0
  504. data/lib/hyrax/specs/shared_specs.rb +1 -0
  505. data/lib/hyrax/transactions/collection_create.rb +2 -1
  506. data/lib/hyrax/transactions/collection_destroy.rb +1 -0
  507. data/lib/hyrax/transactions/collection_update.rb +2 -1
  508. data/lib/hyrax/transactions/container.rb +28 -0
  509. data/lib/hyrax/transactions/steps/apply_permission_template_on_update.rb +65 -0
  510. data/lib/hyrax/transactions/steps/apply_workflow_on_admin_set_change.rb +97 -0
  511. data/lib/hyrax/transactions/steps/ensure_admin_set.rb +1 -1
  512. data/lib/hyrax/transactions/steps/remove_redirect_paths.rb +35 -0
  513. data/lib/hyrax/transactions/steps/save.rb +10 -0
  514. data/lib/hyrax/transactions/steps/set_default_admin_set.rb +1 -1
  515. data/lib/hyrax/transactions/steps/sync_redirect_paths.rb +141 -0
  516. data/lib/hyrax/transactions/work_create.rb +2 -1
  517. data/lib/hyrax/transactions/work_destroy.rb +1 -0
  518. data/lib/hyrax/transactions/work_update.rb +4 -1
  519. data/lib/hyrax/version.rb +1 -1
  520. data/lib/hyrax.rb +61 -0
  521. data/lib/tasks/m3_profile_cleanup.rake +35 -0
  522. data/template.rb +4 -1
  523. metadata +313 -19
  524. data/.dassie/public/robots.txt +0 -1
  525. data/.koppie/public/robots.txt +0 -1
  526. data/app/forms/concerns/hyrax/basic_metadata_form_fields_behavior.rb +0 -39
  527. data/app/views/catalog/_thumbnail_list_collection.html.erb +0 -4
@@ -0,0 +1,3328 @@
1
+ *,
2
+ :before,
3
+ :after {
4
+ box-sizing: border-box;
5
+ border: 0 solid #e5e7eb;
6
+ }
7
+ :before,
8
+ :after {
9
+ --tw-content: "";
10
+ }
11
+ html {
12
+ -webkit-text-size-adjust: 100%;
13
+ tab-size: 4;
14
+ font-feature-settings: normal;
15
+ font-variation-settings: normal;
16
+ font-family:
17
+ ui-sans-serif,
18
+ system-ui,
19
+ -apple-system,
20
+ BlinkMacSystemFont,
21
+ Segoe UI,
22
+ Roboto,
23
+ Noto Sans,
24
+ Ubuntu,
25
+ Cantarell,
26
+ Helvetica Neue,
27
+ Arial,
28
+ sans-serif,
29
+ Apple Color Emoji,
30
+ Segoe UI Emoji,
31
+ Segoe UI Symbol,
32
+ Noto Color Emoji;
33
+ line-height: 1.5;
34
+ }
35
+ body {
36
+ line-height: inherit;
37
+ margin: 0;
38
+ }
39
+ hr {
40
+ color: inherit;
41
+ border-top-width: 1px;
42
+ height: 0;
43
+ }
44
+ abbr:where([title]) {
45
+ -webkit-text-decoration: underline dotted;
46
+ text-decoration: underline dotted;
47
+ }
48
+ h1,
49
+ h2,
50
+ h3,
51
+ h4,
52
+ h5,
53
+ h6 {
54
+ font-size: inherit;
55
+ font-weight: inherit;
56
+ }
57
+ a {
58
+ color: inherit;
59
+ -webkit-text-decoration: inherit;
60
+ text-decoration: inherit;
61
+ }
62
+ b,
63
+ strong {
64
+ font-weight: bolder;
65
+ }
66
+ code,
67
+ kbd,
68
+ samp,
69
+ pre {
70
+ font-family:
71
+ ui-monospace,
72
+ SFMono-Regular,
73
+ Menlo,
74
+ Monaco,
75
+ Consolas,
76
+ Liberation Mono,
77
+ Courier New,
78
+ monospace;
79
+ font-size: 1em;
80
+ }
81
+ small {
82
+ font-size: 80%;
83
+ }
84
+ sub,
85
+ sup {
86
+ vertical-align: baseline;
87
+ font-size: 75%;
88
+ line-height: 0;
89
+ position: relative;
90
+ }
91
+ sub {
92
+ bottom: -0.25em;
93
+ }
94
+ sup {
95
+ top: -0.5em;
96
+ }
97
+ table {
98
+ text-indent: 0;
99
+ border-color: inherit;
100
+ border-collapse: collapse;
101
+ }
102
+ button,
103
+ input,
104
+ optgroup,
105
+ select,
106
+ textarea {
107
+ font-family: inherit;
108
+ font-size: 100%;
109
+ font-weight: inherit;
110
+ line-height: inherit;
111
+ color: inherit;
112
+ margin: 0;
113
+ padding: 0;
114
+ }
115
+ button,
116
+ select {
117
+ text-transform: none;
118
+ }
119
+ button {
120
+ -webkit-appearance: button;
121
+ background-color: transparent;
122
+ background-image: none;
123
+ }
124
+ [type="button"] {
125
+ -webkit-appearance: button;
126
+ background-color: transparent;
127
+ background-image: none;
128
+ }
129
+ [type="reset"] {
130
+ -webkit-appearance: button;
131
+ background-color: transparent;
132
+ background-image: none;
133
+ }
134
+ [type="submit"] {
135
+ -webkit-appearance: button;
136
+ background-color: transparent;
137
+ background-image: none;
138
+ }
139
+ :-moz-focusring {
140
+ outline: auto;
141
+ }
142
+ :-moz-ui-invalid {
143
+ box-shadow: none;
144
+ }
145
+ progress {
146
+ vertical-align: baseline;
147
+ }
148
+ ::-webkit-inner-spin-button {
149
+ height: auto;
150
+ }
151
+ ::-webkit-outer-spin-button {
152
+ height: auto;
153
+ }
154
+ [type="search"] {
155
+ -webkit-appearance: textfield;
156
+ outline-offset: -2px;
157
+ }
158
+ ::-webkit-search-decoration {
159
+ -webkit-appearance: none;
160
+ }
161
+ ::-webkit-file-upload-button {
162
+ -webkit-appearance: button;
163
+ font: inherit;
164
+ }
165
+ summary {
166
+ display: list-item;
167
+ }
168
+ blockquote,
169
+ dl,
170
+ dd,
171
+ h1,
172
+ h2,
173
+ h3,
174
+ h4,
175
+ h5,
176
+ h6,
177
+ hr,
178
+ figure,
179
+ p,
180
+ pre {
181
+ margin: 0;
182
+ }
183
+ fieldset {
184
+ margin: 0;
185
+ padding: 0;
186
+ }
187
+ legend {
188
+ padding: 0;
189
+ }
190
+ ol,
191
+ ul,
192
+ menu {
193
+ margin: 0;
194
+ padding: 0;
195
+ list-style: none;
196
+ }
197
+ textarea {
198
+ resize: vertical;
199
+ }
200
+ input::-webkit-input-placeholder {
201
+ opacity: 1;
202
+ color: #9ca3af;
203
+ }
204
+ input::-ms-input-placeholder {
205
+ opacity: 1;
206
+ color: #9ca3af;
207
+ }
208
+ input::placeholder {
209
+ opacity: 1;
210
+ color: #9ca3af;
211
+ }
212
+ textarea::-webkit-input-placeholder {
213
+ opacity: 1;
214
+ color: #9ca3af;
215
+ }
216
+ textarea::-ms-input-placeholder {
217
+ opacity: 1;
218
+ color: #9ca3af;
219
+ }
220
+ textarea::placeholder {
221
+ opacity: 1;
222
+ color: #9ca3af;
223
+ }
224
+ button,
225
+ [role="button"] {
226
+ cursor: pointer;
227
+ }
228
+ :disabled {
229
+ cursor: default;
230
+ }
231
+ img,
232
+ svg,
233
+ video,
234
+ canvas,
235
+ audio,
236
+ iframe,
237
+ embed,
238
+ object {
239
+ vertical-align: middle;
240
+ display: block;
241
+ }
242
+ img,
243
+ video {
244
+ max-width: 100%;
245
+ height: auto;
246
+ }
247
+ [hidden] {
248
+ display: none;
249
+ }
250
+ *,
251
+ :before,
252
+ :after {
253
+ --tw-border-spacing-x: 0;
254
+ --tw-border-spacing-y: 0;
255
+ --tw-translate-x: 0;
256
+ --tw-translate-y: 0;
257
+ --tw-rotate: 0;
258
+ --tw-skew-x: 0;
259
+ --tw-skew-y: 0;
260
+ --tw-scale-x: 1;
261
+ --tw-scale-y: 1;
262
+ --tw-pan-x: ;
263
+ --tw-pan-y: ;
264
+ --tw-pinch-zoom: ;
265
+ --tw-scroll-snap-strictness: proximity;
266
+ --tw-gradient-from-position: ;
267
+ --tw-gradient-via-position: ;
268
+ --tw-gradient-to-position: ;
269
+ --tw-ordinal: ;
270
+ --tw-slashed-zero: ;
271
+ --tw-numeric-figure: ;
272
+ --tw-numeric-spacing: ;
273
+ --tw-numeric-fraction: ;
274
+ --tw-ring-inset: ;
275
+ --tw-ring-offset-width: 0px;
276
+ --tw-ring-offset-color: #fff;
277
+ --tw-ring-color: rgba(59, 130, 246, 0.5);
278
+ --tw-ring-offset-shadow: 0 0 transparent;
279
+ --tw-ring-shadow: 0 0 transparent;
280
+ --tw-shadow: 0 0 transparent;
281
+ --tw-shadow-colored: 0 0 transparent;
282
+ --tw-blur: ;
283
+ --tw-brightness: ;
284
+ --tw-contrast: ;
285
+ --tw-grayscale: ;
286
+ --tw-hue-rotate: ;
287
+ --tw-invert: ;
288
+ --tw-saturate: ;
289
+ --tw-sepia: ;
290
+ --tw-drop-shadow: ;
291
+ --tw-backdrop-blur: ;
292
+ --tw-backdrop-brightness: ;
293
+ --tw-backdrop-contrast: ;
294
+ --tw-backdrop-grayscale: ;
295
+ --tw-backdrop-hue-rotate: ;
296
+ --tw-backdrop-invert: ;
297
+ --tw-backdrop-opacity: ;
298
+ --tw-backdrop-saturate: ;
299
+ --tw-backdrop-sepia: ;
300
+ }
301
+ ::-webkit-backdrop {
302
+ --tw-border-spacing-x: 0;
303
+ --tw-border-spacing-y: 0;
304
+ --tw-translate-x: 0;
305
+ --tw-translate-y: 0;
306
+ --tw-rotate: 0;
307
+ --tw-skew-x: 0;
308
+ --tw-skew-y: 0;
309
+ --tw-scale-x: 1;
310
+ --tw-scale-y: 1;
311
+ --tw-pan-x: ;
312
+ --tw-pan-y: ;
313
+ --tw-pinch-zoom: ;
314
+ --tw-scroll-snap-strictness: proximity;
315
+ --tw-gradient-from-position: ;
316
+ --tw-gradient-via-position: ;
317
+ --tw-gradient-to-position: ;
318
+ --tw-ordinal: ;
319
+ --tw-slashed-zero: ;
320
+ --tw-numeric-figure: ;
321
+ --tw-numeric-spacing: ;
322
+ --tw-numeric-fraction: ;
323
+ --tw-ring-inset: ;
324
+ --tw-ring-offset-width: 0px;
325
+ --tw-ring-offset-color: #fff;
326
+ --tw-ring-color: rgba(59, 130, 246, 0.5);
327
+ --tw-ring-offset-shadow: 0 0 transparent;
328
+ --tw-ring-shadow: 0 0 transparent;
329
+ --tw-shadow: 0 0 transparent;
330
+ --tw-shadow-colored: 0 0 transparent;
331
+ --tw-blur: ;
332
+ --tw-brightness: ;
333
+ --tw-contrast: ;
334
+ --tw-grayscale: ;
335
+ --tw-hue-rotate: ;
336
+ --tw-invert: ;
337
+ --tw-saturate: ;
338
+ --tw-sepia: ;
339
+ --tw-drop-shadow: ;
340
+ --tw-backdrop-blur: ;
341
+ --tw-backdrop-brightness: ;
342
+ --tw-backdrop-contrast: ;
343
+ --tw-backdrop-grayscale: ;
344
+ --tw-backdrop-hue-rotate: ;
345
+ --tw-backdrop-invert: ;
346
+ --tw-backdrop-opacity: ;
347
+ --tw-backdrop-saturate: ;
348
+ --tw-backdrop-sepia: ;
349
+ }
350
+ ::backdrop {
351
+ --tw-border-spacing-x: 0;
352
+ --tw-border-spacing-y: 0;
353
+ --tw-translate-x: 0;
354
+ --tw-translate-y: 0;
355
+ --tw-rotate: 0;
356
+ --tw-skew-x: 0;
357
+ --tw-skew-y: 0;
358
+ --tw-scale-x: 1;
359
+ --tw-scale-y: 1;
360
+ --tw-pan-x: ;
361
+ --tw-pan-y: ;
362
+ --tw-pinch-zoom: ;
363
+ --tw-scroll-snap-strictness: proximity;
364
+ --tw-gradient-from-position: ;
365
+ --tw-gradient-via-position: ;
366
+ --tw-gradient-to-position: ;
367
+ --tw-ordinal: ;
368
+ --tw-slashed-zero: ;
369
+ --tw-numeric-figure: ;
370
+ --tw-numeric-spacing: ;
371
+ --tw-numeric-fraction: ;
372
+ --tw-ring-inset: ;
373
+ --tw-ring-offset-width: 0px;
374
+ --tw-ring-offset-color: #fff;
375
+ --tw-ring-color: rgba(59, 130, 246, 0.5);
376
+ --tw-ring-offset-shadow: 0 0 transparent;
377
+ --tw-ring-shadow: 0 0 transparent;
378
+ --tw-shadow: 0 0 transparent;
379
+ --tw-shadow-colored: 0 0 transparent;
380
+ --tw-blur: ;
381
+ --tw-brightness: ;
382
+ --tw-contrast: ;
383
+ --tw-grayscale: ;
384
+ --tw-hue-rotate: ;
385
+ --tw-invert: ;
386
+ --tw-saturate: ;
387
+ --tw-sepia: ;
388
+ --tw-drop-shadow: ;
389
+ --tw-backdrop-blur: ;
390
+ --tw-backdrop-brightness: ;
391
+ --tw-backdrop-contrast: ;
392
+ --tw-backdrop-grayscale: ;
393
+ --tw-backdrop-hue-rotate: ;
394
+ --tw-backdrop-invert: ;
395
+ --tw-backdrop-opacity: ;
396
+ --tw-backdrop-saturate: ;
397
+ --tw-backdrop-sepia: ;
398
+ }
399
+ .nx-sr-only {
400
+ clip: rect(0, 0, 0, 0);
401
+ white-space: nowrap;
402
+ border-width: 0;
403
+ width: 1px;
404
+ height: 1px;
405
+ margin: -1px;
406
+ padding: 0;
407
+ position: absolute;
408
+ overflow: hidden;
409
+ }
410
+ .nx-pointer-events-none {
411
+ pointer-events: none;
412
+ }
413
+ .nx-invisible {
414
+ visibility: hidden;
415
+ }
416
+ .nx-fixed {
417
+ position: fixed;
418
+ }
419
+ .nx-absolute {
420
+ position: absolute;
421
+ }
422
+ .nx-relative {
423
+ position: relative;
424
+ }
425
+ .nx-sticky {
426
+ position: -webkit-sticky;
427
+ position: sticky;
428
+ }
429
+ .nx-inset-0 {
430
+ top: 0;
431
+ bottom: 0;
432
+ left: 0;
433
+ right: 0;
434
+ }
435
+ .nx-inset-x-0 {
436
+ left: 0;
437
+ right: 0;
438
+ }
439
+ .nx-inset-y-0 {
440
+ top: 0;
441
+ bottom: 0;
442
+ }
443
+ .nx-bottom-0 {
444
+ bottom: 0;
445
+ }
446
+ .nx-right-0 {
447
+ right: 0;
448
+ }
449
+ .nx-top-0 {
450
+ top: 0;
451
+ }
452
+ .nx-top-16 {
453
+ top: 4rem;
454
+ }
455
+ .nx-top-8 {
456
+ top: 2rem;
457
+ }
458
+ .nx-top-full {
459
+ top: 100%;
460
+ }
461
+ .nx-z-10 {
462
+ z-index: 10;
463
+ }
464
+ .nx-z-20 {
465
+ z-index: 20;
466
+ }
467
+ .nx-z-\[-1\] {
468
+ z-index: -1;
469
+ }
470
+ .nx-z-\[1\] {
471
+ z-index: 1;
472
+ }
473
+ .nx-order-last {
474
+ order: 9999;
475
+ }
476
+ .nx-m-0 {
477
+ margin: 0;
478
+ }
479
+ .nx-m-\[11px\] {
480
+ margin: 11px;
481
+ }
482
+ .-nx-mx-6 {
483
+ margin-left: -1.5rem;
484
+ margin-right: -1.5rem;
485
+ }
486
+ .nx-mx-2 {
487
+ margin-left: 0.5rem;
488
+ margin-right: 0.5rem;
489
+ }
490
+ .nx-mx-2\.5 {
491
+ margin-left: 0.625rem;
492
+ margin-right: 0.625rem;
493
+ }
494
+ .nx-mx-4 {
495
+ margin-left: 1rem;
496
+ margin-right: 1rem;
497
+ }
498
+ .nx-mx-auto {
499
+ margin-left: auto;
500
+ margin-right: auto;
501
+ }
502
+ .nx-my-1 {
503
+ margin-top: 0.25rem;
504
+ margin-bottom: 0.25rem;
505
+ }
506
+ .nx-my-1\.5 {
507
+ margin-top: 0.375rem;
508
+ margin-bottom: 0.375rem;
509
+ }
510
+ .nx-my-2 {
511
+ margin-top: 0.5rem;
512
+ margin-bottom: 0.5rem;
513
+ }
514
+ .nx-my-4 {
515
+ margin-top: 1rem;
516
+ margin-bottom: 1rem;
517
+ }
518
+ .nx-my-8 {
519
+ margin-top: 2rem;
520
+ margin-bottom: 2rem;
521
+ }
522
+ .-nx-mb-0 {
523
+ margin-bottom: 0;
524
+ }
525
+ .-nx-mb-0\.5 {
526
+ margin-bottom: -0.125rem;
527
+ }
528
+ .-nx-ml-2 {
529
+ margin-left: -0.5rem;
530
+ }
531
+ .-nx-mr-2 {
532
+ margin-right: -0.5rem;
533
+ }
534
+ .-nx-mt-20 {
535
+ margin-top: -5rem;
536
+ }
537
+ .nx-mb-12 {
538
+ margin-bottom: 3rem;
539
+ }
540
+ .nx-mb-2 {
541
+ margin-bottom: 0.5rem;
542
+ }
543
+ .nx-mb-4 {
544
+ margin-bottom: 1rem;
545
+ }
546
+ .nx-mb-8 {
547
+ margin-bottom: 2rem;
548
+ }
549
+ .nx-ml-1 {
550
+ margin-left: 0.25rem;
551
+ }
552
+ .nx-ml-2 {
553
+ margin-left: 0.5rem;
554
+ }
555
+ .nx-ml-4 {
556
+ margin-left: 1rem;
557
+ }
558
+ .nx-mr-2 {
559
+ margin-right: 0.5rem;
560
+ }
561
+ .nx-mt-1 {
562
+ margin-top: 0.25rem;
563
+ }
564
+ .nx-mt-1\.5 {
565
+ margin-top: 0.375rem;
566
+ }
567
+ .nx-mt-10 {
568
+ margin-top: 2.5rem;
569
+ }
570
+ .nx-mt-12 {
571
+ margin-top: 3rem;
572
+ }
573
+ .nx-mt-16 {
574
+ margin-top: 4rem;
575
+ }
576
+ .nx-mt-2 {
577
+ margin-top: 0.5rem;
578
+ }
579
+ .nx-mt-4 {
580
+ margin-top: 1rem;
581
+ }
582
+ .nx-mt-5 {
583
+ margin-top: 1.25rem;
584
+ }
585
+ .nx-mt-6 {
586
+ margin-top: 1.5rem;
587
+ }
588
+ .nx-mt-8 {
589
+ margin-top: 2rem;
590
+ }
591
+ .nx-block {
592
+ display: block;
593
+ }
594
+ .nx-inline-block {
595
+ display: inline-block;
596
+ }
597
+ .nx-inline {
598
+ display: inline;
599
+ }
600
+ .nx-flex {
601
+ display: flex;
602
+ }
603
+ .nx-inline-flex {
604
+ display: inline-flex;
605
+ }
606
+ .nx-grid {
607
+ display: grid;
608
+ }
609
+ .nx-hidden {
610
+ display: none;
611
+ }
612
+ .nx-h-0 {
613
+ height: 0;
614
+ }
615
+ .nx-h-4 {
616
+ height: 1rem;
617
+ }
618
+ .nx-h-5 {
619
+ height: 1.25rem;
620
+ }
621
+ .nx-h-7 {
622
+ height: 1.75rem;
623
+ }
624
+ .nx-h-8 {
625
+ height: 2rem;
626
+ }
627
+ .nx-h-\[18px\] {
628
+ height: 18px;
629
+ }
630
+ .nx-h-\[var\(--nextra-banner-height\)\] {
631
+ height: var(--nextra-banner-height);
632
+ }
633
+ .nx-h-\[var\(--nextra-navbar-height\)\] {
634
+ height: var(--nextra-navbar-height);
635
+ }
636
+ .nx-h-full {
637
+ height: 100%;
638
+ }
639
+ .nx-max-h-64 {
640
+ max-height: 16rem;
641
+ }
642
+ .nx-max-h-\[calc\(100vh-var\(--nextra-navbar-height\)-env\(safe-area-inset-bottom\)\)\] {
643
+ max-height: calc(
644
+ 100vh - var(--nextra-navbar-height) - env(safe-area-inset-bottom)
645
+ );
646
+ }
647
+ .nx-max-h-\[min\(calc\(50vh-11rem-env\(safe-area-inset-bottom\)\)\,400px\)\] {
648
+ max-height: min(calc(50vh - 11rem - env(safe-area-inset-bottom)), 400px);
649
+ }
650
+ .nx-min-h-\[100px\] {
651
+ min-height: 100px;
652
+ }
653
+ .nx-min-h-\[calc\(100vh-var\(--nextra-navbar-height\)\)\] {
654
+ min-height: calc(100vh - var(--nextra-navbar-height));
655
+ }
656
+ .nx-w-3 {
657
+ width: 0.75rem;
658
+ }
659
+ .nx-w-3\.5 {
660
+ width: 0.875rem;
661
+ }
662
+ .nx-w-4 {
663
+ width: 1rem;
664
+ }
665
+ .nx-w-5 {
666
+ width: 1.25rem;
667
+ }
668
+ .nx-w-64 {
669
+ width: 16rem;
670
+ }
671
+ .nx-w-8 {
672
+ width: 2rem;
673
+ }
674
+ .nx-w-full {
675
+ width: 100%;
676
+ }
677
+ .nx-w-max {
678
+ width: -webkit-max-content;
679
+ width: max-content;
680
+ }
681
+ .nx-w-screen {
682
+ width: 100vw;
683
+ }
684
+ .nx-min-w-0 {
685
+ min-width: 0;
686
+ }
687
+ .nx-min-w-\[18px\] {
688
+ min-width: 18px;
689
+ }
690
+ .nx-min-w-\[24px\] {
691
+ min-width: 24px;
692
+ }
693
+ .nx-min-w-full {
694
+ min-width: 100%;
695
+ }
696
+ .nx-max-w-6xl {
697
+ max-width: 72rem;
698
+ }
699
+ .nx-max-w-\[50\%\] {
700
+ max-width: 50%;
701
+ }
702
+ .nx-max-w-\[90rem\] {
703
+ max-width: 90rem;
704
+ }
705
+ .nx-max-w-\[min\(calc\(100vw-2rem\)\,calc\(100\%\+20rem\)\)\] {
706
+ max-width: min(100vw - 2rem, 100% + 20rem);
707
+ }
708
+ .nx-shrink-0 {
709
+ flex-shrink: 0;
710
+ }
711
+ .nx-grow {
712
+ flex-grow: 1;
713
+ }
714
+ .nx-origin-\[35\%\] {
715
+ -webkit-transform-origin: 35%;
716
+ transform-origin: 35%;
717
+ }
718
+ .nx-origin-center {
719
+ -webkit-transform-origin: 50%;
720
+ transform-origin: 50%;
721
+ }
722
+ .nx-rotate-180 {
723
+ --tw-rotate: 180deg;
724
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
725
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
726
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
727
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
728
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
729
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
730
+ }
731
+ .nx-rotate-90 {
732
+ --tw-rotate: 90deg;
733
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
734
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
735
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
736
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
737
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
738
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
739
+ }
740
+ .nx-transform-gpu {
741
+ -webkit-transform: translate3d(
742
+ var(--tw-translate-x),
743
+ var(--tw-translate-y),
744
+ 0
745
+ )
746
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
747
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
748
+ transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)
749
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
750
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
751
+ }
752
+ @-webkit-keyframes nx-spin {
753
+ to {
754
+ -webkit-transform: rotate(360deg);
755
+ transform: rotate(360deg);
756
+ }
757
+ }
758
+ @keyframes nx-spin {
759
+ to {
760
+ -webkit-transform: rotate(360deg);
761
+ transform: rotate(360deg);
762
+ }
763
+ }
764
+ .nx-animate-spin {
765
+ -webkit-animation: 1s linear infinite nx-spin;
766
+ animation: 1s linear infinite nx-spin;
767
+ }
768
+ .nx-cursor-default {
769
+ cursor: default;
770
+ }
771
+ .nx-cursor-pointer {
772
+ cursor: pointer;
773
+ }
774
+ .nx-select-none {
775
+ -webkit-user-select: none;
776
+ -ms-user-select: none;
777
+ user-select: none;
778
+ }
779
+ .nx-scroll-m-12 {
780
+ scroll-margin: 3rem;
781
+ }
782
+ .nx-scroll-my-6 {
783
+ scroll-margin-top: 1.5rem;
784
+ scroll-margin-bottom: 1.5rem;
785
+ }
786
+ .nx-scroll-py-6 {
787
+ scroll-padding-top: 1.5rem;
788
+ scroll-padding-bottom: 1.5rem;
789
+ }
790
+ .nx-list-decimal {
791
+ list-style-type: decimal;
792
+ }
793
+ .nx-list-disc {
794
+ list-style-type: disc;
795
+ }
796
+ .nx-list-none {
797
+ list-style-type: none;
798
+ }
799
+ .nx-appearance-none {
800
+ -webkit-appearance: none;
801
+ -ms-appearance: none;
802
+ appearance: none;
803
+ }
804
+ .nx-flex-col {
805
+ flex-direction: column;
806
+ }
807
+ .nx-flex-wrap {
808
+ flex-wrap: wrap;
809
+ }
810
+ .nx-items-start {
811
+ align-items: flex-start;
812
+ }
813
+ .nx-items-center {
814
+ align-items: center;
815
+ }
816
+ .nx-justify-start {
817
+ justify-content: flex-start;
818
+ }
819
+ .nx-justify-end {
820
+ justify-content: flex-end;
821
+ }
822
+ .nx-justify-center {
823
+ justify-content: center;
824
+ }
825
+ .nx-justify-between {
826
+ justify-content: space-between;
827
+ }
828
+ .nx-gap-1 {
829
+ gap: 0.25rem;
830
+ }
831
+ .nx-gap-2 {
832
+ gap: 0.5rem;
833
+ }
834
+ .nx-gap-4 {
835
+ gap: 1rem;
836
+ }
837
+ .nx-overflow-auto {
838
+ overflow: auto;
839
+ }
840
+ .nx-overflow-hidden {
841
+ overflow: hidden;
842
+ }
843
+ .nx-overflow-x-auto {
844
+ overflow-x: auto;
845
+ }
846
+ .nx-overflow-y-auto {
847
+ overflow-y: auto;
848
+ }
849
+ .nx-overflow-x-hidden {
850
+ overflow-x: hidden;
851
+ }
852
+ .nx-overflow-y-hidden {
853
+ overflow-y: hidden;
854
+ }
855
+ .nx-overflow-x-scroll {
856
+ overflow-x: scroll;
857
+ }
858
+ .nx-overscroll-contain {
859
+ overscroll-behavior: contain;
860
+ }
861
+ .nx-overscroll-x-contain {
862
+ overscroll-behavior-x: contain;
863
+ }
864
+ .nx-truncate {
865
+ text-overflow: ellipsis;
866
+ white-space: nowrap;
867
+ overflow: hidden;
868
+ }
869
+ .nx-text-ellipsis {
870
+ text-overflow: ellipsis;
871
+ }
872
+ .nx-whitespace-nowrap {
873
+ white-space: nowrap;
874
+ }
875
+ .nx-break-words {
876
+ overflow-wrap: break-word;
877
+ }
878
+ .nx-rounded {
879
+ border-radius: 0.25rem;
880
+ }
881
+ .nx-rounded-lg {
882
+ border-radius: 0.5rem;
883
+ }
884
+ .nx-rounded-md {
885
+ border-radius: 0.375rem;
886
+ }
887
+ .nx-rounded-sm {
888
+ border-radius: 0.125rem;
889
+ }
890
+ .nx-rounded-xl {
891
+ border-radius: 0.75rem;
892
+ }
893
+ .nx-rounded-t {
894
+ border-top-left-radius: 0.25rem;
895
+ border-top-right-radius: 0.25rem;
896
+ }
897
+ .nx-rounded-t-xl {
898
+ border-top-left-radius: 0.75rem;
899
+ border-top-right-radius: 0.75rem;
900
+ }
901
+ .nx-border {
902
+ border-width: 1px;
903
+ }
904
+ .nx-border-b {
905
+ border-bottom-width: 1px;
906
+ }
907
+ .nx-border-b-2 {
908
+ border-bottom-width: 2px;
909
+ }
910
+ .nx-border-l {
911
+ border-left-width: 1px;
912
+ }
913
+ .nx-border-t {
914
+ border-top-width: 1px;
915
+ }
916
+ .nx-border-black {
917
+ --tw-border-opacity: 1;
918
+ border-color: rgba(0, 0, 0, var(--tw-border-opacity));
919
+ }
920
+ .nx-border-black\/10 {
921
+ border-color: rgba(0, 0, 0, 0.1);
922
+ }
923
+ .nx-border-black\/5 {
924
+ border-color: rgba(0, 0, 0, 0.05);
925
+ }
926
+ .nx-border-blue-200 {
927
+ --tw-border-opacity: 1;
928
+ border-color: rgba(191, 219, 254, var(--tw-border-opacity));
929
+ }
930
+ .nx-border-gray-200 {
931
+ --tw-border-opacity: 1;
932
+ border-color: rgba(229, 231, 235, var(--tw-border-opacity));
933
+ }
934
+ .nx-border-gray-300 {
935
+ --tw-border-opacity: 1;
936
+ border-color: rgba(209, 213, 219, var(--tw-border-opacity));
937
+ }
938
+ .nx-border-neutral-200\/70 {
939
+ border-color: rgba(229, 229, 229, 0.7);
940
+ }
941
+ .nx-border-orange-100 {
942
+ --tw-border-opacity: 1;
943
+ border-color: rgba(255, 237, 213, var(--tw-border-opacity));
944
+ }
945
+ .nx-border-primary-500 {
946
+ --tw-border-opacity: 1;
947
+ border-color: hsl(
948
+ var(--nextra-primary-hue) 100% 50% / var(--tw-border-opacity)
949
+ );
950
+ }
951
+ .nx-border-red-200 {
952
+ --tw-border-opacity: 1;
953
+ border-color: rgba(254, 202, 202, var(--tw-border-opacity));
954
+ }
955
+ .nx-border-transparent {
956
+ border-color: transparent;
957
+ }
958
+ .nx-border-yellow-100 {
959
+ --tw-border-opacity: 1;
960
+ border-color: rgba(254, 249, 195, var(--tw-border-opacity));
961
+ }
962
+ .nx-border-opacity-\[0\.04\] {
963
+ --tw-border-opacity: 0.04;
964
+ }
965
+ .nx-bg-black {
966
+ --tw-bg-opacity: 1;
967
+ background-color: rgba(0, 0, 0, var(--tw-bg-opacity));
968
+ }
969
+ .nx-bg-black\/80 {
970
+ background-color: rgba(0, 0, 0, 0.8);
971
+ }
972
+ .nx-bg-black\/\[\.05\] {
973
+ background-color: rgba(0, 0, 0, 0.05);
974
+ }
975
+ .nx-bg-blue-100 {
976
+ --tw-bg-opacity: 1;
977
+ background-color: rgba(219, 234, 254, var(--tw-bg-opacity));
978
+ }
979
+ .nx-bg-gray-100 {
980
+ --tw-bg-opacity: 1;
981
+ background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
982
+ }
983
+ .nx-bg-gray-200 {
984
+ --tw-bg-opacity: 1;
985
+ background-color: rgba(229, 231, 235, var(--tw-bg-opacity));
986
+ }
987
+ .nx-bg-neutral-900 {
988
+ --tw-bg-opacity: 1;
989
+ background-color: rgba(23, 23, 23, var(--tw-bg-opacity));
990
+ }
991
+ .nx-bg-orange-50 {
992
+ --tw-bg-opacity: 1;
993
+ background-color: rgba(255, 247, 237, var(--tw-bg-opacity));
994
+ }
995
+ .nx-bg-primary-100 {
996
+ --tw-bg-opacity: 1;
997
+ background-color: hsl(
998
+ var(--nextra-primary-hue) 100% 94% / var(--tw-bg-opacity)
999
+ );
1000
+ }
1001
+ .nx-bg-primary-50 {
1002
+ --tw-bg-opacity: 1;
1003
+ background-color: hsl(
1004
+ var(--nextra-primary-hue) 100% 97% / var(--tw-bg-opacity)
1005
+ );
1006
+ }
1007
+ .nx-bg-primary-500\/10 {
1008
+ background-color: hsl(var(--nextra-primary-hue) 100% 50%/0.1);
1009
+ }
1010
+ .nx-bg-primary-700\/5 {
1011
+ background-color: hsl(var(--nextra-primary-hue) 100% 39%/0.05);
1012
+ }
1013
+ .nx-bg-red-100 {
1014
+ --tw-bg-opacity: 1;
1015
+ background-color: rgba(254, 226, 226, var(--tw-bg-opacity));
1016
+ }
1017
+ .nx-bg-transparent {
1018
+ background-color: transparent;
1019
+ }
1020
+ .nx-bg-white {
1021
+ --tw-bg-opacity: 1;
1022
+ background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
1023
+ }
1024
+ .nx-bg-yellow-50 {
1025
+ --tw-bg-opacity: 1;
1026
+ background-color: rgba(254, 252, 232, var(--tw-bg-opacity));
1027
+ }
1028
+ .nx-bg-opacity-\[0\.03\] {
1029
+ --tw-bg-opacity: 0.03;
1030
+ }
1031
+ .nx-p-0 {
1032
+ padding: 0;
1033
+ }
1034
+ .nx-p-0\.5 {
1035
+ padding: 0.125rem;
1036
+ }
1037
+ .nx-p-1 {
1038
+ padding: 0.25rem;
1039
+ }
1040
+ .nx-p-1\.5 {
1041
+ padding: 0.375rem;
1042
+ }
1043
+ .nx-p-2 {
1044
+ padding: 0.5rem;
1045
+ }
1046
+ .nx-p-4 {
1047
+ padding: 1rem;
1048
+ }
1049
+ .nx-p-8 {
1050
+ padding: 2rem;
1051
+ }
1052
+ .nx-px-1 {
1053
+ padding-left: 0.25rem;
1054
+ padding-right: 0.25rem;
1055
+ }
1056
+ .nx-px-1\.5 {
1057
+ padding-left: 0.375rem;
1058
+ padding-right: 0.375rem;
1059
+ }
1060
+ .nx-px-2 {
1061
+ padding-left: 0.5rem;
1062
+ padding-right: 0.5rem;
1063
+ }
1064
+ .nx-px-2\.5 {
1065
+ padding-left: 0.625rem;
1066
+ padding-right: 0.625rem;
1067
+ }
1068
+ .nx-px-3 {
1069
+ padding-left: 0.75rem;
1070
+ padding-right: 0.75rem;
1071
+ }
1072
+ .nx-px-4 {
1073
+ padding-left: 1rem;
1074
+ padding-right: 1rem;
1075
+ }
1076
+ .nx-px-6 {
1077
+ padding-left: 1.5rem;
1078
+ padding-right: 1.5rem;
1079
+ }
1080
+ .nx-px-\[\.25em\] {
1081
+ padding-left: 0.25em;
1082
+ padding-right: 0.25em;
1083
+ }
1084
+ .nx-py-0 {
1085
+ padding-top: 0;
1086
+ padding-bottom: 0;
1087
+ }
1088
+ .nx-py-0\.5 {
1089
+ padding-top: 0.125rem;
1090
+ padding-bottom: 0.125rem;
1091
+ }
1092
+ .nx-py-1 {
1093
+ padding-top: 0.25rem;
1094
+ padding-bottom: 0.25rem;
1095
+ }
1096
+ .nx-py-1\.5 {
1097
+ padding-top: 0.375rem;
1098
+ padding-bottom: 0.375rem;
1099
+ }
1100
+ .nx-py-12 {
1101
+ padding-top: 3rem;
1102
+ padding-bottom: 3rem;
1103
+ }
1104
+ .nx-py-2 {
1105
+ padding-top: 0.5rem;
1106
+ padding-bottom: 0.5rem;
1107
+ }
1108
+ .nx-py-2\.5 {
1109
+ padding-top: 0.625rem;
1110
+ padding-bottom: 0.625rem;
1111
+ }
1112
+ .nx-py-4 {
1113
+ padding-top: 1rem;
1114
+ padding-bottom: 1rem;
1115
+ }
1116
+ .nx-pb-1 {
1117
+ padding-bottom: 0.25rem;
1118
+ }
1119
+ .nx-pb-1\.5 {
1120
+ padding-bottom: 0.375rem;
1121
+ }
1122
+ .nx-pb-4 {
1123
+ padding-bottom: 1rem;
1124
+ }
1125
+ .nx-pb-8 {
1126
+ padding-bottom: 2rem;
1127
+ }
1128
+ .nx-pb-\[env\(safe-area-inset-bottom\)\] {
1129
+ padding-bottom: env(safe-area-inset-bottom);
1130
+ }
1131
+ .nx-pb-px {
1132
+ padding-bottom: 1px;
1133
+ }
1134
+ .nx-pl-6 {
1135
+ padding-left: 1.5rem;
1136
+ }
1137
+ .nx-pl-\[max\(env\(safe-area-inset-left\)\,1\.5rem\)\] {
1138
+ padding-left: max(env(safe-area-inset-left), 1.5rem);
1139
+ }
1140
+ .nx-pr-4 {
1141
+ padding-right: 1rem;
1142
+ }
1143
+ .nx-pr-\[calc\(env\(safe-area-inset-right\)-1\.5rem\)\] {
1144
+ padding-right: calc(env(safe-area-inset-right) - 1.5rem);
1145
+ }
1146
+ .nx-pr-\[max\(env\(safe-area-inset-right\)\,1\.5rem\)\] {
1147
+ padding-right: max(env(safe-area-inset-right), 1.5rem);
1148
+ }
1149
+ .nx-pt-1 {
1150
+ padding-top: 0.25rem;
1151
+ }
1152
+ .nx-pt-12 {
1153
+ padding-top: 3rem;
1154
+ }
1155
+ .nx-pt-4 {
1156
+ padding-top: 1rem;
1157
+ }
1158
+ .nx-pt-6 {
1159
+ padding-top: 1.5rem;
1160
+ }
1161
+ .nx-pt-8 {
1162
+ padding-top: 2rem;
1163
+ }
1164
+ .nx-text-left {
1165
+ text-align: left;
1166
+ }
1167
+ .nx-text-center {
1168
+ text-align: center;
1169
+ }
1170
+ .nx-font-mono {
1171
+ font-family:
1172
+ ui-monospace,
1173
+ SFMono-Regular,
1174
+ Menlo,
1175
+ Monaco,
1176
+ Consolas,
1177
+ Liberation Mono,
1178
+ Courier New,
1179
+ monospace;
1180
+ }
1181
+ .nx-text-2xl {
1182
+ font-size: 1.5rem;
1183
+ }
1184
+ .nx-text-3xl {
1185
+ font-size: 1.875rem;
1186
+ }
1187
+ .nx-text-4xl {
1188
+ font-size: 2.25rem;
1189
+ }
1190
+ .nx-text-\[\.9em\] {
1191
+ font-size: 0.9em;
1192
+ }
1193
+ .nx-text-\[10px\] {
1194
+ font-size: 10px;
1195
+ }
1196
+ .nx-text-base {
1197
+ font-size: 1rem;
1198
+ }
1199
+ .nx-text-lg {
1200
+ font-size: 1.125rem;
1201
+ }
1202
+ .nx-text-sm {
1203
+ font-size: 0.875rem;
1204
+ }
1205
+ .nx-text-xl {
1206
+ font-size: 1.25rem;
1207
+ }
1208
+ .nx-text-xs {
1209
+ font-size: 0.75rem;
1210
+ }
1211
+ .nx-font-bold {
1212
+ font-weight: 700;
1213
+ }
1214
+ .nx-font-extrabold {
1215
+ font-weight: 800;
1216
+ }
1217
+ .nx-font-medium {
1218
+ font-weight: 500;
1219
+ }
1220
+ .nx-font-normal {
1221
+ font-weight: 400;
1222
+ }
1223
+ .nx-font-semibold {
1224
+ font-weight: 600;
1225
+ }
1226
+ .nx-uppercase {
1227
+ text-transform: uppercase;
1228
+ }
1229
+ .nx-capitalize {
1230
+ text-transform: capitalize;
1231
+ }
1232
+ .nx-italic {
1233
+ font-style: italic;
1234
+ }
1235
+ .nx-leading-5 {
1236
+ line-height: 1.25rem;
1237
+ }
1238
+ .nx-leading-7 {
1239
+ line-height: 1.75rem;
1240
+ }
1241
+ .nx-leading-\[1\.35rem\] {
1242
+ line-height: 1.35rem;
1243
+ }
1244
+ .nx-leading-tight {
1245
+ line-height: 1.25;
1246
+ }
1247
+ .nx-tracking-tight {
1248
+ letter-spacing: -0.015em;
1249
+ }
1250
+ .nx-text-blue-900 {
1251
+ --tw-text-opacity: 1;
1252
+ color: rgba(30, 58, 138, var(--tw-text-opacity));
1253
+ }
1254
+ .nx-text-current {
1255
+ color: currentColor;
1256
+ }
1257
+ .nx-text-gray-100 {
1258
+ --tw-text-opacity: 1;
1259
+ color: rgba(243, 244, 246, var(--tw-text-opacity));
1260
+ }
1261
+ .nx-text-gray-400 {
1262
+ --tw-text-opacity: 1;
1263
+ color: rgba(156, 163, 175, var(--tw-text-opacity));
1264
+ }
1265
+ .nx-text-gray-500 {
1266
+ --tw-text-opacity: 1;
1267
+ color: rgba(107, 114, 128, var(--tw-text-opacity));
1268
+ }
1269
+ .nx-text-gray-600 {
1270
+ --tw-text-opacity: 1;
1271
+ color: rgba(75, 85, 99, var(--tw-text-opacity));
1272
+ }
1273
+ .nx-text-gray-700 {
1274
+ --tw-text-opacity: 1;
1275
+ color: rgba(55, 65, 81, var(--tw-text-opacity));
1276
+ }
1277
+ .nx-text-gray-800 {
1278
+ --tw-text-opacity: 1;
1279
+ color: rgba(31, 41, 55, var(--tw-text-opacity));
1280
+ }
1281
+ .nx-text-gray-900 {
1282
+ --tw-text-opacity: 1;
1283
+ color: rgba(17, 24, 39, var(--tw-text-opacity));
1284
+ }
1285
+ .nx-text-orange-800 {
1286
+ --tw-text-opacity: 1;
1287
+ color: rgba(154, 52, 18, var(--tw-text-opacity));
1288
+ }
1289
+ .nx-text-primary-600 {
1290
+ --tw-text-opacity: 1;
1291
+ color: hsl(var(--nextra-primary-hue) 100% 45% / var(--tw-text-opacity));
1292
+ }
1293
+ .nx-text-primary-800 {
1294
+ --tw-text-opacity: 1;
1295
+ color: hsl(var(--nextra-primary-hue) 100% 32% / var(--tw-text-opacity));
1296
+ }
1297
+ .nx-text-red-500 {
1298
+ --tw-text-opacity: 1;
1299
+ color: rgba(239, 68, 68, var(--tw-text-opacity));
1300
+ }
1301
+ .nx-text-red-900 {
1302
+ --tw-text-opacity: 1;
1303
+ color: rgba(127, 29, 29, var(--tw-text-opacity));
1304
+ }
1305
+ .nx-text-slate-50 {
1306
+ --tw-text-opacity: 1;
1307
+ color: rgba(248, 250, 252, var(--tw-text-opacity));
1308
+ }
1309
+ .nx-text-slate-900 {
1310
+ --tw-text-opacity: 1;
1311
+ color: rgba(15, 23, 42, var(--tw-text-opacity));
1312
+ }
1313
+ .nx-text-yellow-900 {
1314
+ --tw-text-opacity: 1;
1315
+ color: rgba(113, 63, 18, var(--tw-text-opacity));
1316
+ }
1317
+ .nx-underline {
1318
+ text-decoration-line: underline;
1319
+ }
1320
+ .nx-no-underline {
1321
+ text-decoration-line: none;
1322
+ }
1323
+ .nx-decoration-from-font {
1324
+ text-decoration-thickness: from-font;
1325
+ }
1326
+ .nx-subpixel-antialiased {
1327
+ -webkit-font-smoothing: auto;
1328
+ -moz-osx-font-smoothing: auto;
1329
+ }
1330
+ .nx-opacity-0 {
1331
+ opacity: 0;
1332
+ }
1333
+ .nx-opacity-100 {
1334
+ opacity: 1;
1335
+ }
1336
+ .nx-opacity-25 {
1337
+ opacity: 0.25;
1338
+ }
1339
+ .nx-opacity-75 {
1340
+ opacity: 0.75;
1341
+ }
1342
+ .nx-opacity-80 {
1343
+ opacity: 0.8;
1344
+ }
1345
+ .nx-shadow {
1346
+ --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
1347
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color),
1348
+ 0 1px 2px -1px var(--tw-shadow-color);
1349
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
1350
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
1351
+ }
1352
+ .nx-shadow-\[0_-12px_16px_\#fff\] {
1353
+ --tw-shadow: 0 -12px 16px #fff;
1354
+ --tw-shadow-colored: 0 -12px 16px var(--tw-shadow-color);
1355
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
1356
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
1357
+ }
1358
+ .nx-shadow-\[0_-12px_16px_white\] {
1359
+ --tw-shadow: 0 -12px 16px white;
1360
+ --tw-shadow-colored: 0 -12px 16px var(--tw-shadow-color);
1361
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
1362
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
1363
+ }
1364
+ .nx-shadow-\[0_2px_4px_rgba\(0\,0\,0\,\.02\)\,0_1px_0_rgba\(0\,0\,0\,\.06\)\] {
1365
+ --tw-shadow: 0 2px 4px rgba(0, 0, 0, 0.02), 0 1px 0 rgba(0, 0, 0, 0.06);
1366
+ --tw-shadow-colored: 0 2px 4px var(--tw-shadow-color),
1367
+ 0 1px 0 var(--tw-shadow-color);
1368
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
1369
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
1370
+ }
1371
+ .nx-shadow-lg {
1372
+ --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
1373
+ 0 4px 6px -4px rgba(0, 0, 0, 0.1);
1374
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),
1375
+ 0 4px 6px -4px var(--tw-shadow-color);
1376
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
1377
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
1378
+ }
1379
+ .nx-shadow-sm {
1380
+ --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1381
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
1382
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
1383
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
1384
+ }
1385
+ .nx-shadow-xl {
1386
+ --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1),
1387
+ 0 8px 10px -6px rgba(0, 0, 0, 0.1);
1388
+ --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color),
1389
+ 0 8px 10px -6px var(--tw-shadow-color);
1390
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
1391
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
1392
+ }
1393
+ .nx-shadow-gray-100 {
1394
+ --tw-shadow-color: #f3f4f6;
1395
+ --tw-shadow: var(--tw-shadow-colored);
1396
+ }
1397
+ .nx-ring-1 {
1398
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
1399
+ var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1400
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
1401
+ calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1402
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
1403
+ var(--tw-shadow, 0 0 transparent);
1404
+ }
1405
+ .nx-ring-black\/5 {
1406
+ --tw-ring-color: rgba(0, 0, 0, 0.05);
1407
+ }
1408
+ .nx-transition {
1409
+ transition-property:
1410
+ color,
1411
+ background-color,
1412
+ border-color,
1413
+ text-decoration-color,
1414
+ fill,
1415
+ stroke,
1416
+ opacity,
1417
+ box-shadow,
1418
+ -webkit-transform,
1419
+ transform,
1420
+ -webkit-filter,
1421
+ filter,
1422
+ -webkit-backdrop-filter,
1423
+ backdrop-filter;
1424
+ transition-duration: 0.15s;
1425
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1426
+ }
1427
+ .nx-transition-all {
1428
+ transition-property: all;
1429
+ transition-duration: 0.15s;
1430
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1431
+ }
1432
+ .nx-transition-colors {
1433
+ transition-property: color, background-color, border-color,
1434
+ text-decoration-color, fill, stroke;
1435
+ transition-duration: 0.15s;
1436
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1437
+ }
1438
+ .nx-transition-opacity {
1439
+ transition-property: opacity;
1440
+ transition-duration: 0.15s;
1441
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1442
+ }
1443
+ .nx-transition-transform {
1444
+ transition-property: -webkit-transform, transform;
1445
+ transition-duration: 0.15s;
1446
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1447
+ }
1448
+ .nx-duration-100 {
1449
+ transition-duration: 0.1s;
1450
+ }
1451
+ .nx-duration-200 {
1452
+ transition-duration: 0.2s;
1453
+ }
1454
+ .nx-duration-300 {
1455
+ transition-duration: 0.3s;
1456
+ }
1457
+ .nx-duration-500 {
1458
+ transition-duration: 0.5s;
1459
+ }
1460
+ .nx-duration-75 {
1461
+ transition-duration: 75ms;
1462
+ }
1463
+ .nx-ease-in-out {
1464
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1465
+ }
1466
+ .\[-webkit-tap-highlight-color\:transparent\] {
1467
+ -webkit-tap-highlight-color: transparent;
1468
+ }
1469
+ .\[-webkit-touch-callout\:none\] {
1470
+ -webkit-touch-callout: none;
1471
+ }
1472
+ .\[counter-reset\:line\] {
1473
+ counter-reset: line;
1474
+ }
1475
+ .\[counter-reset\:step\] {
1476
+ counter-reset: step;
1477
+ }
1478
+ .\[hyphens\:auto\] {
1479
+ -webkit-hyphens: auto;
1480
+ -ms-hyphens: auto;
1481
+ hyphens: auto;
1482
+ }
1483
+ .\[text-underline-position\:from-font\] {
1484
+ text-underline-position: from-font;
1485
+ }
1486
+ .\[transition\:background-color_1\.5s_ease\] {
1487
+ transition: background-color 1.5s;
1488
+ }
1489
+ .\[word-break\:break-word\] {
1490
+ word-break: break-word;
1491
+ }
1492
+ :root {
1493
+ --shiki-color-text: #414141;
1494
+ --shiki-color-background: transparent;
1495
+ --shiki-token-constant: #1976d2;
1496
+ --shiki-token-string: #22863a;
1497
+ --shiki-token-comment: #aaa;
1498
+ --shiki-token-keyword: #d32f2f;
1499
+ --shiki-token-parameter: #ff9801;
1500
+ --shiki-token-function: #6f42c1;
1501
+ --shiki-token-string-expression: var(--shiki-token-string);
1502
+ --shiki-token-punctuation: #212121;
1503
+ --shiki-token-link: var(--shiki-token-string);
1504
+ --shiki-color-ansi-black: #24292e;
1505
+ --shiki-color-ansi-black-dim: rgba(36, 41, 46, 0.5);
1506
+ --shiki-color-ansi-red: #d73a49;
1507
+ --shiki-color-ansi-red-dim: rgba(215, 58, 73, 0.5);
1508
+ --shiki-color-ansi-green: #28a745;
1509
+ --shiki-color-ansi-green-dim: rgba(40, 167, 69, 0.5);
1510
+ --shiki-color-ansi-yellow: #dbab09;
1511
+ --shiki-color-ansi-yellow-dim: rgba(219, 171, 9, 0.5);
1512
+ --shiki-color-ansi-blue: #0366d6;
1513
+ --shiki-color-ansi-blue-dim: rgba(3, 102, 214, 0.5);
1514
+ --shiki-color-ansi-magenta: #5a32a3;
1515
+ --shiki-color-ansi-magenta-dim: rgba(90, 50, 163, 0.5);
1516
+ --shiki-color-ansi-cyan: #1b7c83;
1517
+ --shiki-color-ansi-cyan-dim: rgba(27, 124, 131, 0.5);
1518
+ --shiki-color-ansi-white: #6a737d;
1519
+ --shiki-color-ansi-white-dim: rgba(106, 115, 125, 0.5);
1520
+ --shiki-color-ansi-bright-black: #959da5;
1521
+ --shiki-color-ansi-bright-black-dim: rgba(149, 157, 165, 0.5);
1522
+ --shiki-color-ansi-bright-red: #cb2431;
1523
+ --shiki-color-ansi-bright-red-dim: rgba(203, 36, 49, 0.5);
1524
+ --shiki-color-ansi-bright-green: #22863a;
1525
+ --shiki-color-ansi-bright-green-dim: rgba(34, 134, 58, 0.5);
1526
+ --shiki-color-ansi-bright-yellow: #b08800;
1527
+ --shiki-color-ansi-bright-yellow-dim: rgba(176, 136, 0, 0.5);
1528
+ --shiki-color-ansi-bright-blue: #005cc5;
1529
+ --shiki-color-ansi-bright-blue-dim: rgba(0, 92, 197, 0.5);
1530
+ --shiki-color-ansi-bright-magenta: #5a32a3;
1531
+ --shiki-color-ansi-bright-magenta-dim: rgba(90, 50, 163, 0.5);
1532
+ --shiki-color-ansi-bright-cyan: #3192aa;
1533
+ --shiki-color-ansi-bright-cyan-dim: rgba(49, 146, 170, 0.5);
1534
+ --shiki-color-ansi-bright-white: #d1d5da;
1535
+ --shiki-color-ansi-bright-white-dim: rgba(209, 213, 218, 0.5);
1536
+ }
1537
+ @supports (color: color(display-p3 0 0 0)) {
1538
+ :root {
1539
+ --shiki-color-text: color(display-p3 0.254903 0.254903 0.254903);
1540
+ --shiki-token-constant: color(display-p3 0.222026 0.455961 0.797051);
1541
+ --shiki-token-string: color(display-p3 0.261609 0.517894 0.262929);
1542
+ --shiki-token-comment: color(display-p3 0.666644 0.666644 0.666644);
1543
+ --shiki-token-keyword: color(display-p3 0.761402 0.245911 0.21847);
1544
+ --shiki-token-parameter: color(display-p3 0.944308 0.615493 0.221148);
1545
+ --shiki-token-function: color(display-p3 0.410511 0.267378 0.729566);
1546
+ --shiki-token-punctuation: color(display-p3 0.12945 0.12945 0.12945);
1547
+ }
1548
+ }
1549
+ @supports (color: lab(0% 0 0)) {
1550
+ :root {
1551
+ --shiki-color-text: lab(27.5348% 0 0);
1552
+ --shiki-token-constant: lab(48.3994% 0.649333 -55.5719);
1553
+ --shiki-token-string: lab(49.1367% -42.0409 31.8582);
1554
+ --shiki-token-comment: lab(69.608% -0.0000298023 0);
1555
+ --shiki-token-keyword: lab(47.8876% 63.025 42.31);
1556
+ --shiki-token-parameter: lab(72.7377% 33.9074 77.3632);
1557
+ --shiki-token-function: lab(39.0339% 41.1896 -60.5821);
1558
+ --shiki-token-punctuation: lab(12.7448% 0 0);
1559
+ }
1560
+ }
1561
+ .dark {
1562
+ --shiki-color-text: #d1d1d1;
1563
+ --shiki-token-constant: #79b8ff;
1564
+ --shiki-token-string: #ffab70;
1565
+ --shiki-token-comment: #6b737c;
1566
+ --shiki-token-keyword: #f97583;
1567
+ --shiki-token-function: #b392f0;
1568
+ --shiki-token-string-expression: #4bb74a;
1569
+ --shiki-token-punctuation: #bbb;
1570
+ --shiki-token-link: var(--shiki-token-string);
1571
+ --shiki-color-ansi-black: #586069;
1572
+ --shiki-color-ansi-black-dim: rgba(88, 96, 105, 0.5);
1573
+ --shiki-color-ansi-red: #ea4a5a;
1574
+ --shiki-color-ansi-red-dim: rgba(234, 74, 90, 0.5);
1575
+ --shiki-color-ansi-green: #34d058;
1576
+ --shiki-color-ansi-green-dim: rgba(52, 208, 88, 0.5);
1577
+ --shiki-color-ansi-yellow: #ffea7f;
1578
+ --shiki-color-ansi-yellow-dim: rgba(255, 234, 127, 0.5);
1579
+ --shiki-color-ansi-blue: #2188ff;
1580
+ --shiki-color-ansi-blue-dim: rgba(33, 136, 255, 0.5);
1581
+ --shiki-color-ansi-magenta: #b392f0;
1582
+ --shiki-color-ansi-magenta-dim: rgba(179, 146, 240, 0.5);
1583
+ --shiki-color-ansi-cyan: #39c5cf;
1584
+ --shiki-color-ansi-cyan-dim: rgba(57, 197, 207, 0.5);
1585
+ --shiki-color-ansi-white: #d1d5da;
1586
+ --shiki-color-ansi-white-dim: rgba(209, 213, 218, 0.5);
1587
+ --shiki-color-ansi-bright-black: #959da5;
1588
+ --shiki-color-ansi-bright-black-dim: rgba(149, 157, 165, 0.5);
1589
+ --shiki-color-ansi-bright-red: #f97583;
1590
+ --shiki-color-ansi-bright-red-dim: rgba(249, 117, 131, 0.5);
1591
+ --shiki-color-ansi-bright-green: #85e89d;
1592
+ --shiki-color-ansi-bright-green-dim: rgba(133, 232, 157, 0.5);
1593
+ --shiki-color-ansi-bright-yellow: #ffea7f;
1594
+ --shiki-color-ansi-bright-yellow-dim: rgba(255, 234, 127, 0.5);
1595
+ --shiki-color-ansi-bright-blue: #79b8ff;
1596
+ --shiki-color-ansi-bright-blue-dim: rgba(121, 184, 255, 0.5);
1597
+ --shiki-color-ansi-bright-magenta: #b392f0;
1598
+ --shiki-color-ansi-bright-magenta-dim: rgba(179, 146, 240, 0.5);
1599
+ --shiki-color-ansi-bright-cyan: #56d4dd;
1600
+ --shiki-color-ansi-bright-cyan-dim: rgba(86, 212, 221, 0.5);
1601
+ --shiki-color-ansi-bright-white: #fafbfc;
1602
+ --shiki-color-ansi-bright-white-dim: rgba(250, 251, 252, 0.5);
1603
+ }
1604
+ @supports (color: color(display-p3 0 0 0)) {
1605
+ .dark {
1606
+ --shiki-color-text: color(display-p3 0.819616 0.819616 0.819616);
1607
+ --shiki-token-constant: color(display-p3 0.530161 0.715063 0.976018);
1608
+ --shiki-token-string: color(display-p3 0.951836 0.685108 0.47841);
1609
+ --shiki-token-comment: color(display-p3 0.425394 0.449959 0.48271);
1610
+ --shiki-token-keyword: color(display-p3 0.912244 0.487925 0.52253);
1611
+ --shiki-token-function: color(display-p3 0.681317 0.57716 0.917817);
1612
+ --shiki-token-string-expression: color(
1613
+ display-p3 0.412063 0.708644 0.344662
1614
+ );
1615
+ --shiki-token-punctuation: color(display-p3 0.733365 0.733365 0.733365);
1616
+ }
1617
+ }
1618
+ @supports (color: lab(0% 0 0)) {
1619
+ .dark {
1620
+ --shiki-color-text: lab(83.8412% -0.0000298023 0);
1621
+ --shiki-token-constant: lab(72.6797% -5.9377 -41.8341);
1622
+ --shiki-token-string: lab(77.5312% 27.4176 43.2358);
1623
+ --shiki-token-comment: lab(47.984% -1.63257 -6.06269);
1624
+ --shiki-token-keyword: lab(65.9075% 52.4906 18.1315);
1625
+ --shiki-token-function: lab(66.4473% 27.2323 -43.2583);
1626
+ --shiki-token-string-expression: lab(66.4666% -48.7314 44.7269);
1627
+ --shiki-token-punctuation: lab(75.8836% 0 -0.0000119209);
1628
+ }
1629
+ }
1630
+ code {
1631
+ -webkit-box-decoration-break: clone;
1632
+ box-decoration-break: clone;
1633
+ font-feature-settings:
1634
+ "rlig" 1,
1635
+ "calt" 1,
1636
+ "ss01" 1;
1637
+ }
1638
+ code[data-line-numbers] > .line {
1639
+ padding-left: 0.5rem;
1640
+ }
1641
+ code[data-line-numbers] > .line:before {
1642
+ counter-increment: line;
1643
+ content: counter(line);
1644
+ float: left;
1645
+ text-align: right;
1646
+ --tw-text-opacity: 1;
1647
+ color: rgba(107, 114, 128, var(--tw-text-opacity));
1648
+ min-width: 2.6rem;
1649
+ height: 100%;
1650
+ padding-right: 1rem;
1651
+ }
1652
+ code .line.highlighted {
1653
+ background-color: hsl(var(--nextra-primary-hue) 100% 45%/0.1);
1654
+ color: hsl(var(--nextra-primary-hue) 100% 45%/0.5);
1655
+ --tw-shadow: 2px 0 currentColor inset;
1656
+ --tw-shadow-colored: inset 2px 0 var(--tw-shadow-color);
1657
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
1658
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
1659
+ }
1660
+ code .line .highlighted {
1661
+ --tw-shadow: 0 0 0 2px rgba(0, 0, 0, 0.3);
1662
+ --tw-shadow-colored: 0 0 0 2px var(--tw-shadow-color);
1663
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
1664
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
1665
+ background-color: hsl(var(--nextra-primary-hue) 100% 32%/0.1);
1666
+ --tw-shadow-color: hsl(var(--nextra-primary-hue) 100% 32%/0.1);
1667
+ --tw-shadow: var(--tw-shadow-colored);
1668
+ border-radius: 0.125rem;
1669
+ }
1670
+ :is(html[class~="dark"] code .line .highlighted) {
1671
+ background-color: hsl(var(--nextra-primary-hue) 100% 77%/0.1);
1672
+ --tw-shadow-color: hsl(var(--nextra-primary-hue) 100% 77%/0.1);
1673
+ --tw-shadow: var(--tw-shadow-colored);
1674
+ }
1675
+ pre {
1676
+ contain: paint;
1677
+ }
1678
+ pre code {
1679
+ color: currentColor;
1680
+ border-style: none;
1681
+ border-radius: 0;
1682
+ min-width: 100%;
1683
+ font-size: 0.875rem;
1684
+ line-height: 1.25rem;
1685
+ display: grid;
1686
+ background-color: transparent !important;
1687
+ padding: 0 !important;
1688
+ }
1689
+ :is(html[class~="dark"] pre code) {
1690
+ background-color: transparent !important;
1691
+ }
1692
+ pre code .line,
1693
+ pre:not([data-theme]) {
1694
+ padding-left: 1rem;
1695
+ padding-right: 1rem;
1696
+ }
1697
+ html[data-nextra-word-wrap] pre {
1698
+ word-break: break-word;
1699
+ white-space: pre-wrap;
1700
+ }
1701
+ @media (min-width: 768px) {
1702
+ html[data-nextra-word-wrap] pre {
1703
+ white-space: pre;
1704
+ }
1705
+ }
1706
+ html[data-nextra-word-wrap] pre .line {
1707
+ display: inline-block;
1708
+ }
1709
+ pre .nextra-copy-icon {
1710
+ -webkit-animation: 0.3s forwards fade-in;
1711
+ animation: 0.3s forwards fade-in;
1712
+ }
1713
+ @-webkit-keyframes fade-in {
1714
+ 0% {
1715
+ opacity: 0;
1716
+ }
1717
+ to {
1718
+ opacity: 1;
1719
+ }
1720
+ }
1721
+ @keyframes fade-in {
1722
+ 0% {
1723
+ opacity: 0;
1724
+ }
1725
+ to {
1726
+ opacity: 1;
1727
+ }
1728
+ }
1729
+ @supports ((-webkit-backdrop-filter: blur(1px))) or
1730
+ ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
1731
+ .nextra-button {
1732
+ --tw-bg-opacity: 0.85;
1733
+ --tw-backdrop-blur: blur(12px);
1734
+ -webkit-backdrop-filter: var(--tw-backdrop-blur)
1735
+ var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
1736
+ var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
1737
+ var(--tw-backdrop-invert) var(--tw-backdrop-opacity)
1738
+ var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
1739
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
1740
+ var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
1741
+ var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
1742
+ var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
1743
+ var(--tw-backdrop-sepia);
1744
+ }
1745
+ :is(html[class~="dark"] .nextra-button) {
1746
+ --tw-bg-opacity: 0.8;
1747
+ }
1748
+ }
1749
+ .subheading-anchor {
1750
+ opacity: 0;
1751
+ transition-property: opacity;
1752
+ transition-duration: 0.15s;
1753
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1754
+ }
1755
+ :is([dir="ltr"] .subheading-anchor) {
1756
+ margin-left: 0.25rem;
1757
+ }
1758
+ :is([dir="rtl"] .subheading-anchor) {
1759
+ margin-right: 0.25rem;
1760
+ }
1761
+ span:target + .subheading-anchor,
1762
+ :hover > .subheading-anchor,
1763
+ .subheading-anchor:focus {
1764
+ opacity: 1;
1765
+ }
1766
+ span + .subheading-anchor,
1767
+ :hover > .subheading-anchor {
1768
+ text-decoration-line: none !important;
1769
+ }
1770
+ .subheading-anchor:after {
1771
+ --tw-content: "#";
1772
+ content: var(--tw-content);
1773
+ --tw-text-opacity: 1;
1774
+ color: rgba(209, 213, 219, var(--tw-text-opacity));
1775
+ padding-left: 0.25rem;
1776
+ padding-right: 0.25rem;
1777
+ }
1778
+ :is(html[class~="dark"] .subheading-anchor):after {
1779
+ --tw-text-opacity: 1;
1780
+ color: rgba(64, 64, 64, var(--tw-text-opacity));
1781
+ }
1782
+ span:target + .subheading-anchor:after {
1783
+ --tw-text-opacity: 1;
1784
+ color: rgba(156, 163, 175, var(--tw-text-opacity));
1785
+ }
1786
+ :is(html[class~="dark"] span:target + .subheading-anchor):after {
1787
+ --tw-text-opacity: 1;
1788
+ color: rgba(115, 115, 115, var(--tw-text-opacity));
1789
+ }
1790
+ .nextra-scrollbar {
1791
+ scrollbar-width: thin;
1792
+ scrollbar-color: rgba(115, 115, 115, 0.4) transparent;
1793
+ scrollbar-gutter: stable;
1794
+ }
1795
+ @supports (color: color(display-p3 0 0 0)) {
1796
+ .nextra-scrollbar {
1797
+ scrollbar-color: color(display-p3 0.45095 0.45095 0.45095/0.4) transparent;
1798
+ }
1799
+ }
1800
+ @supports (color: lab(0% 0 0)) {
1801
+ .nextra-scrollbar {
1802
+ scrollbar-color: lab(48.438% 0 0/0.4) transparent;
1803
+ }
1804
+ }
1805
+ .nextra-scrollbar::-webkit-scrollbar {
1806
+ width: 0.75rem;
1807
+ height: 0.75rem;
1808
+ }
1809
+ .nextra-scrollbar::-webkit-scrollbar-track {
1810
+ background-color: transparent;
1811
+ }
1812
+ .nextra-scrollbar::-webkit-scrollbar-thumb {
1813
+ border-radius: 10px;
1814
+ }
1815
+ .nextra-scrollbar:hover::-webkit-scrollbar-thumb {
1816
+ background-color: var(--tw-shadow-color);
1817
+ --tw-shadow-color: rgba(115, 115, 115, 0.2);
1818
+ --tw-shadow: var(--tw-shadow-colored);
1819
+ background-clip: content-box;
1820
+ border: 3px solid transparent;
1821
+ }
1822
+ .nextra-scrollbar:hover::-webkit-scrollbar-thumb:hover {
1823
+ --tw-shadow-color: rgba(115, 115, 115, 0.4);
1824
+ --tw-shadow: var(--tw-shadow-colored);
1825
+ }
1826
+ @media (max-width: 767px) {
1827
+ .nextra-container .nextra-scrollbar {
1828
+ scrollbar-gutter: auto;
1829
+ }
1830
+ }
1831
+ .no-scrollbar {
1832
+ scrollbar-width: none;
1833
+ -ms-overflow-style: none;
1834
+ }
1835
+ .no-scrollbar::-webkit-scrollbar {
1836
+ display: none;
1837
+ }
1838
+ .nextra-steps h3 {
1839
+ counter-increment: step;
1840
+ }
1841
+ .nextra-steps h3:before {
1842
+ --tw-border-opacity: 1;
1843
+ border-width: 4px;
1844
+ border-color: rgba(255, 255, 255, var(--tw-border-opacity));
1845
+ --tw-bg-opacity: 1;
1846
+ background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
1847
+ width: 33px;
1848
+ height: 33px;
1849
+ position: absolute;
1850
+ }
1851
+ :is(html[class~="dark"] .nextra-steps h3):before {
1852
+ --tw-border-opacity: 1;
1853
+ border-color: rgba(17, 17, 17, var(--tw-border-opacity));
1854
+ --tw-bg-opacity: 1;
1855
+ background-color: rgba(38, 38, 38, var(--tw-bg-opacity));
1856
+ }
1857
+ .nextra-steps h3:before {
1858
+ text-align: center;
1859
+ text-indent: -1px;
1860
+ --tw-text-opacity: 1;
1861
+ color: rgba(163, 163, 163, var(--tw-text-opacity));
1862
+ content: counter(step);
1863
+ border-radius: 9999px;
1864
+ margin-top: 3px;
1865
+ margin-left: -41px;
1866
+ font-size: 1rem;
1867
+ font-weight: 400;
1868
+ }
1869
+ .nextra-cards {
1870
+ grid-template-columns: repeat(
1871
+ auto-fill,
1872
+ minmax(max(250px, calc((100% - 1rem * 2) / var(--rows))), 1fr)
1873
+ );
1874
+ }
1875
+ .nextra-card img {
1876
+ -webkit-user-select: none;
1877
+ -ms-user-select: none;
1878
+ user-select: none;
1879
+ }
1880
+ .nextra-card:hover svg {
1881
+ color: currentColor;
1882
+ }
1883
+ .nextra-card svg {
1884
+ color: rgba(0, 0, 0, 0.2);
1885
+ width: 1.5rem;
1886
+ transition: color 0.3s;
1887
+ }
1888
+ .nextra-card p {
1889
+ margin-top: 0.5rem;
1890
+ }
1891
+ .dark .nextra-card svg {
1892
+ color: rgba(255, 255, 255, 0.4);
1893
+ }
1894
+ .dark .nextra-card:hover svg {
1895
+ color: currentColor;
1896
+ }
1897
+ .nextra-hamburger svg g {
1898
+ -webkit-transform-origin: 50%;
1899
+ transform-origin: 50%;
1900
+ transition:
1901
+ -webkit-transform 0.2s cubic-bezier(0.25, 1, 0.5, 1),
1902
+ transform 0.2s cubic-bezier(0.25, 1, 0.5, 1);
1903
+ }
1904
+ .nextra-hamburger svg path {
1905
+ opacity: 1;
1906
+ transition:
1907
+ -webkit-transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s,
1908
+ transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s,
1909
+ opacity 0.2s 0.2s;
1910
+ }
1911
+ .nextra-hamburger svg.open path {
1912
+ transition:
1913
+ -webkit-transform 0.2s cubic-bezier(0.25, 1, 0.5, 1),
1914
+ transform 0.2s cubic-bezier(0.25, 1, 0.5, 1),
1915
+ opacity 0s 0.2s;
1916
+ }
1917
+ .nextra-hamburger svg.open g {
1918
+ transition:
1919
+ -webkit-transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s,
1920
+ transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s;
1921
+ }
1922
+ .nextra-hamburger svg.open > path {
1923
+ opacity: 0;
1924
+ }
1925
+ .nextra-hamburger svg.open > g:first-of-type {
1926
+ --tw-rotate: 45deg;
1927
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
1928
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
1929
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1930
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
1931
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
1932
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1933
+ }
1934
+ .nextra-hamburger svg.open > g:first-of-type path {
1935
+ -webkit-transform: translateY(6px);
1936
+ transform: translateY(6px);
1937
+ }
1938
+ .nextra-hamburger svg.open > g:nth-of-type(2) {
1939
+ --tw-rotate: -45deg;
1940
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
1941
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
1942
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1943
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
1944
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
1945
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1946
+ }
1947
+ .nextra-hamburger svg.open > g:nth-of-type(2) path {
1948
+ -webkit-transform: translateY(-6px);
1949
+ transform: translateY(-6px);
1950
+ }
1951
+ article.nextra-body-typesetting-article {
1952
+ font-feature-settings:
1953
+ "rlig" 1,
1954
+ "calt" 1;
1955
+ font-size: 17px;
1956
+ }
1957
+ article.nextra-body-typesetting-article h1 {
1958
+ text-align: center;
1959
+ margin-top: 1.5rem;
1960
+ margin-bottom: 1rem;
1961
+ font-size: 2.5rem;
1962
+ }
1963
+ article.nextra-body-typesetting-article h2 {
1964
+ border-style: none;
1965
+ }
1966
+ article.nextra-body-typesetting-article a {
1967
+ text-decoration-line: none;
1968
+ }
1969
+ article.nextra-body-typesetting-article a:hover {
1970
+ text-decoration-line: underline;
1971
+ }
1972
+ article.nextra-body-typesetting-article p {
1973
+ line-height: 2rem;
1974
+ }
1975
+ article.nextra-body-typesetting-article code {
1976
+ border-style: none;
1977
+ }
1978
+ :is(html[class~="dark"] article.nextra-body-typesetting-article code) {
1979
+ --tw-bg-opacity: 1;
1980
+ background-color: rgba(64, 64, 64, var(--tw-bg-opacity));
1981
+ }
1982
+ :is(html[class~="dark"] article.nextra-body-typesetting-article pre code) {
1983
+ background-color: transparent;
1984
+ }
1985
+ article.nextra-body-typesetting-article .subheading-anchor + a {
1986
+ text-decoration-line: none;
1987
+ }
1988
+ article.nextra-body-typesetting-article .subheading-anchor + a:after {
1989
+ content: var(--tw-content);
1990
+ display: none;
1991
+ }
1992
+ article.nextra-body-typesetting-article .subheading-anchor + a:hover {
1993
+ text-decoration-line: none;
1994
+ }
1995
+ html {
1996
+ -webkit-font-smoothing: antialiased;
1997
+ -moz-osx-font-smoothing: grayscale;
1998
+ font-feature-settings:
1999
+ "rlig" 1,
2000
+ "calt" 1,
2001
+ "ss01" 1;
2002
+ -webkit-tap-highlight-color: transparent;
2003
+ font-size: 1rem;
2004
+ }
2005
+ body {
2006
+ --tw-bg-opacity: 1;
2007
+ background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
2008
+ width: 100%;
2009
+ }
2010
+ :is(html[class~="dark"] body) {
2011
+ --tw-bg-opacity: 1;
2012
+ background-color: rgba(17, 17, 17, var(--tw-bg-opacity));
2013
+ --tw-text-opacity: 1;
2014
+ color: rgba(243, 244, 246, var(--tw-text-opacity));
2015
+ }
2016
+ a,
2017
+ summary,
2018
+ button,
2019
+ input,
2020
+ [tabindex]:not([tabindex="-1"]) {
2021
+ outline-offset: 2px;
2022
+ outline: 2px solid transparent;
2023
+ }
2024
+ a:focus-visible {
2025
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
2026
+ var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2027
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
2028
+ calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2029
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
2030
+ var(--tw-shadow, 0 0 transparent);
2031
+ --tw-ring-opacity: 1;
2032
+ --tw-ring-color: hsl(
2033
+ var(--nextra-primary-hue) 100% 86% / var(--tw-ring-opacity)
2034
+ );
2035
+ --tw-ring-offset-width: 1px;
2036
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 77%);
2037
+ }
2038
+ summary:focus-visible {
2039
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
2040
+ var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2041
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
2042
+ calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2043
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
2044
+ var(--tw-shadow, 0 0 transparent);
2045
+ --tw-ring-opacity: 1;
2046
+ --tw-ring-color: hsl(
2047
+ var(--nextra-primary-hue) 100% 86% / var(--tw-ring-opacity)
2048
+ );
2049
+ --tw-ring-offset-width: 1px;
2050
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 77%);
2051
+ }
2052
+ button:focus-visible {
2053
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
2054
+ var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2055
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
2056
+ calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2057
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
2058
+ var(--tw-shadow, 0 0 transparent);
2059
+ --tw-ring-opacity: 1;
2060
+ --tw-ring-color: hsl(
2061
+ var(--nextra-primary-hue) 100% 86% / var(--tw-ring-opacity)
2062
+ );
2063
+ --tw-ring-offset-width: 1px;
2064
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 77%);
2065
+ }
2066
+ input:focus-visible {
2067
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
2068
+ var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2069
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
2070
+ calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2071
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
2072
+ var(--tw-shadow, 0 0 transparent);
2073
+ --tw-ring-opacity: 1;
2074
+ --tw-ring-color: hsl(
2075
+ var(--nextra-primary-hue) 100% 86% / var(--tw-ring-opacity)
2076
+ );
2077
+ --tw-ring-offset-width: 1px;
2078
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 77%);
2079
+ }
2080
+ [tabindex]:not([tabindex="-1"]):focus-visible {
2081
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
2082
+ var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2083
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
2084
+ calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
2085
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
2086
+ var(--tw-shadow, 0 0 transparent);
2087
+ --tw-ring-opacity: 1;
2088
+ --tw-ring-color: hsl(
2089
+ var(--nextra-primary-hue) 100% 86% / var(--tw-ring-opacity)
2090
+ );
2091
+ --tw-ring-offset-width: 1px;
2092
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 77%);
2093
+ }
2094
+ :is(html[class~="dark"] a:focus-visible) {
2095
+ --tw-ring-opacity: 1;
2096
+ --tw-ring-color: hsl(
2097
+ var(--nextra-primary-hue) 100% 32% / var(--tw-ring-opacity)
2098
+ );
2099
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 39%);
2100
+ }
2101
+ :is(html[class~="dark"] summary:focus-visible) {
2102
+ --tw-ring-opacity: 1;
2103
+ --tw-ring-color: hsl(
2104
+ var(--nextra-primary-hue) 100% 32% / var(--tw-ring-opacity)
2105
+ );
2106
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 39%);
2107
+ }
2108
+ :is(html[class~="dark"] button:focus-visible) {
2109
+ --tw-ring-opacity: 1;
2110
+ --tw-ring-color: hsl(
2111
+ var(--nextra-primary-hue) 100% 32% / var(--tw-ring-opacity)
2112
+ );
2113
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 39%);
2114
+ }
2115
+ :is(html[class~="dark"] input:focus-visible) {
2116
+ --tw-ring-opacity: 1;
2117
+ --tw-ring-color: hsl(
2118
+ var(--nextra-primary-hue) 100% 32% / var(--tw-ring-opacity)
2119
+ );
2120
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 39%);
2121
+ }
2122
+ :is(html[class~="dark"] [tabindex]:not([tabindex="-1"]):focus-visible) {
2123
+ --tw-ring-opacity: 1;
2124
+ --tw-ring-color: hsl(
2125
+ var(--nextra-primary-hue) 100% 32% / var(--tw-ring-opacity)
2126
+ );
2127
+ --tw-ring-offset-color: hsl(var(--nextra-primary-hue) 100% 39%);
2128
+ }
2129
+ a,
2130
+ summary {
2131
+ border-radius: 0.25rem;
2132
+ }
2133
+ .nextra-content {
2134
+ --tw-text-opacity: 1;
2135
+ color: rgba(51, 65, 85, var(--tw-text-opacity));
2136
+ }
2137
+ :is(html[class~="dark"] .nextra-content) {
2138
+ --tw-text-opacity: 1;
2139
+ color: rgba(226, 232, 240, var(--tw-text-opacity));
2140
+ }
2141
+ @media (max-width: 767px) {
2142
+ .nextra-sidebar-container {
2143
+ z-index: 15;
2144
+ overscroll-behavior: contain;
2145
+ --tw-bg-opacity: 1;
2146
+ background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
2147
+ padding-top: calc(var(--nextra-navbar-height));
2148
+ width: 100%;
2149
+ position: fixed;
2150
+ top: 0;
2151
+ bottom: 0;
2152
+ }
2153
+ :is(html[class~="dark"] .nextra-sidebar-container) {
2154
+ --tw-bg-opacity: 1;
2155
+ background-color: rgba(17, 17, 17, var(--tw-bg-opacity));
2156
+ }
2157
+ .nextra-sidebar-container {
2158
+ will-change: transform, opacity;
2159
+ contain: layout style;
2160
+ -webkit-backface-visibility: hidden;
2161
+ backface-visibility: hidden;
2162
+ transition:
2163
+ -webkit-transform 0.8s cubic-bezier(0.52, 0.16, 0.04, 1),
2164
+ transform 0.8s cubic-bezier(0.52, 0.16, 0.04, 1);
2165
+ }
2166
+ .nextra-sidebar-container > .nextra-scrollbar {
2167
+ -webkit-mask-image: linear-gradient(transparent, #000 20px),
2168
+ linear-gradient(270deg, #000 10px, transparent 10px);
2169
+ mask-image: linear-gradient(transparent, #000 20px),
2170
+ linear-gradient(270deg, #000 10px, transparent 10px);
2171
+ }
2172
+ .nextra-banner-container ~ div .nextra-sidebar-container {
2173
+ padding-top: 6.5rem;
2174
+ }
2175
+ .nextra-banner-container ~ div.nextra-nav-container {
2176
+ top: 2.5rem;
2177
+ }
2178
+ @media (min-width: 768px) {
2179
+ .nextra-banner-container ~ div.nextra-nav-container {
2180
+ top: 0;
2181
+ }
2182
+ }
2183
+ .nextra-banner-hidden
2184
+ .nextra-banner-container
2185
+ ~ div
2186
+ .nextra-sidebar-container {
2187
+ padding-top: 4rem;
2188
+ }
2189
+ .nextra-banner-hidden .nextra-nav-container {
2190
+ top: 0 !important;
2191
+ }
2192
+ .nextra-search .excerpt {
2193
+ text-overflow: ellipsis;
2194
+ line-clamp: 1;
2195
+ -webkit-line-clamp: 1;
2196
+ -webkit-box-orient: vertical;
2197
+ display: -webkit-box;
2198
+ overflow: hidden;
2199
+ }
2200
+ }
2201
+ @media (prefers-reduced-motion: reduce) and (max-width: 767px) {
2202
+ article:before,
2203
+ .nextra-sidebar-container,
2204
+ .nextra-sidebar-container.open,
2205
+ body.resizing .nextra-sidebar-container {
2206
+ transition-property: none;
2207
+ }
2208
+ }
2209
+ article details > summary::-webkit-details-marker {
2210
+ display: none;
2211
+ }
2212
+ article details > summary:before {
2213
+ vertical-align: -4px;
2214
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E");
2215
+ width: 1.2em;
2216
+ height: 1.2em;
2217
+ }
2218
+ @media (min-width: 768px) {
2219
+ .nextra-toc > .div,
2220
+ .nextra-sidebar-container {
2221
+ -webkit-mask-image: linear-gradient(transparent, #000 20px),
2222
+ linear-gradient(270deg, #000 10px, transparent 10px);
2223
+ mask-image: linear-gradient(transparent, #000 20px),
2224
+ linear-gradient(270deg, #000 10px, transparent 10px);
2225
+ }
2226
+ }
2227
+ @supports ((-webkit-backdrop-filter: blur(1px))) or
2228
+ ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
2229
+ .nextra-search ul {
2230
+ --tw-backdrop-blur: blur(16px);
2231
+ -webkit-backdrop-filter: var(--tw-backdrop-blur)
2232
+ var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
2233
+ var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
2234
+ var(--tw-backdrop-invert) var(--tw-backdrop-opacity)
2235
+ var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
2236
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
2237
+ var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
2238
+ var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
2239
+ var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
2240
+ var(--tw-backdrop-sepia);
2241
+ background-color: rgba(255, 255, 255, 0.7);
2242
+ }
2243
+ :is(html[class~="dark"] .nextra-search ul) {
2244
+ background-color: rgba(17, 17, 17, 0.8);
2245
+ }
2246
+ .nextra-nav-container-blur {
2247
+ --tw-backdrop-blur: blur(12px);
2248
+ -webkit-backdrop-filter: var(--tw-backdrop-blur)
2249
+ var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
2250
+ var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
2251
+ var(--tw-backdrop-invert) var(--tw-backdrop-opacity)
2252
+ var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
2253
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
2254
+ var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
2255
+ var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
2256
+ var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
2257
+ var(--tw-backdrop-sepia);
2258
+ background-color: rgba(255, 255, 255, 0.85);
2259
+ }
2260
+ :is(html[class~="dark"] .nextra-nav-container-blur) {
2261
+ background-color: rgba(17, 17, 17, 0.8) !important;
2262
+ }
2263
+ }
2264
+ input[type="search"]::-webkit-search-decoration {
2265
+ -webkit-appearance: none;
2266
+ }
2267
+ input[type="search"]::-webkit-search-cancel-button {
2268
+ -webkit-appearance: none;
2269
+ }
2270
+ input[type="search"]::-webkit-search-results-button {
2271
+ -webkit-appearance: none;
2272
+ }
2273
+ input[type="search"]::-webkit-search-results-decoration {
2274
+ -webkit-appearance: none;
2275
+ }
2276
+ .contains-task-list {
2277
+ margin-left: 0;
2278
+ list-style-type: none;
2279
+ }
2280
+ .contains-task-list input[type="checkbox"] {
2281
+ margin-right: 0.25rem;
2282
+ }
2283
+ .nextra-banner-hidden .nextra-banner-container {
2284
+ display: none;
2285
+ }
2286
+ .nextra-sidebar-container [data-toggle-animation="show"] button {
2287
+ opacity: 0;
2288
+ -webkit-animation: 1s 0.2s forwards nextra-fadein;
2289
+ animation: 1s 0.2s forwards nextra-fadein;
2290
+ }
2291
+ .nextra-sidebar-container [data-toggle-animation="hide"] button {
2292
+ opacity: 0;
2293
+ -webkit-animation: 1s 0.2s forwards nextra-fadein2;
2294
+ animation: 1s 0.2s forwards nextra-fadein2;
2295
+ }
2296
+ @-webkit-keyframes nextra-fadein {
2297
+ 0% {
2298
+ opacity: 0;
2299
+ }
2300
+ to {
2301
+ opacity: 1;
2302
+ }
2303
+ }
2304
+ @keyframes nextra-fadein {
2305
+ 0% {
2306
+ opacity: 0;
2307
+ }
2308
+ to {
2309
+ opacity: 1;
2310
+ }
2311
+ }
2312
+ @-webkit-keyframes nextra-fadein2 {
2313
+ 0% {
2314
+ opacity: 0;
2315
+ }
2316
+ to {
2317
+ opacity: 1;
2318
+ }
2319
+ }
2320
+ @keyframes nextra-fadein2 {
2321
+ 0% {
2322
+ opacity: 0;
2323
+ }
2324
+ to {
2325
+ opacity: 1;
2326
+ }
2327
+ }
2328
+ .placeholder\:nx-text-gray-500::-webkit-input-placeholder {
2329
+ --tw-text-opacity: 1;
2330
+ color: rgba(107, 114, 128, var(--tw-text-opacity));
2331
+ }
2332
+ .placeholder\:nx-text-gray-500::-ms-input-placeholder {
2333
+ --tw-text-opacity: 1;
2334
+ color: rgba(107, 114, 128, var(--tw-text-opacity));
2335
+ }
2336
+ .placeholder\:nx-text-gray-500::placeholder {
2337
+ --tw-text-opacity: 1;
2338
+ color: rgba(107, 114, 128, var(--tw-text-opacity));
2339
+ }
2340
+ .before\:nx-absolute:before {
2341
+ content: var(--tw-content);
2342
+ position: absolute;
2343
+ }
2344
+ .before\:nx-inset-y-1:before {
2345
+ content: var(--tw-content);
2346
+ top: 0.25rem;
2347
+ bottom: 0.25rem;
2348
+ }
2349
+ .before\:nx-mr-1:before {
2350
+ content: var(--tw-content);
2351
+ margin-right: 0.25rem;
2352
+ }
2353
+ .before\:nx-inline-block:before {
2354
+ content: var(--tw-content);
2355
+ display: inline-block;
2356
+ }
2357
+ .before\:nx-w-px:before {
2358
+ content: var(--tw-content);
2359
+ width: 1px;
2360
+ }
2361
+ .before\:nx-bg-gray-200:before {
2362
+ content: var(--tw-content);
2363
+ --tw-bg-opacity: 1;
2364
+ background-color: rgba(229, 231, 235, var(--tw-bg-opacity));
2365
+ }
2366
+ .before\:nx-opacity-25:before {
2367
+ content: var(--tw-content);
2368
+ opacity: 0.25;
2369
+ }
2370
+ .before\:nx-transition-transform:before {
2371
+ content: var(--tw-content);
2372
+ transition-property: -webkit-transform, transform;
2373
+ transition-duration: 0.15s;
2374
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2375
+ }
2376
+ .before\:nx-content-\[\"\"\]:before {
2377
+ --tw-content: "";
2378
+ content: var(--tw-content);
2379
+ }
2380
+ .before\:nx-content-\[\"\#\"\]:before {
2381
+ --tw-content: "#";
2382
+ content: var(--tw-content);
2383
+ }
2384
+ .before\:nx-content-\[\'\'\]:before {
2385
+ --tw-content: "";
2386
+ content: var(--tw-content);
2387
+ }
2388
+ .first\:nx-mt-0:first-child {
2389
+ margin-top: 0;
2390
+ }
2391
+ .even\:nx-bg-gray-100:nth-child(2n) {
2392
+ --tw-bg-opacity: 1;
2393
+ background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
2394
+ }
2395
+ .focus-within\:nx-opacity-100:focus-within {
2396
+ opacity: 1;
2397
+ }
2398
+ .hover\:nx-border-gray-200:hover {
2399
+ --tw-border-opacity: 1;
2400
+ border-color: rgba(229, 231, 235, var(--tw-border-opacity));
2401
+ }
2402
+ .hover\:nx-border-gray-300:hover {
2403
+ --tw-border-opacity: 1;
2404
+ border-color: rgba(209, 213, 219, var(--tw-border-opacity));
2405
+ }
2406
+ .hover\:nx-bg-gray-100:hover {
2407
+ --tw-bg-opacity: 1;
2408
+ background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
2409
+ }
2410
+ .hover\:nx-bg-gray-800\/5:hover {
2411
+ background-color: rgba(31, 41, 55, 0.05);
2412
+ }
2413
+ .hover\:nx-bg-slate-50:hover {
2414
+ --tw-bg-opacity: 1;
2415
+ background-color: rgba(248, 250, 252, var(--tw-bg-opacity));
2416
+ }
2417
+ .hover\:nx-text-black:hover {
2418
+ --tw-text-opacity: 1;
2419
+ color: rgba(0, 0, 0, var(--tw-text-opacity));
2420
+ }
2421
+ .hover\:nx-text-gray-800:hover {
2422
+ --tw-text-opacity: 1;
2423
+ color: rgba(31, 41, 55, var(--tw-text-opacity));
2424
+ }
2425
+ .hover\:nx-text-gray-900:hover {
2426
+ --tw-text-opacity: 1;
2427
+ color: rgba(17, 24, 39, var(--tw-text-opacity));
2428
+ }
2429
+ .hover\:nx-text-primary-600:hover {
2430
+ --tw-text-opacity: 1;
2431
+ color: hsl(var(--nextra-primary-hue) 100% 45% / var(--tw-text-opacity));
2432
+ }
2433
+ .hover\:nx-opacity-100:hover {
2434
+ opacity: 1;
2435
+ }
2436
+ .hover\:nx-opacity-60:hover {
2437
+ opacity: 0.6;
2438
+ }
2439
+ .hover\:nx-opacity-70:hover {
2440
+ opacity: 0.7;
2441
+ }
2442
+ .hover\:nx-opacity-75:hover {
2443
+ opacity: 0.75;
2444
+ }
2445
+ .hover\:nx-shadow-lg:hover {
2446
+ --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
2447
+ 0 4px 6px -4px rgba(0, 0, 0, 0.1);
2448
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),
2449
+ 0 4px 6px -4px var(--tw-shadow-color);
2450
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
2451
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
2452
+ }
2453
+ .hover\:nx-shadow-md:hover {
2454
+ --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
2455
+ 0 2px 4px -2px rgba(0, 0, 0, 0.1);
2456
+ --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color),
2457
+ 0 2px 4px -2px var(--tw-shadow-color);
2458
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
2459
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
2460
+ }
2461
+ .hover\:nx-shadow-gray-100:hover {
2462
+ --tw-shadow-color: #f3f4f6;
2463
+ --tw-shadow: var(--tw-shadow-colored);
2464
+ }
2465
+ .focus\:nx-not-sr-only:focus {
2466
+ clip: auto;
2467
+ white-space: normal;
2468
+ width: auto;
2469
+ height: auto;
2470
+ margin: 0;
2471
+ padding: 0;
2472
+ position: static;
2473
+ overflow: visible;
2474
+ }
2475
+ .focus\:nx-fixed:focus {
2476
+ position: fixed;
2477
+ }
2478
+ .focus\:nx-z-50:focus {
2479
+ z-index: 50;
2480
+ }
2481
+ .focus\:nx-m-3:focus {
2482
+ margin: 0.75rem;
2483
+ }
2484
+ .focus\:nx-ml-4:focus {
2485
+ margin-left: 1rem;
2486
+ }
2487
+ .focus\:nx-h-\[calc\(var\(--nextra-navbar-height\)-1\.5rem\)\]:focus {
2488
+ height: calc(var(--nextra-navbar-height) - 1.5rem);
2489
+ }
2490
+ .focus\:nx-rounded-lg:focus {
2491
+ border-radius: 0.5rem;
2492
+ }
2493
+ .focus\:nx-border:focus {
2494
+ border-width: 1px;
2495
+ }
2496
+ .focus\:nx-border-neutral-400:focus {
2497
+ --tw-border-opacity: 1;
2498
+ border-color: rgba(163, 163, 163, var(--tw-border-opacity));
2499
+ }
2500
+ .focus\:nx-bg-white:focus {
2501
+ --tw-bg-opacity: 1;
2502
+ background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
2503
+ }
2504
+ .focus\:nx-px-3:focus {
2505
+ padding-left: 0.75rem;
2506
+ padding-right: 0.75rem;
2507
+ }
2508
+ .focus\:nx-py-2:focus {
2509
+ padding-top: 0.5rem;
2510
+ padding-bottom: 0.5rem;
2511
+ }
2512
+ .focus\:nx-align-middle:focus {
2513
+ vertical-align: middle;
2514
+ }
2515
+ .focus\:nx-text-sm:focus {
2516
+ font-size: 0.875rem;
2517
+ }
2518
+ .focus\:nx-font-bold:focus {
2519
+ font-weight: 700;
2520
+ }
2521
+ .focus\:nx-text-gray-900:focus {
2522
+ --tw-text-opacity: 1;
2523
+ color: rgba(17, 24, 39, var(--tw-text-opacity));
2524
+ }
2525
+ .active\:nx-bg-gray-400\/20:active {
2526
+ background-color: rgba(156, 163, 175, 0.2);
2527
+ }
2528
+ .active\:nx-opacity-50:active {
2529
+ opacity: 0.5;
2530
+ }
2531
+ .active\:nx-shadow-sm:active {
2532
+ --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
2533
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
2534
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
2535
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
2536
+ }
2537
+ .active\:nx-shadow-gray-200:active {
2538
+ --tw-shadow-color: #e5e7eb;
2539
+ --tw-shadow: var(--tw-shadow-colored);
2540
+ }
2541
+ .nx-group:hover .group-hover\:nx-translate-x-\[2px\] {
2542
+ --tw-translate-x: 2px;
2543
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2544
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2545
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2546
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2547
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2548
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2549
+ }
2550
+ :is([dir="ltr"] .ltr\:nx-right-1) {
2551
+ right: 0.25rem;
2552
+ }
2553
+ :is([dir="ltr"] .ltr\:nx-right-1\.5) {
2554
+ right: 0.375rem;
2555
+ }
2556
+ :is([dir="ltr"] .ltr\:nx-right-3) {
2557
+ right: 0.75rem;
2558
+ }
2559
+ :is([dir="ltr"] .ltr\:-nx-mr-4) {
2560
+ margin-right: -1rem;
2561
+ }
2562
+ :is([dir="ltr"] .ltr\:nx-ml-3) {
2563
+ margin-left: 0.75rem;
2564
+ }
2565
+ :is([dir="ltr"] .ltr\:nx-ml-6) {
2566
+ margin-left: 1.5rem;
2567
+ }
2568
+ :is([dir="ltr"] .ltr\:nx-ml-auto) {
2569
+ margin-left: auto;
2570
+ }
2571
+ :is([dir="ltr"] .ltr\:nx-mr-auto) {
2572
+ margin-right: auto;
2573
+ }
2574
+ :is([dir="ltr"] .ltr\:nx-rotate-180) {
2575
+ --tw-rotate: 180deg;
2576
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2577
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2578
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2579
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2580
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2581
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2582
+ }
2583
+ :is([dir="ltr"] .ltr\:nx-rotate-90) {
2584
+ --tw-rotate: 90deg;
2585
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2586
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2587
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2588
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2589
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2590
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2591
+ }
2592
+ :is([dir="ltr"] .ltr\:nx-border-l-2) {
2593
+ border-left-width: 2px;
2594
+ }
2595
+ :is([dir="ltr"] .ltr\:nx-pl-10) {
2596
+ padding-left: 2.5rem;
2597
+ }
2598
+ :is([dir="ltr"] .ltr\:nx-pl-12) {
2599
+ padding-left: 3rem;
2600
+ }
2601
+ :is([dir="ltr"] .ltr\:nx-pl-16) {
2602
+ padding-left: 4rem;
2603
+ }
2604
+ :is([dir="ltr"] .ltr\:nx-pl-3) {
2605
+ padding-left: 0.75rem;
2606
+ }
2607
+ :is([dir="ltr"] .ltr\:nx-pl-4) {
2608
+ padding-left: 1rem;
2609
+ }
2610
+ :is([dir="ltr"] .ltr\:nx-pl-6) {
2611
+ padding-left: 1.5rem;
2612
+ }
2613
+ :is([dir="ltr"] .ltr\:nx-pl-8) {
2614
+ padding-left: 2rem;
2615
+ }
2616
+ :is([dir="ltr"] .ltr\:nx-pr-0) {
2617
+ padding-right: 0;
2618
+ }
2619
+ :is([dir="ltr"] .ltr\:nx-pr-2) {
2620
+ padding-right: 0.5rem;
2621
+ }
2622
+ :is([dir="ltr"] .ltr\:nx-pr-4) {
2623
+ padding-right: 1rem;
2624
+ }
2625
+ :is([dir="ltr"] .ltr\:nx-pr-9) {
2626
+ padding-right: 2.25rem;
2627
+ }
2628
+ :is([dir="ltr"] .ltr\:nx-text-right) {
2629
+ text-align: right;
2630
+ }
2631
+ :is([dir="ltr"] .ltr\:before\:nx-left-0):before {
2632
+ content: var(--tw-content);
2633
+ left: 0;
2634
+ }
2635
+ :is([dir="rtl"] .rtl\:nx-left-1) {
2636
+ left: 0.25rem;
2637
+ }
2638
+ :is([dir="rtl"] .rtl\:nx-left-1\.5) {
2639
+ left: 0.375rem;
2640
+ }
2641
+ :is([dir="rtl"] .rtl\:nx-left-3) {
2642
+ left: 0.75rem;
2643
+ }
2644
+ :is([dir="rtl"] .rtl\:-nx-ml-4) {
2645
+ margin-left: -1rem;
2646
+ }
2647
+ :is([dir="rtl"] .rtl\:nx-ml-auto) {
2648
+ margin-left: auto;
2649
+ }
2650
+ :is([dir="rtl"] .rtl\:nx-mr-3) {
2651
+ margin-right: 0.75rem;
2652
+ }
2653
+ :is([dir="rtl"] .rtl\:nx-mr-6) {
2654
+ margin-right: 1.5rem;
2655
+ }
2656
+ :is([dir="rtl"] .rtl\:nx-mr-auto) {
2657
+ margin-right: auto;
2658
+ }
2659
+ :is([dir="rtl"] .rtl\:-nx-rotate-180) {
2660
+ --tw-rotate: -180deg;
2661
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2662
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2663
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2664
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2665
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2666
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2667
+ }
2668
+ :is([dir="rtl"] .rtl\:nx-rotate-180) {
2669
+ --tw-rotate: 180deg;
2670
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2671
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2672
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2673
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2674
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2675
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2676
+ }
2677
+ :is([dir="rtl"] .rtl\:nx-rotate-\[-270deg\]) {
2678
+ --tw-rotate: -270deg;
2679
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2680
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2681
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2682
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2683
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2684
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2685
+ }
2686
+ :is([dir="rtl"] .rtl\:nx-border-r-2) {
2687
+ border-right-width: 2px;
2688
+ }
2689
+ :is([dir="rtl"] .rtl\:nx-pl-0) {
2690
+ padding-left: 0;
2691
+ }
2692
+ :is([dir="rtl"] .rtl\:nx-pl-2) {
2693
+ padding-left: 0.5rem;
2694
+ }
2695
+ :is([dir="rtl"] .rtl\:nx-pl-4) {
2696
+ padding-left: 1rem;
2697
+ }
2698
+ :is([dir="rtl"] .rtl\:nx-pl-9) {
2699
+ padding-left: 2.25rem;
2700
+ }
2701
+ :is([dir="rtl"] .rtl\:nx-pr-10) {
2702
+ padding-right: 2.5rem;
2703
+ }
2704
+ :is([dir="rtl"] .rtl\:nx-pr-12) {
2705
+ padding-right: 3rem;
2706
+ }
2707
+ :is([dir="rtl"] .rtl\:nx-pr-16) {
2708
+ padding-right: 4rem;
2709
+ }
2710
+ :is([dir="rtl"] .rtl\:nx-pr-3) {
2711
+ padding-right: 0.75rem;
2712
+ }
2713
+ :is([dir="rtl"] .rtl\:nx-pr-4) {
2714
+ padding-right: 1rem;
2715
+ }
2716
+ :is([dir="rtl"] .rtl\:nx-pr-6) {
2717
+ padding-right: 1.5rem;
2718
+ }
2719
+ :is([dir="rtl"] .rtl\:nx-pr-8) {
2720
+ padding-right: 2rem;
2721
+ }
2722
+ :is([dir="rtl"] .rtl\:nx-text-left) {
2723
+ text-align: left;
2724
+ }
2725
+ :is([dir="rtl"] .rtl\:before\:nx-right-0):before {
2726
+ content: var(--tw-content);
2727
+ right: 0;
2728
+ }
2729
+ :is([dir="rtl"] .rtl\:before\:nx-rotate-180):before {
2730
+ content: var(--tw-content);
2731
+ --tw-rotate: 180deg;
2732
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2733
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2734
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2735
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
2736
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
2737
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2738
+ }
2739
+ @media (prefers-reduced-motion: reduce) {
2740
+ .motion-reduce\:nx-transform-none {
2741
+ -webkit-transform: none;
2742
+ transform: none;
2743
+ }
2744
+ .motion-reduce\:nx-transition-none {
2745
+ transition-property: none;
2746
+ }
2747
+ }
2748
+ @media (prefers-contrast: more) {
2749
+ .contrast-more\:nx-border {
2750
+ border-width: 1px;
2751
+ }
2752
+ .contrast-more\:nx-border-t {
2753
+ border-top-width: 1px;
2754
+ }
2755
+ .contrast-more\:nx-border-current {
2756
+ border-color: currentColor;
2757
+ }
2758
+ .contrast-more\:nx-border-gray-600 {
2759
+ --tw-border-opacity: 1;
2760
+ border-color: rgba(75, 85, 99, var(--tw-border-opacity));
2761
+ }
2762
+ .contrast-more\:nx-border-gray-900 {
2763
+ --tw-border-opacity: 1;
2764
+ border-color: rgba(17, 24, 39, var(--tw-border-opacity));
2765
+ }
2766
+ .contrast-more\:nx-border-neutral-400 {
2767
+ --tw-border-opacity: 1;
2768
+ border-color: rgba(163, 163, 163, var(--tw-border-opacity));
2769
+ }
2770
+ .contrast-more\:nx-border-primary-500 {
2771
+ --tw-border-opacity: 1;
2772
+ border-color: hsl(
2773
+ var(--nextra-primary-hue) 100% 50% / var(--tw-border-opacity)
2774
+ );
2775
+ }
2776
+ .contrast-more\:nx-border-primary-900\/20 {
2777
+ border-color: hsl(var(--nextra-primary-hue) 100% 24%/0.2);
2778
+ }
2779
+ .contrast-more\:nx-border-transparent {
2780
+ border-color: transparent;
2781
+ }
2782
+ .contrast-more\:nx-font-bold {
2783
+ font-weight: 700;
2784
+ }
2785
+ .contrast-more\:\!nx-text-primary-600 {
2786
+ --tw-text-opacity: 1 !important;
2787
+ color: hsl(
2788
+ var(--nextra-primary-hue) 100% 45% / var(--tw-text-opacity)
2789
+ ) !important;
2790
+ }
2791
+ .contrast-more\:nx-text-current {
2792
+ color: currentColor;
2793
+ }
2794
+ .contrast-more\:nx-text-gray-700 {
2795
+ --tw-text-opacity: 1;
2796
+ color: rgba(55, 65, 81, var(--tw-text-opacity));
2797
+ }
2798
+ .contrast-more\:nx-text-gray-800 {
2799
+ --tw-text-opacity: 1;
2800
+ color: rgba(31, 41, 55, var(--tw-text-opacity));
2801
+ }
2802
+ .contrast-more\:nx-text-gray-900 {
2803
+ --tw-text-opacity: 1;
2804
+ color: rgba(17, 24, 39, var(--tw-text-opacity));
2805
+ }
2806
+ .contrast-more\:nx-underline {
2807
+ text-decoration-line: underline;
2808
+ }
2809
+ .contrast-more\:nx-shadow-\[0_0_0_1px_\#000\] {
2810
+ --tw-shadow: 0 0 0 1px #000;
2811
+ --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);
2812
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
2813
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
2814
+ }
2815
+ .contrast-more\:nx-shadow-none {
2816
+ --tw-shadow: 0 0 transparent;
2817
+ --tw-shadow-colored: 0 0 transparent;
2818
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
2819
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
2820
+ }
2821
+ .contrast-more\:nx-contrast-150 {
2822
+ --tw-contrast: contrast(1.5);
2823
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
2824
+ var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert)
2825
+ var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2826
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
2827
+ var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert)
2828
+ var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2829
+ }
2830
+ .contrast-more\:hover\:nx-border-gray-900:hover {
2831
+ --tw-border-opacity: 1;
2832
+ border-color: rgba(17, 24, 39, var(--tw-border-opacity));
2833
+ }
2834
+ }
2835
+ :is(html[class~="dark"] .dark\:nx-border-blue-200\/30) {
2836
+ border-color: rgba(191, 219, 254, 0.3);
2837
+ }
2838
+ :is(html[class~="dark"] .dark\:nx-border-gray-100\/20) {
2839
+ border-color: rgba(243, 244, 246, 0.2);
2840
+ }
2841
+ :is(html[class~="dark"] .dark\:nx-border-gray-600) {
2842
+ --tw-border-opacity: 1;
2843
+ border-color: rgba(75, 85, 99, var(--tw-border-opacity));
2844
+ }
2845
+ :is(html[class~="dark"] .dark\:nx-border-gray-700) {
2846
+ --tw-border-opacity: 1;
2847
+ border-color: rgba(55, 65, 81, var(--tw-border-opacity));
2848
+ }
2849
+ :is(html[class~="dark"] .dark\:nx-border-gray-900) {
2850
+ --tw-border-opacity: 1;
2851
+ border-color: rgba(17, 24, 39, var(--tw-border-opacity));
2852
+ }
2853
+ :is(html[class~="dark"] .dark\:nx-border-neutral-700) {
2854
+ --tw-border-opacity: 1;
2855
+ border-color: rgba(64, 64, 64, var(--tw-border-opacity));
2856
+ }
2857
+ :is(html[class~="dark"] .dark\:nx-border-neutral-800) {
2858
+ --tw-border-opacity: 1;
2859
+ border-color: rgba(38, 38, 38, var(--tw-border-opacity));
2860
+ }
2861
+ :is(html[class~="dark"] .dark\:nx-border-orange-400\/30) {
2862
+ border-color: rgba(251, 146, 60, 0.3);
2863
+ }
2864
+ :is(html[class~="dark"] .dark\:nx-border-primary-100\/10) {
2865
+ border-color: hsl(var(--nextra-primary-hue) 100% 94%/0.1);
2866
+ }
2867
+ :is(html[class~="dark"] .dark\:nx-border-red-200\/30) {
2868
+ border-color: rgba(254, 202, 202, 0.3);
2869
+ }
2870
+ :is(html[class~="dark"] .dark\:nx-border-white\/10) {
2871
+ border-color: rgba(255, 255, 255, 0.1);
2872
+ }
2873
+ :is(html[class~="dark"] .dark\:nx-border-white\/20) {
2874
+ border-color: rgba(255, 255, 255, 0.2);
2875
+ }
2876
+ :is(html[class~="dark"] .dark\:nx-border-yellow-200\/30) {
2877
+ border-color: rgba(254, 240, 138, 0.3);
2878
+ }
2879
+ :is(html[class~="dark"] .dark\:nx-bg-black\/60) {
2880
+ background-color: rgba(0, 0, 0, 0.6);
2881
+ }
2882
+ :is(html[class~="dark"] .dark\:nx-bg-blue-900\/30) {
2883
+ background-color: rgba(30, 58, 138, 0.3);
2884
+ }
2885
+ :is(html[class~="dark"] .dark\:nx-bg-dark) {
2886
+ --tw-bg-opacity: 1;
2887
+ background-color: rgba(17, 17, 17, var(--tw-bg-opacity));
2888
+ }
2889
+ :is(html[class~="dark"] .dark\:nx-bg-dark\/50) {
2890
+ background-color: rgba(17, 17, 17, 0.5);
2891
+ }
2892
+ :is(html[class~="dark"] .dark\:nx-bg-gray-50\/10) {
2893
+ background-color: rgba(249, 250, 251, 0.1);
2894
+ }
2895
+ :is(html[class~="dark"] .dark\:nx-bg-neutral-800) {
2896
+ --tw-bg-opacity: 1;
2897
+ background-color: rgba(38, 38, 38, var(--tw-bg-opacity));
2898
+ }
2899
+ :is(html[class~="dark"] .dark\:nx-bg-neutral-900) {
2900
+ --tw-bg-opacity: 1;
2901
+ background-color: rgba(23, 23, 23, var(--tw-bg-opacity));
2902
+ }
2903
+ :is(html[class~="dark"] .dark\:nx-bg-orange-400\/20) {
2904
+ background-color: rgba(251, 146, 60, 0.2);
2905
+ }
2906
+ :is(html[class~="dark"] .dark\:nx-bg-primary-100\/10) {
2907
+ background-color: hsl(var(--nextra-primary-hue) 100% 94%/0.1);
2908
+ }
2909
+ :is(html[class~="dark"] .dark\:nx-bg-primary-300\/10) {
2910
+ background-color: hsl(var(--nextra-primary-hue) 100% 77%/0.1);
2911
+ }
2912
+ :is(html[class~="dark"] .dark\:nx-bg-primary-400\/10) {
2913
+ background-color: hsl(var(--nextra-primary-hue) 100% 66%/0.1);
2914
+ }
2915
+ :is(html[class~="dark"] .dark\:nx-bg-primary-500\/10) {
2916
+ background-color: hsl(var(--nextra-primary-hue) 100% 50%/0.1);
2917
+ }
2918
+ :is(html[class~="dark"] .dark\:nx-bg-red-900\/30) {
2919
+ background-color: rgba(127, 29, 29, 0.3);
2920
+ }
2921
+ :is(html[class~="dark"] .dark\:nx-bg-white\/10) {
2922
+ background-color: rgba(255, 255, 255, 0.1);
2923
+ }
2924
+ :is(html[class~="dark"] .dark\:nx-bg-yellow-700\/30) {
2925
+ background-color: rgba(161, 98, 7, 0.3);
2926
+ }
2927
+ :is(
2928
+ html[class~="dark"]
2929
+ .dark\:nx-bg-\[linear-gradient\(1deg\,\#383838\,\#212121\)\]
2930
+ ) {
2931
+ background-image: linear-gradient(1deg, #383838, #212121);
2932
+ }
2933
+ :is(html[class~="dark"] .dark\:nx-text-blue-200) {
2934
+ --tw-text-opacity: 1;
2935
+ color: rgba(191, 219, 254, var(--tw-text-opacity));
2936
+ }
2937
+ :is(html[class~="dark"] .dark\:nx-text-gray-100) {
2938
+ --tw-text-opacity: 1;
2939
+ color: rgba(243, 244, 246, var(--tw-text-opacity));
2940
+ }
2941
+ :is(html[class~="dark"] .dark\:nx-text-gray-200) {
2942
+ --tw-text-opacity: 1;
2943
+ color: rgba(229, 231, 235, var(--tw-text-opacity));
2944
+ }
2945
+ :is(html[class~="dark"] .dark\:nx-text-gray-300) {
2946
+ --tw-text-opacity: 1;
2947
+ color: rgba(209, 213, 219, var(--tw-text-opacity));
2948
+ }
2949
+ :is(html[class~="dark"] .dark\:nx-text-gray-400) {
2950
+ --tw-text-opacity: 1;
2951
+ color: rgba(156, 163, 175, var(--tw-text-opacity));
2952
+ }
2953
+ :is(html[class~="dark"] .dark\:nx-text-gray-50) {
2954
+ --tw-text-opacity: 1;
2955
+ color: rgba(249, 250, 251, var(--tw-text-opacity));
2956
+ }
2957
+ :is(html[class~="dark"] .dark\:nx-text-neutral-200) {
2958
+ --tw-text-opacity: 1;
2959
+ color: rgba(229, 229, 229, var(--tw-text-opacity));
2960
+ }
2961
+ :is(html[class~="dark"] .dark\:nx-text-neutral-400) {
2962
+ --tw-text-opacity: 1;
2963
+ color: rgba(163, 163, 163, var(--tw-text-opacity));
2964
+ }
2965
+ :is(html[class~="dark"] .dark\:nx-text-neutral-600) {
2966
+ --tw-text-opacity: 1;
2967
+ color: rgba(82, 82, 82, var(--tw-text-opacity));
2968
+ }
2969
+ :is(html[class~="dark"] .dark\:nx-text-orange-300) {
2970
+ --tw-text-opacity: 1;
2971
+ color: rgba(253, 186, 116, var(--tw-text-opacity));
2972
+ }
2973
+ :is(html[class~="dark"] .dark\:nx-text-primary-600) {
2974
+ --tw-text-opacity: 1;
2975
+ color: hsl(var(--nextra-primary-hue) 100% 45% / var(--tw-text-opacity));
2976
+ }
2977
+ :is(html[class~="dark"] .dark\:nx-text-red-200) {
2978
+ --tw-text-opacity: 1;
2979
+ color: rgba(254, 202, 202, var(--tw-text-opacity));
2980
+ }
2981
+ :is(html[class~="dark"] .dark\:nx-text-slate-100) {
2982
+ --tw-text-opacity: 1;
2983
+ color: rgba(241, 245, 249, var(--tw-text-opacity));
2984
+ }
2985
+ :is(html[class~="dark"] .dark\:nx-text-white) {
2986
+ --tw-text-opacity: 1;
2987
+ color: rgba(255, 255, 255, var(--tw-text-opacity));
2988
+ }
2989
+ :is(html[class~="dark"] .dark\:nx-text-yellow-200) {
2990
+ --tw-text-opacity: 1;
2991
+ color: rgba(254, 240, 138, var(--tw-text-opacity));
2992
+ }
2993
+ :is(html[class~="dark"] .dark\:nx-shadow-\[0_-12px_16px_\#111\]) {
2994
+ --tw-shadow: 0 -12px 16px #111;
2995
+ --tw-shadow-colored: 0 -12px 16px var(--tw-shadow-color);
2996
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
2997
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
2998
+ }
2999
+ :is(
3000
+ html[class~="dark"]
3001
+ .dark\:nx-shadow-\[0_-1px_0_rgba\(255\,255\,255\,\.1\)_inset\]
3002
+ ) {
3003
+ --tw-shadow: 0 -1px 0 rgba(255, 255, 255, 0.1) inset;
3004
+ --tw-shadow-colored: inset 0 -1px 0 var(--tw-shadow-color);
3005
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
3006
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
3007
+ }
3008
+ :is(html[class~="dark"] .dark\:nx-shadow-none) {
3009
+ --tw-shadow: 0 0 transparent;
3010
+ --tw-shadow-colored: 0 0 transparent;
3011
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
3012
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
3013
+ }
3014
+ :is(html[class~="dark"] .dark\:nx-ring-white\/20) {
3015
+ --tw-ring-color: rgba(255, 255, 255, 0.2);
3016
+ }
3017
+ :-webkit-any(
3018
+ html[class~="dark"] .dark\:placeholder\:nx-text-gray-400
3019
+ )::-webkit-input-placeholder {
3020
+ --tw-text-opacity: 1;
3021
+ color: rgba(156, 163, 175, var(--tw-text-opacity));
3022
+ }
3023
+ :is(
3024
+ html[class~="dark"] .dark\:placeholder\:nx-text-gray-400
3025
+ )::-ms-input-placeholder {
3026
+ --tw-text-opacity: 1;
3027
+ color: rgba(156, 163, 175, var(--tw-text-opacity));
3028
+ }
3029
+ :is(html[class~="dark"] .dark\:placeholder\:nx-text-gray-400)::placeholder {
3030
+ --tw-text-opacity: 1;
3031
+ color: rgba(156, 163, 175, var(--tw-text-opacity));
3032
+ }
3033
+ :is(html[class~="dark"] .dark\:before\:nx-bg-neutral-800):before {
3034
+ content: var(--tw-content);
3035
+ --tw-bg-opacity: 1;
3036
+ background-color: rgba(38, 38, 38, var(--tw-bg-opacity));
3037
+ }
3038
+ :is(html[class~="dark"] .dark\:before\:nx-invert):before {
3039
+ content: var(--tw-content);
3040
+ --tw-invert: invert(100%);
3041
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
3042
+ var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)
3043
+ var(--tw-sepia) var(--tw-drop-shadow);
3044
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
3045
+ var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)
3046
+ var(--tw-sepia) var(--tw-drop-shadow);
3047
+ }
3048
+ :is(html[class~="dark"] .even\:dark\:nx-bg-gray-600\/20):nth-child(2n) {
3049
+ background-color: rgba(75, 85, 99, 0.2);
3050
+ }
3051
+ :is(html[class~="dark"] .dark\:hover\:nx-border-neutral-500:hover) {
3052
+ --tw-border-opacity: 1;
3053
+ border-color: rgba(115, 115, 115, var(--tw-border-opacity));
3054
+ }
3055
+ :is(html[class~="dark"] .dark\:hover\:nx-border-neutral-700:hover) {
3056
+ --tw-border-opacity: 1;
3057
+ border-color: rgba(64, 64, 64, var(--tw-border-opacity));
3058
+ }
3059
+ :is(html[class~="dark"] .dark\:hover\:nx-border-neutral-800:hover) {
3060
+ --tw-border-opacity: 1;
3061
+ border-color: rgba(38, 38, 38, var(--tw-border-opacity));
3062
+ }
3063
+ :is(html[class~="dark"] .dark\:hover\:nx-bg-gray-100\/5:hover) {
3064
+ background-color: rgba(243, 244, 246, 0.05);
3065
+ }
3066
+ :is(html[class~="dark"] .dark\:hover\:nx-bg-neutral-700:hover) {
3067
+ --tw-bg-opacity: 1;
3068
+ background-color: rgba(64, 64, 64, var(--tw-bg-opacity));
3069
+ }
3070
+ :is(html[class~="dark"] .dark\:hover\:nx-bg-neutral-800:hover) {
3071
+ --tw-bg-opacity: 1;
3072
+ background-color: rgba(38, 38, 38, var(--tw-bg-opacity));
3073
+ }
3074
+ :is(html[class~="dark"] .dark\:hover\:nx-bg-neutral-900:hover) {
3075
+ --tw-bg-opacity: 1;
3076
+ background-color: rgba(23, 23, 23, var(--tw-bg-opacity));
3077
+ }
3078
+ :is(html[class~="dark"] .dark\:hover\:nx-bg-primary-100\/5:hover) {
3079
+ background-color: hsl(var(--nextra-primary-hue) 100% 94%/0.05);
3080
+ }
3081
+ :is(html[class~="dark"] .dark\:hover\:nx-text-gray-100:hover) {
3082
+ --tw-text-opacity: 1;
3083
+ color: rgba(243, 244, 246, var(--tw-text-opacity));
3084
+ }
3085
+ :is(html[class~="dark"] .dark\:hover\:nx-text-gray-200:hover) {
3086
+ --tw-text-opacity: 1;
3087
+ color: rgba(229, 231, 235, var(--tw-text-opacity));
3088
+ }
3089
+ :is(html[class~="dark"] .dark\:hover\:nx-text-gray-300:hover) {
3090
+ --tw-text-opacity: 1;
3091
+ color: rgba(209, 213, 219, var(--tw-text-opacity));
3092
+ }
3093
+ :is(html[class~="dark"] .dark\:hover\:nx-text-gray-50:hover) {
3094
+ --tw-text-opacity: 1;
3095
+ color: rgba(249, 250, 251, var(--tw-text-opacity));
3096
+ }
3097
+ :is(html[class~="dark"] .dark\:hover\:nx-text-neutral-50:hover) {
3098
+ --tw-text-opacity: 1;
3099
+ color: rgba(250, 250, 250, var(--tw-text-opacity));
3100
+ }
3101
+ :is(html[class~="dark"] .dark\:hover\:nx-text-white:hover) {
3102
+ --tw-text-opacity: 1;
3103
+ color: rgba(255, 255, 255, var(--tw-text-opacity));
3104
+ }
3105
+ :is(html[class~="dark"] .dark\:hover\:nx-shadow-none:hover) {
3106
+ --tw-shadow: 0 0 transparent;
3107
+ --tw-shadow-colored: 0 0 transparent;
3108
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
3109
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
3110
+ }
3111
+ :is(html[class~="dark"] .focus\:dark\:nx-border-neutral-800):focus {
3112
+ --tw-border-opacity: 1;
3113
+ border-color: rgba(38, 38, 38, var(--tw-border-opacity));
3114
+ }
3115
+ :is(html[class~="dark"] .dark\:focus\:nx-bg-dark:focus) {
3116
+ --tw-bg-opacity: 1;
3117
+ background-color: rgba(17, 17, 17, var(--tw-bg-opacity));
3118
+ }
3119
+ :is(html[class~="dark"] .focus\:dark\:nx-bg-neutral-900):focus {
3120
+ --tw-bg-opacity: 1;
3121
+ background-color: rgba(23, 23, 23, var(--tw-bg-opacity));
3122
+ }
3123
+ :is(html[class~="dark"] .focus\:dark\:nx-text-gray-100):focus {
3124
+ --tw-text-opacity: 1;
3125
+ color: rgba(243, 244, 246, var(--tw-text-opacity));
3126
+ }
3127
+ @media (prefers-contrast: more) {
3128
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-border-current) {
3129
+ border-color: currentColor;
3130
+ }
3131
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-border-gray-50) {
3132
+ --tw-border-opacity: 1;
3133
+ border-color: rgba(249, 250, 251, var(--tw-border-opacity));
3134
+ }
3135
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-border-neutral-400) {
3136
+ --tw-border-opacity: 1;
3137
+ border-color: rgba(163, 163, 163, var(--tw-border-opacity));
3138
+ }
3139
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-border-primary-100\/40) {
3140
+ border-color: hsl(var(--nextra-primary-hue) 100% 94%/0.4);
3141
+ }
3142
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-border-primary-500) {
3143
+ --tw-border-opacity: 1;
3144
+ border-color: hsl(
3145
+ var(--nextra-primary-hue) 100% 50% / var(--tw-border-opacity)
3146
+ );
3147
+ }
3148
+ :is(html[class~="dark"] .dark\:contrast-more\:nx-border-neutral-400) {
3149
+ --tw-border-opacity: 1;
3150
+ border-color: rgba(163, 163, 163, var(--tw-border-opacity));
3151
+ }
3152
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-text-current) {
3153
+ color: currentColor;
3154
+ }
3155
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-text-gray-100) {
3156
+ --tw-text-opacity: 1;
3157
+ color: rgba(243, 244, 246, var(--tw-text-opacity));
3158
+ }
3159
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-text-gray-300) {
3160
+ --tw-text-opacity: 1;
3161
+ color: rgba(209, 213, 219, var(--tw-text-opacity));
3162
+ }
3163
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-text-gray-50) {
3164
+ --tw-text-opacity: 1;
3165
+ color: rgba(249, 250, 251, var(--tw-text-opacity));
3166
+ }
3167
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-shadow-\[0_0_0_1px_\#fff\]) {
3168
+ --tw-shadow: 0 0 0 1px #fff;
3169
+ --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);
3170
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
3171
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
3172
+ }
3173
+ :is(html[class~="dark"] .contrast-more\:dark\:nx-shadow-none) {
3174
+ --tw-shadow: 0 0 transparent;
3175
+ --tw-shadow-colored: 0 0 transparent;
3176
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent),
3177
+ var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow);
3178
+ }
3179
+ :is(
3180
+ html[class~="dark"] .contrast-more\:dark\:hover\:nx-border-gray-50:hover
3181
+ ) {
3182
+ --tw-border-opacity: 1;
3183
+ border-color: rgba(249, 250, 251, var(--tw-border-opacity));
3184
+ }
3185
+ }
3186
+ @media print {
3187
+ .print\:nx-hidden {
3188
+ display: none;
3189
+ }
3190
+ .print\:nx-bg-transparent {
3191
+ background-color: transparent;
3192
+ }
3193
+ }
3194
+ @media not all and (min-width: 1280px) {
3195
+ .max-xl\:nx-hidden {
3196
+ display: none;
3197
+ }
3198
+ }
3199
+ @media not all and (min-width: 768px) {
3200
+ .max-md\:nx-hidden {
3201
+ display: none;
3202
+ }
3203
+ .max-md\:nx-grow {
3204
+ flex-grow: 1;
3205
+ }
3206
+ .max-md\:\[transform\:translate3d\(0\,-100\%\,0\)\] {
3207
+ -webkit-transform: translateY(-100%);
3208
+ transform: translateY(-100%);
3209
+ }
3210
+ .max-md\:\[transform\:translate3d\(0\,0\,0\)\] {
3211
+ -webkit-transform: translate(0, 0);
3212
+ transform: translate(0, 0);
3213
+ }
3214
+ }
3215
+ @media (min-width: 640px) {
3216
+ .sm\:nx-flex {
3217
+ display: flex;
3218
+ }
3219
+ }
3220
+ @media (min-width: 768px) {
3221
+ .md\:nx-relative {
3222
+ position: relative;
3223
+ }
3224
+ .md\:nx-sticky {
3225
+ position: -webkit-sticky;
3226
+ position: sticky;
3227
+ }
3228
+ .md\:nx-top-16 {
3229
+ top: 4rem;
3230
+ }
3231
+ .md\:-nx-mx-8 {
3232
+ margin-left: -2rem;
3233
+ margin-right: -2rem;
3234
+ }
3235
+ .md\:nx-inline-block {
3236
+ display: inline-block;
3237
+ }
3238
+ .md\:nx-inline {
3239
+ display: inline;
3240
+ }
3241
+ .md\:nx-inline-flex {
3242
+ display: inline-flex;
3243
+ }
3244
+ .md\:nx-hidden {
3245
+ display: none;
3246
+ }
3247
+ .md\:nx-h-\[calc\(100vh-var\(--nextra-navbar-height\)-var\(--nextra-menu-height\)\)\] {
3248
+ height: calc(
3249
+ 100vh - var(--nextra-navbar-height) - var(--nextra-menu-height)
3250
+ );
3251
+ }
3252
+ .md\:nx-max-h-\[min\(calc\(100vh-5rem-env\(safe-area-inset-bottom\)\)\,400px\)\] {
3253
+ max-height: min(calc(100vh - 5rem - env(safe-area-inset-bottom)), 400px);
3254
+ }
3255
+ .md\:nx-w-20 {
3256
+ width: 5rem;
3257
+ }
3258
+ .md\:nx-w-64 {
3259
+ width: 16rem;
3260
+ }
3261
+ .md\:nx-shrink-0 {
3262
+ flex-shrink: 0;
3263
+ }
3264
+ .md\:nx-justify-start {
3265
+ justify-content: flex-start;
3266
+ }
3267
+ .md\:nx-self-start {
3268
+ align-self: flex-start;
3269
+ }
3270
+ .md\:nx-overflow-auto {
3271
+ overflow: auto;
3272
+ }
3273
+ .md\:nx-px-12 {
3274
+ padding-left: 3rem;
3275
+ padding-right: 3rem;
3276
+ }
3277
+ .md\:nx-text-lg {
3278
+ font-size: 1.125rem;
3279
+ }
3280
+ .md\:nx-text-sm {
3281
+ font-size: 0.875rem;
3282
+ }
3283
+ :is([dir="ltr"] .ltr\:md\:nx-left-auto) {
3284
+ left: auto;
3285
+ }
3286
+ :is([dir="rtl"] .rtl\:md\:nx-right-auto) {
3287
+ right: auto;
3288
+ }
3289
+ }
3290
+ @media (min-width: 1280px) {
3291
+ .xl\:nx-block {
3292
+ display: block;
3293
+ }
3294
+ :is([dir="ltr"] .ltr\:xl\:nx-ml-\[calc\(50\%-50vw\+16rem\)\]) {
3295
+ margin-left: calc(50% - 50vw + 16rem);
3296
+ }
3297
+ :is([dir="ltr"] .ltr\:xl\:nx-mr-\[calc\(50\%-50vw\)\]) {
3298
+ margin-right: calc(50% - 50vw);
3299
+ }
3300
+ :is([dir="rtl"] .rtl\:xl\:nx-ml-\[calc\(50\%-50vw\)\]) {
3301
+ margin-left: calc(50% - 50vw);
3302
+ }
3303
+ :is([dir="rtl"] .rtl\:xl\:nx-mr-\[calc\(50\%-50vw\+16rem\)\]) {
3304
+ margin-right: calc(50% - 50vw + 16rem);
3305
+ }
3306
+ }
3307
+ @media (min-width: 1536px) {
3308
+ .\32 xl\:-nx-mx-24 {
3309
+ margin-left: -6rem;
3310
+ margin-right: -6rem;
3311
+ }
3312
+ }
3313
+ [data-expanded] > .\[\[data-expanded\]\>\&\]\:before\:nx-rotate-90:before {
3314
+ content: var(--tw-content);
3315
+ --tw-rotate: 90deg;
3316
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
3317
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
3318
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
3319
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y))
3320
+ rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
3321
+ scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
3322
+ }
3323
+ body.nextra-banner-hidden .\[body\.nextra-banner-hidden_\&\]\:nx-hidden {
3324
+ display: none;
3325
+ }
3326
+ div:hover > .\[div\:hover\>\&\]\:nx-opacity-100 {
3327
+ opacity: 1;
3328
+ }