diff --git a/.github/workflows/deploy_pietervdvn.yml b/.github/workflows/deploy_pietervdvn.yml index 3a7295b8df..284f948901 100644 --- a/.github/workflows/deploy_pietervdvn.yml +++ b/.github/workflows/deploy_pietervdvn.yml @@ -32,7 +32,7 @@ jobs: shell: bash - name: create dependencies - run: npm run generate:licenses; npm run generate:images; npm run generate:charging-stations; npm run generate:service-worker; npm run generate:editor-layer-index + run: npm run generate:licenses; npm run generate:images; npm run generate:charging-stations; npm run generate:service-worker; npm run download:editor-layer-index shell: bash - name: sync translations diff --git a/assets/layers/address/address.json b/assets/layers/address/address.json index c44d9d6725..d1f48c6f5f 100644 --- a/assets/layers/address/address.json +++ b/assets/layers/address/address.json @@ -341,5 +341,9 @@ } ] } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/aerialway/aerialway.json b/assets/layers/aerialway/aerialway.json index 224da3c323..a0e69bbf67 100644 --- a/assets/layers/aerialway/aerialway.json +++ b/assets/layers/aerialway/aerialway.json @@ -249,5 +249,6 @@ "fr": "Cette voie aérienne fait {_length:km} kilomètre de long" } } - ] + ], + "allowMove": false } diff --git a/assets/layers/ambulancestation/ambulancestation.json b/assets/layers/ambulancestation/ambulancestation.json index 430810e6a5..1dda37f169 100644 --- a/assets/layers/ambulancestation/ambulancestation.json +++ b/assets/layers/ambulancestation/ambulancestation.json @@ -460,5 +460,6 @@ ] }, "images" - ] + ], + "allowMove": true } diff --git a/assets/layers/bank/bank.json b/assets/layers/bank/bank.json index 8369bb6871..191b7a7901 100644 --- a/assets/layers/bank/bank.json +++ b/assets/layers/bank/bank.json @@ -147,5 +147,6 @@ ], "deletion": { "softDeletionTags": "amenity=" - } + }, + "allowMove": true } diff --git a/assets/layers/barrier/barrier.json b/assets/layers/barrier/barrier.json index 37979ccf93..6202f62041 100644 --- a/assets/layers/barrier/barrier.json +++ b/assets/layers/barrier/barrier.json @@ -686,5 +686,9 @@ "fixme=" ] } + }, + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false } } diff --git a/assets/layers/bench_at_pt/bench_at_pt.json b/assets/layers/bench_at_pt/bench_at_pt.json index 054574b169..b8153e73b5 100644 --- a/assets/layers/bench_at_pt/bench_at_pt.json +++ b/assets/layers/bench_at_pt/bench_at_pt.json @@ -290,5 +290,6 @@ "bench=no" ] } - } + }, + "allowMove": false } diff --git a/assets/layers/bike_cafe/bike_cafe.json b/assets/layers/bike_cafe/bike_cafe.json index 34a43ea118..c3eb4693cd 100644 --- a/assets/layers/bike_cafe/bike_cafe.json +++ b/assets/layers/bike_cafe/bike_cafe.json @@ -382,5 +382,6 @@ } } ], - "deletion": true + "deletion": true, + "allowMove": true } diff --git a/assets/layers/bike_themed_object/bike_themed_object.json b/assets/layers/bike_themed_object/bike_themed_object.json index 963a5232f2..680b7b2a6c 100644 --- a/assets/layers/bike_themed_object/bike_themed_object.json +++ b/assets/layers/bike_themed_object/bike_themed_object.json @@ -102,5 +102,6 @@ "email", "phone", "opening_hours" - ] + ], + "allowMove": false } diff --git a/assets/layers/caravansites/caravansites.json b/assets/layers/caravansites/caravansites.json index 88ca53ee21..8964f35964 100644 --- a/assets/layers/caravansites/caravansites.json +++ b/assets/layers/caravansites/caravansites.json @@ -930,5 +930,6 @@ "color": "#00f", "width": "8" } - ] -} \ No newline at end of file + ], + "allowMove": true +} diff --git a/assets/layers/cinema/cinema.json b/assets/layers/cinema/cinema.json index 144e1e672e..3fdebc365f 100644 --- a/assets/layers/cinema/cinema.json +++ b/assets/layers/cinema/cinema.json @@ -72,5 +72,6 @@ } ] } - ] + ], + "allowMove": true } diff --git a/assets/layers/climbing/climbing.json b/assets/layers/climbing/climbing.json index 1f7d1bed93..730074f3ae 100644 --- a/assets/layers/climbing/climbing.json +++ b/assets/layers/climbing/climbing.json @@ -444,5 +444,9 @@ } ] } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/climbing_area/climbing_area.json b/assets/layers/climbing_area/climbing_area.json index 6e54aaee86..c8e08740fa 100644 --- a/assets/layers/climbing_area/climbing_area.json +++ b/assets/layers/climbing_area/climbing_area.json @@ -352,5 +352,6 @@ "climbing.bouldering" ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/climbing_club/climbing_club.json b/assets/layers/climbing_club/climbing_club.json index 2a8ce131f1..4ef258d4d5 100644 --- a/assets/layers/climbing_club/climbing_club.json +++ b/assets/layers/climbing_club/climbing_club.json @@ -202,5 +202,6 @@ "email", "phone", "opening_hours" - ] + ], + "allowMove": true } diff --git a/assets/layers/climbing_gym/climbing_gym.json b/assets/layers/climbing_gym/climbing_gym.json index 5c2271a9c7..2a7d5f0917 100644 --- a/assets/layers/climbing_gym/climbing_gym.json +++ b/assets/layers/climbing_gym/climbing_gym.json @@ -544,5 +544,6 @@ "internet", "internet-fee", "internet-ssid" - ] + ], + "allowMove": true } diff --git a/assets/layers/climbing_opportunity/climbing_opportunity.json b/assets/layers/climbing_opportunity/climbing_opportunity.json index a524cadb66..3718973258 100644 --- a/assets/layers/climbing_opportunity/climbing_opportunity.json +++ b/assets/layers/climbing_opportunity/climbing_opportunity.json @@ -148,5 +148,6 @@ ] } ], + "allowMove": false, "doCount": false } diff --git a/assets/layers/climbing_route/climbing_route.json b/assets/layers/climbing_route/climbing_route.json index 10116eb1dd..746ff682c0 100644 --- a/assets/layers/climbing_route/climbing_route.json +++ b/assets/layers/climbing_route/climbing_route.json @@ -282,5 +282,9 @@ "key": "_embedding_features_with_rock:rock" } } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/conflation/conflation.json b/assets/layers/conflation/conflation.json index 4718cb4759..f85801dd44 100644 --- a/assets/layers/conflation/conflation.json +++ b/assets/layers/conflation/conflation.json @@ -133,5 +133,6 @@ }, "color": "#00f" } - ] + ], + "allowMove": false } diff --git a/assets/layers/crab_address/crab_address.json b/assets/layers/crab_address/crab_address.json index 9b364003e7..a71edc2ccf 100644 --- a/assets/layers/crab_address/crab_address.json +++ b/assets/layers/crab_address/crab_address.json @@ -33,5 +33,6 @@ "id": "render_crab", "render": "Volgens het CRAB ligt hier {STRAATNM} {HUISNR} (label: {HNRLABEL})" } - ] + ], + "allowMove": false } diff --git a/assets/layers/crossings/crossings.json b/assets/layers/crossings/crossings.json index efe9304baf..fd5fe6e662 100644 --- a/assets/layers/crossings/crossings.json +++ b/assets/layers/crossings/crossings.json @@ -726,5 +726,9 @@ ], "filter": [ "tactile_paving_advanced" - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/current_view/current_view.json b/assets/layers/current_view/current_view.json index 70b0b5e835..0d57a35f15 100644 --- a/assets/layers/current_view/current_view.json +++ b/assets/layers/current_view/current_view.json @@ -11,5 +11,6 @@ "color": "#cccc0088" } ], - "tagRenderings": [] + "tagRenderings": [], + "allowMove": false } diff --git a/assets/layers/cycle_highways/cycle_highways.json b/assets/layers/cycle_highways/cycle_highways.json index aed62fb409..f19a6605ef 100644 --- a/assets/layers/cycle_highways/cycle_highways.json +++ b/assets/layers/cycle_highways/cycle_highways.json @@ -212,5 +212,6 @@ } ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/cycleways_and_roads/cycleways_and_roads.json b/assets/layers/cycleways_and_roads/cycleways_and_roads.json index 8c19071bfd..bb126a08bf 100644 --- a/assets/layers/cycleways_and_roads/cycleways_and_roads.json +++ b/assets/layers/cycleways_and_roads/cycleways_and_roads.json @@ -1912,5 +1912,6 @@ ] } ], + "allowMove": false, "allowSplit": true } diff --git a/assets/layers/direction/direction.json b/assets/layers/direction/direction.json index ae6138c446..0dc32332f2 100644 --- a/assets/layers/direction/direction.json +++ b/assets/layers/direction/direction.json @@ -56,5 +56,6 @@ "doNotDownload": true, "presets": [], "tagRenderings": [], + "allowMove": false, "stroke": "0" } diff --git a/assets/layers/disaster_response/disaster_response.json b/assets/layers/disaster_response/disaster_response.json index 22fac818ea..d7df3a1af7 100644 --- a/assets/layers/disaster_response/disaster_response.json +++ b/assets/layers/disaster_response/disaster_response.json @@ -77,5 +77,6 @@ } } ], + "allowMove": true, "docs": "https://wiki.openstreetmap.org/wiki/Tag:emergency%3Ddisaster_response" } diff --git a/assets/layers/dogpark/dogpark.json b/assets/layers/dogpark/dogpark.json index badca45873..4aa9304894 100644 --- a/assets/layers/dogpark/dogpark.json +++ b/assets/layers/dogpark/dogpark.json @@ -214,5 +214,9 @@ }, "condition": "_surface:ha!=0" } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/dumpstations/dumpstations.json b/assets/layers/dumpstations/dumpstations.json index dc1c6cbabd..66003ad53b 100644 --- a/assets/layers/dumpstations/dumpstations.json +++ b/assets/layers/dumpstations/dumpstations.json @@ -628,5 +628,9 @@ "color": "#00f", "width": "8" } - ] -} \ No newline at end of file + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } +} diff --git a/assets/layers/elevator/elevator.json b/assets/layers/elevator/elevator.json index 143a159fb5..14aabb108a 100644 --- a/assets/layers/elevator/elevator.json +++ b/assets/layers/elevator/elevator.json @@ -411,6 +411,10 @@ } } ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "units": [ { "door:width": { diff --git a/assets/layers/entrance/entrance.json b/assets/layers/entrance/entrance.json index b26e76932f..7cb41e36cd 100644 --- a/assets/layers/entrance/entrance.json +++ b/assets/layers/entrance/entrance.json @@ -566,6 +566,10 @@ ] } ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "units": [ { "kerb:height": { diff --git a/assets/layers/etymology/etymology.json b/assets/layers/etymology/etymology.json index 3c0eb2e1d0..cb249989c1 100644 --- a/assets/layers/etymology/etymology.json +++ b/assets/layers/etymology/etymology.json @@ -367,5 +367,6 @@ "condition": "wikidata~*" } ], + "allowMove": false, "#": "A layer showing all objects having etymology info (either via `name:etymology:wikidata` or `name:etymology`. The intention is that this layer is reused for a certain category to also _ask_ for information" } diff --git a/assets/layers/extinguisher/extinguisher.json b/assets/layers/extinguisher/extinguisher.json index 8c872c1465..7bb41078c0 100644 --- a/assets/layers/extinguisher/extinguisher.json +++ b/assets/layers/extinguisher/extinguisher.json @@ -186,5 +186,9 @@ } }, "images" - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/filters/filters.json b/assets/layers/filters/filters.json index fafcd6dba9..c615bc16cc 100644 --- a/assets/layers/filters/filters.json +++ b/assets/layers/filters/filters.json @@ -384,5 +384,6 @@ } ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/fire_station/fire_station.json b/assets/layers/fire_station/fire_station.json index 399841191c..324538279c 100644 --- a/assets/layers/fire_station/fire_station.json +++ b/assets/layers/fire_station/fire_station.json @@ -335,5 +335,6 @@ ] }, "images" - ] + ], + "allowMove": true } diff --git a/assets/layers/fitness_centre/fitness_centre.json b/assets/layers/fitness_centre/fitness_centre.json index 9a49bfd6ca..8b7232ef95 100644 --- a/assets/layers/fitness_centre/fitness_centre.json +++ b/assets/layers/fitness_centre/fitness_centre.json @@ -127,5 +127,6 @@ ], "filter": [ "open_now" - ] + ], + "allowMove": true } diff --git a/assets/layers/fixme/fixme.json b/assets/layers/fixme/fixme.json index c02eafbe62..94e9dc7651 100644 --- a/assets/layers/fixme/fixme.json +++ b/assets/layers/fixme/fixme.json @@ -99,5 +99,6 @@ }, "all_tags" ], + "allowMove": false, "syncSelection": "theme-only" } diff --git a/assets/layers/food_courts/food_courts.json b/assets/layers/food_courts/food_courts.json index db8c2e4e96..b0f21dbc17 100644 --- a/assets/layers/food_courts/food_courts.json +++ b/assets/layers/food_courts/food_courts.json @@ -78,5 +78,9 @@ "website", "phone", "smoking" - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/governments/governments.json b/assets/layers/governments/governments.json index 376da38025..b3228b0702 100644 --- a/assets/layers/governments/governments.json +++ b/assets/layers/governments/governments.json @@ -91,5 +91,6 @@ }, "id": "name" } - ] + ], + "allowMove": true } diff --git a/assets/layers/gps_location/gps_location.json b/assets/layers/gps_location/gps_location.json index e11ec1d518..86e04b693d 100644 --- a/assets/layers/gps_location/gps_location.json +++ b/assets/layers/gps_location/gps_location.json @@ -66,5 +66,6 @@ "anchor": "center" } ], - "lineRendering": [] + "lineRendering": [], + "allowMove": false } diff --git a/assets/layers/gps_location_history/gps_location_history.json b/assets/layers/gps_location_history/gps_location_history.json index 686b17d9b5..f42be5b03e 100644 --- a/assets/layers/gps_location_history/gps_location_history.json +++ b/assets/layers/gps_location_history/gps_location_history.json @@ -21,5 +21,6 @@ ] } ], - "lineRendering": [] + "lineRendering": [], + "allowMove": false } diff --git a/assets/layers/gps_track/gps_track.json b/assets/layers/gps_track/gps_track.json index 6a934d223a..3f7f771a28 100644 --- a/assets/layers/gps_track/gps_track.json +++ b/assets/layers/gps_track/gps_track.json @@ -69,5 +69,6 @@ "render": "{clear_location_history()}" } ], + "allowMove": false, "syncSelection": "global" } diff --git a/assets/layers/grave/grave.json b/assets/layers/grave/grave.json index 0e04a30faf..b24307fc07 100644 --- a/assets/layers/grave/grave.json +++ b/assets/layers/grave/grave.json @@ -109,5 +109,9 @@ ] } ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "credits": "Built for Wegspotter on the meetup" } diff --git a/assets/layers/home_location/home_location.json b/assets/layers/home_location/home_location.json index 8b7d23b566..eeb0f52b6f 100644 --- a/assets/layers/home_location/home_location.json +++ b/assets/layers/home_location/home_location.json @@ -21,5 +21,6 @@ ] } ], - "lineRendering": [] + "lineRendering": [], + "allowMove": false } diff --git a/assets/layers/hospital/hospital.json b/assets/layers/hospital/hospital.json index 2cb686c6fe..34038d41d7 100644 --- a/assets/layers/hospital/hospital.json +++ b/assets/layers/hospital/hospital.json @@ -154,5 +154,6 @@ "cs": "

Otevírací doba pro návštěvníky

Běžným návštěvníkům je vstup povolen v následujících časech: {opening_hours_table(opening_hours:visitors)}

Některá oddělení mohou mít jinou otevírací dobu. Mnohé nemocnice povolují návštěvy i v době pohotovosti.

" } } - ] + ], + "allowMove": true } diff --git a/assets/layers/ice_cream/ice_cream.json b/assets/layers/ice_cream/ice_cream.json index 4e159812d2..d788d62bfa 100644 --- a/assets/layers/ice_cream/ice_cream.json +++ b/assets/layers/ice_cream/ice_cream.json @@ -98,6 +98,7 @@ "payment-options", "wheelchair-access" ], + "allowMove": true, "credits": [ "Pieter Vander Vennet" ] diff --git a/assets/layers/icons/icons.json b/assets/layers/icons/icons.json index a5fb70601d..d5a5623d45 100644 --- a/assets/layers/icons/icons.json +++ b/assets/layers/icons/icons.json @@ -382,5 +382,6 @@ ], "render": "{direction_indicator()}" } - ] + ], + "allowMove": false } diff --git a/assets/layers/id_presets/id_presets.json b/assets/layers/id_presets/id_presets.json index a5b3f8b8e3..f447cc69a2 100644 --- a/assets/layers/id_presets/id_presets.json +++ b/assets/layers/id_presets/id_presets.json @@ -23684,5 +23684,6 @@ ] } ], + "allowMove": false, "#dont-translate": "*" } diff --git a/assets/layers/import_candidate/import_candidate.json b/assets/layers/import_candidate/import_candidate.json index b315f20f1d..21bf25f862 100644 --- a/assets/layers/import_candidate/import_candidate.json +++ b/assets/layers/import_candidate/import_candidate.json @@ -25,5 +25,6 @@ "id": "all_tags", "render": "{all_tags()}" } - ] + ], + "allowMove": false } diff --git a/assets/layers/indoors/indoors.json b/assets/layers/indoors/indoors.json index ba56637635..7eea280372 100644 --- a/assets/layers/indoors/indoors.json +++ b/assets/layers/indoors/indoors.json @@ -607,5 +607,9 @@ } } } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/item_with_image/item_with_image.json b/assets/layers/item_with_image/item_with_image.json index 3009a35a90..5d52bfc634 100644 --- a/assets/layers/item_with_image/item_with_image.json +++ b/assets/layers/item_with_image/item_with_image.json @@ -54,5 +54,6 @@ "lineRendering": [], "tagRenderings": [ "images" - ] + ], + "allowMove": false } diff --git a/assets/layers/kerbs/kerbs.json b/assets/layers/kerbs/kerbs.json index 59bae3a703..2b5c4aa19c 100644 --- a/assets/layers/kerbs/kerbs.json +++ b/assets/layers/kerbs/kerbs.json @@ -392,6 +392,10 @@ }, "tactile_paving_advanced" ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "units": [ { "kerb:height": { diff --git a/assets/layers/last_click/last_click.json b/assets/layers/last_click/last_click.json index b9cb5311be..6b92391c4f 100644 --- a/assets/layers/last_click/last_click.json +++ b/assets/layers/last_click/last_click.json @@ -218,5 +218,6 @@ } ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/lighthouse/lighthouse.json b/assets/layers/lighthouse/lighthouse.json index 89ca98db53..f5917195a5 100644 --- a/assets/layers/lighthouse/lighthouse.json +++ b/assets/layers/lighthouse/lighthouse.json @@ -68,6 +68,10 @@ "id": "lighthouse-height" } ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "units": [ { "height": { diff --git a/assets/layers/love_hotel/love_hotel.json b/assets/layers/love_hotel/love_hotel.json index 83bd392861..935010a036 100644 --- a/assets/layers/love_hotel/love_hotel.json +++ b/assets/layers/love_hotel/love_hotel.json @@ -83,6 +83,7 @@ }, "contact" ], + "allowMove": true, "enableMorePrivacy": true, "credits": "Asteliks" } diff --git a/assets/layers/maproulette/maproulette.json b/assets/layers/maproulette/maproulette.json index 260d95f26f..607cef4d0b 100644 --- a/assets/layers/maproulette/maproulette.json +++ b/assets/layers/maproulette/maproulette.json @@ -395,5 +395,6 @@ } ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/maproulette_challenge/maproulette_challenge.json b/assets/layers/maproulette_challenge/maproulette_challenge.json index b9faf91920..06db90cc1e 100644 --- a/assets/layers/maproulette_challenge/maproulette_challenge.json +++ b/assets/layers/maproulette_challenge/maproulette_challenge.json @@ -292,5 +292,6 @@ } ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/maxspeed/maxspeed.json b/assets/layers/maxspeed/maxspeed.json index 364a05be54..46e54b11d8 100644 --- a/assets/layers/maxspeed/maxspeed.json +++ b/assets/layers/maxspeed/maxspeed.json @@ -163,6 +163,7 @@ "id": "maxspeed-maxspeed" } ], + "allowMove": false, "allowSplit": true, "units": [ { diff --git a/assets/layers/named_streets/named_streets.json b/assets/layers/named_streets/named_streets.json index 4041e8b55d..8b1cf63eef 100644 --- a/assets/layers/named_streets/named_streets.json +++ b/assets/layers/named_streets/named_streets.json @@ -17,5 +17,6 @@ "color": "#ccc", "width": "3" } - ] + ], + "allowMove": false } diff --git a/assets/layers/nature_reserve/nature_reserve.json b/assets/layers/nature_reserve/nature_reserve.json index bac0f6c024..4dae74e078 100644 --- a/assets/layers/nature_reserve/nature_reserve.json +++ b/assets/layers/nature_reserve/nature_reserve.json @@ -612,5 +612,9 @@ } ] } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/note/note.json b/assets/layers/note/note.json index 05e5d942d6..146bbc17fc 100644 --- a/assets/layers/note/note.json +++ b/assets/layers/note/note.json @@ -407,5 +407,6 @@ } ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/osm_community_index/osm_community_index.json b/assets/layers/osm_community_index/osm_community_index.json index 54b074cc31..05b2c783ba 100644 --- a/assets/layers/osm_community_index/osm_community_index.json +++ b/assets/layers/osm_community_index/osm_community_index.json @@ -184,5 +184,6 @@ } ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/outdoor_seating/outdoor_seating.json b/assets/layers/outdoor_seating/outdoor_seating.json index ca9ab00659..23d508c195 100644 --- a/assets/layers/outdoor_seating/outdoor_seating.json +++ b/assets/layers/outdoor_seating/outdoor_seating.json @@ -190,5 +190,9 @@ ] } } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/parking_spaces/parking_spaces.json b/assets/layers/parking_spaces/parking_spaces.json index 732b5a3b4a..29b3d71141 100644 --- a/assets/layers/parking_spaces/parking_spaces.json +++ b/assets/layers/parking_spaces/parking_spaces.json @@ -272,5 +272,9 @@ } ] } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/parking_ticket_machine/parking_ticket_machine.json b/assets/layers/parking_ticket_machine/parking_ticket_machine.json index bc28714ab8..2715cb370e 100644 --- a/assets/layers/parking_ticket_machine/parking_ticket_machine.json +++ b/assets/layers/parking_ticket_machine/parking_ticket_machine.json @@ -113,5 +113,9 @@ } ] } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/pedestrian_path/pedestrian_path.json b/assets/layers/pedestrian_path/pedestrian_path.json index 87c84cf43e..e1bac0a66d 100644 --- a/assets/layers/pedestrian_path/pedestrian_path.json +++ b/assets/layers/pedestrian_path/pedestrian_path.json @@ -45,5 +45,6 @@ "width": 4, "dashArray": "12 6" } - ] + ], + "allowMove": false } diff --git a/assets/layers/picnic_table/picnic_table.json b/assets/layers/picnic_table/picnic_table.json index 6485bbe14a..077bbe95b7 100644 --- a/assets/layers/picnic_table/picnic_table.json +++ b/assets/layers/picnic_table/picnic_table.json @@ -146,6 +146,13 @@ "ca": "Açò és una taula de pícnic feta de plàstic reciclat", "cs": "Tento piknikový stůl je vyroben z plastu (recyklované)" } + }, + { + "if": "material=metal", + "then": { + "en": "This picnic table is made from metal", + "nl": "Deze picnictafel is gemaakt uit metaal" + } } ], "id": "picnic_table-material" diff --git a/assets/layers/play_forest/play_forest.json b/assets/layers/play_forest/play_forest.json index 5a81c3feb1..89013b42c7 100644 --- a/assets/layers/play_forest/play_forest.json +++ b/assets/layers/play_forest/play_forest.json @@ -126,5 +126,9 @@ "render": "{reviews(name, play_forest)}" } ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "hideFromOverview": false } diff --git a/assets/layers/playground/playground.json b/assets/layers/playground/playground.json index 0e3950630c..3189cb6130 100644 --- a/assets/layers/playground/playground.json +++ b/assets/layers/playground/playground.json @@ -136,6 +136,31 @@ "tagRenderings": [ "images", "reviews", + { + "question": { + "en": "Does one have to pay to use this playground?", + "nl": "Moet men betalen om deze speeltuin te gebruiken?" + }, + "id": "fee", + "mappings": [ + { + "if": "fee=no", + "alsoShowIf": "fee=", + "then": { + "en": "Free to use", + "nl": "Gratis te gebruiken" + } + }, + { + "if": "fee=yes", + "then": { + "en": "Paid playground", + "nl": "Betalend" + } + } + ], + "filter": true + }, { "question": { "nl": "Wat is de ondergrond van deze speeltuin?", @@ -740,5 +765,9 @@ "leisure=" ] } + }, + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false } } diff --git a/assets/layers/postboxes/postboxes.json b/assets/layers/postboxes/postboxes.json index dcbdfff0fe..e3fbab4d0f 100644 --- a/assets/layers/postboxes/postboxes.json +++ b/assets/layers/postboxes/postboxes.json @@ -103,5 +103,9 @@ "razed:amenity=post_box" ] } + }, + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false } } diff --git a/assets/layers/postoffices/postoffices.json b/assets/layers/postoffices/postoffices.json index cb4bb7c409..80aa3366b9 100644 --- a/assets/layers/postoffices/postoffices.json +++ b/assets/layers/postoffices/postoffices.json @@ -665,5 +665,6 @@ } ] } - ] + ], + "allowMove": true } diff --git a/assets/layers/questions/questions.json b/assets/layers/questions/questions.json index d5d4551f7e..4197464905 100644 --- a/assets/layers/questions/questions.json +++ b/assets/layers/questions/questions.json @@ -175,13 +175,23 @@ "cs": "Jaké je telefonní číslo {title()}?" }, "render": { - "*": "{phone}" + "special": { + "type": "link", + "href": "tel:{phone}", + "text": "{phone}" + } }, "icon": "./assets/layers/questions/phone.svg", "mappings": [ { "if": "contact:phone~*", - "then": "{contact:phone}", + "then": { + "special": { + "type": "link", + "href": "tel:{contact:phone}", + "text": "{contact:phone}" + } + }, "hideInAnswer": true, "icon": "./assets/layers/questions/phone.svg" } @@ -2933,5 +2943,6 @@ } ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/railway_platforms/railway_platforms.json b/assets/layers/railway_platforms/railway_platforms.json index 1e1295f5ca..d51e89e258 100644 --- a/assets/layers/railway_platforms/railway_platforms.json +++ b/assets/layers/railway_platforms/railway_platforms.json @@ -111,5 +111,6 @@ } }, "level" - ] + ], + "allowMove": false } diff --git a/assets/layers/rainbow_crossings/rainbow_crossings.json b/assets/layers/rainbow_crossings/rainbow_crossings.json index ab2ea66984..894b667c8e 100644 --- a/assets/layers/rainbow_crossings/rainbow_crossings.json +++ b/assets/layers/rainbow_crossings/rainbow_crossings.json @@ -153,5 +153,9 @@ } ] } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/range/range.json b/assets/layers/range/range.json index ae92cb0215..4224185f99 100644 --- a/assets/layers/range/range.json +++ b/assets/layers/range/range.json @@ -12,5 +12,9 @@ "fill": "no", "color": "#cc00cc" } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/reception_desk/reception_desk.json b/assets/layers/reception_desk/reception_desk.json index 70c89f2304..897a60a9d7 100644 --- a/assets/layers/reception_desk/reception_desk.json +++ b/assets/layers/reception_desk/reception_desk.json @@ -96,6 +96,10 @@ }, "induction-loop" ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "units": [ { "desk:height": { diff --git a/assets/layers/selected_element/selected_element.json b/assets/layers/selected_element/selected_element.json index 4b58dea067..de494e96a8 100644 --- a/assets/layers/selected_element/selected_element.json +++ b/assets/layers/selected_element/selected_element.json @@ -27,5 +27,6 @@ ] } ], - "lineRendering": [] + "lineRendering": [], + "allowMove": false } diff --git a/assets/layers/ski_piste/ski_piste.json b/assets/layers/ski_piste/ski_piste.json index cce3cc8cc3..963a6e5f5c 100644 --- a/assets/layers/ski_piste/ski_piste.json +++ b/assets/layers/ski_piste/ski_piste.json @@ -147,5 +147,9 @@ "fr": "Ce tronçon de piste de ski mesure {_length:km} kilomètres de long" } } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/slow_roads/slow_roads.json b/assets/layers/slow_roads/slow_roads.json index 53c18d383d..7978280ed1 100644 --- a/assets/layers/slow_roads/slow_roads.json +++ b/assets/layers/slow_roads/slow_roads.json @@ -331,5 +331,6 @@ } ] } - ] + ], + "allowMove": false } diff --git a/assets/layers/speed_display/speed_display.json b/assets/layers/speed_display/speed_display.json index 0688c33001..6d8dc7afe1 100644 --- a/assets/layers/speed_display/speed_display.json +++ b/assets/layers/speed_display/speed_display.json @@ -113,6 +113,10 @@ } } ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "units": [ { "maxspeed": { diff --git a/assets/layers/split_point/split_point.json b/assets/layers/split_point/split_point.json index c43c0921d1..5f4e3fe5a9 100644 --- a/assets/layers/split_point/split_point.json +++ b/assets/layers/split_point/split_point.json @@ -24,5 +24,6 @@ ] } ], - "lineRendering": [] + "lineRendering": [], + "allowMove": false } diff --git a/assets/layers/split_road/split_road.json b/assets/layers/split_road/split_road.json index 13a6d3cfc1..44a6e315fa 100644 --- a/assets/layers/split_road/split_road.json +++ b/assets/layers/split_road/split_road.json @@ -24,5 +24,6 @@ "width": "8", "color": "black" } - ] + ], + "allowMove": false } diff --git a/assets/layers/sport_pitch/sport_pitch.json b/assets/layers/sport_pitch/sport_pitch.json index 2e5539fa62..dd616ecf49 100644 --- a/assets/layers/sport_pitch/sport_pitch.json +++ b/assets/layers/sport_pitch/sport_pitch.json @@ -821,5 +821,9 @@ ] }, "open_now" - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/stairs/stairs.json b/assets/layers/stairs/stairs.json index 4e81a02bb8..4e5df49349 100644 --- a/assets/layers/stairs/stairs.json +++ b/assets/layers/stairs/stairs.json @@ -339,5 +339,9 @@ } ] } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/stripclub/stripclub.json b/assets/layers/stripclub/stripclub.json index 1fdfad8816..d560736784 100644 --- a/assets/layers/stripclub/stripclub.json +++ b/assets/layers/stripclub/stripclub.json @@ -88,5 +88,6 @@ "opening_hours", "contact" ], + "allowMove": true, "enableMorePrivacy": true } diff --git a/assets/layers/summary/summary.json b/assets/layers/summary/summary.json index 31dfcab044..3300de733e 100644 --- a/assets/layers/summary/summary.json +++ b/assets/layers/summary/summary.json @@ -30,5 +30,6 @@ ], "tagRenderings": [ "all_tags" - ] + ], + "allowMove": false } diff --git a/assets/layers/surveillance_camera/surveillance_camera.json b/assets/layers/surveillance_camera/surveillance_camera.json index f8ca5d8894..5e68a48035 100644 --- a/assets/layers/surveillance_camera/surveillance_camera.json +++ b/assets/layers/surveillance_camera/surveillance_camera.json @@ -858,5 +858,9 @@ } ], "deletion": true, + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "enableMorePrivacy": true } diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json index 3e386b0525..743e495f1a 100644 --- a/assets/layers/toilet/toilet.json +++ b/assets/layers/toilet/toilet.json @@ -206,6 +206,7 @@ }, { "if": "access=customers", + "icon": "key", "then": { "en": "Only access to customers", "de": "Der Zugang ist nur für Kunden", @@ -220,6 +221,7 @@ }, { "if": "access=no", + "icon": "lock", "alsoShowIf": "access=private", "then": { "en": "Not accessible", @@ -236,6 +238,7 @@ }, { "if": "access=key", + "icon": "key", "then": { "en": "Accessible, but one has to ask a key to enter", "de": "Der Zugang ist möglich, aber man muss nach einen Schlüssel fragen", diff --git a/assets/layers/toilet_at_amenity/toilet_at_amenity.json b/assets/layers/toilet_at_amenity/toilet_at_amenity.json index 6e3e589fdf..1fe207835e 100644 --- a/assets/layers/toilet_at_amenity/toilet_at_amenity.json +++ b/assets/layers/toilet_at_amenity/toilet_at_amenity.json @@ -502,6 +502,7 @@ }, "neededChangesets": 1 }, + "allowMove": false, "units": [ { "toilets:door:width": { diff --git a/assets/layers/tourism_accomodation/tourism_accomodation.json b/assets/layers/tourism_accomodation/tourism_accomodation.json index 37348a586c..fea55196a5 100644 --- a/assets/layers/tourism_accomodation/tourism_accomodation.json +++ b/assets/layers/tourism_accomodation/tourism_accomodation.json @@ -227,6 +227,15 @@ "en": "a small-scale lodging facility, typically operated by the owner", "de": "eine kleine Beherbergungseinrichtung, die in der Regel vom Eigentümer betrieben wird" } + }, + { + "tags": [ + "tourism=camp_site" + ], + "title": { + "en": "a camp site or camp ground", + "de": "een kempeerterrein" + } } ], "tagRenderings": [ diff --git a/assets/layers/trail/trail.json b/assets/layers/trail/trail.json index 6c1af2d91a..76ea393731 100644 --- a/assets/layers/trail/trail.json +++ b/assets/layers/trail/trail.json @@ -295,5 +295,6 @@ ], "id": "pushchair access" } - ] + ], + "allowMove": false } diff --git a/assets/layers/transit_routes/transit_routes.json b/assets/layers/transit_routes/transit_routes.json index 9efcb28216..963fd131e4 100644 --- a/assets/layers/transit_routes/transit_routes.json +++ b/assets/layers/transit_routes/transit_routes.json @@ -237,6 +237,7 @@ } } ], + "allowMove": false, "cs": { "0": { "color": { diff --git a/assets/layers/unit/unit.json b/assets/layers/unit/unit.json index 03659bc667..584086c8a4 100644 --- a/assets/layers/unit/unit.json +++ b/assets/layers/unit/unit.json @@ -7,6 +7,7 @@ "source": "special:library", "pointRendering": null, "lineRendering": null, + "allowMove": false, "units": [ { "quantity": "power", diff --git a/assets/layers/usersettings/usersettings.json b/assets/layers/usersettings/usersettings.json index 45bcf9de71..51573c0af2 100644 --- a/assets/layers/usersettings/usersettings.json +++ b/assets/layers/usersettings/usersettings.json @@ -1108,5 +1108,6 @@ "condition": "mapcomplete-show_debug=yes", "render": "{all_tags()}" } - ] + ], + "allowMove": false } diff --git a/assets/layers/veterinary/veterinary.json b/assets/layers/veterinary/veterinary.json index fb6c6a2c5f..e6b04bd084 100644 --- a/assets/layers/veterinary/veterinary.json +++ b/assets/layers/veterinary/veterinary.json @@ -133,5 +133,6 @@ }, "id": "vetName" } - ] + ], + "allowMove": true } diff --git a/assets/layers/viewpoint/viewpoint.json b/assets/layers/viewpoint/viewpoint.json index 40e2dce632..44e7c47296 100644 --- a/assets/layers/viewpoint/viewpoint.json +++ b/assets/layers/viewpoint/viewpoint.json @@ -104,5 +104,9 @@ "id": "viewpoint-description" } ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, "wayhandling": 2 } diff --git a/assets/layers/village_green/village_green.json b/assets/layers/village_green/village_green.json index 4b79bd6a0c..d804a5cd90 100644 --- a/assets/layers/village_green/village_green.json +++ b/assets/layers/village_green/village_green.json @@ -58,5 +58,9 @@ "id": "village_green-reviews", "render": "{reviews(name, landuse=village_green )}" } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } diff --git a/assets/layers/visitor_information_centre/visitor_information_centre.json b/assets/layers/visitor_information_centre/visitor_information_centre.json index 3d02ab61d0..7ce0e55596 100644 --- a/assets/layers/visitor_information_centre/visitor_information_centre.json +++ b/assets/layers/visitor_information_centre/visitor_information_centre.json @@ -97,5 +97,6 @@ ], "lineRendering": [], "presets": [], - "tagRenderings": [] + "tagRenderings": [], + "allowMove": true } diff --git a/assets/layers/walls_and_buildings/walls_and_buildings.json b/assets/layers/walls_and_buildings/walls_and_buildings.json index 8d4cc36251..5cfca96fae 100644 --- a/assets/layers/walls_and_buildings/walls_and_buildings.json +++ b/assets/layers/walls_and_buildings/walls_and_buildings.json @@ -122,6 +122,7 @@ "condition": "_biggest_width_id~*" } ], + "allowMove": false, "units": [ { "width": { diff --git a/assets/layers/windturbine/windturbine.json b/assets/layers/windturbine/windturbine.json index 9d4144743f..56abda36f8 100644 --- a/assets/layers/windturbine/windturbine.json +++ b/assets/layers/windturbine/windturbine.json @@ -301,6 +301,7 @@ }, "images" ], + "allowMove": false, "units": [ { "generator:output:electricity": "power", diff --git a/assets/themes/bag/bag.json b/assets/themes/bag/bag.json index eb526b2232..31d9afaf12 100644 --- a/assets/themes/bag/bag.json +++ b/assets/themes/bag/bag.json @@ -149,7 +149,8 @@ ] } } - ] + ], + "allowMove": false }, { "id": "osm_adresses", @@ -187,7 +188,8 @@ "render": 1 } } - ] + ], + "allowMove": false }, { "id": "bag_pand", @@ -394,7 +396,8 @@ "render": 1 } } - ] + ], + "allowMove": false }, { "id": "bag_verblijfsobject", @@ -452,7 +455,8 @@ "render": 1 } } - ] + ], + "allowMove": false } ] } diff --git a/assets/themes/buurtnatuur/buurtnatuur.json b/assets/themes/buurtnatuur/buurtnatuur.json index 841f843901..c4fc208d4d 100644 --- a/assets/themes/buurtnatuur/buurtnatuur.json +++ b/assets/themes/buurtnatuur/buurtnatuur.json @@ -137,7 +137,8 @@ }, "width": "5" } - ] + ], + "allowMove": false }, { "id": "parks", @@ -241,7 +242,8 @@ }, "width": "5" } - ] + ], + "allowMove": false }, { "id": "forest", @@ -364,7 +366,8 @@ }, "width": "5" } - ] + ], + "allowMove": false }, "viewpoint" ], diff --git a/assets/themes/circular_economy/circular_economy.json b/assets/themes/circular_economy/circular_economy.json index 70780d77e5..9538f3ccb1 100644 --- a/assets/themes/circular_economy/circular_economy.json +++ b/assets/themes/circular_economy/circular_economy.json @@ -32,7 +32,7 @@ { "builtin": "shops", "override": { - "minzoom": 10, + "minzoom": 6, "id": "shops_second_hand", "=name": { "en": "Second hand shops", diff --git a/assets/themes/climbing/climbing.json b/assets/themes/climbing/climbing.json index e724cf91a6..03fed5b816 100644 --- a/assets/themes/climbing/climbing.json +++ b/assets/themes/climbing/climbing.json @@ -63,10 +63,6 @@ "climbing_opportunity" ], "override": { - "allowMove": { - "enableRelocation": false, - "enableImproveAccuracy": true - }, "+titleIcons": [ { "id": "climbing_length", diff --git a/assets/themes/cyclenodes/cyclenodes.json b/assets/themes/cyclenodes/cyclenodes.json index 7b0eb66363..c8b5be2ac1 100644 --- a/assets/themes/cyclenodes/cyclenodes.json +++ b/assets/themes/cyclenodes/cyclenodes.json @@ -123,7 +123,8 @@ } } ], - "pointRendering": null + "pointRendering": null, + "allowMove": false }, { "id": "node_bicycle", @@ -324,7 +325,8 @@ "cycleways_and_roads" ] } - ] + ], + "allowMove": false }, { "builtin": [ @@ -407,4 +409,4 @@ } } ] -} \ No newline at end of file +} diff --git a/assets/themes/cyclestreets/cyclestreets.json b/assets/themes/cyclestreets/cyclestreets.json index ef774802f0..7bf579ea63 100644 --- a/assets/themes/cyclestreets/cyclestreets.json +++ b/assets/themes/cyclestreets/cyclestreets.json @@ -172,7 +172,8 @@ "color": "#0000ff", "width": "10" } - ] + ], + "allowMove": false }, { "id": "toekomstige_fietsstraat", @@ -290,7 +291,8 @@ "color": "#09f9dd", "width": "5" } - ] + ], + "allowMove": false }, { "id": "not_cyclestreets", @@ -410,7 +412,8 @@ "width": "5" } ], - "isCounted": false + "isCounted": false, + "allowMove": false } ], "overrideAll": { diff --git a/assets/themes/cyclofix/cyclofix.json b/assets/themes/cyclofix/cyclofix.json index bcd7541cbe..7b1c1ff374 100644 --- a/assets/themes/cyclofix/cyclofix.json +++ b/assets/themes/cyclofix/cyclofix.json @@ -40,6 +40,26 @@ "Originally created during Open Summer of Code by Pieter Fiers, Thibault Declercq, Pierre Barban, Joost Schouppe and Pieter Vander Vennet" ], "layers": [ + { + "builtin": "assisted_repair", + "override": { + "presets=": [], + "id": "bicycle_assisted_repair_workshop", + "minzoom": 11, + "source": { + "osmTags": { + "and+": [ + { + "or": [ + "service:bicycle:repair=yes", + "bicycle:repair=yes" + ] + } + ] + } + } + } + }, { "builtin": [ "bike_cafe", diff --git a/assets/themes/ghostsigns/ghostsigns.json b/assets/themes/ghostsigns/ghostsigns.json index 91969aff7c..adfdb89c2e 100644 --- a/assets/themes/ghostsigns/ghostsigns.json +++ b/assets/themes/ghostsigns/ghostsigns.json @@ -92,7 +92,7 @@ }, "freeform": { "key": "inscription", - "type": "string", + "type": "text", "placeholder": { "en": "Text on the sign", "de": "Text auf dem Schild", diff --git a/assets/themes/grb/grb.json b/assets/themes/grb/grb.json index 20a85d8093..7795edc206 100644 --- a/assets/themes/grb/grb.json +++ b/assets/themes/grb/grb.json @@ -274,7 +274,8 @@ ] } } - ] + ], + "allowMove": false }, { "id": "grb", @@ -539,7 +540,8 @@ ] } } - ] + ], + "allowMove": false }, { "id": "service_ways", @@ -556,7 +558,8 @@ "width": 4, "color": "#888888" } - ] + ], + "allowMove": false }, { "id": "generic_osm_object", @@ -602,7 +605,8 @@ "width": "1", "fill": "no" } - ] + ], + "allowMove": false }, "address", { diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json index 2a9da63b20..ac8e738f66 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json @@ -14,6 +14,9 @@ }, "icon": "./assets/svg/logo.svg", "hideFromOverview": true, + "startLat": 0, + "startLon": 0, + "startZoom": 1, "layers": [ { "id": "mapcomplete-changes", @@ -727,4 +730,4 @@ } } ] -} \ No newline at end of file +} diff --git a/assets/themes/postal_codes/postal_codes.json b/assets/themes/postal_codes/postal_codes.json index f3368867fa..2cfbeda0ff 100644 --- a/assets/themes/postal_codes/postal_codes.json +++ b/assets/themes/postal_codes/postal_codes.json @@ -144,7 +144,8 @@ "fill": "no", "dashArray": "8 8" } - ] + ], + "allowMove": false }, { "id": "wrong_postal_code", @@ -163,7 +164,9 @@ "color": "#f00", "width": 1 } - ] + ], + "allowMove": false + }, { "id": "town_hall", @@ -233,7 +236,8 @@ ], "anchor": "center" } - ] + ], + "allowMove": false } ], "overpassTimeout": 180, diff --git a/assets/themes/speelplekken/speelplekken.json b/assets/themes/speelplekken/speelplekken.json index ab70632013..9e2bcda94c 100644 --- a/assets/themes/speelplekken/speelplekken.json +++ b/assets/themes/speelplekken/speelplekken.json @@ -196,7 +196,8 @@ }, "width": "9" } - ] + ], + "allowMove": false } ], "overrideAll": { diff --git a/assets/themes/stations/stations.json b/assets/themes/stations/stations.json index 34814f8823..83a9cfd307 100644 --- a/assets/themes/stations/stations.json +++ b/assets/themes/stations/stations.json @@ -115,7 +115,8 @@ { "color": "green" } - ] + ], + "allowMove": false }, { "builtin": [ @@ -454,7 +455,11 @@ ], "lineRendering": [ {} - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } } ] } diff --git a/assets/themes/street_lighting/street_lighting.json b/assets/themes/street_lighting/street_lighting.json index b4ace4e2d1..970246e677 100644 --- a/assets/themes/street_lighting/street_lighting.json +++ b/assets/themes/street_lighting/street_lighting.json @@ -196,7 +196,8 @@ { "color": "#ff0" } - ] + ], + "allowMove": false }, { "id": "all_streets", @@ -367,7 +368,9 @@ ] } } - ] + ], + "allowMove": false + } ] } diff --git a/assets/themes/uk_addresses/uk_addresses.json b/assets/themes/uk_addresses/uk_addresses.json index f86ae5f9d2..52ea313136 100644 --- a/assets/themes/uk_addresses/uk_addresses.json +++ b/assets/themes/uk_addresses/uk_addresses.json @@ -681,7 +681,12 @@ }, "width": "3" } - ] + ], + "allowMove": { + "enableImproveAccuraccy": true, + "enableRelocation": false + } + }, "named_streets" ], diff --git a/assets/themes/walkingnodes/walkingnodes.json b/assets/themes/walkingnodes/walkingnodes.json index c6a3ada634..4dc29796ee 100644 --- a/assets/themes/walkingnodes/walkingnodes.json +++ b/assets/themes/walkingnodes/walkingnodes.json @@ -91,6 +91,7 @@ } ], "pointRendering": null, + "allowMove": false, "tagRenderings": [ { "builtin": "survey_date", @@ -195,6 +196,7 @@ } ] }, + "allowMove": false, "tagRenderings": [ { "id": "node-rwn_ref", @@ -370,4 +372,4 @@ } } ] -} \ No newline at end of file +} diff --git a/assets/themes/width/width.json b/assets/themes/width/width.json index e68bcce7c3..59a07a5dbb 100644 --- a/assets/themes/width/width.json +++ b/assets/themes/width/width.json @@ -200,6 +200,7 @@ "anchor": "center" } ], + "allowMove": false, "lineRendering": [ { "width": "4", diff --git a/langs/ca.json b/langs/ca.json index 385bbe09c0..99d23e4cc5 100644 --- a/langs/ca.json +++ b/langs/ca.json @@ -234,7 +234,6 @@ "createYourOwnTheme": "Crea la teva pròpia petició completa de MapComplete des de zero", "enterToOpen": "Premeu Intro per obrir el tema", "hiddenExplanation": "Aquestes peticions només funcionen amb l'enllaç. Has descobert {hidden_discovered} de {total_hidden} peticions amagades.", - "intro": "

Més mapes temàtics?

T'agrada captar dades?
Hi ha més temes disponibles.", "noMatchingThemes": "Cap tema coincideix amb els teus criteris de cerca", "noSearch": "Mostra tots els temes", "previouslyHiddenTitle": "Peticions visitades i amagades", diff --git a/langs/cs.json b/langs/cs.json index ebd18924d0..d38abdca46 100644 --- a/langs/cs.json +++ b/langs/cs.json @@ -306,7 +306,6 @@ "createYourOwnTheme": "Vytvořte si vlastní téma MapComplete", "enterToOpen": "Stisknutím klávesy Enter otevřete objekt", "hiddenExplanation": "Tato témata jsou přístupná pouze těm, kteří mají odkaz. Objevili jste {hidden_discovered} ze {total_hidden} skrytých témat.", - "intro": "

Více tematických map?

Baví vás sbírat geodata?
K dispozici jsou další tematické mapy.", "noMatchingThemes": "Vašim vyhledávacím kritériím neodpovídají žádná témata", "noSearch": "Zobrazit všechna témata", "previouslyHiddenTitle": "Dříve navštívená skrytá témata", diff --git a/langs/da.json b/langs/da.json index f781cb6274..a5e17c221a 100644 --- a/langs/da.json +++ b/langs/da.json @@ -222,7 +222,6 @@ "morescreen": { "createYourOwnTheme": "Lave dit eget MapComplete tema fra bunden af", "hiddenExplanation": "Disse temaer er kun tilgængelige med linket. Du har opdaget {hidden_discovered} af {total_hidden} skjulte temaer.", - "intro": "

Flere tematiske kort?

Nød du at indsamle geodata?
Der er flere temaer til rådighed.", "noMatchingThemes": "Ingen temaer matchede dine søgekriterier", "noSearch": "Vis alle temaer", "previouslyHiddenTitle": "Tidligere besøgte skjulte temaer", diff --git a/langs/de.json b/langs/de.json index 3cafbe61fd..f0b76e258b 100644 --- a/langs/de.json +++ b/langs/de.json @@ -306,7 +306,6 @@ "createYourOwnTheme": "Ein eigenes MapComplete-Thema von Grund auf neu erstellen", "enterToOpen": "Drücke Enter um Theme zu öffnen", "hiddenExplanation": "Diese Themen sind nur für Personen zugänglich, die einen Link erhalten haben. Sie haben {hidden_discovered} von {total_hidden} versteckten Themen entdeckt.", - "intro": "

Mehr thematische Karten?

Sammeln Sie gerne Geodaten?
Es sind weitere Themen verfügbar.", "noMatchingThemes": "Keine Themen, die Ihren Suchkriterien entsprechen", "noSearch": "Alle Themen anzeigen", "previouslyHiddenTitle": "Zuvor besuchte versteckte Themen", diff --git a/langs/en.json b/langs/en.json index cee17c922f..12d3fe147f 100644 --- a/langs/en.json +++ b/langs/en.json @@ -193,6 +193,7 @@ }, "josmNotOpened": "JOSM could not be reached. Make sure it is opened and remote control is enabled", "josmOpened": "JOSM is opened", + "madeBy": "Mady by {author}", "mapContributionsBy": "The current visible data has edits made by {contributors}", "mapContributionsByAndHidden": "The current visible data has edits made by {contributors} and {hiddenCount} more contributors", "mapDataByOsm": "Map data: OpenStreetMap", @@ -241,6 +242,7 @@ "downloadGeojson": "Download visible data as GeoJSON", "downloadGpx": "Download as GPX-file", "downloadGpxHelper": "A GPX-file can be used with most navigation devices and applications", + "downloadImage": "Download image", "exporting": "Exporting…", "includeMetaData": "Include metadata (last editor, calculated values, …)", "licenseInfo": "

Copyright notice

The provided data is available under ODbL. Reusing it is gratis for any purpose, but Please read the full copyright notice for details.", @@ -299,14 +301,17 @@ "logout": "Log out", "mappingsAreHidden": "Some options are hidden. Use search to show more options.", "menu": { + "aboutCurrentThemeTitle": "About this map", "aboutMapComplete": "About MapComplete", - "filter": "Filter data" + "filter": "Filter data", + "moreUtilsTitle": "Discover more", + "showIntroduction": "Show introduction", + "title": "Menu" }, "morescreen": { "createYourOwnTheme": "Create your own MapComplete theme from scratch", "enterToOpen": "Press enter to open theme", "hiddenExplanation": "These themes are only accessible to those with the link. You have discovered {hidden_discovered} of {total_hidden} hidden themes.", - "intro": "

More thematic maps?

Do you enjoy collecting geodata?
There are more themes available.", "noMatchingThemes": "No themes matched your search criteria", "noSearch": "Show all themes", "previouslyHiddenTitle": "Previously visited hidden themes", @@ -410,6 +415,7 @@ "fsUserbadge": "Enable the login button and thus the possibility to make changes", "fsWelcomeMessage": "Show the welcome message popup and associated tabs", "intro": "

Share this map

Share this map by copying the link below and sending it to friends and family:", + "openInOtherApplications": "Open the current location with another map application", "openLayers": "Open the layers and filters menu", "options": "Sharing options", "stateIsIncluded": "The current state of the layers and filters is included in the shared link and iframe.", diff --git a/langs/es.json b/langs/es.json index e05a0fc90b..91bd244315 100644 --- a/langs/es.json +++ b/langs/es.json @@ -238,7 +238,6 @@ "morescreen": { "createYourOwnTheme": "Crea tu propia petición completa de MapComplete desde cero", "hiddenExplanation": "Estos temas solo son visibles para aquellos con el enlace. Has descubierto {hidden_discovered} de {total_hidden} temas ocultos.", - "intro": "

Más peticiones

Te gusta captar datos?
Hay más capas disponibles.", "noMatchingThemes": "Ningún tema coincide con tus criterios de búsqueda", "noSearch": "Mostrar todos los temas", "previouslyHiddenTitle": "Temas ocultos previamente visitados", diff --git a/langs/fi.json b/langs/fi.json index 9caa4c6c2b..ad4194fb59 100644 --- a/langs/fi.json +++ b/langs/fi.json @@ -271,7 +271,6 @@ "createYourOwnTheme": "Luo oma MapComplete-teema alusta asti", "enterToOpen": "Avaa teema painamalla enter", "hiddenExplanation": "Näitä teemoja voi käyttää vain linkin haltijat. Olet löytänyt {hidden_discovered}/{total_hidden} piilotettua teemaa.", - "intro": "

Lisää teemakarttoja?

Nautitko paikkatiedon keräämisestä?
Teemoja on lisää.", "noMatchingThemes": "Teemaa ei löytynyt hakuehdollasi", "noSearch": "Näytä kaikki teemat", "previouslyHiddenTitle": "Aiemmin katsotut piilotetut teemat", diff --git a/langs/fr.json b/langs/fr.json index 1d809c143e..e3d6e3b193 100644 --- a/langs/fr.json +++ b/langs/fr.json @@ -214,7 +214,6 @@ "createYourOwnTheme": "Créez votre propre thème MapComplete à partir de zéro", "enterToOpen": "Appuyez sur Entrée pour ouvrir le thème", "hiddenExplanation": "Ces thèmes sont seulement accessibles par lien. Vous avez découvert {hidden_discovered} des {total_hidden} thèmes cachés.", - "intro": "

Plus de thèmes ?

Vous aimez collecter des données géographiques ?
Il y a plus de thèmes disponibles.", "noMatchingThemes": "Aucun thème ne correspond à vos critères de recherche", "noSearch": "Afficher tous les thèmes", "previouslyHiddenTitle": "Thèmes précédemment utilisés", diff --git a/langs/gl.json b/langs/gl.json index e744966b90..cdcb7bd7df 100644 --- a/langs/gl.json +++ b/langs/gl.json @@ -49,7 +49,6 @@ "loginWithOpenStreetMap": "Inicia a sesión no OpenStreetMap", "morescreen": { "createYourOwnTheme": "Crea o teu propio tema completo do MapComplete dende cero.", - "intro": "

Máis tarefas

Góstache captar datos?
Hai máis capas dispoñíbeis.", "requestATheme": "Se queres unha tarefa personalizada, solicítaa no seguimento de problemas.", "streetcomplete": "Outra aplicación semellante é StreetComplete." }, diff --git a/langs/hu.json b/langs/hu.json index 7b781e54f3..94287046ce 100644 --- a/langs/hu.json +++ b/langs/hu.json @@ -138,7 +138,6 @@ "morescreen": { "createYourOwnTheme": "Készítsd el saját MapComplete témád a semmiből", "hiddenExplanation": "Ezeket a témákat csak az érheti el, akik ismeri a linket. {total_hidden} rejtett téma közül {hidden_discovered} témát ismersz.", - "intro": "

Kíváncsi vagy más tematikus térképekre is?

Szeretsz földrajzi adatokat gyűjteni?
További témák is elérhetők.", "noMatchingThemes": "Nincs olyan téma, amely megfelelt volna a keresési feltételeknek", "noSearch": "Minden téma megjelenítése", "previouslyHiddenTitle": "Korábban megnézett rejtett témák", diff --git a/langs/it.json b/langs/it.json index 6252ae6cd0..fecd93e449 100644 --- a/langs/it.json +++ b/langs/it.json @@ -253,7 +253,6 @@ "morescreen": { "createYourOwnTheme": "Crea il tuo tema di MapComplete personalizzato da zero", "hiddenExplanation": "Questi temi sono solo accessibili se si dispone del collegamento. Hai scoperto {hidden_discovered} su {total_hidden} temi nascosti.", - "intro": "

Altre mappe tematiche?

Ti diverti a raccogliere dati geografici?
Sono disponibili altri temi.", "noMatchingThemes": "Nessun argomento corrisponde ai tuoi criteri di ricerca", "noSearch": "Mostra tutti gli argomenti", "previouslyHiddenTitle": "Temi nascosti precedentemente visitati", diff --git a/langs/ja.json b/langs/ja.json index 5b40347e35..0823819fef 100644 --- a/langs/ja.json +++ b/langs/ja.json @@ -49,7 +49,6 @@ "loginWithOpenStreetMap": "OpenStreetMapからログインする", "morescreen": { "createYourOwnTheme": "独自のMapCompleteテーマを最初から作成する", - "intro": "

より多くの主題図

ジオデータの収集は楽しいですか?
他にも使用可能なテーマがあります。", "requestATheme": "カスタムビルドのクエストが必要な場合は、問題追跡ツールで要請してください", "streetcomplete": "別に、同様のアプリケーションには、StreetCompleteがあります。" }, diff --git a/langs/layers/de.json b/langs/layers/de.json index b6a112ba11..0e5ba37bed 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -10783,6 +10783,9 @@ }, "6": { "title": "eine kleine Beherbergungseinrichtung, die in der Regel vom Eigentümer betrieben wird" + }, + "7": { + "title": "een kempeerterrein" } }, "tagRenderings": { diff --git a/langs/layers/en.json b/langs/layers/en.json index e85fe72f52..20fb21f132 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -7388,6 +7388,9 @@ }, "2": { "then": "This picnic table is made from (recycled) plastic" + }, + "3": { + "then": "This picnic table is made from metal" } }, "question": "What material is this picnic table made of?", @@ -7428,6 +7431,17 @@ }, "question": "Is this playground accessible to wheelchair users?" }, + "fee": { + "mappings": { + "0": { + "then": "Free to use" + }, + "1": { + "then": "Paid playground" + } + }, + "question": "Does one have to pay to use this playground?" + }, "playground-access": { "mappings": { "0": { @@ -10783,6 +10797,9 @@ }, "6": { "title": "a small-scale lodging facility, typically operated by the owner" + }, + "7": { + "title": "a camp site or camp ground" } }, "tagRenderings": { diff --git a/langs/layers/nl.json b/langs/layers/nl.json index eaae409246..b7534c17a4 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -6049,6 +6049,9 @@ }, "2": { "then": "Deze picknictafel is gemaakt uit (gerecycleerd) plastiek" + }, + "3": { + "then": "Deze picnictafel is gemaakt uit metaal" } }, "question": "Van welk materiaal is deze picknicktafel gemaakt?", @@ -6104,6 +6107,17 @@ }, "question": "Is deze speeltuin toegankelijk voor rolstoelgebruikers?" }, + "fee": { + "mappings": { + "0": { + "then": "Gratis te gebruiken" + }, + "1": { + "then": "Betalend" + } + }, + "question": "Moet men betalen om deze speeltuin te gebruiken?" + }, "playground-access": { "mappings": { "0": { diff --git a/langs/nb_NO.json b/langs/nb_NO.json index 57faddea04..1b8b9c9143 100644 --- a/langs/nb_NO.json +++ b/langs/nb_NO.json @@ -175,7 +175,6 @@ "morescreen": { "createYourOwnTheme": "Opprett ditt eget MapComplete-tema fra grunnen av", "hiddenExplanation": "Disse temaene er kun tilgjengelige hvis du kjenner lenken. Du har oppdaget {hidden_discovered} av {total_hidden} hidden tema.", - "intro": "

Flere temakart?

Liker du å samle inn geodata?
Det er flere tilgjengelige temaer.", "noSearch": "Vis alle temaer", "previouslyHiddenTitle": "Tidligere besøkte skjulte tema", "requestATheme": "Hvis du ønsker et brukerdefinert tema kan du forespørre det i feilsporeren", diff --git a/langs/nl.json b/langs/nl.json index 143477fa85..ac351ae6dc 100644 --- a/langs/nl.json +++ b/langs/nl.json @@ -251,7 +251,6 @@ "createYourOwnTheme": "Maak je eigen MapComplete-kaart", "enterToOpen": "Druk op enter om thema te openen", "hiddenExplanation": "Deze thema's zijn enkel zichtbaar indien je de link kent. Je hebt {hidden_discovered} van {total_hidden} verborgen thema's ontdekt.", - "intro": "

Meer thematische kaarten?

Vind je het leuk om geodata te verzamelen?
Hier vind je meer kaartthema's.", "noMatchingThemes": "Geen enkel thema beantwoordt je zoekopdracht", "noSearch": "Toon alle thema's", "previouslyHiddenTitle": "Eerder bezochte verborgen themas", diff --git a/langs/pl.json b/langs/pl.json index 375fb5b330..eaabe52bfb 100644 --- a/langs/pl.json +++ b/langs/pl.json @@ -226,7 +226,6 @@ "createYourOwnTheme": "Utwórz od podstaw własny temat MapComplete", "enterToOpen": "Naciśnij Enter, aby otworzyć temat", "hiddenExplanation": "Te tematy są dostępne tylko dla osób mających odnośnik. Odkryłeś {hidden_discovered} z {total_hidden} ukrytych tematów.", - "intro": "

Więcej map tematycznych?

Czy lubisz zbierać dane geograficzne?
Dostępnych jest więcej tematów.", "noMatchingThemes": "Żaden temat nie spełnia kryteriów wyszukiwania", "noSearch": "Pokaż wszystkie tematy", "previouslyHiddenTitle": "Wcześniej odwiedzane ukryte tematy", diff --git a/langs/pt.json b/langs/pt.json index 425578f87b..01d2beba7b 100644 --- a/langs/pt.json +++ b/langs/pt.json @@ -299,7 +299,6 @@ "createYourOwnTheme": "Crie o seu próprio tema MapComplete a partir do zero", "enterToOpen": "Pressione Enter para abrir o tema", "hiddenExplanation": "Estes temas só estão acessíveis a quem tiver a hiperligação. Descobriu {hidden_discovered} de {total_hidden} temas ocultos.", - "intro": "

Mais mapas temáticos?

Gosta de colecionar dados geográficos?
Tem mais temas disponíveis.", "noMatchingThemes": "Nenhum tema corresponde aos seus critérios de pesquisa", "noSearch": "Mostrar todos os temas", "previouslyHiddenTitle": "Temas ocultos visitados anteriormente", diff --git a/langs/ru.json b/langs/ru.json index 1ec1c3046e..5084c19593 100644 --- a/langs/ru.json +++ b/langs/ru.json @@ -72,7 +72,6 @@ "loginWithOpenStreetMap": "Войти с помощью OpenStreetMap", "morescreen": { "createYourOwnTheme": "Создать собственную тему MapComplete с чистого листа", - "intro": "

Больше тематических карт?

Нравится собирать геоданные?
Можете посмотреть другие темы.", "requestATheme": "Если вам нужен особенный квест, запросите его в issue-трекере", "streetcomplete": "Другое, похожее приложение — StreetComplete." }, diff --git a/langs/zh_Hant.json b/langs/zh_Hant.json index b419571928..2027183fcc 100644 --- a/langs/zh_Hant.json +++ b/langs/zh_Hant.json @@ -304,7 +304,6 @@ "createYourOwnTheme": "從零開始建立你的 MapComplete 主題", "enterToOpen": "請按輸入來開啟主題", "hiddenExplanation": "這些主題只能透過連結來打開,你已經發現 {total_hidden} 當中 {hidden_discovered} 的隱藏主題。", - "intro": "

看更多主題地圖?

您喜歡蒐集地理資料嗎?
還有更多主題。", "noMatchingThemes": "沒有找到符合的主題", "noSearch": "顯示所有主題", "previouslyHiddenTitle": "先前看過隱藏的主題", diff --git a/package.json b/package.json index cd35618034..4df0280d46 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mapcomplete", - "version": "0.45.7", + "version": "0.46.0", "repository": "https://github.com/pietervdvn/MapComplete", "description": "A small website to edit OSM easily", "bugs": "https://github.com/pietervdvn/MapComplete/issues", diff --git a/public/css/index-tailwind-output.css b/public/css/index-tailwind-output.css index 320d427ce1..0d22a82190 100644 --- a/public/css/index-tailwind-output.css +++ b/public/css/index-tailwind-output.css @@ -25,7 +25,7 @@ /* 2 */ border-style: solid; /* 2 */ - border-color: #e5e7eb; + border-color: #E5E7EB; /* 2 */ } @@ -362,7 +362,7 @@ input::placeholder, textarea::placeholder { opacity: 1; /* 1 */ - color: #9ca3af; + color: #9CA3AF; /* 2 */ } @@ -419,6 +419,471 @@ video { display: none; } +[data-tooltip-style^='light'] + .tooltip > .tooltip-arrow:before { + border-style: solid; + border-color: #e5e7eb; +} + +[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='top'] > .tooltip-arrow:before { + border-bottom-width: 1px; + border-right-width: 1px; +} + +[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='right'] > .tooltip-arrow:before { + border-bottom-width: 1px; + border-left-width: 1px; +} + +[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='bottom'] > .tooltip-arrow:before { + border-top-width: 1px; + border-left-width: 1px; +} + +[data-tooltip-style^='light'] + .tooltip[data-popper-placement^='left'] > .tooltip-arrow:before { + border-top-width: 1px; + border-right-width: 1px; +} + +.tooltip[data-popper-placement^='top'] > .tooltip-arrow { + bottom: -4px; +} + +.tooltip[data-popper-placement^='bottom'] > .tooltip-arrow { + top: -4px; +} + +.tooltip[data-popper-placement^='left'] > .tooltip-arrow { + right: -4px; +} + +.tooltip[data-popper-placement^='right'] > .tooltip-arrow { + left: -4px; +} + +.tooltip.invisible > .tooltip-arrow:before { + visibility: hidden; +} + +[data-popper-arrow],[data-popper-arrow]:before { + position: absolute; + width: 8px; + height: 8px; + background: inherit; +} + +[data-popper-arrow] { + visibility: hidden; +} + +[data-popper-arrow]:before { + content: ""; + visibility: visible; + transform: rotate(45deg); +} + +[data-popper-arrow]:after { + content: ""; + visibility: visible; + transform: rotate(45deg); + position: absolute; + width: 9px; + height: 9px; + background: inherit; +} + +[role="tooltip"] > [data-popper-arrow]:before { + border-style: solid; + border-color: #e5e7eb; +} + +.dark [role="tooltip"] > [data-popper-arrow]:before { + border-style: solid; + border-color: #4b5563; +} + +[role="tooltip"] > [data-popper-arrow]:after { + border-style: solid; + border-color: #e5e7eb; +} + +.dark [role="tooltip"] > [data-popper-arrow]:after { + border-style: solid; + border-color: #4b5563; +} + +[data-popover][role="tooltip"][data-popper-placement^='top'] > [data-popper-arrow]:before { + border-bottom-width: 1px; + border-right-width: 1px; +} + +[data-popover][role="tooltip"][data-popper-placement^='top'] > [data-popper-arrow]:after { + border-bottom-width: 1px; + border-right-width: 1px; +} + +[data-popover][role="tooltip"][data-popper-placement^='right'] > [data-popper-arrow]:before { + border-bottom-width: 1px; + border-left-width: 1px; +} + +[data-popover][role="tooltip"][data-popper-placement^='right'] > [data-popper-arrow]:after { + border-bottom-width: 1px; + border-left-width: 1px; +} + +[data-popover][role="tooltip"][data-popper-placement^='bottom'] > [data-popper-arrow]:before { + border-top-width: 1px; + border-left-width: 1px; +} + +[data-popover][role="tooltip"][data-popper-placement^='bottom'] > [data-popper-arrow]:after { + border-top-width: 1px; + border-left-width: 1px; +} + +[data-popover][role="tooltip"][data-popper-placement^='left'] > [data-popper-arrow]:before { + border-top-width: 1px; + border-right-width: 1px; +} + +[data-popover][role="tooltip"][data-popper-placement^='left'] > [data-popper-arrow]:after { + border-top-width: 1px; + border-right-width: 1px; +} + +[data-popover][role="tooltip"][data-popper-placement^='top'] > [data-popper-arrow] { + bottom: -5px; +} + +[data-popover][role="tooltip"][data-popper-placement^='bottom'] > [data-popper-arrow] { + top: -5px; +} + +[data-popover][role="tooltip"][data-popper-placement^='left'] > [data-popper-arrow] { + right: -5px; +} + +[data-popover][role="tooltip"][data-popper-placement^='right'] > [data-popper-arrow] { + left: -5px; +} + +[role="tooltip"].invisible > [data-popper-arrow]:before { + visibility: hidden; +} + +[role="tooltip"].invisible > [data-popper-arrow]:after { + visibility: hidden; +} + +[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select { + -webkit-appearance: none; + appearance: none; + background-color: #fff; + border-color: #6B7280; + border-width: 1px; + border-radius: 0px; + padding-top: 0.5rem; + padding-right: 0.75rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + font-size: 1rem; + line-height: 1.5rem; + --tw-shadow: 0 0 #0000; +} + +[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #1C64F2; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + border-color: #1C64F2; +} + +input::placeholder,textarea::placeholder { + color: #6B7280; + opacity: 1; +} + +::-webkit-datetime-edit-fields-wrapper { + padding: 0; +} + +::-webkit-date-and-time-value { + min-height: 1.5em; +} + +select:not([size]) { + background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 10 6'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 1 4 4 4-4'/%3e %3c/svg%3e"); + background-position: right 0.75rem center; + background-repeat: no-repeat; + background-size: 0.75em 0.75em; + padding-right: 2.5rem; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; +} + +:is([dir=rtl]) select:not([size]) { + background-position: left 0.75rem center; + padding-right: 0.75rem; + padding-left: 0; +} + +[multiple] { + background-image: initial; + background-position: initial; + background-repeat: unset; + background-size: initial; + padding-right: 0.75rem; + -webkit-print-color-adjust: unset; + print-color-adjust: unset; +} + +[type='checkbox'],[type='radio'] { + -webkit-appearance: none; + appearance: none; + padding: 0; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + display: inline-block; + vertical-align: middle; + background-origin: border-box; + -webkit-user-select: none; + user-select: none; + flex-shrink: 0; + height: 1rem; + width: 1rem; + color: #1C64F2; + background-color: #fff; + border-color: #6B7280; + border-width: 1px; + --tw-shadow: 0 0 #0000; +} + +[type='checkbox'] { + border-radius: 0px; +} + +[type='radio'] { + border-radius: 100%; +} + +[type='checkbox']:focus,[type='radio']:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 2px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #1C64F2; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); +} + +[type='checkbox']:checked,[type='radio']:checked,.dark [type='checkbox']:checked,.dark [type='radio']:checked { + border-color: transparent; + background-color: currentColor; + background-size: 0.55em 0.55em; + background-position: center; + background-repeat: no-repeat; +} + +[type='checkbox']:checked { + background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e"); + background-repeat: no-repeat; + background-size: 0.55em 0.55em; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; +} + +[type='radio']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); + background-size: 1em 1em; +} + +.dark [type='radio']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); + background-size: 1em 1em; +} + +[type='checkbox']:indeterminate { + background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M0.5 6h14'/%3e %3c/svg%3e"); + background-color: currentColor; + border-color: transparent; + background-position: center; + background-repeat: no-repeat; + background-size: 0.55em 0.55em; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; +} + +[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus { + border-color: transparent; + background-color: currentColor; +} + +[type='file'] { + background: unset; + border-color: inherit; + border-width: 0; + border-radius: 0; + padding: 0; + font-size: unset; + line-height: inherit; +} + +[type='file']:focus { + outline: 1px auto inherit; +} + +input[type=file]::-webkit-file-upload-button { + color: white; + background: #1F2937; + border: 0; + font-weight: 500; + font-size: 0.875rem; + cursor: pointer; + padding-top: 0.625rem; + padding-bottom: 0.625rem; + padding-left: 2rem; + padding-right: 1rem; + margin-inline-start: -1rem; + margin-inline-end: 1rem; +} + +input[type=file]::file-selector-button { + color: white; + background: #1F2937; + border: 0; + font-weight: 500; + font-size: 0.875rem; + cursor: pointer; + padding-top: 0.625rem; + padding-bottom: 0.625rem; + padding-left: 2rem; + padding-right: 1rem; + margin-inline-start: -1rem; + margin-inline-end: 1rem; +} + +input[type=file]::-webkit-file-upload-button:hover { + background: #374151; +} + +input[type=file]::file-selector-button:hover { + background: #374151; +} + +:is([dir=rtl]) input[type=file]::-webkit-file-upload-button { + padding-right: 2rem; + padding-left: 1rem; +} + +:is([dir=rtl]) input[type=file]::file-selector-button { + padding-right: 2rem; + padding-left: 1rem; +} + +.dark input[type=file]::-webkit-file-upload-button { + color: white; + background: #4B5563; +} + +.dark input[type=file]::file-selector-button { + color: white; + background: #4B5563; +} + +.dark input[type=file]::-webkit-file-upload-button:hover { + background: #6B7280; +} + +.dark input[type=file]::file-selector-button:hover { + background: #6B7280; +} + +input[type="range"]::-webkit-slider-thumb { + height: 1.25rem; + width: 1.25rem; + background: #1C64F2; + border-radius: 9999px; + border: 0; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + cursor: pointer; +} + +input[type="range"]:disabled::-webkit-slider-thumb { + background: #9CA3AF; +} + +.dark input[type="range"]:disabled::-webkit-slider-thumb { + background: #6B7280; +} + +input[type="range"]:focus::-webkit-slider-thumb { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); + --tw-ring-opacity: 1px; + --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity)); +} + +input[type="range"]::-moz-range-thumb { + height: 1.25rem; + width: 1.25rem; + background: #1C64F2; + border-radius: 9999px; + border: 0; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + cursor: pointer; +} + +input[type="range"]:disabled::-moz-range-thumb { + background: #9CA3AF; +} + +.dark input[type="range"]:disabled::-moz-range-thumb { + background: #6B7280; +} + +input[type="range"]::-moz-range-progress { + background: #3F83F8; +} + +input[type="range"]::-ms-fill-lower { + background: #3F83F8; +} + +input[type="range"].range-sm::-webkit-slider-thumb { + height: 1rem; + width: 1rem; +} + +input[type="range"].range-lg::-webkit-slider-thumb { + height: 1.5rem; + width: 1.5rem; +} + +input[type="range"].range-sm::-moz-range-thumb { + height: 1rem; + width: 1rem; +} + +input[type="range"].range-lg::-moz-range-thumb { + height: 1.5rem; + width: 1.5rem; +} + *, ::before, ::after { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; @@ -441,7 +906,7 @@ video { --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-color: rgb(63 131 248 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; @@ -488,7 +953,7 @@ video { --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-color: rgb(63 131 248 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; @@ -807,18 +1272,22 @@ video { isolation: auto; } +.z-40 { + z-index: 40; +} + .-z-10 { z-index: -10; } -.z-10 { - z-index: 10; -} - .z-50 { z-index: 50; } +.z-10 { + z-index: 10; +} + .z-30 { z-index: 30; } @@ -827,10 +1296,6 @@ video { z-index: 0; } -.z-40 { - z-index: 40; -} - .col-span-2 { grid-column: span 2 / span 2; } @@ -863,14 +1328,14 @@ video { margin: 0.5rem; } -.m-1 { - margin: 0.25rem; -} - .m-0\.5 { margin: 0.125rem; } +.m-1 { + margin: 0.25rem; +} + .m-11 { margin: 2.75rem; } @@ -943,6 +1408,11 @@ video { margin-right: 0.25rem; } +.mx-auto { + margin-left: auto; + margin-right: auto; +} + .my-4 { margin-top: 1rem; margin-bottom: 1rem; @@ -963,11 +1433,6 @@ video { margin-bottom: -0.25rem; } -.mx-auto { - margin-left: auto; - margin-right: auto; -} - .-mx-1\.5 { margin-left: -0.375rem; margin-right: -0.375rem; @@ -993,10 +1458,6 @@ video { margin-right: 4rem; } -.mb-4 { - margin-bottom: 1rem; -} - .mt-4 { margin-top: 1rem; } @@ -1013,10 +1474,6 @@ video { margin-bottom: 4rem; } -.mt-1 { - margin-top: 0.25rem; -} - .mr-0\.5 { margin-right: 0.125rem; } @@ -1029,26 +1486,26 @@ video { margin-right: 0.25rem; } +.mt-1 { + margin-top: 0.25rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + .ml-1 { margin-left: 0.25rem; } +.mt-2 { + margin-top: 0.5rem; +} + .ml-2 { margin-left: 0.5rem; } -.mr-10 { - margin-right: 2.5rem; -} - -.mb-1\.5 { - margin-bottom: 0.375rem; -} - -.mb-1 { - margin-bottom: 0.25rem; -} - .ml-4 { margin-left: 1rem; } @@ -1057,8 +1514,16 @@ video { margin-bottom: 0.5rem; } -.mt-2 { - margin-top: 0.5rem; +.mr-16 { + margin-right: 4rem; +} + +.mb-1\.5 { + margin-bottom: 0.375rem; +} + +.mb-1 { + margin-bottom: 0.25rem; } .mt-8 { @@ -1073,10 +1538,6 @@ video { margin-left: -1.5rem; } -.mt-12 { - margin-top: 3rem; -} - .mb-3 { margin-bottom: 0.75rem; } @@ -1217,6 +1678,14 @@ video { display: none !important; } +.h-6 { + height: 1.5rem; +} + +.h-9 { + height: 2.25rem; +} + .h-24 { height: 6rem; } @@ -1256,10 +1725,6 @@ video { height: 1rem; } -.h-6 { - height: 1.5rem; -} - .h-0 { height: 0px; } @@ -1272,6 +1737,10 @@ video { height: 0.75rem; } +.h-modal { + height: calc(100% - 2rem); +} + .h-7 { height: 1.75rem; } @@ -1284,6 +1753,14 @@ video { height: 1.25rem; } +.h-10 { + height: 2.5rem; +} + +.h-14 { + height: 3.5rem; +} + .h-16 { height: 4rem; } @@ -1304,10 +1781,6 @@ video { height: 20rem; } -.h-10 { - height: 2.5rem; -} - .h-20 { height: 5rem; } @@ -1424,10 +1897,6 @@ video { height: 0.625rem; } -.h-14 { - height: 3.5rem; -} - .h-72 { height: 18rem; } @@ -1444,6 +1913,10 @@ video { max-height: 3rem; } +.max-h-full { + max-height: 100%; +} + .max-h-24 { max-height: 6rem; } @@ -1452,10 +1925,6 @@ video { max-height: 16rem; } -.max-h-full { - max-height: 100%; -} - .max-h-60 { max-height: 15rem; } @@ -1472,6 +1941,14 @@ video { min-height: 3.2rem; } +.w-64 { + width: 16rem; +} + +.w-1\/2 { + width: 50%; +} + .w-full { width: 100%; } @@ -1480,10 +1957,6 @@ video { width: 8rem; } -.w-64 { - width: 16rem; -} - .w-8 { width: 2rem; } @@ -1534,8 +2007,12 @@ video { width: 1.25rem; } -.w-1\/2 { - width: 50%; +.w-10 { + width: 2.5rem; +} + +.w-14 { + width: 3.5rem; } .w-max { @@ -1556,10 +2033,6 @@ video { width: min-content; } -.w-10 { - width: 2.5rem; -} - .w-20 { width: 5rem; } @@ -1624,10 +2097,6 @@ video { width: 2.25rem; } -.w-14 { - width: 3.5rem; -} - .w-2 { width: 0.5rem; } @@ -1923,6 +2392,14 @@ video { grid-auto-flow: row; } +.grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.grid-cols-7 { + grid-template-columns: repeat(7, minmax(0, 1fr)); +} + .grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } @@ -2003,14 +2480,14 @@ video { gap: 1rem; } -.gap-2 { - gap: 0.5rem; -} - .gap-3 { gap: 0.75rem; } +.gap-2 { + gap: 0.5rem; +} + .gap-8 { gap: 2rem; } @@ -2035,6 +2512,10 @@ video { column-gap: 0.25rem; } +.gap-x-4 { + column-gap: 1rem; +} + .gap-x-0\.5 { column-gap: 0.125rem; } @@ -2043,14 +2524,16 @@ video { column-gap: 0px; } -.gap-x-4 { - column-gap: 1rem; -} - .gap-y-8 { row-gap: 2rem; } +.space-y-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1rem * var(--tw-space-y-reverse)); +} + .space-x-0\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.125rem * var(--tw-space-x-reverse)); @@ -2081,6 +2564,12 @@ video { margin-bottom: calc(0px * var(--tw-space-y-reverse)); } +.space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); +} + .space-x-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.5rem * var(--tw-space-x-reverse)); @@ -2093,24 +2582,12 @@ video { margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); } -.space-y-4 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(1rem * var(--tw-space-y-reverse)); -} - .-space-x-px > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(-1px * var(--tw-space-x-reverse)); margin-left: calc(-1px * calc(1 - var(--tw-space-x-reverse))); } -.space-x-4 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(1rem * var(--tw-space-x-reverse)); - margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); -} - .space-y-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); @@ -2191,37 +2668,37 @@ video { .divide-red-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; - border-color: rgb(252 165 165 / var(--tw-divide-opacity)); + border-color: rgb(248 180 180 / var(--tw-divide-opacity)); } .divide-yellow-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; - border-color: rgb(253 224 71 / var(--tw-divide-opacity)); + border-color: rgb(250 202 21 / var(--tw-divide-opacity)); } .divide-green-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; - border-color: rgb(134 239 172 / var(--tw-divide-opacity)); + border-color: rgb(132 225 188 / var(--tw-divide-opacity)); } .divide-indigo-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; - border-color: rgb(165 180 252 / var(--tw-divide-opacity)); + border-color: rgb(180 198 252 / var(--tw-divide-opacity)); } .divide-purple-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; - border-color: rgb(216 180 254 / var(--tw-divide-opacity)); + border-color: rgb(202 191 253 / var(--tw-divide-opacity)); } .divide-pink-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; - border-color: rgb(249 168 212 / var(--tw-divide-opacity)); + border-color: rgb(248 180 217 / var(--tw-divide-opacity)); } .divide-blue-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; - border-color: rgb(147 197 253 / var(--tw-divide-opacity)); + border-color: rgb(164 202 254 / var(--tw-divide-opacity)); } .divide-gray-500 > :not([hidden]) ~ :not([hidden]) { @@ -2229,9 +2706,14 @@ video { border-color: rgb(107 114 128 / var(--tw-divide-opacity)); } +.divide-primary-500 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(254 121 93 / var(--tw-divide-opacity)); +} + .divide-orange-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; - border-color: rgb(253 186 116 / var(--tw-divide-opacity)); + border-color: rgb(253 186 140 / var(--tw-divide-opacity)); } .self-start { @@ -2364,6 +2846,21 @@ video { border-radius: 0.125rem; } +.rounded-l-lg { + border-top-left-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; +} + +.rounded-r-lg { + border-top-right-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; +} + +.rounded-t-lg { + border-top-left-radius: 0.5rem; + border-top-right-radius: 0.5rem; +} + .rounded-b { border-bottom-right-radius: 0.25rem; border-bottom-left-radius: 0.25rem; @@ -2374,26 +2871,11 @@ video { border-bottom-left-radius: 0.5rem; } -.rounded-t-lg { - border-top-left-radius: 0.5rem; - border-top-right-radius: 0.5rem; -} - .rounded-b-\[1rem\] { border-bottom-right-radius: 1rem; border-bottom-left-radius: 1rem; } -.rounded-l-lg { - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; -} - -.rounded-r-lg { - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; -} - .rounded-b-xl { border-bottom-right-radius: 0.75rem; border-bottom-left-radius: 0.75rem; @@ -2439,6 +2921,10 @@ video { border-top-right-radius: 0.25rem; } +.rounded-bl-full { + border-bottom-left-radius: 9999px; +} + .rounded-tl { border-top-left-radius: 0.25rem; } @@ -2463,10 +2949,6 @@ video { border-width: 2px; } -.border-0 { - border-width: 0px; -} - .\!border-0 { border-width: 0px !important; } @@ -2487,6 +2969,10 @@ video { border-width: 10px; } +.border-0 { + border-width: 0px; +} + .border-x { border-left-width: 1px; border-right-width: 1px; @@ -2533,11 +3019,6 @@ video { border-style: none; } -.border-black { - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} - .border-gray-500 { --tw-border-opacity: 1; border-color: rgb(107 114 128 / var(--tw-border-opacity)); @@ -2548,6 +3029,11 @@ video { border-color: rgb(219 234 254 / var(--tw-border-opacity)); } +.border-black { + --tw-border-opacity: 1; + border-color: rgb(0 0 0 / var(--tw-border-opacity)); +} + .border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity)); @@ -2568,39 +3054,44 @@ video { border-color: rgb(255 255 255 / var(--tw-border-opacity)); } +.border-primary-400 { + --tw-border-opacity: 1; + border-color: rgb(255 188 173 / var(--tw-border-opacity)); +} + .border-blue-400 { --tw-border-opacity: 1; - border-color: rgb(96 165 250 / var(--tw-border-opacity)); + border-color: rgb(118 169 250 / var(--tw-border-opacity)); } .border-red-400 { --tw-border-opacity: 1; - border-color: rgb(248 113 113 / var(--tw-border-opacity)); + border-color: rgb(249 128 128 / var(--tw-border-opacity)); } .border-green-400 { --tw-border-opacity: 1; - border-color: rgb(74 222 128 / var(--tw-border-opacity)); + border-color: rgb(49 196 141 / var(--tw-border-opacity)); } .border-yellow-300 { --tw-border-opacity: 1; - border-color: rgb(253 224 71 / var(--tw-border-opacity)); + border-color: rgb(250 202 21 / var(--tw-border-opacity)); } .border-indigo-400 { --tw-border-opacity: 1; - border-color: rgb(129 140 248 / var(--tw-border-opacity)); + border-color: rgb(141 162 251 / var(--tw-border-opacity)); } .border-purple-400 { --tw-border-opacity: 1; - border-color: rgb(192 132 252 / var(--tw-border-opacity)); + border-color: rgb(172 148 250 / var(--tw-border-opacity)); } .border-pink-400 { --tw-border-opacity: 1; - border-color: rgb(244 114 182 / var(--tw-border-opacity)); + border-color: rgb(241 126 184 / var(--tw-border-opacity)); } .border-gray-100 { @@ -2610,27 +3101,32 @@ video { .border-blue-700 { --tw-border-opacity: 1; - border-color: rgb(29 78 216 / var(--tw-border-opacity)); + border-color: rgb(26 86 219 / var(--tw-border-opacity)); } .border-green-700 { --tw-border-opacity: 1; - border-color: rgb(21 128 61 / var(--tw-border-opacity)); + border-color: rgb(4 108 78 / var(--tw-border-opacity)); +} + +.border-primary-700 { + --tw-border-opacity: 1; + border-color: rgb(235 79 39 / var(--tw-border-opacity)); } .border-purple-700 { --tw-border-opacity: 1; - border-color: rgb(126 34 206 / var(--tw-border-opacity)); + border-color: rgb(108 43 217 / var(--tw-border-opacity)); } .border-red-700 { --tw-border-opacity: 1; - border-color: rgb(185 28 28 / var(--tw-border-opacity)); + border-color: rgb(200 30 30 / var(--tw-border-opacity)); } .border-yellow-400 { --tw-border-opacity: 1; - border-color: rgb(250 204 21 / var(--tw-border-opacity)); + border-color: rgb(227 160 8 / var(--tw-border-opacity)); } .border-gray-900 { @@ -2640,22 +3136,22 @@ video { .border-green-600 { --tw-border-opacity: 1; - border-color: rgb(22 163 74 / var(--tw-border-opacity)); + border-color: rgb(5 122 85 / var(--tw-border-opacity)); } .border-red-600 { --tw-border-opacity: 1; - border-color: rgb(220 38 38 / var(--tw-border-opacity)); + border-color: rgb(224 36 36 / var(--tw-border-opacity)); } .border-green-500 { --tw-border-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-border-opacity)); + border-color: rgb(14 159 110 / var(--tw-border-opacity)); } .border-red-500 { --tw-border-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-border-opacity)); + border-color: rgb(240 82 82 / var(--tw-border-opacity)); } .border-gray-700 { @@ -2663,53 +3159,73 @@ video { border-color: rgb(55 65 81 / var(--tw-border-opacity)); } +.border-primary-600 { + --tw-border-opacity: 1; + border-color: rgb(239 86 47 / var(--tw-border-opacity)); +} + .border-transparent { border-color: transparent; } .border-red-300 { --tw-border-opacity: 1; - border-color: rgb(252 165 165 / var(--tw-border-opacity)); + border-color: rgb(248 180 180 / var(--tw-border-opacity)); } .border-green-300 { --tw-border-opacity: 1; - border-color: rgb(134 239 172 / var(--tw-border-opacity)); + border-color: rgb(132 225 188 / var(--tw-border-opacity)); } .border-indigo-300 { --tw-border-opacity: 1; - border-color: rgb(165 180 252 / var(--tw-border-opacity)); + border-color: rgb(180 198 252 / var(--tw-border-opacity)); } .border-purple-300 { --tw-border-opacity: 1; - border-color: rgb(216 180 254 / var(--tw-border-opacity)); + border-color: rgb(202 191 253 / var(--tw-border-opacity)); } .border-pink-300 { --tw-border-opacity: 1; - border-color: rgb(249 168 212 / var(--tw-border-opacity)); + border-color: rgb(248 180 217 / var(--tw-border-opacity)); } .border-blue-300 { --tw-border-opacity: 1; - border-color: rgb(147 197 253 / var(--tw-border-opacity)); + border-color: rgb(164 202 254 / var(--tw-border-opacity)); +} + +.border-primary-500 { + --tw-border-opacity: 1; + border-color: rgb(254 121 93 / var(--tw-border-opacity)); } .border-orange-300 { --tw-border-opacity: 1; - border-color: rgb(253 186 116 / var(--tw-border-opacity)); + border-color: rgb(253 186 140 / var(--tw-border-opacity)); } .border-inherit { border-color: inherit; } +.border-t-gray-300 { + --tw-border-opacity: 1; + border-top-color: rgb(209 213 219 / var(--tw-border-opacity)); +} + .border-opacity-50 { --tw-border-opacity: 0.5; } +.bg-gray-200 { + --tw-bg-opacity: 1; + background-color: rgb(229 231 235 / var(--tw-bg-opacity)); +} + .bg-gray-500 { --tw-bg-opacity: 1; background-color: rgb(107 114 128 / var(--tw-bg-opacity)); @@ -2722,7 +3238,7 @@ video { .bg-red-400 { --tw-bg-opacity: 1; - background-color: rgb(248 113 113 / var(--tw-bg-opacity)); + background-color: rgb(249 128 128 / var(--tw-bg-opacity)); } .bg-slate-400 { @@ -2735,14 +3251,9 @@ video { background-color: rgb(0 0 0 / var(--tw-bg-opacity)); } -.bg-gray-200 { - --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity)); -} - .bg-indigo-100 { --tw-bg-opacity: 1; - background-color: rgb(224 231 255 / var(--tw-bg-opacity)); + background-color: rgb(229 237 255 / var(--tw-bg-opacity)); } .bg-gray-100 { @@ -2750,34 +3261,39 @@ video { background-color: rgb(243 244 246 / var(--tw-bg-opacity)); } +.bg-primary-100 { + --tw-bg-opacity: 1; + background-color: rgb(255 241 238 / var(--tw-bg-opacity)); +} + .bg-blue-100 { --tw-bg-opacity: 1; - background-color: rgb(219 234 254 / var(--tw-bg-opacity)); + background-color: rgb(225 239 254 / var(--tw-bg-opacity)); } .bg-red-100 { --tw-bg-opacity: 1; - background-color: rgb(254 226 226 / var(--tw-bg-opacity)); + background-color: rgb(253 232 232 / var(--tw-bg-opacity)); } .bg-green-100 { --tw-bg-opacity: 1; - background-color: rgb(220 252 231 / var(--tw-bg-opacity)); + background-color: rgb(222 247 236 / var(--tw-bg-opacity)); } .bg-yellow-100 { --tw-bg-opacity: 1; - background-color: rgb(254 249 195 / var(--tw-bg-opacity)); + background-color: rgb(253 246 178 / var(--tw-bg-opacity)); } .bg-purple-100 { --tw-bg-opacity: 1; - background-color: rgb(243 232 255 / var(--tw-bg-opacity)); + background-color: rgb(237 235 254 / var(--tw-bg-opacity)); } .bg-pink-100 { --tw-bg-opacity: 1; - background-color: rgb(252 231 243 / var(--tw-bg-opacity)); + background-color: rgb(252 232 243 / var(--tw-bg-opacity)); } .bg-gray-50 { @@ -2792,7 +3308,7 @@ video { .bg-blue-700 { --tw-bg-opacity: 1; - background-color: rgb(29 78 216 / var(--tw-bg-opacity)); + background-color: rgb(26 86 219 / var(--tw-bg-opacity)); } .bg-gray-800 { @@ -2802,42 +3318,52 @@ video { .bg-green-700 { --tw-bg-opacity: 1; - background-color: rgb(21 128 61 / var(--tw-bg-opacity)); + background-color: rgb(4 108 78 / var(--tw-bg-opacity)); +} + +.bg-primary-700 { + --tw-bg-opacity: 1; + background-color: rgb(235 79 39 / var(--tw-bg-opacity)); } .bg-purple-700 { --tw-bg-opacity: 1; - background-color: rgb(126 34 206 / var(--tw-bg-opacity)); + background-color: rgb(108 43 217 / var(--tw-bg-opacity)); } .bg-red-700 { --tw-bg-opacity: 1; - background-color: rgb(185 28 28 / var(--tw-bg-opacity)); + background-color: rgb(200 30 30 / var(--tw-bg-opacity)); } .bg-yellow-400 { --tw-bg-opacity: 1; - background-color: rgb(250 204 21 / var(--tw-bg-opacity)); + background-color: rgb(227 160 8 / var(--tw-bg-opacity)); } .bg-blue-400 { --tw-bg-opacity: 1; - background-color: rgb(96 165 250 / var(--tw-bg-opacity)); + background-color: rgb(118 169 250 / var(--tw-bg-opacity)); } .bg-green-400 { --tw-bg-opacity: 1; - background-color: rgb(74 222 128 / var(--tw-bg-opacity)); + background-color: rgb(49 196 141 / var(--tw-bg-opacity)); +} + +.bg-primary-400 { + --tw-bg-opacity: 1; + background-color: rgb(255 188 173 / var(--tw-bg-opacity)); } .bg-purple-400 { --tw-bg-opacity: 1; - background-color: rgb(192 132 252 / var(--tw-bg-opacity)); + background-color: rgb(172 148 250 / var(--tw-bg-opacity)); } .bg-yellow-300 { --tw-bg-opacity: 1; - background-color: rgb(253 224 71 / var(--tw-bg-opacity)); + background-color: rgb(250 202 21 / var(--tw-bg-opacity)); } .bg-white\/30 { @@ -2850,12 +3376,12 @@ video { .bg-green-50 { --tw-bg-opacity: 1; - background-color: rgb(240 253 244 / var(--tw-bg-opacity)); + background-color: rgb(243 250 247 / var(--tw-bg-opacity)); } .bg-red-50 { --tw-bg-opacity: 1; - background-color: rgb(254 242 242 / var(--tw-bg-opacity)); + background-color: rgb(253 242 242 / var(--tw-bg-opacity)); } .bg-gray-300 { @@ -2869,42 +3395,47 @@ video { .bg-blue-600 { --tw-bg-opacity: 1; - background-color: rgb(37 99 235 / var(--tw-bg-opacity)); + background-color: rgb(28 100 242 / var(--tw-bg-opacity)); } .bg-orange-600 { --tw-bg-opacity: 1; - background-color: rgb(234 88 12 / var(--tw-bg-opacity)); + background-color: rgb(208 56 1 / var(--tw-bg-opacity)); } .bg-green-500 { --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity)); + background-color: rgb(14 159 110 / var(--tw-bg-opacity)); } .bg-red-500 { --tw-bg-opacity: 1; - background-color: rgb(239 68 68 / var(--tw-bg-opacity)); + background-color: rgb(240 82 82 / var(--tw-bg-opacity)); } .bg-purple-500 { --tw-bg-opacity: 1; - background-color: rgb(168 85 247 / var(--tw-bg-opacity)); + background-color: rgb(144 97 249 / var(--tw-bg-opacity)); } .bg-indigo-500 { --tw-bg-opacity: 1; - background-color: rgb(99 102 241 / var(--tw-bg-opacity)); + background-color: rgb(104 117 245 / var(--tw-bg-opacity)); } .bg-teal-500 { --tw-bg-opacity: 1; - background-color: rgb(20 184 166 / var(--tw-bg-opacity)); + background-color: rgb(6 148 162 / var(--tw-bg-opacity)); } .bg-blue-50 { --tw-bg-opacity: 1; - background-color: rgb(239 246 255 / var(--tw-bg-opacity)); + background-color: rgb(235 245 255 / var(--tw-bg-opacity)); +} + +.bg-primary-600 { + --tw-bg-opacity: 1; + background-color: rgb(239 86 47 / var(--tw-bg-opacity)); } .bg-gray-600 { @@ -2914,22 +3445,32 @@ video { .bg-red-600 { --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity)); + background-color: rgb(224 36 36 / var(--tw-bg-opacity)); } .bg-green-600 { --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity)); + background-color: rgb(5 122 85 / var(--tw-bg-opacity)); } .bg-purple-600 { --tw-bg-opacity: 1; - background-color: rgb(147 51 234 / var(--tw-bg-opacity)); + background-color: rgb(126 58 242 / var(--tw-bg-opacity)); } .bg-indigo-600 { --tw-bg-opacity: 1; - background-color: rgb(79 70 229 / var(--tw-bg-opacity)); + background-color: rgb(88 80 236 / var(--tw-bg-opacity)); +} + +.bg-primary-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 245 242 / var(--tw-bg-opacity)); +} + +.bg-primary-500 { + --tw-bg-opacity: 1; + background-color: rgb(254 121 93 / var(--tw-bg-opacity)); } .bg-gray-400 { @@ -2939,12 +3480,17 @@ video { .bg-pink-500 { --tw-bg-opacity: 1; - background-color: rgb(236 72 153 / var(--tw-bg-opacity)); + background-color: rgb(231 70 148 / var(--tw-bg-opacity)); } .bg-blue-500 { --tw-bg-opacity: 1; - background-color: rgb(59 130 246 / var(--tw-bg-opacity)); + background-color: rgb(63 131 248 / var(--tw-bg-opacity)); +} + +.bg-primary-800 { + --tw-bg-opacity: 1; + background-color: rgb(204 69 34 / var(--tw-bg-opacity)); } .bg-gray-700 { @@ -2954,67 +3500,72 @@ video { .bg-red-900 { --tw-bg-opacity: 1; - background-color: rgb(127 29 29 / var(--tw-bg-opacity)); + background-color: rgb(119 29 29 / var(--tw-bg-opacity)); } .bg-yellow-600 { --tw-bg-opacity: 1; - background-color: rgb(202 138 4 / var(--tw-bg-opacity)); + background-color: rgb(159 88 10 / var(--tw-bg-opacity)); } .bg-green-800 { --tw-bg-opacity: 1; - background-color: rgb(22 101 52 / var(--tw-bg-opacity)); + background-color: rgb(3 84 63 / var(--tw-bg-opacity)); } .bg-indigo-800 { --tw-bg-opacity: 1; - background-color: rgb(55 48 163 / var(--tw-bg-opacity)); + background-color: rgb(66 56 157 / var(--tw-bg-opacity)); } .bg-purple-800 { --tw-bg-opacity: 1; - background-color: rgb(107 33 168 / var(--tw-bg-opacity)); + background-color: rgb(85 33 181 / var(--tw-bg-opacity)); } .bg-pink-800 { --tw-bg-opacity: 1; - background-color: rgb(157 23 77 / var(--tw-bg-opacity)); + background-color: rgb(153 21 75 / var(--tw-bg-opacity)); } .bg-blue-800 { --tw-bg-opacity: 1; - background-color: rgb(30 64 175 / var(--tw-bg-opacity)); + background-color: rgb(30 66 159 / var(--tw-bg-opacity)); } .bg-yellow-500 { --tw-bg-opacity: 1; - background-color: rgb(234 179 8 / var(--tw-bg-opacity)); + background-color: rgb(194 120 3 / var(--tw-bg-opacity)); } .bg-blue-200 { --tw-bg-opacity: 1; - background-color: rgb(191 219 254 / var(--tw-bg-opacity)); + background-color: rgb(195 221 253 / var(--tw-bg-opacity)); +} + +.bg-primary-200 { + --tw-bg-opacity: 1; + background-color: rgb(255 228 222 / var(--tw-bg-opacity)); } .bg-orange-100 { --tw-bg-opacity: 1; - background-color: rgb(255 237 213 / var(--tw-bg-opacity)); + background-color: rgb(254 236 220 / var(--tw-bg-opacity)); } .bg-yellow-50 { --tw-bg-opacity: 1; - background-color: rgb(254 252 232 / var(--tw-bg-opacity)); + background-color: rgb(253 253 234 / var(--tw-bg-opacity)); } .bg-indigo-50 { --tw-bg-opacity: 1; - background-color: rgb(238 242 255 / var(--tw-bg-opacity)); + background-color: rgb(240 245 255 / var(--tw-bg-opacity)); } .bg-purple-50 { --tw-bg-opacity: 1; - background-color: rgb(250 245 255 / var(--tw-bg-opacity)); + background-color: rgb(246 245 255 / var(--tw-bg-opacity)); } .bg-pink-50 { @@ -3024,7 +3575,7 @@ video { .bg-orange-50 { --tw-bg-opacity: 1; - background-color: rgb(255 247 237 / var(--tw-bg-opacity)); + background-color: rgb(255 248 241 / var(--tw-bg-opacity)); } .bg-opacity-75 { @@ -3044,14 +3595,14 @@ video { } .from-blue-500 { - --tw-gradient-from: #3b82f6; - --tw-gradient-to: rgb(59 130 246 / 0); + --tw-gradient-from: #3F83F8; + --tw-gradient-to: rgb(63 131 248 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } .from-green-400 { - --tw-gradient-from: #4ade80; - --tw-gradient-to: rgb(74 222 128 / 0); + --tw-gradient-from: #31C48D; + --tw-gradient-to: rgb(49 196 141 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } @@ -3062,8 +3613,8 @@ video { } .from-teal-400 { - --tw-gradient-from: #2dd4bf; - --tw-gradient-to: rgb(45 212 191 / 0); + --tw-gradient-from: #16BDCA; + --tw-gradient-to: rgb(22 189 202 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } @@ -3074,26 +3625,26 @@ video { } .from-red-400 { - --tw-gradient-from: #f87171; - --tw-gradient-to: rgb(248 113 113 / 0); + --tw-gradient-from: #F98080; + --tw-gradient-to: rgb(249 128 128 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } .from-pink-400 { - --tw-gradient-from: #f472b6; - --tw-gradient-to: rgb(244 114 182 / 0); + --tw-gradient-from: #F17EB8; + --tw-gradient-to: rgb(241 126 184 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } .from-purple-500 { - --tw-gradient-from: #a855f7; - --tw-gradient-to: rgb(168 85 247 / 0); + --tw-gradient-from: #9061F9; + --tw-gradient-to: rgb(144 97 249 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } .from-purple-600 { - --tw-gradient-from: #9333ea; - --tw-gradient-to: rgb(147 51 234 / 0); + --tw-gradient-from: #7E3AF2; + --tw-gradient-to: rgb(126 58 242 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } @@ -3104,20 +3655,20 @@ video { } .from-pink-500 { - --tw-gradient-from: #ec4899; - --tw-gradient-to: rgb(236 72 153 / 0); + --tw-gradient-from: #E74694; + --tw-gradient-to: rgb(231 70 148 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } .from-teal-200 { - --tw-gradient-from: #99f6e4; - --tw-gradient-to: rgb(153 246 228 / 0); + --tw-gradient-from: #AFECEF; + --tw-gradient-to: rgb(175 236 239 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } .from-red-200 { - --tw-gradient-from: #fecaca; - --tw-gradient-to: rgb(254 202 202 / 0); + --tw-gradient-from: #FBD5D5; + --tw-gradient-to: rgb(251 213 213 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } @@ -3128,13 +3679,13 @@ video { } .via-blue-600 { - --tw-gradient-to: rgb(37 99 235 / 0); - --tw-gradient-stops: var(--tw-gradient-from), #2563eb, var(--tw-gradient-to); + --tw-gradient-to: rgb(28 100 242 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #1C64F2, var(--tw-gradient-to); } .via-green-500 { - --tw-gradient-to: rgb(34 197 94 / 0); - --tw-gradient-stops: var(--tw-gradient-from), #22c55e, var(--tw-gradient-to); + --tw-gradient-to: rgb(14 159 110 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #0E9F6E, var(--tw-gradient-to); } .via-cyan-500 { @@ -3143,8 +3694,8 @@ video { } .via-teal-500 { - --tw-gradient-to: rgb(20 184 166 / 0); - --tw-gradient-stops: var(--tw-gradient-from), #14b8a6, var(--tw-gradient-to); + --tw-gradient-to: rgb(6 148 162 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #0694A2, var(--tw-gradient-to); } .via-lime-400 { @@ -3153,31 +3704,31 @@ video { } .via-red-500 { - --tw-gradient-to: rgb(239 68 68 / 0); - --tw-gradient-stops: var(--tw-gradient-from), #ef4444, var(--tw-gradient-to); + --tw-gradient-to: rgb(240 82 82 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #F05252, var(--tw-gradient-to); } .via-pink-500 { - --tw-gradient-to: rgb(236 72 153 / 0); - --tw-gradient-stops: var(--tw-gradient-from), #ec4899, var(--tw-gradient-to); + --tw-gradient-to: rgb(231 70 148 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #E74694, var(--tw-gradient-to); } .via-purple-600 { - --tw-gradient-to: rgb(147 51 234 / 0); - --tw-gradient-stops: var(--tw-gradient-from), #9333ea, var(--tw-gradient-to); + --tw-gradient-to: rgb(126 58 242 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #7E3AF2, var(--tw-gradient-to); } .via-red-300 { - --tw-gradient-to: rgb(252 165 165 / 0); - --tw-gradient-stops: var(--tw-gradient-from), #fca5a5, var(--tw-gradient-to); + --tw-gradient-to: rgb(248 180 180 / 0); + --tw-gradient-stops: var(--tw-gradient-from), #F8B4B4, var(--tw-gradient-to); } .to-blue-700 { - --tw-gradient-to: #1d4ed8; + --tw-gradient-to: #1A56DB; } .to-green-600 { - --tw-gradient-to: #16a34a; + --tw-gradient-to: #057A55; } .to-cyan-600 { @@ -3185,7 +3736,7 @@ video { } .to-teal-600 { - --tw-gradient-to: #0d9488; + --tw-gradient-to: #047481; } .to-lime-500 { @@ -3193,31 +3744,31 @@ video { } .to-red-600 { - --tw-gradient-to: #dc2626; + --tw-gradient-to: #E02424; } .to-pink-600 { - --tw-gradient-to: #db2777; + --tw-gradient-to: #D61F69; } .to-purple-700 { - --tw-gradient-to: #7e22ce; + --tw-gradient-to: #6C2BD9; } .to-blue-500 { - --tw-gradient-to: #3b82f6; + --tw-gradient-to: #3F83F8; } .to-blue-600 { - --tw-gradient-to: #2563eb; + --tw-gradient-to: #1C64F2; } .to-pink-500 { - --tw-gradient-to: #ec4899; + --tw-gradient-to: #E74694; } .to-orange-400 { - --tw-gradient-to: #fb923c; + --tw-gradient-to: #FF8A4C; } .to-lime-200 { @@ -3225,7 +3776,7 @@ video { } .to-yellow-200 { - --tw-gradient-to: #fef08a; + --tw-gradient-to: #FCE96A; } .to-emerald-600 { @@ -3241,36 +3792,40 @@ video { background-repeat: repeat; } +.fill-primary-600 { + fill: #EF562F; +} + .fill-blue-600 { - fill: #2563eb; + fill: #1C64F2; } .fill-gray-600 { - fill: #4b5563; + fill: #4B5563; } .fill-green-500 { - fill: #22c55e; + fill: #0E9F6E; } .fill-red-600 { - fill: #dc2626; + fill: #E02424; } .fill-yellow-400 { - fill: #facc15; + fill: #E3A008; } .fill-pink-600 { - fill: #db2777; + fill: #D61F69; } .fill-purple-600 { - fill: #9333ea; + fill: #7E3AF2; } .fill-white { - fill: #fff; + fill: #ffffff; } .object-cover { @@ -3348,9 +3903,9 @@ video { padding-right: 0.25rem; } -.py-8 { - padding-top: 2rem; - padding-bottom: 2rem; +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; } .px-3 { @@ -3358,11 +3913,6 @@ video { padding-right: 0.75rem; } -.py-1 { - padding-top: 0.25rem; - padding-bottom: 0.25rem; -} - .py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; @@ -3450,6 +4000,10 @@ video { padding-left: 0.5rem; } +.pl-1 { + padding-left: 0.25rem; +} + .pr-1 { padding-right: 0.25rem; } @@ -3462,6 +4016,14 @@ video { padding-top: 0px; } +.pl-3 { + padding-left: 0.75rem; +} + +.pb-3 { + padding-bottom: 0.75rem; +} + .pl-4 { padding-left: 1rem; } @@ -3470,18 +4032,6 @@ video { padding-right: 1rem; } -.pl-3 { - padding-left: 0.75rem; -} - -.pr-3 { - padding-right: 0.75rem; -} - -.pl-1 { - padding-left: 0.25rem; -} - .pb-1\.5 { padding-bottom: 0.375rem; } @@ -3698,6 +4248,14 @@ video { font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction); } +.leading-6 { + line-height: 1.5rem; +} + +.leading-9 { + line-height: 2.25rem; +} + .leading-none { line-height: 1; } @@ -3768,44 +4326,54 @@ video { color: rgb(75 85 99 / var(--tw-text-opacity)); } +.text-primary-800 { + --tw-text-opacity: 1; + color: rgb(204 69 34 / var(--tw-text-opacity)); +} + .text-blue-800 { --tw-text-opacity: 1; - color: rgb(30 64 175 / var(--tw-text-opacity)); + color: rgb(30 66 159 / var(--tw-text-opacity)); } .text-red-800 { --tw-text-opacity: 1; - color: rgb(153 27 27 / var(--tw-text-opacity)); + color: rgb(155 28 28 / var(--tw-text-opacity)); } .text-green-800 { --tw-text-opacity: 1; - color: rgb(22 101 52 / var(--tw-text-opacity)); + color: rgb(3 84 63 / var(--tw-text-opacity)); } .text-yellow-800 { --tw-text-opacity: 1; - color: rgb(133 77 14 / var(--tw-text-opacity)); + color: rgb(114 59 19 / var(--tw-text-opacity)); } .text-indigo-800 { --tw-text-opacity: 1; - color: rgb(55 48 163 / var(--tw-text-opacity)); + color: rgb(66 56 157 / var(--tw-text-opacity)); } .text-purple-800 { --tw-text-opacity: 1; - color: rgb(107 33 168 / var(--tw-text-opacity)); + color: rgb(85 33 181 / var(--tw-text-opacity)); } .text-pink-800 { --tw-text-opacity: 1; - color: rgb(157 23 77 / var(--tw-text-opacity)); + color: rgb(153 21 75 / var(--tw-text-opacity)); +} + +.text-primary-400 { + --tw-text-opacity: 1; + color: rgb(255 188 173 / var(--tw-text-opacity)); } .text-blue-400 { --tw-text-opacity: 1; - color: rgb(96 165 250 / var(--tw-text-opacity)); + color: rgb(118 169 250 / var(--tw-text-opacity)); } .text-gray-400 { @@ -3815,32 +4383,37 @@ video { .text-red-400 { --tw-text-opacity: 1; - color: rgb(248 113 113 / var(--tw-text-opacity)); + color: rgb(249 128 128 / var(--tw-text-opacity)); } .text-green-400 { --tw-text-opacity: 1; - color: rgb(74 222 128 / var(--tw-text-opacity)); + color: rgb(49 196 141 / var(--tw-text-opacity)); } .text-yellow-400 { --tw-text-opacity: 1; - color: rgb(250 204 21 / var(--tw-text-opacity)); + color: rgb(227 160 8 / var(--tw-text-opacity)); } .text-indigo-400 { --tw-text-opacity: 1; - color: rgb(129 140 248 / var(--tw-text-opacity)); + color: rgb(141 162 251 / var(--tw-text-opacity)); } .text-purple-400 { --tw-text-opacity: 1; - color: rgb(192 132 252 / var(--tw-text-opacity)); + color: rgb(172 148 250 / var(--tw-text-opacity)); } .text-pink-400 { --tw-text-opacity: 1; - color: rgb(244 114 182 / var(--tw-text-opacity)); + color: rgb(241 126 184 / var(--tw-text-opacity)); +} + +.text-primary-700 { + --tw-text-opacity: 1; + color: rgb(235 79 39 / var(--tw-text-opacity)); } .text-gray-700 { @@ -3850,47 +4423,52 @@ video { .text-blue-900 { --tw-text-opacity: 1; - color: rgb(30 58 138 / var(--tw-text-opacity)); + color: rgb(35 56 118 / var(--tw-text-opacity)); } .text-green-900 { --tw-text-opacity: 1; - color: rgb(20 83 45 / var(--tw-text-opacity)); + color: rgb(1 71 55 / var(--tw-text-opacity)); +} + +.text-primary-900 { + --tw-text-opacity: 1; + color: rgb(165 55 27 / var(--tw-text-opacity)); } .text-purple-900 { --tw-text-opacity: 1; - color: rgb(88 28 135 / var(--tw-text-opacity)); + color: rgb(74 29 150 / var(--tw-text-opacity)); } .text-red-900 { --tw-text-opacity: 1; - color: rgb(127 29 29 / var(--tw-text-opacity)); + color: rgb(119 29 29 / var(--tw-text-opacity)); } .text-yellow-900 { --tw-text-opacity: 1; - color: rgb(113 63 18 / var(--tw-text-opacity)); + color: rgb(99 49 18 / var(--tw-text-opacity)); } .text-blue-700 { --tw-text-opacity: 1; - color: rgb(29 78 216 / var(--tw-text-opacity)); + color: rgb(26 86 219 / var(--tw-text-opacity)); } .text-green-700 { --tw-text-opacity: 1; - color: rgb(21 128 61 / var(--tw-text-opacity)); + color: rgb(4 108 78 / var(--tw-text-opacity)); } .text-purple-700 { --tw-text-opacity: 1; - color: rgb(126 34 206 / var(--tw-text-opacity)); + color: rgb(108 43 217 / var(--tw-text-opacity)); } .text-red-700 { --tw-text-opacity: 1; - color: rgb(185 28 28 / var(--tw-text-opacity)); + color: rgb(200 30 30 / var(--tw-text-opacity)); } .\!text-gray-900 { @@ -3900,32 +4478,47 @@ video { .text-green-600 { --tw-text-opacity: 1; - color: rgb(22 163 74 / var(--tw-text-opacity)); + color: rgb(5 122 85 / var(--tw-text-opacity)); } .text-red-600 { --tw-text-opacity: 1; - color: rgb(220 38 38 / var(--tw-text-opacity)); + color: rgb(224 36 36 / var(--tw-text-opacity)); +} + +.text-primary-500 { + --tw-text-opacity: 1; + color: rgb(254 121 93 / var(--tw-text-opacity)); +} + +.text-primary-600 { + --tw-text-opacity: 1; + color: rgb(239 86 47 / var(--tw-text-opacity)); } .text-purple-600 { --tw-text-opacity: 1; - color: rgb(147 51 234 / var(--tw-text-opacity)); + color: rgb(126 58 242 / var(--tw-text-opacity)); } .text-teal-600 { --tw-text-opacity: 1; - color: rgb(13 148 136 / var(--tw-text-opacity)); + color: rgb(4 116 129 / var(--tw-text-opacity)); } .text-orange-500 { --tw-text-opacity: 1; - color: rgb(249 115 22 / var(--tw-text-opacity)); + color: rgb(255 90 31 / var(--tw-text-opacity)); } .text-blue-600 { --tw-text-opacity: 1; - color: rgb(37 99 235 / var(--tw-text-opacity)); + color: rgb(28 100 242 / var(--tw-text-opacity)); +} + +.text-primary-100 { + --tw-text-opacity: 1; + color: rgb(255 241 238 / var(--tw-text-opacity)); } .text-gray-200 { @@ -3940,77 +4533,77 @@ video { .text-blue-100 { --tw-text-opacity: 1; - color: rgb(219 234 254 / var(--tw-text-opacity)); + color: rgb(225 239 254 / var(--tw-text-opacity)); } .text-green-100 { --tw-text-opacity: 1; - color: rgb(220 252 231 / var(--tw-text-opacity)); + color: rgb(222 247 236 / var(--tw-text-opacity)); } .text-red-100 { --tw-text-opacity: 1; - color: rgb(254 226 226 / var(--tw-text-opacity)); + color: rgb(253 232 232 / var(--tw-text-opacity)); } .text-yellow-100 { --tw-text-opacity: 1; - color: rgb(254 249 195 / var(--tw-text-opacity)); + color: rgb(253 246 178 / var(--tw-text-opacity)); } .text-purple-100 { --tw-text-opacity: 1; - color: rgb(243 232 255 / var(--tw-text-opacity)); + color: rgb(237 235 254 / var(--tw-text-opacity)); } .text-indigo-100 { --tw-text-opacity: 1; - color: rgb(224 231 255 / var(--tw-text-opacity)); + color: rgb(229 237 255 / var(--tw-text-opacity)); } .text-pink-100 { --tw-text-opacity: 1; - color: rgb(252 231 243 / var(--tw-text-opacity)); + color: rgb(252 232 243 / var(--tw-text-opacity)); } .text-blue-50 { --tw-text-opacity: 1; - color: rgb(239 246 255 / var(--tw-text-opacity)); + color: rgb(235 245 255 / var(--tw-text-opacity)); } .text-red-500 { --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity)); + color: rgb(240 82 82 / var(--tw-text-opacity)); } .text-yellow-500 { --tw-text-opacity: 1; - color: rgb(234 179 8 / var(--tw-text-opacity)); + color: rgb(194 120 3 / var(--tw-text-opacity)); } .text-green-500 { --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity)); + color: rgb(14 159 110 / var(--tw-text-opacity)); } .text-blue-500 { --tw-text-opacity: 1; - color: rgb(59 130 246 / var(--tw-text-opacity)); + color: rgb(63 131 248 / var(--tw-text-opacity)); } .text-indigo-500 { --tw-text-opacity: 1; - color: rgb(99 102 241 / var(--tw-text-opacity)); + color: rgb(104 117 245 / var(--tw-text-opacity)); } .text-purple-500 { --tw-text-opacity: 1; - color: rgb(168 85 247 / var(--tw-text-opacity)); + color: rgb(144 97 249 / var(--tw-text-opacity)); } .text-pink-500 { --tw-text-opacity: 1; - color: rgb(236 72 153 / var(--tw-text-opacity)); + color: rgb(231 70 148 / var(--tw-text-opacity)); } .text-transparent { @@ -4019,7 +4612,7 @@ video { .text-orange-800 { --tw-text-opacity: 1; - color: rgb(154 52 18 / var(--tw-text-opacity)); + color: rgb(138 44 13 / var(--tw-text-opacity)); } .underline { @@ -4039,7 +4632,7 @@ video { } .decoration-blue-400 { - text-decoration-color: #60a5fa; + text-decoration-color: #76A9FA; } .decoration-2 { @@ -4058,12 +4651,12 @@ video { .placeholder-green-700::placeholder { --tw-placeholder-opacity: 1; - color: rgb(21 128 61 / var(--tw-placeholder-opacity)); + color: rgb(4 108 78 / var(--tw-placeholder-opacity)); } .placeholder-red-700::placeholder { --tw-placeholder-opacity: 1; - color: rgb(185 28 28 / var(--tw-placeholder-opacity)); + color: rgb(200 30 30 / var(--tw-placeholder-opacity)); } .opacity-50 { @@ -4082,12 +4675,24 @@ video { opacity: 0.3; } +.shadow-lg { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + .shadow { --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } +.shadow-md { + --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + .shadow-sm { --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); @@ -4100,56 +4705,49 @@ video { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -.shadow-lg { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - .shadow-xl { --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -.shadow-md { - --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - .shadow-gray-300 { - --tw-shadow-color: #d1d5db; + --tw-shadow-color: #D1D5DB; --tw-shadow: var(--tw-shadow-colored); } .shadow-blue-700 { - --tw-shadow-color: #1d4ed8; + --tw-shadow-color: #1A56DB; --tw-shadow: var(--tw-shadow-colored); } .shadow-gray-800 { - --tw-shadow-color: #1f2937; + --tw-shadow-color: #1F2937; --tw-shadow: var(--tw-shadow-colored); } .shadow-green-700 { - --tw-shadow-color: #15803d; + --tw-shadow-color: #046C4E; + --tw-shadow: var(--tw-shadow-colored); +} + +.shadow-primary-700 { + --tw-shadow-color: #EB4F27; --tw-shadow: var(--tw-shadow-colored); } .shadow-purple-700 { - --tw-shadow-color: #7e22ce; + --tw-shadow-color: #6C2BD9; --tw-shadow: var(--tw-shadow-colored); } .shadow-red-700 { - --tw-shadow-color: #b91c1c; + --tw-shadow-color: #C81E1E; --tw-shadow: var(--tw-shadow-colored); } .shadow-yellow-500 { - --tw-shadow-color: #eab308; + --tw-shadow-color: #C27803; --tw-shadow: var(--tw-shadow-colored); } @@ -4159,27 +4757,32 @@ video { } .shadow-blue-500\/50 { - --tw-shadow-color: rgb(59 130 246 / 0.5); + --tw-shadow-color: rgb(63 131 248 / 0.5); --tw-shadow: var(--tw-shadow-colored); } .shadow-green-500\/50 { - --tw-shadow-color: rgb(34 197 94 / 0.5); + --tw-shadow-color: rgb(14 159 110 / 0.5); + --tw-shadow: var(--tw-shadow-colored); +} + +.shadow-primary-500\/50 { + --tw-shadow-color: rgb(254 121 93 / 0.5); --tw-shadow: var(--tw-shadow-colored); } .shadow-purple-500\/50 { - --tw-shadow-color: rgb(168 85 247 / 0.5); + --tw-shadow-color: rgb(144 97 249 / 0.5); --tw-shadow: var(--tw-shadow-colored); } .shadow-red-500\/50 { - --tw-shadow-color: rgb(239 68 68 / 0.5); + --tw-shadow-color: rgb(240 82 82 / 0.5); --tw-shadow: var(--tw-shadow-colored); } .shadow-yellow-500\/50 { - --tw-shadow-color: rgb(234 179 8 / 0.5); + --tw-shadow-color: rgb(194 120 3 / 0.5); --tw-shadow: var(--tw-shadow-colored); } @@ -4189,7 +4792,7 @@ video { } .shadow-teal-500\/50 { - --tw-shadow-color: rgb(20 184 166 / 0.5); + --tw-shadow-color: rgb(6 148 162 / 0.5); --tw-shadow: var(--tw-shadow-colored); } @@ -4199,7 +4802,7 @@ video { } .shadow-pink-500\/50 { - --tw-shadow-color: rgb(236 72 153 / 0.5); + --tw-shadow-color: rgb(231 70 148 / 0.5); --tw-shadow: var(--tw-shadow-colored); } @@ -4243,6 +4846,11 @@ video { --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); } +.ring-primary-500 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(254 121 93 / var(--tw-ring-opacity)); +} + .ring-white { --tw-ring-opacity: 1; --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); @@ -4253,13 +4861,13 @@ video { filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); } -.drop-shadow-md { - --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06)); +.drop-shadow-2xl { + --tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15)); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); } -.drop-shadow-2xl { - --tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15)); +.drop-shadow-md { + --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06)); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); } @@ -4537,6 +5145,10 @@ input[type="text"] { border-radius: 0.5rem; } +.box-shadow { + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); +} + /******************* Styling of input elements **********************/ /** @@ -4810,10 +5422,18 @@ code { color: var(--background-color); } +.h-full-child > div { + height: 100%; +} + .bg-black-transparent { background-color: #00000088; } +.bg-black-light-transparent { + background-color: #00000044; +} + .block-ruby { display: block ruby; } @@ -4887,6 +5507,10 @@ a.link-underline { background-color: #f2f2f2; } +.no-bold b { + font-weight: normal; +} + /************************* MISC ELEMENTS *************************/ .selected svg:not(.noselect *) path.selectable { @@ -4959,6 +5583,10 @@ svg.apply-fill path { max-width: 100%; } +.max-w-screen { + max-width: 100vw; +} + /************************* Experimental support for foldable devices ********************************/ @media (horizontal-viewport-segments: 2) { @@ -5154,27 +5782,27 @@ svg.apply-fill path { .odd\:bg-blue-800:nth-child(odd) { --tw-bg-opacity: 1; - background-color: rgb(30 64 175 / var(--tw-bg-opacity)); + background-color: rgb(30 66 159 / var(--tw-bg-opacity)); } .odd\:bg-green-800:nth-child(odd) { --tw-bg-opacity: 1; - background-color: rgb(22 101 52 / var(--tw-bg-opacity)); + background-color: rgb(3 84 63 / var(--tw-bg-opacity)); } .odd\:bg-red-800:nth-child(odd) { --tw-bg-opacity: 1; - background-color: rgb(153 27 27 / var(--tw-bg-opacity)); + background-color: rgb(155 28 28 / var(--tw-bg-opacity)); } .odd\:bg-yellow-800:nth-child(odd) { --tw-bg-opacity: 1; - background-color: rgb(133 77 14 / var(--tw-bg-opacity)); + background-color: rgb(114 59 19 / var(--tw-bg-opacity)); } .odd\:bg-purple-800:nth-child(odd) { --tw-bg-opacity: 1; - background-color: rgb(107 33 168 / var(--tw-bg-opacity)); + background-color: rgb(85 33 181 / var(--tw-bg-opacity)); } .even\:bg-gray-50:nth-child(even) { @@ -5184,38 +5812,48 @@ svg.apply-fill path { .even\:bg-blue-700:nth-child(even) { --tw-bg-opacity: 1; - background-color: rgb(29 78 216 / var(--tw-bg-opacity)); + background-color: rgb(26 86 219 / var(--tw-bg-opacity)); } .even\:bg-green-700:nth-child(even) { --tw-bg-opacity: 1; - background-color: rgb(21 128 61 / var(--tw-bg-opacity)); + background-color: rgb(4 108 78 / var(--tw-bg-opacity)); } .even\:bg-red-700:nth-child(even) { --tw-bg-opacity: 1; - background-color: rgb(185 28 28 / var(--tw-bg-opacity)); + background-color: rgb(200 30 30 / var(--tw-bg-opacity)); } .even\:bg-yellow-700:nth-child(even) { --tw-bg-opacity: 1; - background-color: rgb(161 98 7 / var(--tw-bg-opacity)); + background-color: rgb(142 75 16 / var(--tw-bg-opacity)); } .even\:bg-purple-700:nth-child(even) { --tw-bg-opacity: 1; - background-color: rgb(126 34 206 / var(--tw-bg-opacity)); + background-color: rgb(108 43 217 / var(--tw-bg-opacity)); } .focus-within\:z-10:focus-within { z-index: 10; } +.focus-within\:border-primary-500:focus-within { + --tw-border-opacity: 1; + border-color: rgb(254 121 93 / var(--tw-border-opacity)); +} + .focus-within\:bg-gray-900:focus-within { --tw-bg-opacity: 1; background-color: rgb(17 24 39 / var(--tw-bg-opacity)); } +.focus-within\:text-primary-700:focus-within { + --tw-text-opacity: 1; + color: rgb(235 79 39 / var(--tw-text-opacity)); +} + .focus-within\:text-white:focus-within { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); @@ -5251,7 +5889,7 @@ svg.apply-fill path { .focus-within\:ring-blue-300:focus-within { --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity)); } .focus-within\:ring-gray-300:focus-within { @@ -5261,22 +5899,27 @@ svg.apply-fill path { .focus-within\:ring-green-300:focus-within { --tw-ring-opacity: 1; - --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(132 225 188 / var(--tw-ring-opacity)); +} + +.focus-within\:ring-primary-300:focus-within { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(255 213 204 / var(--tw-ring-opacity)); } .focus-within\:ring-purple-300:focus-within { --tw-ring-opacity: 1; - --tw-ring-color: rgb(216 180 254 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(202 191 253 / var(--tw-ring-opacity)); } .focus-within\:ring-red-300:focus-within { --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(248 180 180 / var(--tw-ring-opacity)); } .focus-within\:ring-yellow-300:focus-within { --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 224 71 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(250 202 21 / var(--tw-ring-opacity)); } .hover\:border-gray-300:hover { @@ -5286,7 +5929,7 @@ svg.apply-fill path { .hover\:bg-indigo-200:hover { --tw-bg-opacity: 1; - background-color: rgb(199 210 254 / var(--tw-bg-opacity)); + background-color: rgb(205 219 254 / var(--tw-bg-opacity)); } .hover\:bg-gray-100:hover { @@ -5294,9 +5937,14 @@ svg.apply-fill path { background-color: rgb(243 244 246 / var(--tw-bg-opacity)); } +.hover\:bg-primary-200:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 228 222 / var(--tw-bg-opacity)); +} + .hover\:bg-blue-200:hover { --tw-bg-opacity: 1; - background-color: rgb(191 219 254 / var(--tw-bg-opacity)); + background-color: rgb(195 221 253 / var(--tw-bg-opacity)); } .hover\:bg-gray-200:hover { @@ -5306,27 +5954,27 @@ svg.apply-fill path { .hover\:bg-red-200:hover { --tw-bg-opacity: 1; - background-color: rgb(254 202 202 / var(--tw-bg-opacity)); + background-color: rgb(251 213 213 / var(--tw-bg-opacity)); } .hover\:bg-green-200:hover { --tw-bg-opacity: 1; - background-color: rgb(187 247 208 / var(--tw-bg-opacity)); + background-color: rgb(188 240 218 / var(--tw-bg-opacity)); } .hover\:bg-yellow-200:hover { --tw-bg-opacity: 1; - background-color: rgb(254 240 138 / var(--tw-bg-opacity)); + background-color: rgb(252 233 106 / var(--tw-bg-opacity)); } .hover\:bg-purple-200:hover { --tw-bg-opacity: 1; - background-color: rgb(233 213 255 / var(--tw-bg-opacity)); + background-color: rgb(220 215 254 / var(--tw-bg-opacity)); } .hover\:bg-pink-200:hover { --tw-bg-opacity: 1; - background-color: rgb(251 207 232 / var(--tw-bg-opacity)); + background-color: rgb(250 209 232 / var(--tw-bg-opacity)); } .hover\:bg-gray-600:hover { @@ -5341,7 +5989,7 @@ svg.apply-fill path { .hover\:bg-blue-800:hover { --tw-bg-opacity: 1; - background-color: rgb(30 64 175 / var(--tw-bg-opacity)); + background-color: rgb(30 66 159 / var(--tw-bg-opacity)); } .hover\:bg-gray-900:hover { @@ -5351,22 +5999,32 @@ svg.apply-fill path { .hover\:bg-green-800:hover { --tw-bg-opacity: 1; - background-color: rgb(22 101 52 / var(--tw-bg-opacity)); + background-color: rgb(3 84 63 / var(--tw-bg-opacity)); +} + +.hover\:bg-primary-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(204 69 34 / var(--tw-bg-opacity)); } .hover\:bg-purple-800:hover { --tw-bg-opacity: 1; - background-color: rgb(107 33 168 / var(--tw-bg-opacity)); + background-color: rgb(85 33 181 / var(--tw-bg-opacity)); } .hover\:bg-red-800:hover { --tw-bg-opacity: 1; - background-color: rgb(153 27 27 / var(--tw-bg-opacity)); + background-color: rgb(155 28 28 / var(--tw-bg-opacity)); } .hover\:bg-yellow-500:hover { --tw-bg-opacity: 1; - background-color: rgb(234 179 8 / var(--tw-bg-opacity)); + background-color: rgb(194 120 3 / var(--tw-bg-opacity)); +} + +.hover\:bg-primary-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(235 79 39 / var(--tw-bg-opacity)); } .hover\:bg-transparent:hover { @@ -5378,34 +6036,39 @@ svg.apply-fill path { background-color: rgb(209 213 219 / var(--tw-bg-opacity)); } +.hover\:bg-primary-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 241 238 / var(--tw-bg-opacity)); +} + .hover\:bg-blue-100:hover { --tw-bg-opacity: 1; - background-color: rgb(219 234 254 / var(--tw-bg-opacity)); + background-color: rgb(225 239 254 / var(--tw-bg-opacity)); } .hover\:bg-blue-400:hover { --tw-bg-opacity: 1; - background-color: rgb(96 165 250 / var(--tw-bg-opacity)); + background-color: rgb(118 169 250 / var(--tw-bg-opacity)); } .hover\:bg-green-400:hover { --tw-bg-opacity: 1; - background-color: rgb(74 222 128 / var(--tw-bg-opacity)); + background-color: rgb(49 196 141 / var(--tw-bg-opacity)); } .hover\:bg-red-400:hover { --tw-bg-opacity: 1; - background-color: rgb(248 113 113 / var(--tw-bg-opacity)); + background-color: rgb(249 128 128 / var(--tw-bg-opacity)); } .hover\:bg-yellow-400:hover { --tw-bg-opacity: 1; - background-color: rgb(250 204 21 / var(--tw-bg-opacity)); + background-color: rgb(227 160 8 / var(--tw-bg-opacity)); } .hover\:bg-purple-400:hover { --tw-bg-opacity: 1; - background-color: rgb(192 132 252 / var(--tw-bg-opacity)); + background-color: rgb(172 148 250 / var(--tw-bg-opacity)); } .hover\:bg-gradient-to-br:hover { @@ -5422,12 +6085,17 @@ svg.apply-fill path { .hover\:text-blue-800:hover { --tw-text-opacity: 1; - color: rgb(30 64 175 / var(--tw-text-opacity)); + color: rgb(30 66 159 / var(--tw-text-opacity)); +} + +.hover\:text-primary-900:hover { + --tw-text-opacity: 1; + color: rgb(165 55 27 / var(--tw-text-opacity)); } .hover\:text-blue-900:hover { --tw-text-opacity: 1; - color: rgb(30 58 138 / var(--tw-text-opacity)); + color: rgb(35 56 118 / var(--tw-text-opacity)); } .hover\:text-gray-400:hover { @@ -5437,32 +6105,32 @@ svg.apply-fill path { .hover\:text-red-900:hover { --tw-text-opacity: 1; - color: rgb(127 29 29 / var(--tw-text-opacity)); + color: rgb(119 29 29 / var(--tw-text-opacity)); } .hover\:text-green-900:hover { --tw-text-opacity: 1; - color: rgb(20 83 45 / var(--tw-text-opacity)); + color: rgb(1 71 55 / var(--tw-text-opacity)); } .hover\:text-yellow-900:hover { --tw-text-opacity: 1; - color: rgb(113 63 18 / var(--tw-text-opacity)); + color: rgb(99 49 18 / var(--tw-text-opacity)); } .hover\:text-indigo-900:hover { --tw-text-opacity: 1; - color: rgb(49 46 129 / var(--tw-text-opacity)); + color: rgb(54 47 120 / var(--tw-text-opacity)); } .hover\:text-purple-900:hover { --tw-text-opacity: 1; - color: rgb(88 28 135 / var(--tw-text-opacity)); + color: rgb(74 29 150 / var(--tw-text-opacity)); } .hover\:text-pink-900:hover { --tw-text-opacity: 1; - color: rgb(131 24 67 / var(--tw-text-opacity)); + color: rgb(117 26 61 / var(--tw-text-opacity)); } .hover\:text-gray-900:hover { @@ -5470,6 +6138,11 @@ svg.apply-fill path { color: rgb(17 24 39 / var(--tw-text-opacity)); } +.hover\:text-primary-700:hover { + --tw-text-opacity: 1; + color: rgb(235 79 39 / var(--tw-text-opacity)); +} + .hover\:text-white:hover { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); @@ -5489,9 +6162,14 @@ svg.apply-fill path { color: rgb(0 0 0 / var(--tw-text-opacity)); } +.hover\:text-primary-600:hover { + --tw-text-opacity: 1; + color: rgb(239 86 47 / var(--tw-text-opacity)); +} + .hover\:text-blue-700:hover { --tw-text-opacity: 1; - color: rgb(29 78 216 / var(--tw-text-opacity)); + color: rgb(26 86 219 / var(--tw-text-opacity)); } .hover\:text-gray-700:hover { @@ -5513,27 +6191,37 @@ svg.apply-fill path { .focus\:border-blue-500:focus { --tw-border-opacity: 1; - border-color: rgb(59 130 246 / var(--tw-border-opacity)); + border-color: rgb(63 131 248 / var(--tw-border-opacity)); +} + +.focus\:border-primary-600:focus { + --tw-border-opacity: 1; + border-color: rgb(239 86 47 / var(--tw-border-opacity)); } .focus\:border-green-600:focus { --tw-border-opacity: 1; - border-color: rgb(22 163 74 / var(--tw-border-opacity)); + border-color: rgb(5 122 85 / var(--tw-border-opacity)); } .focus\:border-red-600:focus { --tw-border-opacity: 1; - border-color: rgb(220 38 38 / var(--tw-border-opacity)); + border-color: rgb(224 36 36 / var(--tw-border-opacity)); +} + +.focus\:border-primary-500:focus { + --tw-border-opacity: 1; + border-color: rgb(254 121 93 / var(--tw-border-opacity)); } .focus\:border-green-500:focus { --tw-border-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-border-opacity)); + border-color: rgb(14 159 110 / var(--tw-border-opacity)); } .focus\:border-red-500:focus { --tw-border-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-border-opacity)); + border-color: rgb(240 82 82 / var(--tw-border-opacity)); } .focus\:border-gray-200:focus { @@ -5541,6 +6229,11 @@ svg.apply-fill path { border-color: rgb(229 231 235 / var(--tw-border-opacity)); } +.focus\:text-primary-700:focus { + --tw-text-opacity: 1; + color: rgb(235 79 39 / var(--tw-text-opacity)); +} + .focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; @@ -5577,12 +6270,12 @@ svg.apply-fill path { .focus\:ring-blue-300:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity)); } .focus\:ring-green-300:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(132 225 188 / var(--tw-ring-opacity)); } .focus\:ring-cyan-300:focus { @@ -5592,7 +6285,7 @@ svg.apply-fill path { .focus\:ring-teal-300:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(126 220 226 / var(--tw-ring-opacity)); } .focus\:ring-lime-300:focus { @@ -5602,32 +6295,32 @@ svg.apply-fill path { .focus\:ring-red-300:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(248 180 180 / var(--tw-ring-opacity)); } .focus\:ring-pink-300:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 168 212 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(248 180 217 / var(--tw-ring-opacity)); } .focus\:ring-purple-300:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(216 180 254 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(202 191 253 / var(--tw-ring-opacity)); } .focus\:ring-green-200:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(188 240 218 / var(--tw-ring-opacity)); } .focus\:ring-purple-200:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(220 215 254 / var(--tw-ring-opacity)); } .focus\:ring-pink-200:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(251 207 232 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(250 209 232 / var(--tw-ring-opacity)); } .focus\:ring-lime-200:focus { @@ -5637,22 +6330,27 @@ svg.apply-fill path { .focus\:ring-red-100:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(253 232 232 / var(--tw-ring-opacity)); } .focus\:ring-blue-500:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)); +} + +.focus\:ring-primary-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(254 121 93 / var(--tw-ring-opacity)); } .focus\:ring-green-500:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity)); } .focus\:ring-red-500:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity)); } .focus\:ring-gray-400:focus { @@ -5662,22 +6360,32 @@ svg.apply-fill path { .focus\:ring-purple-500:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(144 97 249 / var(--tw-ring-opacity)); } .focus\:ring-teal-500:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(6 148 162 / var(--tw-ring-opacity)); } .focus\:ring-yellow-500:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(194 120 3 / var(--tw-ring-opacity)); } .focus\:ring-orange-500:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(255 90 31 / var(--tw-ring-opacity)); +} + +.focus\:ring-primary-700:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(235 79 39 / var(--tw-ring-opacity)); +} + +.focus\:ring-primary-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(255 213 204 / var(--tw-ring-opacity)); } .focus\:\!ring-gray-300:focus { @@ -5687,37 +6395,42 @@ svg.apply-fill path { .focus\:ring-red-400:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity)); } .focus\:ring-yellow-400:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(250 204 21 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(227 160 8 / var(--tw-ring-opacity)); } .focus\:ring-green-400:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(74 222 128 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(49 196 141 / var(--tw-ring-opacity)); } .focus\:ring-indigo-400:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(129 140 248 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(141 162 251 / var(--tw-ring-opacity)); } .focus\:ring-purple-400:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(192 132 252 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(172 148 250 / var(--tw-ring-opacity)); } .focus\:ring-pink-400:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(244 114 182 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(241 126 184 / var(--tw-ring-opacity)); } .focus\:ring-blue-400:focus { --tw-ring-opacity: 1; - --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(118 169 250 / var(--tw-ring-opacity)); +} + +.focus\:ring-primary-400:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(255 188 173 / var(--tw-ring-opacity)); } .focus-visible\:outline-none:focus-visible { @@ -5760,6 +6473,11 @@ svg.apply-fill path { --tw-bg-opacity: 0 !important; } +.group:hover .group-hover\:text-primary-600 { + --tw-text-opacity: 1; + color: rgb(239 86 47 / var(--tw-text-opacity)); +} + .group:hover .group-hover\:\!text-inherit { color: inherit !important; } @@ -5780,39 +6498,44 @@ svg.apply-fill path { --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); } +.peer:checked ~ .peer-checked\:bg-primary-600 { + --tw-bg-opacity: 1; + background-color: rgb(239 86 47 / var(--tw-bg-opacity)); +} + .peer:checked ~ .peer-checked\:bg-red-600 { --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity)); + background-color: rgb(224 36 36 / var(--tw-bg-opacity)); } .peer:checked ~ .peer-checked\:bg-green-600 { --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity)); + background-color: rgb(5 122 85 / var(--tw-bg-opacity)); } .peer:checked ~ .peer-checked\:bg-purple-600 { --tw-bg-opacity: 1; - background-color: rgb(147 51 234 / var(--tw-bg-opacity)); + background-color: rgb(126 58 242 / var(--tw-bg-opacity)); } .peer:checked ~ .peer-checked\:bg-yellow-400 { --tw-bg-opacity: 1; - background-color: rgb(250 204 21 / var(--tw-bg-opacity)); + background-color: rgb(227 160 8 / var(--tw-bg-opacity)); } .peer:checked ~ .peer-checked\:bg-teal-600 { --tw-bg-opacity: 1; - background-color: rgb(13 148 136 / var(--tw-bg-opacity)); + background-color: rgb(4 116 129 / var(--tw-bg-opacity)); } .peer:checked ~ .peer-checked\:bg-orange-500 { --tw-bg-opacity: 1; - background-color: rgb(249 115 22 / var(--tw-bg-opacity)); + background-color: rgb(255 90 31 / var(--tw-bg-opacity)); } .peer:checked ~ .peer-checked\:bg-blue-600 { --tw-bg-opacity: 1; - background-color: rgb(37 99 235 / var(--tw-bg-opacity)); + background-color: rgb(28 100 242 / var(--tw-bg-opacity)); } .peer:checked ~ .peer-checked\:after\:translate-x-full::after { @@ -5872,45 +6595,55 @@ svg.apply-fill path { padding-right: 0.5rem; } +.peer:focus ~ .peer-focus\:text-primary-600 { + --tw-text-opacity: 1; + color: rgb(239 86 47 / var(--tw-text-opacity)); +} + .peer:focus ~ .peer-focus\:ring-4 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } +.peer:focus ~ .peer-focus\:ring-primary-300 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(255 213 204 / var(--tw-ring-opacity)); +} + .peer:focus ~ .peer-focus\:ring-red-300 { --tw-ring-opacity: 1; - --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(248 180 180 / var(--tw-ring-opacity)); } .peer:focus ~ .peer-focus\:ring-green-300 { --tw-ring-opacity: 1; - --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(132 225 188 / var(--tw-ring-opacity)); } .peer:focus ~ .peer-focus\:ring-purple-300 { --tw-ring-opacity: 1; - --tw-ring-color: rgb(216 180 254 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(202 191 253 / var(--tw-ring-opacity)); } .peer:focus ~ .peer-focus\:ring-yellow-300 { --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 224 71 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(250 202 21 / var(--tw-ring-opacity)); } .peer:focus ~ .peer-focus\:ring-teal-300 { --tw-ring-opacity: 1; - --tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(126 220 226 / var(--tw-ring-opacity)); } .peer:focus ~ .peer-focus\:ring-orange-300 { --tw-ring-opacity: 1; - --tw-ring-color: rgb(253 186 116 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(253 186 140 / var(--tw-ring-opacity)); } .peer:focus ~ .peer-focus\:ring-blue-300 { --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity)); } [dir="rtl"] .rtl\:origin-right { @@ -5955,1188 +6688,1366 @@ svg.apply-fill path { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } -@media (prefers-color-scheme: dark) { - .dark\:block { - display: block; - } - - .dark\:hidden { - display: none; - } - - .dark\:divide-gray-600 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-divide-opacity)); - } - - .dark\:divide-gray-700 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-divide-opacity)); - } - - .dark\:divide-gray-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-divide-opacity)); - } - - .dark\:divide-red-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(153 27 27 / var(--tw-divide-opacity)); - } - - .dark\:divide-yellow-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(133 77 14 / var(--tw-divide-opacity)); - } - - .dark\:divide-green-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(22 101 52 / var(--tw-divide-opacity)); - } - - .dark\:divide-indigo-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(55 48 163 / var(--tw-divide-opacity)); - } - - .dark\:divide-purple-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(107 33 168 / var(--tw-divide-opacity)); - } - - .dark\:divide-pink-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(157 23 77 / var(--tw-divide-opacity)); - } - - .dark\:divide-blue-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(30 64 175 / var(--tw-divide-opacity)); - } - - .dark\:divide-orange-800 > :not([hidden]) ~ :not([hidden]) { - --tw-divide-opacity: 1; - border-color: rgb(154 52 18 / var(--tw-divide-opacity)); - } - - .dark\:border-gray-700 { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity)); - } - - .dark\:border-gray-800 { - --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity)); - } - - .dark\:border-blue-400 { - --tw-border-opacity: 1; - border-color: rgb(96 165 250 / var(--tw-border-opacity)); - } - - .dark\:border-gray-500 { - --tw-border-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-border-opacity)); - } - - .dark\:border-red-400 { - --tw-border-opacity: 1; - border-color: rgb(248 113 113 / var(--tw-border-opacity)); - } - - .dark\:border-green-400 { - --tw-border-opacity: 1; - border-color: rgb(74 222 128 / var(--tw-border-opacity)); - } - - .dark\:border-yellow-300 { - --tw-border-opacity: 1; - border-color: rgb(253 224 71 / var(--tw-border-opacity)); - } - - .dark\:border-indigo-400 { - --tw-border-opacity: 1; - border-color: rgb(129 140 248 / var(--tw-border-opacity)); - } - - .dark\:border-purple-400 { - --tw-border-opacity: 1; - border-color: rgb(192 132 252 / var(--tw-border-opacity)); - } - - .dark\:border-pink-400 { - --tw-border-opacity: 1; - border-color: rgb(244 114 182 / var(--tw-border-opacity)); - } - - .dark\:border-gray-600 { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity)); - } - - .dark\:border-blue-500 { - --tw-border-opacity: 1; - border-color: rgb(59 130 246 / var(--tw-border-opacity)); - } - - .dark\:border-green-500 { - --tw-border-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-border-opacity)); - } - - .dark\:border-red-500 { - --tw-border-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-border-opacity)); - } - - .dark\:border-gray-900 { - --tw-border-opacity: 1; - border-color: rgb(17 24 39 / var(--tw-border-opacity)); - } - - .dark\:border-white { - --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); - } - - .dark\:\!border-gray-600 { - --tw-border-opacity: 1 !important; - border-color: rgb(75 85 99 / var(--tw-border-opacity)) !important; - } - - .dark\:border-red-800 { - --tw-border-opacity: 1; - border-color: rgb(153 27 27 / var(--tw-border-opacity)); - } - - .dark\:border-yellow-800 { - --tw-border-opacity: 1; - border-color: rgb(133 77 14 / var(--tw-border-opacity)); - } - - .dark\:border-green-800 { - --tw-border-opacity: 1; - border-color: rgb(22 101 52 / var(--tw-border-opacity)); - } - - .dark\:border-indigo-800 { - --tw-border-opacity: 1; - border-color: rgb(55 48 163 / var(--tw-border-opacity)); - } - - .dark\:border-purple-800 { - --tw-border-opacity: 1; - border-color: rgb(107 33 168 / var(--tw-border-opacity)); - } - - .dark\:border-pink-800 { - --tw-border-opacity: 1; - border-color: rgb(157 23 77 / var(--tw-border-opacity)); - } - - .dark\:border-blue-800 { - --tw-border-opacity: 1; - border-color: rgb(30 64 175 / var(--tw-border-opacity)); - } - - .dark\:border-orange-800 { - --tw-border-opacity: 1; - border-color: rgb(154 52 18 / var(--tw-border-opacity)); - } - - .dark\:bg-gray-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); - } - - .dark\:bg-gray-600 { - --tw-bg-opacity: 1; - background-color: rgb(75 85 99 / var(--tw-bg-opacity)); - } - - .dark\:bg-blue-900 { - --tw-bg-opacity: 1; - background-color: rgb(30 58 138 / var(--tw-bg-opacity)); - } - - .dark\:bg-gray-700 { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); - } - - .dark\:bg-red-900 { - --tw-bg-opacity: 1; - background-color: rgb(127 29 29 / var(--tw-bg-opacity)); - } - - .dark\:bg-green-900 { - --tw-bg-opacity: 1; - background-color: rgb(20 83 45 / var(--tw-bg-opacity)); - } - - .dark\:bg-yellow-900 { - --tw-bg-opacity: 1; - background-color: rgb(113 63 18 / var(--tw-bg-opacity)); - } - - .dark\:bg-indigo-900 { - --tw-bg-opacity: 1; - background-color: rgb(49 46 129 / var(--tw-bg-opacity)); - } - - .dark\:bg-purple-900 { - --tw-bg-opacity: 1; - background-color: rgb(88 28 135 / var(--tw-bg-opacity)); - } - - .dark\:bg-pink-900 { - --tw-bg-opacity: 1; - background-color: rgb(131 24 67 / var(--tw-bg-opacity)); - } - - .dark\:bg-gray-300 { - --tw-bg-opacity: 1; - background-color: rgb(209 213 219 / var(--tw-bg-opacity)); - } - - .dark\:bg-blue-600 { - --tw-bg-opacity: 1; - background-color: rgb(37 99 235 / var(--tw-bg-opacity)); - } - - .dark\:bg-green-600 { - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity)); - } - - .dark\:bg-purple-600 { - --tw-bg-opacity: 1; - background-color: rgb(147 51 234 / var(--tw-bg-opacity)); - } - - .dark\:bg-red-600 { - --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity)); - } - - .dark\:bg-blue-500 { - --tw-bg-opacity: 1; - background-color: rgb(59 130 246 / var(--tw-bg-opacity)); - } - - .dark\:bg-green-500 { - --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity)); - } - - .dark\:bg-gray-500 { - --tw-bg-opacity: 1; - background-color: rgb(107 114 128 / var(--tw-bg-opacity)); - } - - .dark\:bg-purple-500 { - --tw-bg-opacity: 1; - background-color: rgb(168 85 247 / var(--tw-bg-opacity)); - } - - .dark\:bg-red-500 { - --tw-bg-opacity: 1; - background-color: rgb(239 68 68 / var(--tw-bg-opacity)); - } - - .dark\:bg-yellow-400 { - --tw-bg-opacity: 1; - background-color: rgb(250 204 21 / var(--tw-bg-opacity)); - } - - .dark\:bg-transparent { - background-color: transparent; - } - - .dark\:bg-gray-900 { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); - } - - .dark\:bg-gray-800\/30 { - background-color: rgb(31 41 55 / 0.3); - } - - .dark\:bg-inherit { - background-color: inherit; - } - - .dark\:bg-indigo-500 { - --tw-bg-opacity: 1; - background-color: rgb(99 102 241 / var(--tw-bg-opacity)); - } - - .dark\:bg-yellow-600 { - --tw-bg-opacity: 1; - background-color: rgb(202 138 4 / var(--tw-bg-opacity)); - } - - .dark\:bg-gray-200 { - --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity)); - } - - .dark\:bg-green-400 { - --tw-bg-opacity: 1; - background-color: rgb(74 222 128 / var(--tw-bg-opacity)); - } - - .dark\:bg-indigo-400 { - --tw-bg-opacity: 1; - background-color: rgb(129 140 248 / var(--tw-bg-opacity)); - } - - .dark\:bg-purple-400 { - --tw-bg-opacity: 1; - background-color: rgb(192 132 252 / var(--tw-bg-opacity)); - } - - .dark\:bg-pink-400 { - --tw-bg-opacity: 1; - background-color: rgb(244 114 182 / var(--tw-bg-opacity)); - } - - .dark\:bg-blue-400 { - --tw-bg-opacity: 1; - background-color: rgb(96 165 250 / var(--tw-bg-opacity)); - } - - .dark\:bg-red-800 { - --tw-bg-opacity: 1; - background-color: rgb(153 27 27 / var(--tw-bg-opacity)); - } - - .dark\:bg-yellow-800 { - --tw-bg-opacity: 1; - background-color: rgb(133 77 14 / var(--tw-bg-opacity)); - } - - .dark\:bg-green-800 { - --tw-bg-opacity: 1; - background-color: rgb(22 101 52 / var(--tw-bg-opacity)); - } - - .dark\:bg-blue-800 { - --tw-bg-opacity: 1; - background-color: rgb(30 64 175 / var(--tw-bg-opacity)); - } - - .dark\:bg-indigo-800 { - --tw-bg-opacity: 1; - background-color: rgb(55 48 163 / var(--tw-bg-opacity)); - } - - .dark\:bg-purple-800 { - --tw-bg-opacity: 1; - background-color: rgb(107 33 168 / var(--tw-bg-opacity)); - } - - .dark\:bg-orange-700 { - --tw-bg-opacity: 1; - background-color: rgb(194 65 12 / var(--tw-bg-opacity)); - } - - .dark\:bg-orange-800 { - --tw-bg-opacity: 1; - background-color: rgb(154 52 18 / var(--tw-bg-opacity)); - } - - .dark\:bg-opacity-80 { - --tw-bg-opacity: 0.8; - } - - .dark\:fill-gray-300 { - fill: #d1d5db; - } - - .dark\:text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - } - - .dark\:text-gray-400 { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); - } - - .dark\:text-gray-300 { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); - } - - .dark\:text-blue-300 { - --tw-text-opacity: 1; - color: rgb(147 197 253 / var(--tw-text-opacity)); - } - - .dark\:text-red-300 { - --tw-text-opacity: 1; - color: rgb(252 165 165 / var(--tw-text-opacity)); - } - - .dark\:text-green-300 { - --tw-text-opacity: 1; - color: rgb(134 239 172 / var(--tw-text-opacity)); - } - - .dark\:text-yellow-300 { - --tw-text-opacity: 1; - color: rgb(253 224 71 / var(--tw-text-opacity)); - } - - .dark\:text-indigo-300 { - --tw-text-opacity: 1; - color: rgb(165 180 252 / var(--tw-text-opacity)); - } - - .dark\:text-purple-300 { - --tw-text-opacity: 1; - color: rgb(216 180 254 / var(--tw-text-opacity)); - } - - .dark\:text-pink-300 { - --tw-text-opacity: 1; - color: rgb(249 168 212 / var(--tw-text-opacity)); - } - - .dark\:text-blue-400 { - --tw-text-opacity: 1; - color: rgb(96 165 250 / var(--tw-text-opacity)); - } - - .dark\:text-red-400 { - --tw-text-opacity: 1; - color: rgb(248 113 113 / var(--tw-text-opacity)); - } - - .dark\:text-green-400 { - --tw-text-opacity: 1; - color: rgb(74 222 128 / var(--tw-text-opacity)); - } - - .dark\:text-indigo-400 { - --tw-text-opacity: 1; - color: rgb(129 140 248 / var(--tw-text-opacity)); - } - - .dark\:text-purple-400 { - --tw-text-opacity: 1; - color: rgb(192 132 252 / var(--tw-text-opacity)); - } - - .dark\:text-pink-400 { - --tw-text-opacity: 1; - color: rgb(244 114 182 / var(--tw-text-opacity)); - } - - .dark\:text-gray-900 { - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity)); - } - - .dark\:text-blue-500 { - --tw-text-opacity: 1; - color: rgb(59 130 246 / var(--tw-text-opacity)); - } - - .dark\:text-green-500 { - --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity)); - } - - .dark\:text-red-500 { - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity)); - } - - .dark\:\!text-white { - --tw-text-opacity: 1 !important; - color: rgb(255 255 255 / var(--tw-text-opacity)) !important; - } - - .dark\:text-gray-500 { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); - } - - .dark\:text-gray-100 { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity)); - } - - .dark\:text-gray-600 { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity)); - } - - .dark\:text-gray-700 { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity)); - } - - .dark\:text-blue-100 { - --tw-text-opacity: 1; - color: rgb(219 234 254 / var(--tw-text-opacity)); - } - - .dark\:text-green-100 { - --tw-text-opacity: 1; - color: rgb(220 252 231 / var(--tw-text-opacity)); - } - - .dark\:text-red-100 { - --tw-text-opacity: 1; - color: rgb(254 226 226 / var(--tw-text-opacity)); - } - - .dark\:text-yellow-100 { - --tw-text-opacity: 1; - color: rgb(254 249 195 / var(--tw-text-opacity)); - } - - .dark\:text-purple-100 { - --tw-text-opacity: 1; - color: rgb(243 232 255 / var(--tw-text-opacity)); - } - - .dark\:text-indigo-100 { - --tw-text-opacity: 1; - color: rgb(224 231 255 / var(--tw-text-opacity)); - } - - .dark\:text-pink-100 { - --tw-text-opacity: 1; - color: rgb(252 231 243 / var(--tw-text-opacity)); - } - - .dark\:text-gray-200 { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); - } - - .dark\:text-red-200 { - --tw-text-opacity: 1; - color: rgb(254 202 202 / var(--tw-text-opacity)); - } - - .dark\:text-yellow-200 { - --tw-text-opacity: 1; - color: rgb(254 240 138 / var(--tw-text-opacity)); - } - - .dark\:text-green-200 { - --tw-text-opacity: 1; - color: rgb(187 247 208 / var(--tw-text-opacity)); - } - - .dark\:text-blue-200 { - --tw-text-opacity: 1; - color: rgb(191 219 254 / var(--tw-text-opacity)); - } - - .dark\:text-indigo-200 { - --tw-text-opacity: 1; - color: rgb(199 210 254 / var(--tw-text-opacity)); - } - - .dark\:text-purple-200 { - --tw-text-opacity: 1; - color: rgb(233 213 255 / var(--tw-text-opacity)); - } - - .dark\:text-orange-200 { - --tw-text-opacity: 1; - color: rgb(254 215 170 / var(--tw-text-opacity)); - } - - .dark\:text-orange-400 { - --tw-text-opacity: 1; - color: rgb(251 146 60 / var(--tw-text-opacity)); - } - - .dark\:decoration-blue-600 { - text-decoration-color: #2563eb; - } - - .dark\:placeholder-gray-400::placeholder { - --tw-placeholder-opacity: 1; - color: rgb(156 163 175 / var(--tw-placeholder-opacity)); - } - - .dark\:placeholder-green-500::placeholder { - --tw-placeholder-opacity: 1; - color: rgb(34 197 94 / var(--tw-placeholder-opacity)); - } - - .dark\:placeholder-red-500::placeholder { - --tw-placeholder-opacity: 1; - color: rgb(239 68 68 / var(--tw-placeholder-opacity)); - } - - .dark\:opacity-25 { - opacity: 0.25; - } - - .dark\:shadow-gray-800 { - --tw-shadow-color: #1f2937; - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-blue-800 { - --tw-shadow-color: #1e40af; - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-gray-900 { - --tw-shadow-color: #111827; - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-green-800 { - --tw-shadow-color: #166534; - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-gray-700 { - --tw-shadow-color: #374151; - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-purple-800 { - --tw-shadow-color: #6b21a8; - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-red-800 { - --tw-shadow-color: #991b1b; - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-yellow-700 { - --tw-shadow-color: #a16207; - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-gray-800\/80 { - --tw-shadow-color: rgb(31 41 55 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-blue-800\/80 { - --tw-shadow-color: rgb(30 64 175 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-green-800\/80 { - --tw-shadow-color: rgb(22 101 52 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-purple-800\/80 { - --tw-shadow-color: rgb(107 33 168 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-red-800\/80 { - --tw-shadow-color: rgb(153 27 27 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-yellow-800\/80 { - --tw-shadow-color: rgb(133 77 14 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-cyan-800\/80 { - --tw-shadow-color: rgb(21 94 117 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-teal-800\/80 { - --tw-shadow-color: rgb(17 94 89 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-lime-800\/80 { - --tw-shadow-color: rgb(63 98 18 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:shadow-pink-800\/80 { - --tw-shadow-color: rgb(157 23 77 / 0.8); - --tw-shadow: var(--tw-shadow-colored); - } - - .dark\:ring-gray-500 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)); - } - - .dark\:ring-gray-900 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity)); - } - - .dark\:ring-offset-gray-800 { - --tw-ring-offset-color: #1f2937; - } - - .dark\:first-letter\:text-gray-100::first-letter { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity)); - } - - .dark\:before\:shadow-\[-10px_0_50px_65px_rgba\(16\2c 24\2c 39\2c 1\)\]::before { - content: var(--tw-content); - --tw-shadow: -10px 0 50px 65px rgba(16,24,39,1); - --tw-shadow-colored: -10px 0 50px 65px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - } - - .dark\:after\:shadow-\[10px_0_50px_65px_rgba\(16\2c 24\2c 39\2c 1\)\]::after { - content: var(--tw-content); - --tw-shadow: 10px 0 50px 65px rgba(16,24,39,1); - --tw-shadow-colored: 10px 0 50px 65px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - } - - .odd\:dark\:bg-gray-800:nth-child(odd) { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); - } - - .odd\:dark\:bg-blue-800:nth-child(odd) { - --tw-bg-opacity: 1; - background-color: rgb(30 64 175 / var(--tw-bg-opacity)); - } - - .odd\:dark\:bg-green-800:nth-child(odd) { - --tw-bg-opacity: 1; - background-color: rgb(22 101 52 / var(--tw-bg-opacity)); - } - - .odd\:dark\:bg-red-800:nth-child(odd) { - --tw-bg-opacity: 1; - background-color: rgb(153 27 27 / var(--tw-bg-opacity)); - } - - .odd\:dark\:bg-yellow-800:nth-child(odd) { - --tw-bg-opacity: 1; - background-color: rgb(133 77 14 / var(--tw-bg-opacity)); - } - - .odd\:dark\:bg-purple-800:nth-child(odd) { - --tw-bg-opacity: 1; - background-color: rgb(107 33 168 / var(--tw-bg-opacity)); - } - - .even\:dark\:bg-gray-700:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); - } - - .even\:dark\:bg-blue-700:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(29 78 216 / var(--tw-bg-opacity)); - } - - .even\:dark\:bg-green-700:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(21 128 61 / var(--tw-bg-opacity)); - } - - .even\:dark\:bg-red-700:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(185 28 28 / var(--tw-bg-opacity)); - } - - .even\:dark\:bg-yellow-700:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(161 98 7 / var(--tw-bg-opacity)); - } - - .even\:dark\:bg-purple-700:nth-child(even) { - --tw-bg-opacity: 1; - background-color: rgb(126 34 206 / var(--tw-bg-opacity)); - } - - .dark\:focus-within\:text-white:focus-within { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - } - - .dark\:focus-within\:ring-gray-700:focus-within { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity)); - } - - .dark\:focus-within\:ring-blue-800:focus-within { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity)); - } - - .dark\:focus-within\:ring-green-800:focus-within { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 101 52 / var(--tw-ring-opacity)); - } - - .dark\:focus-within\:ring-purple-900:focus-within { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(88 28 135 / var(--tw-ring-opacity)); - } - - .dark\:focus-within\:ring-red-900:focus-within { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(127 29 29 / var(--tw-ring-opacity)); - } - - .dark\:focus-within\:ring-yellow-900:focus-within { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(113 63 18 / var(--tw-ring-opacity)); - } - - .dark\:focus-within\:ring-gray-800:focus-within { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity)); - } - - .dark\:hover\:border-gray-600:hover { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity)); - } - - .dark\:hover\:border-gray-500:hover { - --tw-border-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-border-opacity)); - } - - .hover\:dark\:bg-gray-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-gray-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-blue-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(30 64 175 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-red-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(153 27 27 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-green-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(22 101 52 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-yellow-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(133 77 14 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-indigo-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(55 48 163 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-purple-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(107 33 168 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-pink-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(157 23 77 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-gray-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-blue-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(29 78 216 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-green-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(21 128 61 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-purple-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(126 34 206 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-red-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(185 28 28 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-gray-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(75 85 99 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-blue-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(37 99 235 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-green-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-purple-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(168 85 247 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-red-600:hover { - --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity)); - } - - .dark\:hover\:bg-yellow-400:hover { - --tw-bg-opacity: 1; - background-color: rgb(250 204 21 / var(--tw-bg-opacity)); - } - - .dark\:hover\:text-blue-300:hover { - --tw-text-opacity: 1; - color: rgb(147 197 253 / var(--tw-text-opacity)); - } - - .dark\:hover\:text-gray-300:hover { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); - } - - .dark\:hover\:text-red-300:hover { - --tw-text-opacity: 1; - color: rgb(252 165 165 / var(--tw-text-opacity)); - } - - .dark\:hover\:text-green-300:hover { - --tw-text-opacity: 1; - color: rgb(134 239 172 / var(--tw-text-opacity)); - } - - .dark\:hover\:text-yellow-300:hover { - --tw-text-opacity: 1; - color: rgb(253 224 71 / var(--tw-text-opacity)); - } - - .dark\:hover\:text-indigo-300:hover { - --tw-text-opacity: 1; - color: rgb(165 180 252 / var(--tw-text-opacity)); - } - - .dark\:hover\:text-purple-300:hover { - --tw-text-opacity: 1; - color: rgb(216 180 254 / var(--tw-text-opacity)); - } - - .dark\:hover\:text-pink-300:hover { - --tw-text-opacity: 1; - color: rgb(249 168 212 / var(--tw-text-opacity)); - } - - .dark\:hover\:text-white:hover { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - } - - .dark\:focus\:border-blue-500:focus { - --tw-border-opacity: 1; - border-color: rgb(59 130 246 / var(--tw-border-opacity)); - } - - .dark\:focus\:border-green-500:focus { - --tw-border-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-border-opacity)); - } - - .dark\:focus\:border-red-500:focus { - --tw-border-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-border-opacity)); - } - - .dark\:focus\:text-white:focus { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - } - - .dark\:focus\:ring-gray-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-blue-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-green-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 101 52 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-cyan-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-teal-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(17 94 89 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-lime-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-red-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(153 27 27 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-pink-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(157 23 77 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-purple-800:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-teal-700:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(15 118 110 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-red-400:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-blue-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-green-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-red-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-red-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-green-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 163 74 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-purple-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 51 234 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-teal-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(13 148 136 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-yellow-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(202 138 4 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-orange-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(234 88 12 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-blue-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity)); - } - - .dark\:focus\:ring-gray-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)); - } - - .dark\:disabled\:text-gray-500:disabled { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); - } - - .group:hover .dark\:group-hover\:bg-gray-800\/60 { - background-color: rgb(31 41 55 / 0.6); - } - - .group:focus .dark\:group-focus\:ring-gray-800\/70 { - --tw-ring-color: rgb(31 41 55 / 0.7); - } - - .peer:focus ~ .dark\:peer-focus\:ring-red-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(153 27 27 / var(--tw-ring-opacity)); - } - - .peer:focus ~ .dark\:peer-focus\:ring-green-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(22 101 52 / var(--tw-ring-opacity)); - } - - .peer:focus ~ .dark\:peer-focus\:ring-purple-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity)); - } - - .peer:focus ~ .dark\:peer-focus\:ring-yellow-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(133 77 14 / var(--tw-ring-opacity)); - } - - .peer:focus ~ .dark\:peer-focus\:ring-teal-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(17 94 89 / var(--tw-ring-opacity)); - } - - .peer:focus ~ .dark\:peer-focus\:ring-orange-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(154 52 18 / var(--tw-ring-opacity)); - } - - .peer:focus ~ .dark\:peer-focus\:ring-blue-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(30 64 175 / var(--tw-ring-opacity)); - } +.dark .dark\:block { + display: block; +} + +.dark .dark\:hidden { + display: none; +} + +.dark .dark\:divide-gray-700 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(55 65 81 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-gray-600 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(75 85 99 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-gray-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(31 41 55 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-red-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(155 28 28 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-yellow-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(114 59 19 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-green-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(3 84 63 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-indigo-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(66 56 157 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-purple-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(85 33 181 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-pink-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(153 21 75 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-blue-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(30 66 159 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-primary-200 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(255 228 222 / var(--tw-divide-opacity)); +} + +.dark .dark\:divide-orange-800 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(138 44 13 / var(--tw-divide-opacity)); +} + +.dark .dark\:border-gray-700 { + --tw-border-opacity: 1; + border-color: rgb(55 65 81 / var(--tw-border-opacity)); +} + +.dark .dark\:border-gray-800 { + --tw-border-opacity: 1; + border-color: rgb(31 41 55 / var(--tw-border-opacity)); +} + +.dark .dark\:border-primary-400 { + --tw-border-opacity: 1; + border-color: rgb(255 188 173 / var(--tw-border-opacity)); +} + +.dark .dark\:border-blue-400 { + --tw-border-opacity: 1; + border-color: rgb(118 169 250 / var(--tw-border-opacity)); +} + +.dark .dark\:border-gray-500 { + --tw-border-opacity: 1; + border-color: rgb(107 114 128 / var(--tw-border-opacity)); +} + +.dark .dark\:border-red-400 { + --tw-border-opacity: 1; + border-color: rgb(249 128 128 / var(--tw-border-opacity)); +} + +.dark .dark\:border-green-400 { + --tw-border-opacity: 1; + border-color: rgb(49 196 141 / var(--tw-border-opacity)); +} + +.dark .dark\:border-yellow-300 { + --tw-border-opacity: 1; + border-color: rgb(250 202 21 / var(--tw-border-opacity)); +} + +.dark .dark\:border-indigo-400 { + --tw-border-opacity: 1; + border-color: rgb(141 162 251 / var(--tw-border-opacity)); +} + +.dark .dark\:border-purple-400 { + --tw-border-opacity: 1; + border-color: rgb(172 148 250 / var(--tw-border-opacity)); +} + +.dark .dark\:border-pink-400 { + --tw-border-opacity: 1; + border-color: rgb(241 126 184 / var(--tw-border-opacity)); +} + +.dark .dark\:border-gray-600 { + --tw-border-opacity: 1; + border-color: rgb(75 85 99 / var(--tw-border-opacity)); +} + +.dark .dark\:border-blue-500 { + --tw-border-opacity: 1; + border-color: rgb(63 131 248 / var(--tw-border-opacity)); +} + +.dark .dark\:border-green-500 { + --tw-border-opacity: 1; + border-color: rgb(14 159 110 / var(--tw-border-opacity)); +} + +.dark .dark\:border-primary-500 { + --tw-border-opacity: 1; + border-color: rgb(254 121 93 / var(--tw-border-opacity)); +} + +.dark .dark\:border-red-500 { + --tw-border-opacity: 1; + border-color: rgb(240 82 82 / var(--tw-border-opacity)); +} + +.dark .dark\:border-gray-900 { + --tw-border-opacity: 1; + border-color: rgb(17 24 39 / var(--tw-border-opacity)); +} + +.dark .dark\:border-white { + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity)); +} + +.dark .dark\:\!border-gray-600 { + --tw-border-opacity: 1 !important; + border-color: rgb(75 85 99 / var(--tw-border-opacity)) !important; +} + +.dark .dark\:border-red-800 { + --tw-border-opacity: 1; + border-color: rgb(155 28 28 / var(--tw-border-opacity)); +} + +.dark .dark\:border-yellow-800 { + --tw-border-opacity: 1; + border-color: rgb(114 59 19 / var(--tw-border-opacity)); +} + +.dark .dark\:border-green-800 { + --tw-border-opacity: 1; + border-color: rgb(3 84 63 / var(--tw-border-opacity)); +} + +.dark .dark\:border-indigo-800 { + --tw-border-opacity: 1; + border-color: rgb(66 56 157 / var(--tw-border-opacity)); +} + +.dark .dark\:border-purple-800 { + --tw-border-opacity: 1; + border-color: rgb(85 33 181 / var(--tw-border-opacity)); +} + +.dark .dark\:border-pink-800 { + --tw-border-opacity: 1; + border-color: rgb(153 21 75 / var(--tw-border-opacity)); +} + +.dark .dark\:border-blue-800 { + --tw-border-opacity: 1; + border-color: rgb(30 66 159 / var(--tw-border-opacity)); +} + +.dark .dark\:border-primary-200 { + --tw-border-opacity: 1; + border-color: rgb(255 228 222 / var(--tw-border-opacity)); +} + +.dark .dark\:border-orange-800 { + --tw-border-opacity: 1; + border-color: rgb(138 44 13 / var(--tw-border-opacity)); +} + +.dark .dark\:bg-gray-800 { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-600 { + --tw-bg-opacity: 1; + background-color: rgb(75 85 99 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-primary-900 { + --tw-bg-opacity: 1; + background-color: rgb(165 55 27 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-blue-900 { + --tw-bg-opacity: 1; + background-color: rgb(35 56 118 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-700 { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-red-900 { + --tw-bg-opacity: 1; + background-color: rgb(119 29 29 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-green-900 { + --tw-bg-opacity: 1; + background-color: rgb(1 71 55 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-yellow-900 { + --tw-bg-opacity: 1; + background-color: rgb(99 49 18 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-indigo-900 { + --tw-bg-opacity: 1; + background-color: rgb(54 47 120 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-purple-900 { + --tw-bg-opacity: 1; + background-color: rgb(74 29 150 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-pink-900 { + --tw-bg-opacity: 1; + background-color: rgb(117 26 61 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-300 { + --tw-bg-opacity: 1; + background-color: rgb(209 213 219 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-blue-600 { + --tw-bg-opacity: 1; + background-color: rgb(28 100 242 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-green-600 { + --tw-bg-opacity: 1; + background-color: rgb(5 122 85 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-primary-600 { + --tw-bg-opacity: 1; + background-color: rgb(239 86 47 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-purple-600 { + --tw-bg-opacity: 1; + background-color: rgb(126 58 242 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-red-600 { + --tw-bg-opacity: 1; + background-color: rgb(224 36 36 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-blue-500 { + --tw-bg-opacity: 1; + background-color: rgb(63 131 248 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-green-500 { + --tw-bg-opacity: 1; + background-color: rgb(14 159 110 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-500 { + --tw-bg-opacity: 1; + background-color: rgb(107 114 128 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-primary-500 { + --tw-bg-opacity: 1; + background-color: rgb(254 121 93 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-purple-500 { + --tw-bg-opacity: 1; + background-color: rgb(144 97 249 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-red-500 { + --tw-bg-opacity: 1; + background-color: rgb(240 82 82 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-yellow-400 { + --tw-bg-opacity: 1; + background-color: rgb(227 160 8 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-transparent { + background-color: transparent; +} + +.dark .dark\:bg-gray-900 { + --tw-bg-opacity: 1; + background-color: rgb(17 24 39 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-800\/30 { + background-color: rgb(31 41 55 / 0.3); +} + +.dark .dark\:bg-inherit { + background-color: inherit; +} + +.dark .dark\:bg-indigo-500 { + --tw-bg-opacity: 1; + background-color: rgb(104 117 245 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-primary-200 { + --tw-bg-opacity: 1; + background-color: rgb(255 228 222 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-yellow-600 { + --tw-bg-opacity: 1; + background-color: rgb(159 88 10 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-primary-400 { + --tw-bg-opacity: 1; + background-color: rgb(255 188 173 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-gray-200 { + --tw-bg-opacity: 1; + background-color: rgb(229 231 235 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-green-400 { + --tw-bg-opacity: 1; + background-color: rgb(49 196 141 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-indigo-400 { + --tw-bg-opacity: 1; + background-color: rgb(141 162 251 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-purple-400 { + --tw-bg-opacity: 1; + background-color: rgb(172 148 250 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-pink-400 { + --tw-bg-opacity: 1; + background-color: rgb(241 126 184 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-blue-400 { + --tw-bg-opacity: 1; + background-color: rgb(118 169 250 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-primary-800 { + --tw-bg-opacity: 1; + background-color: rgb(204 69 34 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-red-800 { + --tw-bg-opacity: 1; + background-color: rgb(155 28 28 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-yellow-800 { + --tw-bg-opacity: 1; + background-color: rgb(114 59 19 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-green-800 { + --tw-bg-opacity: 1; + background-color: rgb(3 84 63 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-blue-800 { + --tw-bg-opacity: 1; + background-color: rgb(30 66 159 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-indigo-800 { + --tw-bg-opacity: 1; + background-color: rgb(66 56 157 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-purple-800 { + --tw-bg-opacity: 1; + background-color: rgb(85 33 181 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-orange-700 { + --tw-bg-opacity: 1; + background-color: rgb(180 52 3 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-orange-800 { + --tw-bg-opacity: 1; + background-color: rgb(138 44 13 / var(--tw-bg-opacity)); +} + +.dark .dark\:bg-opacity-80 { + --tw-bg-opacity: 0.8; +} + +.dark .dark\:fill-gray-300 { + fill: #D1D5DB; +} + +.dark .dark\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.dark .dark\:text-gray-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.dark .dark\:text-gray-300 { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} + +.dark .dark\:text-primary-300 { + --tw-text-opacity: 1; + color: rgb(255 213 204 / var(--tw-text-opacity)); +} + +.dark .dark\:text-blue-300 { + --tw-text-opacity: 1; + color: rgb(164 202 254 / var(--tw-text-opacity)); +} + +.dark .dark\:text-red-300 { + --tw-text-opacity: 1; + color: rgb(248 180 180 / var(--tw-text-opacity)); +} + +.dark .dark\:text-green-300 { + --tw-text-opacity: 1; + color: rgb(132 225 188 / var(--tw-text-opacity)); +} + +.dark .dark\:text-yellow-300 { + --tw-text-opacity: 1; + color: rgb(250 202 21 / var(--tw-text-opacity)); +} + +.dark .dark\:text-indigo-300 { + --tw-text-opacity: 1; + color: rgb(180 198 252 / var(--tw-text-opacity)); +} + +.dark .dark\:text-purple-300 { + --tw-text-opacity: 1; + color: rgb(202 191 253 / var(--tw-text-opacity)); +} + +.dark .dark\:text-pink-300 { + --tw-text-opacity: 1; + color: rgb(248 180 217 / var(--tw-text-opacity)); +} + +.dark .dark\:text-primary-400 { + --tw-text-opacity: 1; + color: rgb(255 188 173 / var(--tw-text-opacity)); +} + +.dark .dark\:text-blue-400 { + --tw-text-opacity: 1; + color: rgb(118 169 250 / var(--tw-text-opacity)); +} + +.dark .dark\:text-red-400 { + --tw-text-opacity: 1; + color: rgb(249 128 128 / var(--tw-text-opacity)); +} + +.dark .dark\:text-green-400 { + --tw-text-opacity: 1; + color: rgb(49 196 141 / var(--tw-text-opacity)); +} + +.dark .dark\:text-indigo-400 { + --tw-text-opacity: 1; + color: rgb(141 162 251 / var(--tw-text-opacity)); +} + +.dark .dark\:text-purple-400 { + --tw-text-opacity: 1; + color: rgb(172 148 250 / var(--tw-text-opacity)); +} + +.dark .dark\:text-pink-400 { + --tw-text-opacity: 1; + color: rgb(241 126 184 / var(--tw-text-opacity)); +} + +.dark .dark\:text-primary-700 { + --tw-text-opacity: 1; + color: rgb(235 79 39 / var(--tw-text-opacity)); +} + +.dark .dark\:text-gray-900 { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); +} + +.dark .dark\:text-primary-500 { + --tw-text-opacity: 1; + color: rgb(254 121 93 / var(--tw-text-opacity)); +} + +.dark .dark\:text-blue-500 { + --tw-text-opacity: 1; + color: rgb(63 131 248 / var(--tw-text-opacity)); +} + +.dark .dark\:text-green-500 { + --tw-text-opacity: 1; + color: rgb(14 159 110 / var(--tw-text-opacity)); +} + +.dark .dark\:text-red-500 { + --tw-text-opacity: 1; + color: rgb(240 82 82 / var(--tw-text-opacity)); +} + +.dark .dark\:\!text-white { + --tw-text-opacity: 1 !important; + color: rgb(255 255 255 / var(--tw-text-opacity)) !important; +} + +.dark .dark\:text-gray-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.dark .dark\:text-primary-100 { + --tw-text-opacity: 1; + color: rgb(255 241 238 / var(--tw-text-opacity)); +} + +.dark .dark\:text-gray-100 { + --tw-text-opacity: 1; + color: rgb(243 244 246 / var(--tw-text-opacity)); +} + +.dark .dark\:text-primary-800 { + --tw-text-opacity: 1; + color: rgb(204 69 34 / var(--tw-text-opacity)); +} + +.dark .dark\:text-primary-900 { + --tw-text-opacity: 1; + color: rgb(165 55 27 / var(--tw-text-opacity)); +} + +.dark .dark\:text-gray-600 { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.dark .dark\:text-gray-700 { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} + +.dark .dark\:text-blue-100 { + --tw-text-opacity: 1; + color: rgb(225 239 254 / var(--tw-text-opacity)); +} + +.dark .dark\:text-green-100 { + --tw-text-opacity: 1; + color: rgb(222 247 236 / var(--tw-text-opacity)); +} + +.dark .dark\:text-red-100 { + --tw-text-opacity: 1; + color: rgb(253 232 232 / var(--tw-text-opacity)); +} + +.dark .dark\:text-yellow-100 { + --tw-text-opacity: 1; + color: rgb(253 246 178 / var(--tw-text-opacity)); +} + +.dark .dark\:text-purple-100 { + --tw-text-opacity: 1; + color: rgb(237 235 254 / var(--tw-text-opacity)); +} + +.dark .dark\:text-indigo-100 { + --tw-text-opacity: 1; + color: rgb(229 237 255 / var(--tw-text-opacity)); +} + +.dark .dark\:text-pink-100 { + --tw-text-opacity: 1; + color: rgb(252 232 243 / var(--tw-text-opacity)); +} + +.dark .dark\:text-primary-200 { + --tw-text-opacity: 1; + color: rgb(255 228 222 / var(--tw-text-opacity)); +} + +.dark .dark\:text-gray-200 { + --tw-text-opacity: 1; + color: rgb(229 231 235 / var(--tw-text-opacity)); +} + +.dark .dark\:text-red-200 { + --tw-text-opacity: 1; + color: rgb(251 213 213 / var(--tw-text-opacity)); +} + +.dark .dark\:text-yellow-200 { + --tw-text-opacity: 1; + color: rgb(252 233 106 / var(--tw-text-opacity)); +} + +.dark .dark\:text-green-200 { + --tw-text-opacity: 1; + color: rgb(188 240 218 / var(--tw-text-opacity)); +} + +.dark .dark\:text-blue-200 { + --tw-text-opacity: 1; + color: rgb(195 221 253 / var(--tw-text-opacity)); +} + +.dark .dark\:text-indigo-200 { + --tw-text-opacity: 1; + color: rgb(205 219 254 / var(--tw-text-opacity)); +} + +.dark .dark\:text-purple-200 { + --tw-text-opacity: 1; + color: rgb(220 215 254 / var(--tw-text-opacity)); +} + +.dark .dark\:text-orange-200 { + --tw-text-opacity: 1; + color: rgb(252 217 189 / var(--tw-text-opacity)); +} + +.dark .dark\:text-orange-400 { + --tw-text-opacity: 1; + color: rgb(255 138 76 / var(--tw-text-opacity)); +} + +.dark .dark\:decoration-blue-600 { + text-decoration-color: #1C64F2; +} + +.dark .dark\:placeholder-gray-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(156 163 175 / var(--tw-placeholder-opacity)); +} + +.dark .dark\:placeholder-green-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(14 159 110 / var(--tw-placeholder-opacity)); +} + +.dark .dark\:placeholder-red-500::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(240 82 82 / var(--tw-placeholder-opacity)); +} + +.dark .dark\:opacity-25 { + opacity: 0.25; +} + +.dark .dark\:shadow-gray-800 { + --tw-shadow-color: #1F2937; + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-blue-800 { + --tw-shadow-color: #1E429F; + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-gray-900 { + --tw-shadow-color: #111827; + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-green-800 { + --tw-shadow-color: #03543F; + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-gray-700 { + --tw-shadow-color: #374151; + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-primary-800 { + --tw-shadow-color: #CC4522; + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-purple-800 { + --tw-shadow-color: #5521B5; + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-red-800 { + --tw-shadow-color: #9B1C1C; + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-yellow-700 { + --tw-shadow-color: #8E4B10; + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-gray-800\/80 { + --tw-shadow-color: rgb(31 41 55 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-blue-800\/80 { + --tw-shadow-color: rgb(30 66 159 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-green-800\/80 { + --tw-shadow-color: rgb(3 84 63 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-primary-800\/80 { + --tw-shadow-color: rgb(204 69 34 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-purple-800\/80 { + --tw-shadow-color: rgb(85 33 181 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-red-800\/80 { + --tw-shadow-color: rgb(155 28 28 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-yellow-800\/80 { + --tw-shadow-color: rgb(114 59 19 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-cyan-800\/80 { + --tw-shadow-color: rgb(21 94 117 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-teal-800\/80 { + --tw-shadow-color: rgb(5 80 92 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-lime-800\/80 { + --tw-shadow-color: rgb(63 98 18 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:shadow-pink-800\/80 { + --tw-shadow-color: rgb(153 21 75 / 0.8); + --tw-shadow: var(--tw-shadow-colored); +} + +.dark .dark\:ring-gray-500 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)); +} + +.dark .dark\:ring-primary-500 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(254 121 93 / var(--tw-ring-opacity)); +} + +.dark .dark\:ring-gray-900 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity)); +} + +.dark .dark\:ring-offset-gray-800 { + --tw-ring-offset-color: #1F2937; +} + +.dark .dark\:first-letter\:text-gray-100::first-letter { + --tw-text-opacity: 1; + color: rgb(243 244 246 / var(--tw-text-opacity)); +} + +.dark .dark\:before\:shadow-\[-10px_0_50px_65px_rgba\(16\2c 24\2c 39\2c 1\)\]::before { + content: var(--tw-content); + --tw-shadow: -10px 0 50px 65px rgba(16,24,39,1); + --tw-shadow-colored: -10px 0 50px 65px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.dark .dark\:after\:shadow-\[10px_0_50px_65px_rgba\(16\2c 24\2c 39\2c 1\)\]::after { + content: var(--tw-content); + --tw-shadow: 10px 0 50px 65px rgba(16,24,39,1); + --tw-shadow-colored: 10px 0 50px 65px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.dark .odd\:dark\:bg-gray-800:nth-child(odd) { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.dark .odd\:dark\:bg-blue-800:nth-child(odd) { + --tw-bg-opacity: 1; + background-color: rgb(30 66 159 / var(--tw-bg-opacity)); +} + +.dark .odd\:dark\:bg-green-800:nth-child(odd) { + --tw-bg-opacity: 1; + background-color: rgb(3 84 63 / var(--tw-bg-opacity)); +} + +.dark .odd\:dark\:bg-red-800:nth-child(odd) { + --tw-bg-opacity: 1; + background-color: rgb(155 28 28 / var(--tw-bg-opacity)); +} + +.dark .odd\:dark\:bg-yellow-800:nth-child(odd) { + --tw-bg-opacity: 1; + background-color: rgb(114 59 19 / var(--tw-bg-opacity)); +} + +.dark .odd\:dark\:bg-purple-800:nth-child(odd) { + --tw-bg-opacity: 1; + background-color: rgb(85 33 181 / var(--tw-bg-opacity)); +} + +.dark .even\:dark\:bg-gray-700:nth-child(even) { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); +} + +.dark .even\:dark\:bg-blue-700:nth-child(even) { + --tw-bg-opacity: 1; + background-color: rgb(26 86 219 / var(--tw-bg-opacity)); +} + +.dark .even\:dark\:bg-green-700:nth-child(even) { + --tw-bg-opacity: 1; + background-color: rgb(4 108 78 / var(--tw-bg-opacity)); +} + +.dark .even\:dark\:bg-red-700:nth-child(even) { + --tw-bg-opacity: 1; + background-color: rgb(200 30 30 / var(--tw-bg-opacity)); +} + +.dark .even\:dark\:bg-yellow-700:nth-child(even) { + --tw-bg-opacity: 1; + background-color: rgb(142 75 16 / var(--tw-bg-opacity)); +} + +.dark .even\:dark\:bg-purple-700:nth-child(even) { + --tw-bg-opacity: 1; + background-color: rgb(108 43 217 / var(--tw-bg-opacity)); +} + +.dark .dark\:focus-within\:border-primary-500:focus-within { + --tw-border-opacity: 1; + border-color: rgb(254 121 93 / var(--tw-border-opacity)); +} + +.dark .dark\:focus-within\:text-white:focus-within { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.dark .dark\:focus-within\:ring-gray-700:focus-within { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus-within\:ring-blue-800:focus-within { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus-within\:ring-green-800:focus-within { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus-within\:ring-primary-800:focus-within { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(204 69 34 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus-within\:ring-purple-900:focus-within { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(74 29 150 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus-within\:ring-red-900:focus-within { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(119 29 29 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus-within\:ring-yellow-900:focus-within { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(99 49 18 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus-within\:ring-gray-800:focus-within { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity)); +} + +.dark .dark\:hover\:border-gray-600:hover { + --tw-border-opacity: 1; + border-color: rgb(75 85 99 / var(--tw-border-opacity)); +} + +.dark .dark\:hover\:border-gray-500:hover { + --tw-border-opacity: 1; + border-color: rgb(107 114 128 / var(--tw-border-opacity)); +} + +.dark .hover\:dark\:bg-gray-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-gray-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-primary-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(204 69 34 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-blue-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(30 66 159 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-red-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(155 28 28 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-green-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(3 84 63 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-yellow-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(114 59 19 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-indigo-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(66 56 157 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-purple-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(85 33 181 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-pink-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(153 21 75 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-gray-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-blue-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(26 86 219 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-green-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(4 108 78 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-primary-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(235 79 39 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-purple-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(108 43 217 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-red-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(200 30 30 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-gray-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(75 85 99 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-blue-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(28 100 242 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-green-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(5 122 85 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-primary-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(239 86 47 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-purple-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(144 97 249 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-red-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(224 36 36 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-yellow-400:hover { + --tw-bg-opacity: 1; + background-color: rgb(227 160 8 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-primary-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(254 121 93 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:text-primary-300:hover { + --tw-text-opacity: 1; + color: rgb(255 213 204 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-blue-300:hover { + --tw-text-opacity: 1; + color: rgb(164 202 254 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-gray-300:hover { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-red-300:hover { + --tw-text-opacity: 1; + color: rgb(248 180 180 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-green-300:hover { + --tw-text-opacity: 1; + color: rgb(132 225 188 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-yellow-300:hover { + --tw-text-opacity: 1; + color: rgb(250 202 21 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-indigo-300:hover { + --tw-text-opacity: 1; + color: rgb(180 198 252 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-purple-300:hover { + --tw-text-opacity: 1; + color: rgb(202 191 253 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-pink-300:hover { + --tw-text-opacity: 1; + color: rgb(248 180 217 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-primary-900:hover { + --tw-text-opacity: 1; + color: rgb(165 55 27 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.dark .dark\:hover\:text-primary-100:hover { + --tw-text-opacity: 1; + color: rgb(255 241 238 / var(--tw-text-opacity)); +} + +.dark .dark\:focus\:border-blue-500:focus { + --tw-border-opacity: 1; + border-color: rgb(63 131 248 / var(--tw-border-opacity)); +} + +.dark .dark\:focus\:border-primary-500:focus { + --tw-border-opacity: 1; + border-color: rgb(254 121 93 / var(--tw-border-opacity)); +} + +.dark .dark\:focus\:border-green-500:focus { + --tw-border-opacity: 1; + border-color: rgb(14 159 110 / var(--tw-border-opacity)); +} + +.dark .dark\:focus\:border-red-500:focus { + --tw-border-opacity: 1; + border-color: rgb(240 82 82 / var(--tw-border-opacity)); +} + +.dark .dark\:focus\:text-white:focus { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.dark .dark\:focus\:ring-gray-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-blue-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-green-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-cyan-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(21 94 117 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-teal-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(5 80 92 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-lime-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(63 98 18 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-red-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(155 28 28 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-pink-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(153 21 75 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-purple-800:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(85 33 181 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-teal-700:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(3 102 114 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-red-400:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(249 128 128 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-blue-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(63 131 248 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-primary-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(254 121 93 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-green-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(14 159 110 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-red-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(240 82 82 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-primary-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(239 86 47 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-red-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(224 36 36 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-green-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(5 122 85 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-purple-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(126 58 242 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-teal-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(4 116 129 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-yellow-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(159 88 10 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-orange-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(208 56 1 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-blue-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(28 100 242 / var(--tw-ring-opacity)); +} + +.dark .dark\:focus\:ring-gray-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)); +} + +.dark .dark\:disabled\:text-gray-500:disabled { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.dark .group:hover .dark\:group-hover\:bg-gray-800\/60 { + background-color: rgb(31 41 55 / 0.6); +} + +.dark .group:hover .dark\:group-hover\:text-primary-500 { + --tw-text-opacity: 1; + color: rgb(254 121 93 / var(--tw-text-opacity)); +} + +.dark .group:focus .dark\:group-focus\:ring-gray-800\/70 { + --tw-ring-color: rgb(31 41 55 / 0.7); +} + +.peer:focus ~ .dark .peer-focus\:dark\:text-primary-500 { + --tw-text-opacity: 1; + color: rgb(254 121 93 / var(--tw-text-opacity)); +} + +.dark .peer:focus ~ .dark\:peer-focus\:ring-primary-800 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(204 69 34 / var(--tw-ring-opacity)); +} + +.dark .peer:focus ~ .dark\:peer-focus\:ring-red-800 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(155 28 28 / var(--tw-ring-opacity)); +} + +.dark .peer:focus ~ .dark\:peer-focus\:ring-green-800 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(3 84 63 / var(--tw-ring-opacity)); +} + +.dark .peer:focus ~ .dark\:peer-focus\:ring-purple-800 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(85 33 181 / var(--tw-ring-opacity)); +} + +.dark .peer:focus ~ .dark\:peer-focus\:ring-yellow-800 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(114 59 19 / var(--tw-ring-opacity)); +} + +.dark .peer:focus ~ .dark\:peer-focus\:ring-teal-800 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(5 80 92 / var(--tw-ring-opacity)); +} + +.dark .peer:focus ~ .dark\:peer-focus\:ring-orange-800 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(138 44 13 / var(--tw-ring-opacity)); +} + +.dark .peer:focus ~ .dark\:peer-focus\:ring-blue-800 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(30 66 159 / var(--tw-ring-opacity)); } @media (max-width: 480px) { @@ -7168,14 +8079,18 @@ svg.apply-fill path { margin-right: 0.5rem; } - .sm\:mt-2 { - margin-top: 0.5rem; - } - .sm\:mr-1 { margin-right: 0.25rem; } + .sm\:mt-0 { + margin-top: 0px; + } + + .sm\:mt-2 { + margin-top: 0.5rem; + } + .sm\:mb-0 { margin-bottom: 0px; } @@ -7224,6 +8139,10 @@ svg.apply-fill path { width: 50%; } + .sm\:w-64 { + width: 16rem; + } + .sm\:w-11 { width: 2.75rem; } @@ -7248,10 +8167,18 @@ svg.apply-fill path { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .sm\:flex-row { + flex-direction: row; + } + .sm\:flex-nowrap { flex-wrap: nowrap; } + .sm\:gap-y-3 { + row-gap: 0.75rem; + } + .sm\:divide-x > :not([hidden]) ~ :not([hidden]) { --tw-divide-x-reverse: 0; border-right-width: calc(1px * var(--tw-divide-x-reverse)); @@ -7266,6 +8193,10 @@ svg.apply-fill path { padding: 0.25rem; } + .sm\:p-3 { + padding: 0.75rem; + } + .sm\:p-2 { padding: 0.5rem; } @@ -7332,11 +8263,6 @@ svg.apply-fill path { margin: 0.25rem; } - .md\:mx-2 { - margin-left: 0.5rem; - margin-right: 0.5rem; - } - .md\:mx-4 { margin-left: 1rem; margin-right: 1rem; @@ -7378,10 +8304,6 @@ svg.apply-fill path { display: none; } - .md\:h-8 { - height: 2rem; - } - .md\:h-auto { height: auto; } @@ -7426,10 +8348,6 @@ svg.apply-fill path { height: 100%; } - .md\:w-8 { - width: 2rem; - } - .md\:w-6\/12 { width: 50%; } @@ -7554,6 +8472,11 @@ svg.apply-fill path { padding: 0px; } + .md\:px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; + } + .md\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; @@ -7592,28 +8515,36 @@ svg.apply-fill path { font-weight: 500; } + .md\:text-primary-700 { + --tw-text-opacity: 1; + color: rgb(235 79 39 / var(--tw-text-opacity)); + } + .md\:hover\:bg-transparent:hover { background-color: transparent; } - @media (prefers-color-scheme: dark) { - .md\:dark\:bg-transparent { - background-color: transparent; - } + .md\:hover\:text-primary-700:hover { + --tw-text-opacity: 1; + color: rgb(235 79 39 / var(--tw-text-opacity)); + } - .md\:dark\:text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - } + .dark .md\:dark\:bg-transparent { + background-color: transparent; + } - .md\:dark\:hover\:bg-transparent:hover { - background-color: transparent; - } + .dark .md\:dark\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + } - .md\:dark\:hover\:text-white:hover { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - } + .dark .md\:dark\:hover\:bg-transparent:hover { + background-color: transparent; + } + + .dark .md\:dark\:hover\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); } } diff --git a/scripts/generateTranslations.ts b/scripts/generateTranslations.ts index a77a21d89c..c6ee72d841 100644 --- a/scripts/generateTranslations.ts +++ b/scripts/generateTranslations.ts @@ -15,7 +15,8 @@ class TranslationPart { const rootTranslation = new TranslationPart() for (const file of files) { const content = JSON.parse(readFileSync(file, { encoding: "utf8" })) - rootTranslation.addTranslation(file.substr(0, file.length - ".json".length), content) + const language = file.substr(0, file.length - ".json".length) + rootTranslation.addTranslation(language, content) } return rootTranslation } @@ -47,10 +48,6 @@ class TranslationPart { return } for (const translationsKey in translations) { - if (!translations.hasOwnProperty(translationsKey)) { - continue - } - const v = translations[translationsKey] if (typeof v != "string") { console.error( @@ -105,9 +102,6 @@ class TranslationPart { } for (let key in object) { - if (!object.hasOwnProperty(key)) { - continue - } if (ignoreTerms.indexOf(key) >= 0) { continue } @@ -156,13 +150,13 @@ class TranslationPart { this.contents.set(key, new TranslationPart()) } - ;(this.contents.get(key) as TranslationPart).recursiveAdd(v, context + "." + key) + (this.contents.get(key) as TranslationPart).recursiveAdd(v, context + "." + key) } } knownLanguages(): string[] { const languages = [] - for (let key of Array.from(this.contents.keys())) { + for (const key of Array.from(this.contents.keys())) { const value = this.contents.get(key) if (typeof value === "string") { @@ -181,20 +175,20 @@ class TranslationPart { const parts = [] let keys = Array.from(this.contents.keys()) keys = keys.sort() - for (let key of keys) { + for (const key of keys) { let value = this.contents.get(key) if (typeof value === "string") { value = value.replace(/"/g, "\\\"").replace(/\n/g, "\\n") if (neededLanguage === undefined) { - parts.push(`\"${key}\": \"${value}\"`) + parts.push(`"${key}": "${value}"`) } else if (key === neededLanguage) { return `"${value}"` } } else { const sub = (value as TranslationPart).toJson(neededLanguage) if (sub !== "") { - parts.push(`\"${key}\": ${sub}`) + parts.push(`"${key}": ${sub}`) } } } @@ -335,24 +329,6 @@ class TranslationPart { } } -/** - * Checks that the given object only contains string-values - * @param tr - */ -function isTranslation(tr: any): boolean { - if (tr["#"] === "no-translations") { - return false - } - if (tr["special"]) { - return false - } - for (const key in tr) { - if (typeof tr[key] !== "string") { - return false - } - } - return true -} /** * Converts a translation object into something that can be added to the 'generated translations'. @@ -362,9 +338,10 @@ function isTranslation(tr: any): boolean { function transformTranslation( obj: any, path: string[] = [], - languageWhitelist: string[] = undefined + languageWhitelist: string[] = undefined, + shortNotation = false ) { - if (isTranslation(obj)) { + if (GenerateTranslations.isTranslation(obj)) { return `new Translation( ${JSON.stringify(obj)} )` } @@ -381,7 +358,7 @@ function transformTranslation( } let value = obj[key] - if (isTranslation(value)) { + if (GenerateTranslations.isTranslation(value)) { if (languageWhitelist !== undefined) { const nv = {} for (const ln of languageWhitelist) { @@ -396,7 +373,7 @@ function transformTranslation( )}.${key}\n\tThe translations in other languages are ${JSON.stringify(value)}` } const subParts: string[] = value["en"].match(/{[^}]*}/g) - let expr = `return new Translation(${JSON.stringify(value)}, "core:${path.join( + let expr = `new Translation(${JSON.stringify(value)}, "core:${path.join( "." )}.${key}")` if (subParts !== null) { @@ -410,12 +387,16 @@ function transformTranslation( "." )}: A subpart contains invalid characters: ${subParts.join(", ")}` } - expr = `return new TypedTranslation<{ ${types.join(", ")} }>(${JSON.stringify( + expr = `new TypedTranslation<{ ${types.join(", ")} }>(${JSON.stringify( value )}, "core:${path.join(".")}.${key}")` } + if (shortNotation) { + values.push(`${spaces} ${key}: ${expr}`) - values.push(`${spaces}get ${key}() { ${expr} }`) + } else { + values.push(`${spaces}get ${key}() { return ${expr} }`) + } } else { values.push( spaces + key + ": " + transformTranslation(value, [...path, key], languageWhitelist) @@ -496,54 +477,11 @@ function formatFile(path) { writeFileSync(path, contents) } -/** - * Generates the big compiledTranslations file - */ -function genTranslations() { - if (!fs.existsSync("./src/assets/generated/")) { - fs.mkdirSync("./src/assets/generated/") - } - const translations = JSON.parse( - fs.readFileSync("./src/assets/generated/translations.json", "utf-8") - ) - const transformed = transformTranslation(translations) - - let module = `import {Translation, TypedTranslation} from "../../UI/i18n/Translation"\n\nexport default class CompiledTranslations {\n\n` - module += " public static t = " + transformed - module += "\n }" - - fs.writeFileSync("./src/assets/generated/CompiledTranslations.ts", module) -} /** * Reads 'lang/*.json', writes them into to 'assets/generated/translations.json'. * This is only for the core translations */ -function compileTranslationsFromWeblate() { - const translations = ScriptUtils.readDirRecSync("./langs", 1).filter( - (path) => path.indexOf(".json") > 0 - ) - - const allTranslations = new TranslationPart() - - allTranslations.validateStrict() - - for (const translationFile of translations) { - try { - const contents = JSON.parse(readFileSync(translationFile, "utf-8")) - let language = translationFile.substring(translationFile.lastIndexOf("/") + 1) - language = language.substring(0, language.length - 5) - allTranslations.add(language, contents) - } catch (e) { - throw "Could not read file " + translationFile + " due to " + e - } - } - - writeFileSync( - "./src/assets/generated/translations.json", - JSON.stringify(JSON.parse(allTranslations.toJson()), null, " ") - ) -} /** * Get all the strings out of the layers; writes them onto the weblate paths @@ -635,7 +573,7 @@ function MergeTranslation(source: any, target: any, language: string, context: s if (targetV[language] !== undefined && targetV[language] !== sourceV) { was = " (overwritten " + targetV[language] + ")" } - console.log(" + ", context + "." + language, "-->", sourceV, was) + // console.log(" + ", context + "." + language, "-->", sourceV, was) continue } if (typeof sourceV === "object") { @@ -724,7 +662,7 @@ function removeNonEnglishTranslations(object: any) { leaf["en"] = en }, (possibleLeaf) => - possibleLeaf !== null && typeof possibleLeaf === "object" && isTranslation(possibleLeaf) + possibleLeaf !== null && typeof possibleLeaf === "object" && GenerateTranslations.isTranslation(possibleLeaf) ) } @@ -759,6 +697,25 @@ class GenerateTranslations extends Script { super("Syncs translations from/to the theme and layer files") } + /** + * Checks that the given object only contains string-values + * @param tr + */ + static isTranslation(tr: Record): boolean { + if (tr["#"] === "no-translations") { + return false + } + if (tr["special"]) { + return false + } + for (const key in tr) { + if (typeof tr[key] !== "string") { + return false + } + } + return true + } + /** * OUtputs the 'used_languages.json'-file */ @@ -781,22 +738,74 @@ class GenerateTranslations extends Script { } } + + /** + * Generates the big compiledTranslations file based on 'translations.json' + */ + genTranslations(englishOnly?: boolean) { + if (!fs.existsSync("./src/assets/generated/")) { + fs.mkdirSync("./src/assets/generated/") + } + const translations = JSON.parse( + fs.readFileSync("./src/assets/generated/translations.json", "utf-8") + ) + const transformed = transformTranslation(translations, undefined, englishOnly ? ["en"] : undefined, englishOnly) + + let module = `import {Translation, TypedTranslation} from "../../UI/i18n/Translation"\n\nexport default class CompiledTranslations {\n\n` + module += " public static t = " + transformed + module += "\n }" + + fs.writeFileSync("./src/assets/generated/CompiledTranslations.ts", module) + } + + compileTranslationsFromWeblate(englishOnly: boolean) { + const translations = ScriptUtils.readDirRecSync("./langs", 1).filter( + (path) => path.indexOf(".json") > 0 + ) + + const allTranslations = new TranslationPart() + + allTranslations.validateStrict() + + for (const translationFile of translations) { + try { + const contents = JSON.parse(readFileSync(translationFile, "utf-8")) + let language = translationFile.substring(translationFile.lastIndexOf("/") + 1) + language = language.substring(0, language.length - 5) + if (englishOnly && language !== "en") { + continue + } + allTranslations.add(language, contents) + } catch (e) { + throw "Could not read file " + translationFile + " due to " + e + } + } + + writeFileSync( + "./src/assets/generated/translations.json", + JSON.stringify(JSON.parse(allTranslations.toJson()), null, " ") + ) + } + async main(args: string[]): Promise { if (!existsSync("./langs/themes")) { mkdirSync("./langs/themes") } const themeOverwritesWeblate = args[0] === "--ignore-weblate" const englishOnly = args[0] === "--english-only" + if (englishOnly) { + console.log("ENGLISH ONLY") + } if (!themeOverwritesWeblate) { - mergeLayerTranslations() - mergeThemeTranslations() - compileTranslationsFromWeblate() + mergeLayerTranslations(englishOnly) + mergeThemeTranslations(englishOnly) + this.compileTranslationsFromWeblate(englishOnly) } else { console.log("Ignore weblate") } this.detectUsedLanguages() - genTranslations() + this.genTranslations(englishOnly) { const allTranslationFiles = ScriptUtils.readDirRecSync("langs").filter((path) => path.endsWith(".json") diff --git a/scripts/osm2pgsql/osmPoiDatabase.ts b/scripts/osm2pgsql/osmPoiDatabase.ts index 02a999d7ea..cb7159e9ca 100644 --- a/scripts/osm2pgsql/osmPoiDatabase.ts +++ b/scripts/osm2pgsql/osmPoiDatabase.ts @@ -94,7 +94,7 @@ export class OsmPoiDatabase { let latestDate: Date = undefined for (const name of dbs) { const date = new Date(name) - if (latestDate.getTime() < date.getTime()) { + if (latestDate === undefined || latestDate.getTime() < date.getTime()) { latest = name latestDate = date } @@ -104,7 +104,7 @@ export class OsmPoiDatabase { } console.log("Latest database is:", latest) - return latest + return "osm-poi."+latest } async createNew(date: string) { diff --git a/scripts/osm2pgsql/update.sh b/scripts/osm2pgsql/update.sh index 601d490cdd..d88f896068 100755 --- a/scripts/osm2pgsql/update.sh +++ b/scripts/osm2pgsql/update.sh @@ -1,18 +1,23 @@ #! /bin/bash -# Full database update. DOwnload latest from planet.osm.org, build update script, setup and seed it +# Full database update. Downloads the latest from planet.osm.org, build update script, setup and seed it +# Meant to be run with 'nohup' nvm use npm run init # contains a 'npm run generate, which builds the layers' npm run generate:buildDbScript mv build_db.lua ~/data/ + + +cd ~/data || exit +rm planet-latest.osm.pbf + +wget https://planet.osm.org/pbf/planet-latest.osm.pbf + TIMESTAMP=$(osmium fileinfo ~/data/planet-latest.osm.pbf -g header.option.timestamp) DATE=$(echo $TIMESTAMP | sed "s/T.*//") echo $DATE npm run create:database -- -- ${DATE/T.*//} -cd ~/data || exit -rm planet-latest.osm.pbf -wget https://planet.osm.org/pbf/planet-latest.osm.pbf rm seeddb.log osm2pgsql -O flex -S build_db.lua -s --flat-nodes=import-help-file -d postgresql://user:password@localhost:5444/osm-poi planet-latest.osm.pbf >> seeddb.log @@ -20,7 +25,10 @@ osm2pgsql -O flex -S build_db.lua -s --flat-nodes=import-help-file -d postgresql # To see the progress # tail -f seeddb.log +cd ~/git/MapComplete || exit npm run delete:database:old +nohup npm run server:summary >> summary_server.log & +cd - || exit # Restart tileserver export DATABASE_URL=postgresql://user:password@localhost:5444/osm-poi.${DATE} diff --git a/src/Logic/State/UserSettingsMetaTagging.ts b/src/Logic/State/UserSettingsMetaTagging.ts index 6e568c5c32..33a5ae85b5 100644 --- a/src/Logic/State/UserSettingsMetaTagging.ts +++ b/src/Logic/State/UserSettingsMetaTagging.ts @@ -1,42 +1,14 @@ import { Utils } from "../../Utils" /** This code is autogenerated - do not edit. Edit ./assets/layers/usersettings/usersettings.json instead */ export class ThemeMetaTagging { - public static readonly themeName = "usersettings" + public static readonly themeName = "usersettings" - public metaTaggging_for_usersettings(feat: { properties: Record }) { - Utils.AddLazyProperty(feat.properties, "_mastodon_candidate_md", () => - feat.properties._description - .match(/\[[^\]]*\]\((.*(mastodon|en.osm.town).*)\).*/) - ?.at(1) - ) - Utils.AddLazyProperty( - feat.properties, - "_d", - () => feat.properties._description?.replace(/</g, "<")?.replace(/>/g, ">") ?? "" - ) - Utils.AddLazyProperty(feat.properties, "_mastodon_candidate_a", () => - ((feat) => { - const e = document.createElement("div") - e.innerHTML = feat.properties._d - return Array.from(e.getElementsByTagName("a")).filter( - (a) => a.href.match(/mastodon|en.osm.town/) !== null - )[0]?.href - })(feat) - ) - Utils.AddLazyProperty(feat.properties, "_mastodon_link", () => - ((feat) => { - const e = document.createElement("div") - e.innerHTML = feat.properties._d - return Array.from(e.getElementsByTagName("a")).filter( - (a) => a.getAttribute("rel")?.indexOf("me") >= 0 - )[0]?.href - })(feat) - ) - Utils.AddLazyProperty( - feat.properties, - "_mastodon_candidate", - () => feat.properties._mastodon_candidate_md ?? feat.properties._mastodon_candidate_a - ) - feat.properties["__current_backgroun"] = "initial_value" - } -} + public metaTaggging_for_usersettings(feat: {properties: Record}) { + Utils.AddLazyProperty(feat.properties, '_mastodon_candidate_md', () => feat.properties._description.match(/\[[^\]]*\]\((.*(mastodon|en.osm.town).*)\).*/)?.at(1) ) + Utils.AddLazyProperty(feat.properties, '_d', () => feat.properties._description?.replace(/</g,'<')?.replace(/>/g,'>') ?? '' ) + Utils.AddLazyProperty(feat.properties, '_mastodon_candidate_a', () => (feat => {const e = document.createElement('div');e.innerHTML = feat.properties._d;return Array.from(e.getElementsByTagName("a")).filter(a => a.href.match(/mastodon|en.osm.town/) !== null)[0]?.href }) (feat) ) + Utils.AddLazyProperty(feat.properties, '_mastodon_link', () => (feat => {const e = document.createElement('div');e.innerHTML = feat.properties._d;return Array.from(e.getElementsByTagName("a")).filter(a => a.getAttribute("rel")?.indexOf('me') >= 0)[0]?.href})(feat) ) + Utils.AddLazyProperty(feat.properties, '_mastodon_candidate', () => feat.properties._mastodon_candidate_md ?? feat.properties._mastodon_candidate_a ) + feat.properties['__current_backgroun'] = 'initial_value' + } +} \ No newline at end of file diff --git a/src/Logic/Web/ThemeViewStateHashActor.ts b/src/Logic/Web/ThemeViewStateHashActor.ts index 84aa808687..acded8c92b 100644 --- a/src/Logic/Web/ThemeViewStateHashActor.ts +++ b/src/Logic/Web/ThemeViewStateHashActor.ts @@ -4,75 +4,67 @@ import { MenuState } from "../../Models/MenuState" export default class ThemeViewStateHashActor { private readonly _state: ThemeViewState + private isUpdatingHash = false public static readonly documentation = [ "The URL-hash can contain multiple values:", "", "- The id of the currently selected object, e.g. `node/1234`", "- The currently opened menu view", - "- The base64-encoded JSON-file specifying a custom theme (only when loading)", "", "### Possible hashes to open a menu", "", "The possible hashes are:", "", - MenuState._menuviewTabs.map((tab) => "`menu:" + tab + "`").join(","), - MenuState._themeviewTabs.map((tab) => "`theme-menu:" + tab + "`").join(","), + MenuState.pageNames.map((tab) => "`" + tab + "`").join(",") ] /** - * Converts the hash to the appropriate themeview state and, vice versa, sets the hash. + * Converts the hash to the appropriate theme-view state and, vice versa, sets the hash. * * As the navigator-back-button changes the hash first, this class thus also handles the 'back'-button events. * * Note that there is no "real" way to intercept the back button, we can only detect the removal of the hash. * As such, we use a change in the hash to close the appropriate windows * - * @param state */ constructor(state: ThemeViewState) { this._state = state + const hashOnLoad = Hash.hash.data + const containsMenu = this.loadStateFromHash(hashOnLoad) // First of all, try to recover the selected element - if (Hash.hash.data) { - const hash = Hash.hash.data - this.loadStateFromHash(hash) - Hash.hash.setData(hash) // reapply the previous hash - state.indexedFeatures.featuresById.addCallbackAndRunD((_) => { - let unregister = this.loadSelectedElementFromHash(hash) + if (!containsMenu && hashOnLoad?.length > 0) { + state.indexedFeatures.featuresById.addCallbackAndRunD(() => { // once that we have found a matching element, we can be sure the indexedFeaturesource was popuplated and that the job is done - return unregister + return this.loadSelectedElementFromHash(hashOnLoad) }) } - // Register a hash change listener to correctly handle the back button - Hash.hash.addCallback((hash) => { - if (!!hash) { - // There is still a hash - // We _only_ have to (at most) close the overlays in this case - if (state.previewedImage.data) { - state.previewedImage.setData(undefined) - return - } - - const parts = hash.split(";") - if (parts.indexOf("background") < 0) { - state.guistate.backgroundLayerSelectionIsOpened.setData(false) - } - this.loadSelectedElementFromHash(hash) - } else { - this.back() - } - }) // At last, register callbacks on the state to update the hash when they change. // Note: these should use 'addCallback', not 'addCallbackAndRun' - state.selectedElement.addCallback((_) => this.setHash()) - state.guistate.allToggles.forEach(({ toggle, submenu }) => { - submenu?.addCallback((_) => this.setHash()) - toggle.addCallback((_) => this.setHash()) + state.selectedElement.addCallback(() => this.setHash()) + + // Register a hash change listener to correctly handle the back button + Hash.hash.addCallback((hash) => { + if(this.isUpdatingHash){ + return + } + if (!hash) { + this.back() + } else { + if (!this.loadStateFromHash(hash)) { + this.loadSelectedElementFromHash(hash) + } + } }) + for (const key in state.guistate.pageStates) { + const toggle = state.guistate.pageStates[key] + toggle.addCallback(() => this.setHash()) + } + // When all is done, set the hash. This must happen last to give the code above correct info this.setHash() } @@ -80,15 +72,10 @@ export default class ThemeViewStateHashActor { /** * Selects the appropriate element * Returns true if this method can be unregistered for the first run - * @param hash - * @private */ private loadSelectedElementFromHash(hash: string): boolean { const state = this._state const selectedElement = state.selectedElement - // state.indexedFeatures.featuresById.stabilized(250) - - hash = hash.split(";")[0] // The 'selectedElement' is always the _first_ item in the hash (if any) // Set the hash based on the selected element... // ... search and select an element based on the hash @@ -101,7 +88,7 @@ export default class ThemeViewStateHashActor { if (!found) { return false } - if (found.properties.id === "last_click") { + if (found.properties.id.startsWith("last_click")) { return true } console.log( @@ -114,67 +101,46 @@ export default class ThemeViewStateHashActor { return true } - private loadStateFromHash(hash: string) { - const state = this._state - for (const superpart of hash.split(";")) { - const parts = superpart.at(-1)?.split(":") ?? [] - - outer: for (const { toggle, name, submenu } of state.guistate.allToggles) { - for (const part of parts) { - if (part.indexOf(":") < 0) { - if (part === name) { - toggle.setData(true) - continue outer - } - continue - } - const [main, submenuValue] = part.split(":") - if (part !== main) { - continue - } - toggle.setData(true) - submenu?.setData(submenuValue) - continue outer - } - - // If we arrive here, the loop above has not found any match - toggle.setData(false) + private loadStateFromHash(hash: string): boolean { + for (const page in this._state.guistate.pageStates) { + if (page === hash) { + const toggle = this._state.guistate.pageStates[page] + toggle.set(true) + console.log("Loading menu view from hash:", page) + return true } } + return false } - private setHash() { - const s = this._state - let h = "" - - for (const { toggle, showOverOthers, name, submenu } of s.guistate.allToggles) { - if (showOverOthers || !toggle.data) { - continue + /** + * Sets the hash based on: + * + * 1. Selected element ID + * 2. A selected 'page' from the menu + * + */ + private setHash(): void { + // Important ! This function is called by 'addCallback' and might thus never return 'true' or it will be unregistered + this.isUpdatingHash = true + try { + const selectedElement = this._state.selectedElement.data + if (selectedElement) { + Hash.hash.set(selectedElement.properties.id) + return } - h = name - if (submenu?.data) { - h += ":" + submenu.data + for (const page in this._state.guistate.pageStates) { + const toggle = this._state.guistate.pageStates[page] + if (toggle.data) { + Hash.hash.set(page) + return + } } + Hash.hash.set(undefined) + return + } finally { + this.isUpdatingHash = false } - - if (s.selectedElement.data !== undefined) { - h = s.selectedElement.data.properties.id - } - - for (const { toggle, showOverOthers, name, submenu } of s.guistate.allToggles) { - if (!showOverOthers || !toggle.data) { - continue - } - if (h) { - h += ";" + name - } else { - h = name - } - if (submenu?.data) { - h += ":" + submenu.data - } - } - Hash.hash.setData(h) } private back() { @@ -183,13 +149,9 @@ export default class ThemeViewStateHashActor { state.previewedImage.setData(undefined) return } - // history.pushState(null, null, window.location.pathname); - if (state.selectedElement.data) { - state.selectedElement.setData(undefined) - return - } if (state.guistate.closeAll()) { return } + state.selectedElement.setData(undefined) } } diff --git a/src/Models/MenuState.ts b/src/Models/MenuState.ts index ae48ae6fe7..0d5a73ccc8 100644 --- a/src/Models/MenuState.ts +++ b/src/Models/MenuState.ts @@ -2,11 +2,10 @@ import LayerConfig from "./ThemeConfig/LayerConfig" import { UIEventSource } from "../Logic/UIEventSource" import UserRelatedState from "../Logic/State/UserRelatedState" import { Utils } from "../Utils" -import { LocalStorageSource } from "../Logic/Web/LocalStorageSource" import Zoomcontrol from "../UI/Zoomcontrol" +import { LocalStorageSource } from "../Logic/Web/LocalStorageSource" -export type ThemeViewTabStates = (typeof MenuState._themeviewTabs)[number] -export type MenuViewTabStates = (typeof MenuState._menuviewTabs)[number] +export type PageType = (typeof MenuState.pageNames)[number] /** * Indicates if a menu is open, and if so, which tab is selected; @@ -15,141 +14,48 @@ export type MenuViewTabStates = (typeof MenuState._menuviewTabs)[number] * Some convenience methods are provided for this as well */ export class MenuState { - public static readonly _themeviewTabs = ["intro", "download", "copyright", "share"] as const - public static readonly _menuviewTabs = [ - "about", - "settings", - "favourites", - "community", - "privacy", - "advanced", + + + public static readonly pageNames = [ + "copyright", "copyright_icons", "community_index", "hotkeys", + "privacy", "filter", "background", "about_theme", "download", "favourites", + "usersettings", "share", "menu", ] as const - public readonly themeIsOpened: UIEventSource - public readonly themeViewTabIndex: UIEventSource - public readonly themeViewTab: UIEventSource - public readonly menuIsOpened: UIEventSource - public readonly menuViewTabIndex: UIEventSource - public readonly menuViewTab: UIEventSource - public readonly backgroundLayerSelectionIsOpened: UIEventSource = - new UIEventSource(false) - - public readonly filtersPanelIsOpened: UIEventSource = new UIEventSource(false) - public readonly privacyPanelIsOpened: UIEventSource = new UIEventSource(false) - /** - * Standalone copyright panel - */ - public readonly copyrightPanelIsOpened: UIEventSource = new UIEventSource( - false - ) - - public readonly communityIndexPanelIsOpened: UIEventSource = new UIEventSource(false) - public readonly allToggles: { - toggle: UIEventSource - name: string - submenu?: UIEventSource - showOverOthers?: boolean - }[] + public readonly pageStates: Record> public readonly highlightedLayerInFilters: UIEventSource = new UIEventSource( - undefined + undefined, ) public highlightedUserSetting: UIEventSource = new UIEventSource(undefined) - constructor(shouldOpenWelcomeMessage: boolean, themeid: string = "") { + constructor(shouldShowWelcomeMessage: boolean, themeid: string) { // Note: this class is _not_ responsible to update the Hash, @see ThemeViewStateHashActor for this - if (themeid) { - themeid += "-" + const states = {} + for (const pageName of MenuState.pageNames) { + const toggle = new UIEventSource(false) + states[pageName] = toggle } - this.themeIsOpened = LocalStorageSource.GetParsed( - themeid + "thememenuisopened", - shouldOpenWelcomeMessage - ) - this.themeViewTabIndex = LocalStorageSource.GetParsed(themeid + "themeviewtabindex", 0) - this.themeViewTab = this.themeViewTabIndex.sync( - (i) => MenuState._themeviewTabs[i], - [], - (str) => MenuState._themeviewTabs.indexOf(str) - ) + this.pageStates = >>states - this.menuIsOpened = LocalStorageSource.GetParsed(themeid + "menuisopened", false) - this.menuViewTabIndex = LocalStorageSource.GetParsed(themeid + "menuviewtabindex", 0) - this.menuViewTab = this.menuViewTabIndex.sync( - (i) => MenuState._menuviewTabs[i], - [], - (str) => MenuState._menuviewTabs.indexOf(str) - ) - this.menuIsOpened.addCallbackAndRun((isOpen) => { - if (!isOpen) { - this.highlightedUserSetting.setData(undefined) + for (const pageName of MenuState.pageNames) { + if(pageName === "menu"){ + continue } - }) - this.menuViewTab.addCallbackD((tab) => { - if (tab !== "settings") { - this.highlightedUserSetting.setData(undefined) - } - }) - this.filtersPanelIsOpened.addCallbackAndRun((isOpen) => { - if (!isOpen) { - this.highlightedLayerInFilters.setData(undefined) - } - }) - - this.menuIsOpened.addCallbackAndRunD((opened) => { - if (opened) { - this.themeIsOpened.setData(false) - } - }) - this.themeIsOpened.addCallbackAndRunD((opened) => { - if (opened) { - this.menuIsOpened.setData(false) - } - }) - - this.allToggles = [ - { - toggle: this.privacyPanelIsOpened, - name: "privacy", - showOverOthers: true, - }, - { - toggle: this.copyrightPanelIsOpened, - name: "copyright", - showOverOthers: true, - }, - { - toggle: this.communityIndexPanelIsOpened, - name: "community", - showOverOthers: true, - }, - { - toggle: this.filtersPanelIsOpened, - name: "filters", - showOverOthers: true, - }, - { - toggle: this.menuIsOpened, - name: "menu", - submenu: this.menuViewTab, - }, - { - toggle: this.themeIsOpened, - name: "theme-menu", - submenu: this.themeViewTab, - }, - { - toggle: this.backgroundLayerSelectionIsOpened, - name: "background", - showOverOthers: true, - }, - ] - for (const toggle of this.allToggles) { - toggle.toggle.addCallback((isOpen) => { - if (!isOpen) { - this.resetZoomIfAllClosed() + this.pageStates[pageName].addCallback(enabled => { + if (enabled) { + this.pageStates.menu.set(false) } }) } + + const visitedBefore = LocalStorageSource.GetParsed( + themeid + "thememenuisopened", false, + ) + if (!visitedBefore.data && shouldShowWelcomeMessage) { + this.pageStates.about_theme.set(true) + visitedBefore.set(true) + } } private resetZoomIfAllClosed() { @@ -160,7 +66,7 @@ export class MenuState { } public openFilterView(highlightLayer?: LayerConfig | string) { - this.filtersPanelIsOpened.setData(true) + this.pageStates.filter.setData(true) if (highlightLayer) { if (typeof highlightLayer !== "string") { highlightLayer = highlightLayer.id @@ -170,8 +76,6 @@ export class MenuState { } public openUsersettings(highlightTagRendering?: string) { - this.menuIsOpened.setData(true) - this.menuViewTab.setData("settings") if ( highlightTagRendering !== undefined && !UserRelatedState.availableUserSettingsIds.some((tr) => tr === highlightTagRendering) @@ -181,15 +85,15 @@ export class MenuState { Utils.sortedByLevenshteinDistance( highlightTagRendering, UserRelatedState.availableUserSettingsIds, - (x) => x - ) + (x) => x, + ), ) } this.highlightedUserSetting.setData(highlightTagRendering) } public isSomethingOpen(): boolean { - return this.allToggles.some((t) => t.toggle.data) + return Object.values(this.pageStates).some((t) => t.data) } /** @@ -197,14 +101,19 @@ export class MenuState { * Returns 'true' if at least one menu was opened */ public closeAll(): boolean { - let somethingWasOpen = false - for (const t of this.allToggles) { - somethingWasOpen = t.toggle.data - t.toggle.setData(false) - if (somethingWasOpen) { - break + const ps = this.pageStates + for (const key in ps) { + const toggle = ps[key] + const wasOpen = toggle.data + toggle.setData(false) + if (wasOpen) { + return true } } - return somethingWasOpen + if (ps.menu.data) { + ps.menu.set(false) + return true + } } + } diff --git a/src/Models/ThemeConfig/Conversion/CreateNoteImportLayer.ts b/src/Models/ThemeConfig/Conversion/CreateNoteImportLayer.ts index d477e1c95f..feb5578ada 100644 --- a/src/Models/ThemeConfig/Conversion/CreateNoteImportLayer.ts +++ b/src/Models/ThemeConfig/Conversion/CreateNoteImportLayer.ts @@ -203,6 +203,7 @@ export default class CreateNoteImportLayer extends Conversion { } } + if(json.allowMove === undefined && json.source["geoJson"] === undefined){ + if (!Constants.priviliged_layers.find((x) => x == json.id)) { + context.err( + "Layer " + + json.id + + " does not have an explicit 'allowMove'" + ) + } + } + if (context.hasErrors()) { return undefined } diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts index 589c55842f..4c81f2931f 100644 --- a/src/Models/ThemeViewState.ts +++ b/src/Models/ThemeViewState.ts @@ -5,7 +5,7 @@ import { Store, UIEventSource } from "../Logic/UIEventSource" import { FeatureSource, IndexedFeatureSource, - WritableFeatureSource, + WritableFeatureSource } from "../Logic/FeatureSource/FeatureSource" import { OsmConnection } from "../Logic/Osm/OsmConnection" import { ExportableMap, MapProperties } from "./MapProperties" @@ -51,7 +51,7 @@ import SaveFeatureSourceToLocalStorage from "../Logic/FeatureSource/Actors/SaveF import BBoxFeatureSource from "../Logic/FeatureSource/Sources/TouchesBboxFeatureSource" import ThemeViewStateHashActor from "../Logic/Web/ThemeViewStateHashActor" import NoElementsInViewDetector, { - FeatureViewState, + FeatureViewState } from "../Logic/Actors/NoElementsInViewDetector" import FilteredLayer from "./FilteredLayer" import { PreferredRasterLayerSelector } from "../Logic/Actors/PreferredRasterLayerSelector" @@ -64,7 +64,7 @@ import { GeolocationControlState } from "../UI/BigComponents/GeolocationControl" import Zoomcontrol from "../UI/Zoomcontrol" import { SummaryTileSource, - SummaryTileSourceRewriter, + SummaryTileSourceRewriter } from "../Logic/FeatureSource/TiledFeatureSource/SummaryTileSource" import summaryLayer from "../assets/generated/layers/summary.json" import last_click_layerconfig from "../assets/generated/layers/last_click.json" @@ -178,7 +178,7 @@ export default class ThemeViewState implements SpecialVisualizationState { "oauth_token", undefined, "Used to complete the login" - ), + ) }) this.userRelatedState = new UserRelatedState( this.osmConnection, @@ -257,8 +257,8 @@ export default class ThemeViewState implements SpecialVisualizationState { bbox.asGeoJson({ zoom: this.mapProperties.zoom.data, ...this.mapProperties.location.data, - id: "current_view_" + currentViewIndex, - }), + id: "current_view_" + currentViewIndex + }) ] }) ) @@ -275,10 +275,10 @@ export default class ThemeViewState implements SpecialVisualizationState { featurePropertiesStore: this.featureProperties, osmConnection: this.osmConnection, historicalUserLocations: this.geolocation.historicalUserLocations, - featureSwitches: this.featureSwitches, + featureSwitches: this.featureSwitches }, layout?.isLeftRightSensitive() ?? false, - (e, extraMsg) => this.reportError(e, extraMsg), + (e, extraMsg) => this.reportError(e, extraMsg) ) this.historicalUserLocations = this.geolocation.historicalUserLocations this.newFeatures = new NewGeometryFromChangesFeatureSource( @@ -303,7 +303,7 @@ export default class ThemeViewState implements SpecialVisualizationState { "leftover features, such as", features[0].properties ) - }, + } } ) this.perLayer = perLayer.perLayer @@ -359,7 +359,7 @@ export default class ThemeViewState implements SpecialVisualizationState { { currentZoom: this.mapProperties.zoom, layerState: this.layerState, - bounds: this.visualFeedbackViewportBounds, + bounds: this.visualFeedbackViewportBounds } ) this.hasDataInView = new NoElementsInViewDetector(this).hasFeatureInView @@ -391,7 +391,6 @@ export default class ThemeViewState implements SpecialVisualizationState { public focusOnMap() { if (this.map.data) { this.map.data.getCanvas().focus() - console.log("Focused on map") return } this.map.addCallbackAndRunD((map) => { @@ -454,7 +453,7 @@ export default class ThemeViewState implements SpecialVisualizationState { doShowLayer, metaTags: this.userRelatedState.preferencesAsTags, selectedElement: this.selectedElement, - fetchStore: (id) => this.featureProperties.getStore(id), + fetchStore: (id) => this.featureProperties.getStore(id) }) }) return filteringFeatureSource @@ -481,7 +480,7 @@ export default class ThemeViewState implements SpecialVisualizationState { doShowLayer: flayerGps.isDisplayed, layer: flayerGps.layerDef, metaTags: this.userRelatedState.preferencesAsTags, - selectedElement: this.selectedElement, + selectedElement: this.selectedElement }) } @@ -527,8 +526,6 @@ export default class ThemeViewState implements SpecialVisualizationState { /** * Selects the feature that is 'i' closest to the map center - * @param i - * @private */ private selectClosestAtCenter(i: number = 0) { if (this.userRelatedState.a11y.data !== "never") { @@ -557,23 +554,22 @@ export default class ThemeViewState implements SpecialVisualizationState { this.previewedImage.setData(undefined) return } - this.selectedElement.setData(undefined) - this.guistate.closeAll() - if (!this.guistate.isSomethingOpen()) { - Zoomcontrol.resetzoom() - this.focusOnMap() + if(this.guistate.closeAll()){ + return } + this.selectedElement.setData(undefined) + Zoomcontrol.resetzoom() + this.focusOnMap() }) Hotkeys.RegisterHotkey({ nomod: "f" }, docs.selectFavourites, () => { - this.guistate.menuViewTab.setData("favourites") - this.guistate.menuIsOpened.setData(true) + this.guistate.pageStates.favourites.set(true) }) Hotkeys.RegisterHotkey( { nomod: " ", - onUp: true, + onUp: true }, docs.selectItem, () => { @@ -581,8 +577,7 @@ export default class ThemeViewState implements SpecialVisualizationState { return false } if ( - this.guistate.menuIsOpened.data || - this.guistate.themeIsOpened.data || + this.guistate.isSomethingOpen() || this.previewedImage.data !== undefined ) { return @@ -603,7 +598,7 @@ export default class ThemeViewState implements SpecialVisualizationState { Hotkeys.RegisterHotkey( { nomod: "" + i, - onUp: true, + onUp: true }, doc, () => this.selectClosestAtCenter(i - 1) @@ -616,22 +611,21 @@ export default class ThemeViewState implements SpecialVisualizationState { } Hotkeys.RegisterHotkey( { - nomod: "b", + nomod: "b" }, docs.openLayersPanel, () => { if (this.featureSwitches.featureSwitchBackgroundSelection.data) { - this.guistate.backgroundLayerSelectionIsOpened.setData(true) + this.guistate.pageStates.background.setData(true) } } ) Hotkeys.RegisterHotkey( { - nomod: "s", + nomod: "s" }, Translations.t.hotkeyDocumentation.openFilterPanel, () => { - console.log("S pressed") if (this.featureSwitches.featureSwitchFilter.data) { this.guistate.openFilterView() } @@ -650,7 +644,7 @@ export default class ThemeViewState implements SpecialVisualizationState { available, category, current.data, - skipLayers, + skipLayers ) if (!best) { return @@ -706,7 +700,7 @@ export default class ThemeViewState implements SpecialVisualizationState { Hotkeys.RegisterHotkey( { - shift: "T", + shift: "T" }, Translations.t.hotkeyDocumentation.translationMode, () => { @@ -743,7 +737,7 @@ export default class ThemeViewState implements SpecialVisualizationState { this.mapProperties.zoom.map((z) => Math.max(Math.floor(z), 0)), this.mapProperties, { - isActive: this.mapProperties.zoom.map((z) => z < maxzoom), + isActive: this.mapProperties.zoom.map((z) => z < maxzoom) } ) @@ -775,7 +769,7 @@ export default class ThemeViewState implements SpecialVisualizationState { current_view: this.currentView, favourite: this.favourites, summary: this.featureSummary, - last_click: this.lastClickObject, + last_click: this.lastClickObject } this.closestFeatures.registerSource(specialLayers.favourite, "favourite") @@ -830,7 +824,7 @@ export default class ThemeViewState implements SpecialVisualizationState { doShowLayer: flayer.isDisplayed, layer: flayer.layerDef, metaTags: this.userRelatedState.preferencesAsTags, - selectedElement: this.selectedElement, + selectedElement: this.selectedElement }) }) const summaryLayerConfig = new LayerConfig(summaryLayer, "summaryLayer") @@ -838,7 +832,7 @@ export default class ThemeViewState implements SpecialVisualizationState { features: specialLayers.summary, layer: summaryLayerConfig, // doShowLayer: this.mapProperties.zoom.map((z) => z < maxzoom), - selectedElement: this.selectedElement, + selectedElement: this.selectedElement }) const lastClickLayerConfig = new LayerConfig( @@ -849,28 +843,27 @@ export default class ThemeViewState implements SpecialVisualizationState { lastClickLayerConfig.isShown === undefined ? specialLayers.last_click : specialLayers.last_click.features.mapD((fs) => - fs.filter((f) => { - const matches = lastClickLayerConfig.isShown.matchesProperties( - f.properties - ) - console.debug("LastClick ", f, "matches", matches) - return matches - }) - ) + fs.filter((f) => { + const matches = lastClickLayerConfig.isShown.matchesProperties( + f.properties + ) + console.debug("LastClick ", f, "matches", matches) + return matches + }) + ) new ShowDataLayer(this.map, { features: new StaticFeatureSource(lastClickFiltered), layer: lastClickLayerConfig, onClick: (feature) => { - console.log("Last click was clicked", feature) if (this.mapProperties.zoom.data >= Constants.minZoomLevelToAddNewPoint) { this.selectedElement.setData(feature) return } this.map.data.flyTo({ zoom: Constants.minZoomLevelToAddNewPoint, - center: GeoOperations.centerpointCoordinates(feature), + center: GeoOperations.centerpointCoordinates(feature) }) - }, + } }) } @@ -885,10 +878,12 @@ export default class ThemeViewState implements SpecialVisualizationState { this.lastClickObject.clear() } }) - this.guistate.allToggles.forEach((toggle) => { - toggle.toggle.addCallbackD((isOpened) => { + Object.values(this.guistate.pageStates).forEach((toggle) => { + toggle.addCallbackD((isOpened) => { if (!isOpened) { - this.focusOnMap() + if (!this.guistate.isSomethingOpen()) { + this.focusOnMap() + } } }) }) @@ -955,8 +950,8 @@ export default class ThemeViewState implements SpecialVisualizationState { userid: this.osmConnection.userDetails.data?.uid, pendingChanges: this.changes.pendingChanges.data, previousChanges: this.changes.allChanges.data, - changeRewrites: Utils.MapToObj(this.changes._changesetHandler._remappings), - }), + changeRewrites: Utils.MapToObj(this.changes._changesetHandler._remappings) + }) }) } catch (e) { console.error("Could not upload an error report") diff --git a/src/UI/AllThemesGui.svelte b/src/UI/AllThemesGui.svelte index fc2977eb7a..3d94571bc7 100644 --- a/src/UI/AllThemesGui.svelte +++ b/src/UI/AllThemesGui.svelte @@ -27,6 +27,7 @@ import Github from "../assets/svg/Github.svelte" import { Utils } from "../Utils" import { ArrowTrendingUp } from "@babeard/svelte-heroicons/solid/ArrowTrendingUp" + import Searchbar from "./Base/Searchbar.svelte" const featureSwitches = new OsmConnectionFeatureSwitches() const osmConnection = new OsmConnection({ @@ -42,7 +43,7 @@ const tr = Translations.t.general.morescreen let userLanguages = osmConnection.userDetails.map((ud) => ud.languages) - let themeSearchText: UIEventSource = new UIEventSource(undefined) + let themeSearchText: UIEventSource = new UIEventSource("") document.addEventListener("keydown", function (event) { if (event.ctrlKey && event.code === "KeyF") { @@ -101,24 +102,7 @@ -
MoreScreen.applySearch(themeSearchText.data)} - > - -
+ MoreScreen.applySearch(themeSearchText.data)}/> diff --git a/src/UI/Base/CloseAnimation.svelte b/src/UI/Base/CloseAnimation.svelte deleted file mode 100644 index 64a7f03665..0000000000 --- a/src/UI/Base/CloseAnimation.svelte +++ /dev/null @@ -1,48 +0,0 @@ - - -
-
-
- -
- -
diff --git a/src/UI/Base/DrawerLeft.svelte b/src/UI/Base/DrawerLeft.svelte new file mode 100644 index 0000000000..d12ba07ba8 --- /dev/null +++ b/src/UI/Base/DrawerLeft.svelte @@ -0,0 +1,30 @@ + + + + + + CONTENTS + + + diff --git a/src/UI/Base/DynLink.svelte b/src/UI/Base/DynLink.svelte index 9337a5ff6b..91deac7e99 100644 --- a/src/UI/Base/DynLink.svelte +++ b/src/UI/Base/DynLink.svelte @@ -1,6 +1,7 @@
{}} >
@@ -37,22 +38,21 @@
-
dispatch("close")} - use:ariaLabel={Translations.t.general.backToMap} - > - +
+ + dispatch("close")} + />
+
diff --git a/src/UI/Base/Link.svelte b/src/UI/Base/Link.svelte index f7bae099fb..6456c53612 100644 --- a/src/UI/Base/Link.svelte +++ b/src/UI/Base/Link.svelte @@ -1,6 +1,10 @@
import { OsmConnection } from "../../Logic/Osm/OsmConnection" - import Logout from "../../assets/svg/Logout.svelte" import Translations from "../i18n/Translations" import Tr from "./Tr.svelte" import ArrowRightOnRectangle from "@babeard/svelte-heroicons/solid/ArrowRightOnRectangle" export let osmConnection: OsmConnection + export let clss = "" diff --git a/src/UI/Base/MapControlButton.svelte b/src/UI/Base/MapControlButton.svelte index e9349c34a0..7fd1434541 100644 --- a/src/UI/Base/MapControlButton.svelte +++ b/src/UI/Base/MapControlButton.svelte @@ -14,15 +14,10 @@ export let arialabel: Translation = undefined export let arialabelDynamic: Store = new ImmutableStore(arialabel) let arialabelString = arialabelDynamic.bind((tr) => tr?.current) - export let htmlElem: UIEventSource = undefined - let _htmlElem: HTMLElement - $: { - htmlElem?.setData(_htmlElem) - } + diff --git a/src/UI/Base/Page.svelte b/src/UI/Base/Page.svelte new file mode 100644 index 0000000000..9a12e3c38a --- /dev/null +++ b/src/UI/Base/Page.svelte @@ -0,0 +1,59 @@ + + +{#if !onlyLink} + shown.set(false)} outsideclose + size="xl" + {defaultClass} {bodyClass} {dialogClass} {headerClass} + color="none"> +

+ +

+ + {#if $$slots.footer} + + {/if} +
+{:else} + +{/if} + + diff --git a/src/UI/Base/Searchbar.svelte b/src/UI/Base/Searchbar.svelte new file mode 100644 index 0000000000..4cbb351024 --- /dev/null +++ b/src/UI/Base/Searchbar.svelte @@ -0,0 +1,43 @@ + + + +
dispatch("search")} +> + +
diff --git a/src/UI/Base/TitledPanel.svelte b/src/UI/Base/TitledPanel.svelte index b7ddbcb11a..6e68e500ea 100644 --- a/src/UI/Base/TitledPanel.svelte +++ b/src/UI/Base/TitledPanel.svelte @@ -6,4 +6,7 @@
+ + +
diff --git a/src/UI/BigComponents/AboutMapComplete.svelte b/src/UI/BigComponents/AboutMapComplete.svelte deleted file mode 100644 index 14dd1a7d30..0000000000 --- a/src/UI/BigComponents/AboutMapComplete.svelte +++ /dev/null @@ -1,103 +0,0 @@ - - - diff --git a/src/UI/BigComponents/CopyrightAllIcons.svelte b/src/UI/BigComponents/CopyrightAllIcons.svelte new file mode 100644 index 0000000000..f1423db48f --- /dev/null +++ b/src/UI/BigComponents/CopyrightAllIcons.svelte @@ -0,0 +1,22 @@ + + +{#each iconAttributions as iconAttribution} + +{/each} diff --git a/src/UI/BigComponents/CopyrightPanel.svelte b/src/UI/BigComponents/CopyrightPanel.svelte index c370f67144..3fec0de6b3 100644 --- a/src/UI/BigComponents/CopyrightPanel.svelte +++ b/src/UI/BigComponents/CopyrightPanel.svelte @@ -4,11 +4,7 @@ import contributors from "../../assets/contributors.json" import translators from "../../assets/translators.json" import { Translation, TypedTranslation } from "../i18n/Translation" - import AccordionSingle from "../Flowbite/AccordionSingle.svelte" import Tr from "../Base/Tr.svelte" - import IconCopyrightPanel from "./IconCopyrightPanel.svelte" - import licenses from "../../assets/generated/license_info.json" - import type SmallLicense from "../../Models/smallLicense" import Constants from "../../Models/Constants" import ContributorCount from "../../Logic/ContributorCount" import BaseUIElement from "../BaseUIElement" @@ -24,7 +20,6 @@ const t = Translations.t.general.attribution const layoutToUse = state.layout - const iconAttributions: string[] = layoutToUse.getUsedImages() let maintainer: Translation = undefined if (layoutToUse.credits !== undefined && layoutToUse.credits !== "") { @@ -53,11 +48,7 @@ return Translations.t.general.attribution.attributionBackgroundLayer.Subs(props) }) - const allLicenses = {} - for (const key in licenses) { - const license: SmallLicense = licenses[key] - allLicenses[license.path] = license - } + function calculateDataContributions(contributions: Map): Translation { if (contributions === undefined) { @@ -121,9 +112,6 @@