diff --git a/.gitignore b/.gitignore
index 3346355..fa74cfc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/config.yaml
+themes/*
.vscode
__debug_bin
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index c80c207..bb7c0c6 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -10,7 +10,8 @@ WORKDIR /
# Create a netrc file using the credentials specified using --build-arg
RUN printf "machine git.coopgo.io\n\
login ${ACCESS_TOKEN_USR}\n\
- password ${ACCESS_TOKEN_PWD}\n"\
+ password ${ACCESS_TOKEN_PWD}\n\
+ \n"\
>> ~/.netrc
RUN chmod 600 ~/.netrc
@@ -21,6 +22,7 @@ RUN go mod download && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /server
FROM scratch
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
+COPY --from=builder /themes/ /themes/
COPY --from=builder /server /
EXPOSE 8080
diff --git a/go.mod b/go.mod
index d453e3c..7f6a52c 100644
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ go 1.18
// replace git.coopgo.io/coopgo-platform/groups-management => ../../coopgo-platform/groups-management/
-replace git.coopgo.io/coopgo-platform/fleets => ../../coopgo-platform/fleets/
+// replace git.coopgo.io/coopgo-platform/fleets => ../../coopgo-platform/fleets/
// replace git.coopgo.io/coopgo-platform/agenda => ../../coopgo-platform/agenda/
@@ -32,9 +32,11 @@ require (
require (
git.coopgo.io/coopgo-platform/agenda v0.0.0-20221017030035-4a26fc791c5b
git.coopgo.io/coopgo-platform/emailing v0.0.0-20221017030337-c71888d90c15
- git.coopgo.io/coopgo-platform/fleets v0.0.0-20220905052643-be9ee8372fdd
+ git.coopgo.io/coopgo-platform/fleets v0.0.0-20221101232521-da16c90fc3ba
git.coopgo.io/coopgo-platform/groups-management v0.0.0-20221017025751-671dc9a2c544
git.coopgo.io/coopgo-platform/mobility-accounts v0.0.0-20220906130339-b9a32e41bffe
+ github.com/gorilla/securecookie v1.1.1
+ github.com/minio/minio-go/v7 v7.0.43
)
require (
@@ -42,14 +44,12 @@ require (
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/dustin/go-humanize v1.0.0 // indirect
github.com/fsnotify/fsnotify v1.5.4 // indirect
- github.com/go-mail/mail v2.3.1+incompatible // indirect
github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/golang/snappy v0.0.1 // indirect
- github.com/gorilla/securecookie v1.1.1 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.15.9 // indirect
@@ -58,7 +58,6 @@ require (
github.com/magiconair/properties v1.8.6 // indirect
github.com/mb0/wkt v0.0.0-20170420051526-a30afd545ee1 // indirect
github.com/minio/md5-simd v1.1.2 // indirect
- github.com/minio/minio-go/v7 v7.0.43 // indirect
github.com/minio/sha256-simd v1.0.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
diff --git a/go.sum b/go.sum
index 59dc913..99e7601 100644
--- a/go.sum
+++ b/go.sum
@@ -40,8 +40,8 @@ git.coopgo.io/coopgo-platform/agenda v0.0.0-20221017030035-4a26fc791c5b h1:7kLW1
git.coopgo.io/coopgo-platform/agenda v0.0.0-20221017030035-4a26fc791c5b/go.mod h1:wqPvfYmzGF2cfXbs8XE1P2j5UYqZwp/La0llkl7dUkc=
git.coopgo.io/coopgo-platform/emailing v0.0.0-20221017030337-c71888d90c15 h1:+ZI4nGE6mqZ6pc7N/BizheEPRXn6Z84Sj7ikwfP2ZcU=
git.coopgo.io/coopgo-platform/emailing v0.0.0-20221017030337-c71888d90c15/go.mod h1:rmbqiHVkONcECOoPlsXlxZnD315Tiz2oRnn1M7646Kg=
-git.coopgo.io/coopgo-platform/fleets v0.0.0-20220905052643-be9ee8372fdd h1:7k5QMwMm6JQ0S2bNqXEe7Ouh8N9N3yAvcWB2GRcIZLk=
-git.coopgo.io/coopgo-platform/fleets v0.0.0-20220905052643-be9ee8372fdd/go.mod h1:s9OIFCNcjBAbBzRNHwoCTYV6kAntPG9CpT3GVweGdTY=
+git.coopgo.io/coopgo-platform/fleets v0.0.0-20221101232521-da16c90fc3ba h1:clfkgihzYa3xWKSY/Sn6VUSydOReh7cpuihvYNkWjNk=
+git.coopgo.io/coopgo-platform/fleets v0.0.0-20221101232521-da16c90fc3ba/go.mod h1:s9OIFCNcjBAbBzRNHwoCTYV6kAntPG9CpT3GVweGdTY=
git.coopgo.io/coopgo-platform/groups-management v0.0.0-20221017025751-671dc9a2c544 h1:rMLP77uIEequVXXZ0X9G1iK2k+xvW/+58ggwxxI6gqY=
git.coopgo.io/coopgo-platform/groups-management v0.0.0-20221017025751-671dc9a2c544/go.mod h1:lozSy6qlIIYhvKKXscZzz28HAtS0qBDUTv5nofLRmYA=
git.coopgo.io/coopgo-platform/mobility-accounts v0.0.0-20220906130339-b9a32e41bffe h1:4OKwfKybR0VsIw2dSM9RtqGWveWPt+JjtiiMIBrg/w0=
@@ -121,8 +121,6 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-mail/mail v2.3.1+incompatible h1:UzNOn0k5lpfVtO31cK3hn6I4VEVGhe3lX8AJBAxXExM=
-github.com/go-mail/mail v2.3.1+incompatible/go.mod h1:VPWjmmNyRsWXQZHVHT3g0YbIINUkSmuKOiLIDkWbL6M=
github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=
@@ -233,7 +231,6 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY=
github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
diff --git a/themes/default/README.md b/themes/default/README.md
deleted file mode 100644
index 0fb22b2..0000000
--- a/themes/default/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# PARCOURSMOB default template
-
-This theme uses :
-
-- [TailwindCSS](https://tailwindcss.com/) as CSS framework and [Tailwind UI components](https://tailwindui.com/)
-- [AlpineJS](https://alpinejs.dev/) lightweight Javascript framework
-
-## TailwindCSS
-
-Look at the [Tailwind CSS docs](https://tailwindcss.com/docs/installation) to know how to install and use Tailwind.
-
-If you installed the Tailwind CLI, run this command from this repository while developing from the web/ directory.
-
-```
-npx tailwind -i ./assets/css/main.css -o public/css/main.css --watch
-```
-
-## Esbuild
-
-To bundle Javascript with esbuild :
-
-```
-npx esbuild assets/js/main.js --bundle --outfile=public/js/main.js
-```
\ No newline at end of file
diff --git a/themes/default/config.yaml b/themes/default/config.yaml
deleted file mode 100644
index 4481431..0000000
--- a/themes/default/config.yaml
+++ /dev/null
@@ -1,208 +0,0 @@
-name: PARCOURSMOB
-
-views:
- generic:
- files:
- - web/layouts/layout.html
- - web/layouts/_partials/mainmenu.html
- dashboard:
- files:
- - web/layouts/dashboard/_partials/agenda-widget.html
- - web/layouts/dashboard/_partials/beneficiaries-widget.html
- - web/layouts/dashboard/dashboard.html
- beneficiaries:
- list:
- files:
- - web/layouts/beneficiaries/list.html
- create:
- files:
- - web/layouts/_partials/address_autocomplete.html
- - web/layouts/beneficiaries/create.html
- display:
- files:
- - web/layouts/_partials/address_autocomplete.html
- - web/layouts/vehicles_management/_partials/vehicle-type-select.html
- - web/layouts/beneficiaries/_partials/beneficiary-vehicles.html
- - web/layouts/beneficiaries/_partials/beneficiary-notes.html
- - web/layouts/beneficiaries/_partials/beneficiary-journeys.html
- - web/layouts/beneficiaries/_partials/beneficiary-events.html
- - web/layouts/beneficiaries/_partials/beneficiary-files.html
- - web/layouts/beneficiaries/display.html
- update:
- files:
- - web/layouts/_partials/address_autocomplete.html
- - web/layouts/beneficiaries/update.html
-
- vehicles:
- search:
- files:
- - web/layouts/_partials/address_autocomplete.html
- - web/layouts/vehicles_management/_partials/vehicle-type-select.html
- - web/layouts/vehicles/search.html
- booking_display:
- files:
- - web/layouts/vehicles/booking-display.html
- bookings_list:
- files:
- - web/layouts/vehicles_management/_partials/bookings-list.html
- - web/layouts/vehicles/bookings-list.html
- vehicles_management:
- overview:
- files:
- - web/layouts/vehicles_management/_partials/bookings-list.html
- - web/layouts/vehicles_management/_partials/vehicles-list.html
- - web/layouts/vehicles_management/overview.html
- bookings_list:
- files:
- - web/layouts/vehicles_management/_partials/bookings-list.html
- - web/layouts/vehicles_management/bookings-list.html
- fleet_add:
- files:
- - web/layouts/_partials/address_autocomplete.html
- - web/layouts/vehicles_management/_partials/vehicle-type-select.html
- - web/layouts/vehicles_management/fleet-add.html
- fleet_display:
- files:
- - web/layouts/vehicles_management/_partials/calendar.html
- - web/layouts/vehicles_management/fleet-display.html
- fleet_update:
- files:
- - web/layouts/_partials/address_autocomplete.html
- - web/layouts/vehicles_management/_partials/vehicle-type-select.html
- - web/layouts/vehicles_management/fleet-update.html
- booking_display:
- files:
- - web/layouts/vehicles_management/booking-display.html
- agenda:
- list:
- files:
- - web/layouts/agenda/home.html
- display_event:
- files:
- - web/layouts/agenda/display-event.html
- create_event:
- files:
- - web/layouts/_partials/address_autocomplete.html
- - web/layouts/agenda/create-event.html
- directory:
- home:
- files:
- - web/layouts/directory/home.html
- journeys:
- search:
- files:
- - web/layouts/_partials/address_autocomplete.html
- - web/layouts/journeys/_partials/journeys-all.html
- - web/layouts/journeys/_partials/journeys-others.html
- - web/layouts/journeys/_partials/journeys-carpool.html
- - web/layouts/journeys/_partials/journeys-public-transit.html
- - web/layouts/journeys/search.html
- support:
- request:
- files:
- - web/layouts/support/support.html
- administration:
- home:
- files:
- - web/layouts/administration/home.html
- create_group:
- files:
- - web/layouts/administration/create_group.html
- display_group:
- files:
- - web/layouts/administration/_partials/groups_admins.html
- - web/layouts/administration/_partials/group_members.html
- - web/layouts/administration/display_group.html
- group:
- settings:
- files:
- - web/layouts/administration/_partials/groups_admins.html
- - web/layouts/administration/_partials/group_members.html
- - web/layouts/group/settings.html
- auth:
- groups:
- files:
- - web/layouts/auth/groups.html
- lost_password:
- init:
- files:
- - web/layouts/auth/lost-password-init.html
- recover:
- form:
- files:
- - web/layouts/auth/lost-password-recover.html
- ko:
- files:
- - web/layouts/auth/lost-password-recover-ko.html
- onboarding:
- form:
- files:
- - web/layouts/auth/onboarding.html
- ko:
- files:
- - web/layouts/auth/onboarding-ko.html
-
-icons:
- svg:
- coopgo:parcoursmob/monogram:
- hero:outline/briefcase:
- hero:outline/support:
- hero:outline/calendar:
- hero:outline/chevron-right:
- hero:outline/cog:
- hero:outline/document-arrow-down:
- hero:outline/document-text:
- hero:outline/folder-plus:
- hero:outline/home:
- hero:outline/map:
- hero:outline/office-building:
- hero:outline/paper-clip:
- hero:outline/plus-circle:
- hero:outline/shield-check:
- hero:outline/table-cells:
- hero:outline/user-group:
- hero:outline/x:
- hero:solid/chevron-right:
- hero:solid/question-mark-icon:
- hero:solid/search:
- hero:solid/selector:
- img:profile-picture-placeholder:
- tabler-icons:car:
- tabler-icons:walk:
- tabler-icons:bus:
-
-emails:
- onboarding:
- new_administrator:
- subject: PARCOURSMOB - Vous avez été invité comme administrateur
- files:
- - emails/layout.html
- - emails/onboarding/new-administrator.html
- existing_administrator:
- subject: PARCOURSMOB - Vous avez été invité comme administrateur
- files:
- - emails/layout.html
- - emails/onboarding/existing-administrator.html
- new_member:
- subject: PARCOURSMOB - Vous avez été invité à rejoindre une organisation
- files:
- - emails/layout.html
- - emails/onboarding/new-member.html
- existing_member:
- subject: PARCOURSMOB - Vous avez été invité à rejoindre une organisation
- files:
- - emails/layout.html
- - emails/onboarding/existing-member.html
- auth:
- retrieve_password:
- subject: PAROURSMOB - Réinitialisez votre mot de passe
- files:
- - emails/layout.html
- - emails/auth/retrieve-password.html
- support:
- request:
- subject: PARCOURMOB - Demande de support
- files:
- - emails/layout.html
- - emails/onboarding/support_emailing.html
-
diff --git a/themes/default/emails/auth/retrieve-password.html b/themes/default/emails/auth/retrieve-password.html
deleted file mode 100644
index 0bc2260..0000000
--- a/themes/default/emails/auth/retrieve-password.html
+++ /dev/null
@@ -1,5 +0,0 @@
-{{define "content"}}
-
Vous avez été ajouté comme administrateur de l'organisation {{.group}} sur PARCOURSMOB.
-Vous avez été ajouté à l'organisation {{.group}} sur PARCOURSMOB.
-Vous avez été ajouté comme administrateur de l'organisation {{.group}} sur PARCOURSMOB.
-Vous devez créer votre compte pour y accéder.
-Vous avez été ajouté à l'organisation {{.group}} sur PARCOURSMOB.
-Vous devez créer votre compte pour y accéder.
-Aucun covoiturage disponible pour ce trajet.
-{{end}}
-
-{{$first := true}}
-{{range .ViewState.carpools}}
-{{if $first}}
-{{$first = false}}
-
-{{else}}
-
-{{end}}
-
- {{if .days.monday}}
-
Départ entre {{.outward.monday.mintime}} et {{.outward.monday.maxtime}}
- {{else if .days.tuesday}}
-
Départ entre {{.outward.tuesday.mintime}} et {{.outward.tuesday.maxtime}}
- {{else if .days.wednesday}}
-
Départ entre {{.outward.wednesday.mintime}} et {{.outward.wednesday.maxtime}}
- {{else if .days.thursday}}
-
Départ entre {{.outward.thursday.mintime}} et {{.outward.thursday.maxtime}}
- {{else if .days.friday}}
-
Départ entre {{.outward.friday.mintime}} et {{.outward.friday.maxtime}}
- {{else if .days.saturday}}
-
Départ entre {{.outward.saturday.mintime}} et {{.outward.saturday.maxtime}}
- {{else if .days.sunday}}
-
Départ entre {{.outward.sunday.mintime}} et {{.outward.sunday.maxtime}}
- {{end}}
-
{{divideFloat64 .duration 60.0 | printf "%.0f"}} Minutes
-
-
-
- {{.from.address}}, {{.from.city}}
-
- {{$.IconSet.Icon "hero:outline/chevron-right" "h-3 w-3 stroke-gray-800 m-2"}}
-
- {{.to.address}}, {{.to.city}}
-
-
-
-
- Avec
-
- {{.driver.alias}}
-
-
- sur l'application
-
- RIDYGO
-
-
-
-{{end}}
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/journeys/_partials/journeys-others.html b/themes/default/web/layouts/journeys/_partials/journeys-others.html
deleted file mode 100644
index 39f2176..0000000
--- a/themes/default/web/layouts/journeys/_partials/journeys-others.html
+++ /dev/null
@@ -1,38 +0,0 @@
-{{define "journeys_others"}}
-
-
-
-
- {{.IconSet.Icon "tabler-icons:car" "h-6 w-6 inline-flex mr-4"}}
- {{len .ViewState.vehicles}} véhicules partagés disponibles ce jour là et la semaine suivante
-
-
-
-
-
-
-
-
- Véhicule
- Numéro
- Gestionnaire
- Lieu
-
-
-
- {{range .ViewState.vehicles}}
-
- {{.Data.name}}
- {{.Data.licence_plate}}
- COOPGO
- {{if .Data.address}}{{.Data.address.properties.label}}{{end}}
-
- {{end}}
-
-
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/journeys/_partials/journeys-public-transit.html b/themes/default/web/layouts/journeys/_partials/journeys-public-transit.html
deleted file mode 100644
index 59bbfab..0000000
--- a/themes/default/web/layouts/journeys/_partials/journeys-public-transit.html
+++ /dev/null
@@ -1,81 +0,0 @@
-{{define "journeys_public_transit"}}
-
-{{ if eq (len .ViewState.journeys.Journeys) 0}}
-
Aucun transport en commun pour ce trajet.
-{{end}}
-
-{{$first := true}}
-{{range .ViewState.journeys.Journeys}}
-{{if $first}}
-{{$first = false}}
-
-{{else}}
-
-{{end}}
-
-
{{(timeFrom .Departure).Format "15:04"}} - {{(timeFrom .Arrival).Format "15:04"}}
-
{{.Duration.Minutes | printf "%.0f"}} Minutes
-
-
-
-
- {{$firstwalk := true}}
- {{range .Sections}}
- {{if eq .Type "street_network"}}
-
-
- {{if $firstwalk}}
- {{$firstwalk = false}}
-
- {{end}}
-
-
-
- {{$.IconSet.Icon "tabler-icons:walk" "h-3 w-3 stroke-gray-800"}}
-
-
-
-
-
-
- {{end}}
- {{if eq .Type "public_transport"}}
-
-
-
-
-
-
- {{$.IconSet.Icon "tabler-icons:bus" "h-5 w-5 stroke-white"}}
-
-
-
-
-
-
-
- {{end}}
- {{end}}
-
-
-
-{{end}}
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/journeys/search.html b/themes/default/web/layouts/journeys/search.html
deleted file mode 100644
index bbe6f8f..0000000
--- a/themes/default/web/layouts/journeys/search.html
+++ /dev/null
@@ -1,120 +0,0 @@
-{{define "content"}}
-
-
Déplacements
-
-
-
-
-
-
Chercher une solution
-
-
-
-
- {{if .ViewState.searched}}
-
-
-
-
-
- Select a tab
-
- Tous modes
-
- Covoiturage
-
- Transports
-
-
-
- Autres
-
-
-
-
-
-
{{template "journeys_all" .}}
-
{{template "journeys_carpool" .}}
-
{{template "journeys_public_transit" .}}
-
{{template "journeys_others" .}}
-
-
-
- {{end}}
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/layout.html b/themes/default/web/layouts/layout.html
deleted file mode 100644
index 980f5c5..0000000
--- a/themes/default/web/layouts/layout.html
+++ /dev/null
@@ -1,178 +0,0 @@
-{{define "main"}}
-
-
-
-
-
PARCOURSMOB
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Close sidebar
- {{ .IconSet.Icon "hero:outline/x" "h-6 w-6" }}
-
-
-
-
-
-
-
-
- {{ template "mainmenu" . }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ template "mainmenu" . }}
-
-
-
-
-
-
- Open sidebar
-
-
-
-
-
-
-
-
-
-
- {{ template "content" . }}
-
-
-
-
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/support/support.html b/themes/default/web/layouts/support/support.html
deleted file mode 100644
index 224bd63..0000000
--- a/themes/default/web/layouts/support/support.html
+++ /dev/null
@@ -1,27 +0,0 @@
-{{define "content"}}
-
-
-
Demande de support technique
-
-
- Le support technique PARCOURSMOB est ouvert les jours ouvrés de 9h à 18h. Vous pouvez également nous joindre par email à support@parcoursmob.fr , par exemple pour nous envoyez des copies d'écran du problème que vous rencontrez.
-
-
-
-
- {{end}}
diff --git a/themes/default/web/layouts/vehicles/booking-display.html b/themes/default/web/layouts/vehicles/booking-display.html
deleted file mode 100644
index 21d19c3..0000000
--- a/themes/default/web/layouts/vehicles/booking-display.html
+++ /dev/null
@@ -1,201 +0,0 @@
-{{define "content"}}
-
-
Réservation de véhicule
-
-
-
-
-
-
Bénéficiaire
-
-
-
-
-
-
Nom
-
- {{.ViewState.beneficiary.Data.first_name}}
- {{.ViewState.beneficiary.Data.last_name}}
-
-
-
Email
-
- {{.ViewState.beneficiary.Data.email}}
-
-
-
Téléphone
-
- {{.ViewState.beneficiary.Data.phone_number}}
-
- {{if .ViewState.Data.birthdate}}
-
-
Date de naissance
- {{(timeFrom
- .ViewState.Data.birthdate).Format
- "02/01/2006"}}
-
- {{end}}
- {{if and .ViewState.Data.gender (ne .ViewState.Data.gender "0")}}
-
-
Date de naissance
- {{genderISO5218
- .ViewState.Data.gender}}
-
- {{end}}
- {{if .ViewState.Data.address}}
-
-
Adresse
-
- {{.ViewState.Data.address.properties.label}}
-
- {{end}}
-
-
-
-
-
-
-
-
-
-
-
-
Réservation
-
Informations utiles sur la réservation.
-
-
-
-
-
-
-
-
-
-
-
-
-
Gestionnaire
-
- {{.ViewState.group.Data.name}}
-
-
- {{if .ViewState.booking.Data.booked_by}}
-
- {{end}}
-
-
Véhicule
-
- {{.ViewState.vehicle.Data.name}}
-
-
-
Immatriculation
-
- {{.ViewState.vehicle.Data.licence_plate}}
-
-
-
Type
-
- Voiture
-
- {{if .ViewState.vehicle.Data.address}}
-
-
Lieu de récupération
- {{.ViewState.vehicle.Data.address.properties.label}}
-
- {{end}}
-
-
Date de récupération
- {{(timeFrom .ViewState.booking.Startdate).Format
- "02/01/2006"}}
-
-
-
Date de retour
- {{(timeFrom .ViewState.booking.Enddate).Format
- "02/01/2006"}}
-
-
-
Documents
- {{if eq (len .ViewState.documents) 0}}
-
Aucun document
- {{end}}
-
-
- {{if gt (len .ViewState.documents) 0}}
-
-
-
-
-
- Type
- Nom du document
- Ajouté le
-
- Actions
-
-
-
-
- {{range .ViewState.documents}}
-
-
-
- {{index $.ViewState.file_types_map .Metadata.Type}}
-
-
-
- {{.Metadata.Name}}
-
- {{.LastModified.Format "02/01/2006"}}
-
-
- Voir le document
-
-
-
- {{end}}
-
-
-
-
-
-
-
- {{end}}
-
-
-
-
-
-
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles/bookings-list.html b/themes/default/web/layouts/vehicles/bookings-list.html
deleted file mode 100644
index 5cc979c..0000000
--- a/themes/default/web/layouts/vehicles/bookings-list.html
+++ /dev/null
@@ -1,68 +0,0 @@
-{{define "content"}}
-
-
Réservations
-
-
-
-
-
-
-
-
-
-
-
-
- Type
-
-
- Beneficiaire
-
-
- Dates
-
-
- Actions
-
-
-
-
-
- {{range .ViewState.bookings}}
-
-
-
- Voiture
-
-
-
-
-
-
- Du {{(timeFrom .Startdate).Format "02/01/2006"}} au {{(timeFrom .Enddate).Format "02/01/2006"}}
-
-
- Voir
-
-
- {{end}}
-
-
-
-
-
-
-
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles/search.html b/themes/default/web/layouts/vehicles/search.html
deleted file mode 100644
index b9d4845..0000000
--- a/themes/default/web/layouts/vehicles/search.html
+++ /dev/null
@@ -1,237 +0,0 @@
-{{define "content"}}
-
-
Véhicules partagés
-
-
-
-
-
-
-
Chercher un véhicule
-
-
-
-
-
-
Bénéficiaire
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{template "vehicle_type_select" .}}
-
-
- Chercher
-
-
-
-
-
-
- {{if .ViewState.searched}}
-
-
Véhicules disponibles
-
-
-
-
-
-
- Véhicule
- Numéro
- Gestionnaire
- Lieu
-
- Réserver
-
-
-
-
- {{range .ViewState.search.vehicles}}
-
- {{.Data.name}}
- {{.Data.licence_plate}}
- COOPGO
- {{if .Data.address}}{{.Data.address.properties.label}}{{end}}
-
-
- Réserver pour {{$.ViewState.search.beneficiary.Data.first_name}} {{$.ViewState.search.beneficiary.Data.last_name}}
-
-
-
-
-
-
-
-
-
-
-
- {{$.IconSet.Icon "hero:outline/folder-plus" "h-6 w-6 text-white"}}
-
-
-
-
Documents demandés
-
-
Ajoutez des documents pour finaliser
-
-
-
-
- {{range $.ViewState.search.mandatory_documents}}
- {{$type := .}}
-
-
{{index $.ViewState.search.file_types_map $type}}
-
- {{range $.ViewState.search.beneficiary_documents}}
- {{if eq $type .Metadata.Type}}
- Fichier bénéficiaire : {{.Metadata.Name}}
- {{end}}
- {{end}}
- Ajouter un fichier
-
-
-
-
-
- {{end}}
-
- Réserver
-
-
-
- Annuler
-
-
-
-
-
-
-
- {{end}}
-
-
-
-
-
-
- {{end}}
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/_partials/bookings-list.html b/themes/default/web/layouts/vehicles_management/_partials/bookings-list.html
deleted file mode 100644
index 77a477d..0000000
--- a/themes/default/web/layouts/vehicles_management/_partials/bookings-list.html
+++ /dev/null
@@ -1,77 +0,0 @@
-{{define "bookings_list"}}
-
-
-
-
-
-
-
-
-
- Statut
-
-
- Type
-
-
- Numéro (Immat / Bicycode)
-
-
- Beneficiaire
-
-
- Dates
-
-
- Actions
-
-
-
-
- {{range .ViewState.bookings}}
-
-
- {{if eq .Status 1 }}
-
- A venir
-
- {{end}}
- {{if eq .Status 0 }}
-
- En cours
-
- {{end}}
- {{if eq .Status -1 }}
-
- Terminé
-
- {{end}}
-
-
- {{ (index $.ViewState.vehicles_map .Vehicleid).Type }}
-
-
- {{ (index $.ViewState.vehicles_map .Vehicleid).Data.licence_plate }}
-
-
-
-
-
- Du {{(timeFrom .Startdate).Format "02/01/2006"}} au {{(timeFrom .Enddate).Format "02/01/2006"}}
-
-
- Voir
-
-
- {{end}}
-
-
-
-
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/_partials/calendar.html b/themes/default/web/layouts/vehicles_management/_partials/calendar.html
deleted file mode 100644
index 5a6dbb5..0000000
--- a/themes/default/web/layouts/vehicles_management/_partials/calendar.html
+++ /dev/null
@@ -1,259 +0,0 @@
-{{define "calendar"}}
-
-
Août 2022
-
- Mois précédent
-
-
-
-
-
-
- Mois suivant
-
-
-
-
-
-
-
-
L
-
M
-
M
-
J
-
V
-
S
-
D
-
-
-
-
-
- 1
-
-
-
-
- 2
-
-
-
-
- 3
-
-
-
-
- 4
-
-
-
-
- 5
-
-
-
-
- 6
-
-
-
-
- 7
-
-
-
-
- 8
-
-
-
-
- 9
-
-
-
-
- 10
-
-
-
-
- 11
-
-
-
-
- 12
-
-
-
-
- 13
-
-
-
-
- 14
-
-
-
-
- 15
-
-
-
-
- 16
-
-
-
-
- 17
-
-
-
-
- 18
-
-
-
-
- 19
-
-
-
-
- 20
-
-
-
-
- 21
-
-
-
-
- 22
-
-
-
-
- 23
-
-
-
-
- 24
-
-
-
-
- 25
-
-
-
-
- 26
-
-
-
-
- 27
-
-
-
-
- 28
-
-
-
-
- 29
-
-
-
-
- 30
-
-
-
-
- 31
-
-
-
-
- 1
-
-
-
-
- 2
-
-
-
-
- 3
-
-
-
-
- 4
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/_partials/vehicle-type-select.html b/themes/default/web/layouts/vehicles_management/_partials/vehicle-type-select.html
deleted file mode 100644
index eaadfa0..0000000
--- a/themes/default/web/layouts/vehicles_management/_partials/vehicle-type-select.html
+++ /dev/null
@@ -1,105 +0,0 @@
-{{define "vehicle_type_select"}}
-
-
-
Type de véhicule
-
-
-
-
- {{$.IconSet.Icon "hero:solid/selector" "h-5 w-5 text-gray-400"}}
-
-
-
-
-
-
-
- Voiture
-
-
-
-
-
-
-
-
- Voiture sans permis
-
-
-
-
-
-
-
-
- Scooter
-
-
-
-
-
-
-
-
- Trotinette
-
-
-
-
-
-
-
-
- Vélo électrique
-
-
-
-
-
-
-
-
-
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/_partials/vehicles-list.html b/themes/default/web/layouts/vehicles_management/_partials/vehicles-list.html
deleted file mode 100644
index c8840ae..0000000
--- a/themes/default/web/layouts/vehicles_management/_partials/vehicles-list.html
+++ /dev/null
@@ -1,56 +0,0 @@
-{{define "vehicles_list"}}
-
-
-
-
-
-
-
-
-
- Numéro (Immat / Bicycode)
-
-
- Type
-
-
- Modèle
-
-
- Lieu
-
-
- Actions
-
-
-
-
- {{range .ViewState.vehicles}}
-
-
- {{.Data.licence_plate}}
-
-
- {{if eq .Type "electric_bike"}}Vélo électrique{{else}}Voiture{{end}}
-
-
- {{.Data.name}}
-
-
- {{if .Data.address}}{{.Data.address.properties.label}}{{end}}
-
-
- Voir
-
-
- {{end}}
-
-
-
-
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/booking-display.html b/themes/default/web/layouts/vehicles_management/booking-display.html
deleted file mode 100644
index 2a767fd..0000000
--- a/themes/default/web/layouts/vehicles_management/booking-display.html
+++ /dev/null
@@ -1,276 +0,0 @@
-{{define "content"}}
-
-
Réservation de véhicule
-
-
-
-
-
-
Bénéficiaire
-
-
-
-
-
-
Nom
-
- {{.ViewState.beneficiary.Data.first_name}}
- {{.ViewState.beneficiary.Data.last_name}}
-
-
-
Email
-
- {{.ViewState.beneficiary.Data.email}}
-
-
-
Téléphone
-
- {{.ViewState.beneficiary.Data.phone_number}}
-
- {{if .ViewState.Data.birthdate}}
-
-
Date de naissance
- {{(timeFrom
- .ViewState.Data.birthdate).Format
- "02/01/2006"}}
-
- {{end}}
- {{if and .ViewState.Data.gender (ne .ViewState.Data.gender "0")}}
-
-
Date de naissance
- {{genderISO5218
- .ViewState.Data.gender}}
-
- {{end}}
- {{if .ViewState.Data.address}}
-
-
Adresse
-
- {{.ViewState.Data.address.properties.label}}
-
-
- {{end}}
-
-
-
-
-
-
-
-
-
-
-
-
Réservation
-
Informations utiles sur la réservation.
-
-
- SMS
- Email
-
-
-
-
-
-
-
-
-
- {{if .ViewState.booking.Data.booked_by}}
-
-
- {{end}}
-
-
Véhicule
-
- {{.ViewState.vehicle.Data.name}}
-
-
-
Immatriculation
-
- {{.ViewState.vehicle.Data.licence_plate}}
-
-
-
Type
-
- Voiture
-
- {{if .ViewState.vehicle.Data.address}}
-
-
Lieu de récupération
- {{.ViewState.vehicle.Data.address.properties.label}}
-
- {{end}}
-
-
Date de récupération
-
-
-
{{(timeFrom .ViewState.booking.Startdate).Format "02/01/2006"}}
-
Modifier
-
-
-
-
-
-
- OK
-
-
-
-
-
-
Date de retour
-
-
-
{{(timeFrom .ViewState.booking.Enddate).Format "02/01/2006"}}
-
Modifier
-
-
-
-
-
-
- OK
-
-
-
-
-
-
Indisponible à partir du
-
-
-
{{(timeFrom .ViewState.booking.Unavailablefrom).Format "02/01/2006"}}
-
Modifier
-
-
-
-
-
-
- OK
-
-
-
-
-
-
Sera à nouveau disponible le
-
-
-
{{(timeFrom .ViewState.booking.Unavailableto).Format "02/01/2006"}}
-
Modifier
-
-
-
-
-
-
- OK
-
-
-
-
-
Documents
- {{if eq (len .ViewState.documents) 0}}
-
Aucun document
- {{end}}
-
-
- {{if gt (len .ViewState.documents) 0}}
-
-
-
-
-
- Type
- Nom du document
- Ajouté le
-
- Actions
-
-
-
-
- {{range .ViewState.documents}}
-
-
-
- {{index $.ViewState.file_types_map .Metadata.Type}}
-
-
-
- {{.Metadata.Name}}
-
- {{.LastModified.Format "02/01/2006"}}
-
-
- Voir le document
-
-
-
- {{end}}
-
-
-
-
-
-
-
- {{end}}
-
-
-
-
-
-
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/bookings-list.html b/themes/default/web/layouts/vehicles_management/bookings-list.html
deleted file mode 100644
index 6bd90c0..0000000
--- a/themes/default/web/layouts/vehicles_management/bookings-list.html
+++ /dev/null
@@ -1,25 +0,0 @@
-{{define "content"}}
-
-
Historique des réservations de véhicules
-
-
-
-
-
-{{template "bookings_list" .}}
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/fleet-add.html b/themes/default/web/layouts/vehicles_management/fleet-add.html
deleted file mode 100644
index 55ae759..0000000
--- a/themes/default/web/layouts/vehicles_management/fleet-add.html
+++ /dev/null
@@ -1,106 +0,0 @@
-{{define "content"}}
-
-
-
-
Ajouter un véhicule
-
-
-
-
-
-
-
-
Identité du véhicule
-
Informations de base sur le véhicule
-
-
-
-
- Modèle (ou nom donné au
- véhicule)
-
-
-
- {{template "vehicle_type_select" .}}
-
-
- Immatriculation
-
-
-
-
-
-
-
-
-
-
Informations pratiques
-
Informations pratiques pour la réservation
-
-
- {{ $fieldName := "address" }}
- {{ template "address_autocomplete" dict "FieldName" $fieldName }}
-
-
-
Informations pratiques pour le bénéficiaire
-
-
-
-
-
-
-
-
-
-
Certains champs de sont pas valides.
-
- Annuler
-
-
Ajouter
- le véhicule
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/fleet-display.html b/themes/default/web/layouts/vehicles_management/fleet-display.html
deleted file mode 100644
index d786100..0000000
--- a/themes/default/web/layouts/vehicles_management/fleet-display.html
+++ /dev/null
@@ -1,90 +0,0 @@
-{{define "content"}}
-
-
-
-
-
-
{{.ViewState.vehicle.Data.name}}
-
-
-
-
-
-
-
-
-
-
Informations
-
Informations sur le véhicule
-
-
-
- {{if .ViewState.vehicle.Data.type}}
-
-
Type
- {{if eq .ViewState.vehicle.Data.type "electric_bike"}}Vélo électrique{{else}}Voiture{{end}}
-
- {{else}}
-
-
Type
- Voiture
-
- {{end}}
- {{if .ViewState.vehicle.Data.licence_plate}}
-
-
Numéro (Immatriculation, bicycode, ...)
- {{.ViewState.vehicle.Data.licence_plate}}
-
- {{end}}
- {{if .ViewState.vehicle.Data.address}}
-
-
Lieu
- {{.ViewState.vehicle.Data.address.properties.label}}
-
- {{end}}
- {{if .ViewState.vehicle.Data.informations}}
-
-
Informations pratiques pour le bénéficiaire
- {{.ViewState.vehicle.Data.informations}}
-
- {{end}}
-
-
-
-
-
-
-
-
Réservations à venir
- {{if eq (len .ViewState.vehicle.Bookings) 0}}
-
Aucune réservation à venir
- {{end}}
-
- {{range .ViewState.vehicle.Bookings}}
-
-
-
- {{end}}
-
- {{template "calendar" .}}
-
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/fleet-update.html b/themes/default/web/layouts/vehicles_management/fleet-update.html
deleted file mode 100644
index 88b6770..0000000
--- a/themes/default/web/layouts/vehicles_management/fleet-update.html
+++ /dev/null
@@ -1,106 +0,0 @@
-{{define "content"}}
-
-
-
-
Modifier un véhicule
-
-
-
-
-
-
-
-
Identité du véhicule
-
Informations de base sur le véhicule
-
-
-
-
- Modèle (ou nom donné au
- véhicule)
-
-
-
- {{template "vehicle_type_select" .}}
-
-
- Immatriculation
-
-
-
-
-
-
-
-
-
-
Informations pratiques
-
Informations pratiques pour la réservation
-
-
- {{ $fieldName := "address" }}
- {{ template "address_autocomplete" (dict "FieldName" $fieldName "Address" .ViewState.vehicle.Data.address) }}
-
-
-
Informations pratiques pour le bénéficiaire
-
-
-
-
-
-
-
-
-
-
Certains champs de sont pas valides.
-
- Annuler
-
-
Modifier
- le véhicule
-
-
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/layouts/vehicles_management/overview.html b/themes/default/web/layouts/vehicles_management/overview.html
deleted file mode 100644
index 60fd3ab..0000000
--- a/themes/default/web/layouts/vehicles_management/overview.html
+++ /dev/null
@@ -1,45 +0,0 @@
-{{define "content"}}
-
-
Gestion des véhicules et réservations
-
-
-
-
-
Réservations en cours et à venir
-
-
-
-
-
-{{template "bookings_list" .}}
-
-
-
-{{template "vehicles_list" .}}
-
-{{end}}
\ No newline at end of file
diff --git a/themes/default/web/public/css/main.css b/themes/default/web/public/css/main.css
deleted file mode 100644
index 868f308..0000000
--- a/themes/default/web/public/css/main.css
+++ /dev/null
@@ -1,2889 +0,0 @@
-/*
-! tailwindcss v3.1.6 | MIT License | https://tailwindcss.com
-*/
-
-/*
-1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
-2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
-*/
-
-*,
-::before,
-::after {
- box-sizing: border-box;
- /* 1 */
- border-width: 0;
- /* 2 */
- border-style: solid;
- /* 2 */
- border-color: #e5e7eb;
- /* 2 */
-}
-
-::before,
-::after {
- --tw-content: '';
-}
-
-/*
-1. Use a consistent sensible line-height in all browsers.
-2. Prevent adjustments of font size after orientation changes in iOS.
-3. Use a more readable tab size.
-4. Use the user's configured `sans` font-family by default.
-*/
-
-html {
- line-height: 1.5;
- /* 1 */
- -webkit-text-size-adjust: 100%;
- /* 2 */
- -moz-tab-size: 4;
- /* 3 */
- -o-tab-size: 4;
- tab-size: 4;
- /* 3 */
- font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
- /* 4 */
-}
-
-/*
-1. Remove the margin in all browsers.
-2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
-*/
-
-body {
- margin: 0;
- /* 1 */
- line-height: inherit;
- /* 2 */
-}
-
-/*
-1. Add the correct height in Firefox.
-2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
-3. Ensure horizontal rules are visible by default.
-*/
-
-hr {
- height: 0;
- /* 1 */
- color: inherit;
- /* 2 */
- border-top-width: 1px;
- /* 3 */
-}
-
-/*
-Add the correct text decoration in Chrome, Edge, and Safari.
-*/
-
-abbr:where([title]) {
- -webkit-text-decoration: underline dotted;
- text-decoration: underline dotted;
-}
-
-/*
-Remove the default font size and weight for headings.
-*/
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-size: inherit;
- font-weight: inherit;
-}
-
-/*
-Reset links to optimize for opt-in styling instead of opt-out.
-*/
-
-a {
- color: inherit;
- text-decoration: inherit;
-}
-
-/*
-Add the correct font weight in Edge and Safari.
-*/
-
-b,
-strong {
- font-weight: bolder;
-}
-
-/*
-1. Use the user's configured `mono` font family by default.
-2. Correct the odd `em` font sizing in all browsers.
-*/
-
-code,
-kbd,
-samp,
-pre {
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
- /* 1 */
- font-size: 1em;
- /* 2 */
-}
-
-/*
-Add the correct font size in all browsers.
-*/
-
-small {
- font-size: 80%;
-}
-
-/*
-Prevent `sub` and `sup` elements from affecting the line height in all browsers.
-*/
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-/*
-1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
-2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
-3. Remove gaps between table borders by default.
-*/
-
-table {
- text-indent: 0;
- /* 1 */
- border-color: inherit;
- /* 2 */
- border-collapse: collapse;
- /* 3 */
-}
-
-/*
-1. Change the font styles in all browsers.
-2. Remove the margin in Firefox and Safari.
-3. Remove default padding in all browsers.
-*/
-
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: inherit;
- /* 1 */
- font-size: 100%;
- /* 1 */
- font-weight: inherit;
- /* 1 */
- line-height: inherit;
- /* 1 */
- color: inherit;
- /* 1 */
- margin: 0;
- /* 2 */
- padding: 0;
- /* 3 */
-}
-
-/*
-Remove the inheritance of text transform in Edge and Firefox.
-*/
-
-button,
-select {
- text-transform: none;
-}
-
-/*
-1. Correct the inability to style clickable types in iOS and Safari.
-2. Remove default button styles.
-*/
-
-button,
-[type='button'],
-[type='reset'],
-[type='submit'] {
- -webkit-appearance: button;
- /* 1 */
- background-color: transparent;
- /* 2 */
- background-image: none;
- /* 2 */
-}
-
-/*
-Use the modern Firefox focus style for all focusable elements.
-*/
-
-:-moz-focusring {
- outline: auto;
-}
-
-/*
-Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
-*/
-
-:-moz-ui-invalid {
- box-shadow: none;
-}
-
-/*
-Add the correct vertical alignment in Chrome and Firefox.
-*/
-
-progress {
- vertical-align: baseline;
-}
-
-/*
-Correct the cursor style of increment and decrement buttons in Safari.
-*/
-
-::-webkit-inner-spin-button,
-::-webkit-outer-spin-button {
- height: auto;
-}
-
-/*
-1. Correct the odd appearance in Chrome and Safari.
-2. Correct the outline style in Safari.
-*/
-
-[type='search'] {
- -webkit-appearance: textfield;
- /* 1 */
- outline-offset: -2px;
- /* 2 */
-}
-
-/*
-Remove the inner padding in Chrome and Safari on macOS.
-*/
-
-::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/*
-1. Correct the inability to style clickable types in iOS and Safari.
-2. Change font properties to `inherit` in Safari.
-*/
-
-::-webkit-file-upload-button {
- -webkit-appearance: button;
- /* 1 */
- font: inherit;
- /* 2 */
-}
-
-/*
-Add the correct display in Chrome and Safari.
-*/
-
-summary {
- display: list-item;
-}
-
-/*
-Removes the default spacing and border for appropriate elements.
-*/
-
-blockquote,
-dl,
-dd,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-hr,
-figure,
-p,
-pre {
- margin: 0;
-}
-
-fieldset {
- margin: 0;
- padding: 0;
-}
-
-legend {
- padding: 0;
-}
-
-ol,
-ul,
-menu {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-
-/*
-Prevent resizing textareas horizontally by default.
-*/
-
-textarea {
- resize: vertical;
-}
-
-/*
-1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
-2. Set the default placeholder color to the user's configured gray 400 color.
-*/
-
-input::-moz-placeholder, textarea::-moz-placeholder {
- opacity: 1;
- /* 1 */
- color: #9ca3af;
- /* 2 */
-}
-
-input:-ms-input-placeholder, textarea:-ms-input-placeholder {
- opacity: 1;
- /* 1 */
- color: #9ca3af;
- /* 2 */
-}
-
-input::placeholder,
-textarea::placeholder {
- opacity: 1;
- /* 1 */
- color: #9ca3af;
- /* 2 */
-}
-
-/*
-Set the default cursor for buttons.
-*/
-
-button,
-[role="button"] {
- cursor: pointer;
-}
-
-/*
-Make sure disabled buttons don't get the pointer cursor.
-*/
-
-:disabled {
- cursor: default;
-}
-
-/*
-1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
-2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
- This can trigger a poorly considered lint error in some tools but is included by design.
-*/
-
-img,
-svg,
-video,
-canvas,
-audio,
-iframe,
-embed,
-object {
- display: block;
- /* 1 */
- vertical-align: middle;
- /* 2 */
-}
-
-/*
-Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
-*/
-
-img,
-video {
- max-width: 100%;
- height: auto;
-}
-
-[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;
- -moz-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: #2563eb;
- --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: #2563eb;
-}
-
-input::-moz-placeholder, textarea::-moz-placeholder {
- color: #6b7280;
- opacity: 1;
-}
-
-input:-ms-input-placeholder, textarea:-ms-input-placeholder {
- color: #6b7280;
- opacity: 1;
-}
-
-input::placeholder,textarea::placeholder {
- color: #6b7280;
- opacity: 1;
-}
-
-::-webkit-datetime-edit-fields-wrapper {
- padding: 0;
-}
-
-::-webkit-date-and-time-value {
- min-height: 1.5em;
-}
-
-::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {
- padding-top: 0;
- padding-bottom: 0;
-}
-
-select {
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
- background-position: right 0.5rem center;
- background-repeat: no-repeat;
- background-size: 1.5em 1.5em;
- padding-right: 2.5rem;
- -webkit-print-color-adjust: exact;
- color-adjust: exact;
- print-color-adjust: exact;
-}
-
-[multiple] {
- background-image: initial;
- background-position: initial;
- background-repeat: unset;
- background-size: initial;
- padding-right: 0.75rem;
- -webkit-print-color-adjust: unset;
- color-adjust: unset;
- print-color-adjust: unset;
-}
-
-[type='checkbox'],[type='radio'] {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- padding: 0;
- -webkit-print-color-adjust: exact;
- color-adjust: exact;
- print-color-adjust: exact;
- display: inline-block;
- vertical-align: middle;
- background-origin: border-box;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- flex-shrink: 0;
- height: 1rem;
- width: 1rem;
- color: #2563eb;
- 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: #2563eb;
- --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 {
- border-color: transparent;
- background-color: currentColor;
- background-size: 100% 100%;
- background-position: center;
- background-repeat: no-repeat;
-}
-
-[type='checkbox']:checked {
- background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
-}
-
-[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");
-}
-
-[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {
- border-color: transparent;
- background-color: currentColor;
-}
-
-[type='checkbox']:indeterminate {
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");
- border-color: transparent;
- background-color: currentColor;
- background-size: 100% 100%;
- background-position: center;
- background-repeat: no-repeat;
-}
-
-[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 solid ButtonText;
- outline: 1px auto -webkit-focus-ring-color;
-}
-
-html {
- font-family: Bitter, serif;
-}
-
-*, ::before, ::after {
- --tw-border-spacing-x: 0;
- --tw-border-spacing-y: 0;
- --tw-translate-x: 0;
- --tw-translate-y: 0;
- --tw-rotate: 0;
- --tw-skew-x: 0;
- --tw-skew-y: 0;
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
- --tw-scroll-snap-strictness: proximity;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: rgb(59 130 246 / 0.5);
- --tw-ring-offset-shadow: 0 0 #0000;
- --tw-ring-shadow: 0 0 #0000;
- --tw-shadow: 0 0 #0000;
- --tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
-}
-
-::-webkit-backdrop {
- --tw-border-spacing-x: 0;
- --tw-border-spacing-y: 0;
- --tw-translate-x: 0;
- --tw-translate-y: 0;
- --tw-rotate: 0;
- --tw-skew-x: 0;
- --tw-skew-y: 0;
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
- --tw-scroll-snap-strictness: proximity;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: rgb(59 130 246 / 0.5);
- --tw-ring-offset-shadow: 0 0 #0000;
- --tw-ring-shadow: 0 0 #0000;
- --tw-shadow: 0 0 #0000;
- --tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
-}
-
-::backdrop {
- --tw-border-spacing-x: 0;
- --tw-border-spacing-y: 0;
- --tw-translate-x: 0;
- --tw-translate-y: 0;
- --tw-rotate: 0;
- --tw-skew-x: 0;
- --tw-skew-y: 0;
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
- --tw-scroll-snap-strictness: proximity;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: rgb(59 130 246 / 0.5);
- --tw-ring-offset-shadow: 0 0 #0000;
- --tw-ring-shadow: 0 0 #0000;
- --tw-shadow: 0 0 #0000;
- --tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
-}
-
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border-width: 0;
-}
-
-.pointer-events-none {
- pointer-events: none;
-}
-
-.visible {
- visibility: visible;
-}
-
-.fixed {
- position: fixed;
-}
-
-.absolute {
- position: absolute;
-}
-
-.relative {
- position: relative;
-}
-
-.sticky {
- position: -webkit-sticky;
- position: sticky;
-}
-
-.inset-0 {
- top: 0px;
- right: 0px;
- bottom: 0px;
- left: 0px;
-}
-
-.inset-y-0 {
- top: 0px;
- bottom: 0px;
-}
-
-.top-0 {
- top: 0px;
-}
-
-.right-0 {
- right: 0px;
-}
-
-.left-0 {
- left: 0px;
-}
-
-.top-4 {
- top: 1rem;
-}
-
-.left-4 {
- left: 1rem;
-}
-
-.z-40 {
- z-index: 40;
-}
-
-.z-10 {
- z-index: 10;
-}
-
-.z-0 {
- z-index: 0;
-}
-
-.col-span-6 {
- grid-column: span 6 / span 6;
-}
-
-.col-span-1 {
- grid-column: span 1 / span 1;
-}
-
-.col-span-3 {
- grid-column: span 3 / span 3;
-}
-
-.col-span-5 {
- grid-column: span 5 / span 5;
-}
-
-.m-2 {
- margin: 0.5rem;
-}
-
-.m-4 {
- margin: 1rem;
-}
-
-.-mx-4 {
- margin-left: -1rem;
- margin-right: -1rem;
-}
-
-.mx-auto {
- margin-left: auto;
- margin-right: auto;
-}
-
-.-my-2 {
- margin-top: -0.5rem;
- margin-bottom: -0.5rem;
-}
-
-.my-4 {
- margin-top: 1rem;
- margin-bottom: 1rem;
-}
-
-.my-8 {
- margin-top: 2rem;
- margin-bottom: 2rem;
-}
-
-.-my-1\.5 {
- margin-top: -0.375rem;
- margin-bottom: -0.375rem;
-}
-
-.-my-1 {
- margin-top: -0.25rem;
- margin-bottom: -0.25rem;
-}
-
-.-mr-12 {
- margin-right: -3rem;
-}
-
-.ml-1 {
- margin-left: 0.25rem;
-}
-
-.mt-5 {
- margin-top: 1.25rem;
-}
-
-.ml-4 {
- margin-left: 1rem;
-}
-
-.ml-3 {
- margin-left: 0.75rem;
-}
-
-.mt-2 {
- margin-top: 0.5rem;
-}
-
-.mt-1 {
- margin-top: 0.25rem;
-}
-
-.mt-10 {
- margin-top: 2.5rem;
-}
-
-.mr-2 {
- margin-right: 0.5rem;
-}
-
-.mr-4 {
- margin-right: 1rem;
-}
-
-.mt-8 {
- margin-top: 2rem;
-}
-
-.mt-4 {
- margin-top: 1rem;
-}
-
-.mt-6 {
- margin-top: 1.5rem;
-}
-
-.mt-3 {
- margin-top: 0.75rem;
-}
-
-.mr-3 {
- margin-right: 0.75rem;
-}
-
-.mr-1\.5 {
- margin-right: 0.375rem;
-}
-
-.mr-1 {
- margin-right: 0.25rem;
-}
-
-.ml-5 {
- margin-left: 1.25rem;
-}
-
-.ml-2 {
- margin-left: 0.5rem;
-}
-
-.mb-4 {
- margin-bottom: 1rem;
-}
-
-.ml-6 {
- margin-left: 1.5rem;
-}
-
-.-mb-px {
- margin-bottom: -1px;
-}
-
-.-ml-4 {
- margin-left: -1rem;
-}
-
-.-mt-4 {
- margin-top: -1rem;
-}
-
-.mb-10 {
- margin-bottom: 2.5rem;
-}
-
-.-mt-2 {
- margin-top: -0.5rem;
-}
-
-.-mb-8 {
- margin-bottom: -2rem;
-}
-
-.-ml-px {
- margin-left: -1px;
-}
-
-.ml-16 {
- margin-left: 4rem;
-}
-
-.-mr-1\.5 {
- margin-right: -0.375rem;
-}
-
-.-mr-1 {
- margin-right: -0.25rem;
-}
-
-.block {
- display: block;
-}
-
-.inline-block {
- display: inline-block;
-}
-
-.inline {
- display: inline;
-}
-
-.flex {
- display: flex;
-}
-
-.inline-flex {
- display: inline-flex;
-}
-
-.table {
- display: table;
-}
-
-.table-cell {
- display: table-cell;
-}
-
-.flow-root {
- display: flow-root;
-}
-
-.grid {
- display: grid;
-}
-
-.hidden {
- display: none;
-}
-
-.h-full {
- height: 100%;
-}
-
-.h-10 {
- height: 2.5rem;
-}
-
-.h-6 {
- height: 1.5rem;
-}
-
-.h-8 {
- height: 2rem;
-}
-
-.h-0 {
- height: 0px;
-}
-
-.h-16 {
- height: 4rem;
-}
-
-.h-5 {
- height: 1.25rem;
-}
-
-.h-4 {
- height: 1rem;
-}
-
-.h-12 {
- height: 3rem;
-}
-
-.h-3 {
- height: 0.75rem;
-}
-
-.max-h-60 {
- max-height: 15rem;
-}
-
-.min-h-full {
- min-height: 100%;
-}
-
-.w-full {
- width: 100%;
-}
-
-.w-10 {
- width: 2.5rem;
-}
-
-.w-6 {
- width: 1.5rem;
-}
-
-.w-auto {
- width: auto;
-}
-
-.w-14 {
- width: 3.5rem;
-}
-
-.w-5 {
- width: 1.25rem;
-}
-
-.w-48 {
- width: 12rem;
-}
-
-.w-8 {
- width: 2rem;
-}
-
-.w-4 {
- width: 1rem;
-}
-
-.w-16 {
- width: 4rem;
-}
-
-.w-11 {
- width: 2.75rem;
-}
-
-.w-12 {
- width: 3rem;
-}
-
-.w-3 {
- width: 0.75rem;
-}
-
-.w-0\.5 {
- width: 0.125rem;
-}
-
-.w-0 {
- width: 0px;
-}
-
-.w-20 {
- width: 5rem;
-}
-
-.min-w-full {
- min-width: 100%;
-}
-
-.min-w-0 {
- min-width: 0px;
-}
-
-.max-w-xs {
- max-width: 20rem;
-}
-
-.max-w-7xl {
- max-width: 80rem;
-}
-
-.max-w-3xl {
- max-width: 48rem;
-}
-
-.max-w-2xl {
- max-width: 42rem;
-}
-
-.max-w-lg {
- max-width: 32rem;
-}
-
-.max-w-sm {
- max-width: 24rem;
-}
-
-.max-w-full {
- max-width: 100%;
-}
-
-.flex-1 {
- flex: 1 1 0%;
-}
-
-.flex-auto {
- flex: 1 1 auto;
-}
-
-.flex-none {
- flex: none;
-}
-
-.flex-shrink-0 {
- flex-shrink: 0;
-}
-
-.shrink {
- flex-shrink: 1;
-}
-
-.flex-grow {
- flex-grow: 1;
-}
-
-.table-fixed {
- table-layout: fixed;
-}
-
-.origin-top-right {
- transform-origin: top right;
-}
-
-.-translate-x-full {
- --tw-translate-x: -100%;
- 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));
-}
-
-.translate-x-0 {
- --tw-translate-x: 0px;
- 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));
-}
-
-.translate-x-5 {
- --tw-translate-x: 1.25rem;
- 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));
-}
-
-.translate-y-4 {
- --tw-translate-y: 1rem;
- 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));
-}
-
-.translate-y-0 {
- --tw-translate-y: 0px;
- 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));
-}
-
-.scale-95 {
- --tw-scale-x: .95;
- --tw-scale-y: .95;
- 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));
-}
-
-.scale-100 {
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- 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));
-}
-
-.transform {
- 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));
-}
-
-.cursor-default {
- cursor: default;
-}
-
-.cursor-pointer {
- cursor: pointer;
-}
-
-.select-none {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.resize-none {
- resize: none;
-}
-
-.appearance-none {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
-}
-
-.grid-cols-6 {
- grid-template-columns: repeat(6, minmax(0, 1fr));
-}
-
-.grid-cols-1 {
- grid-template-columns: repeat(1, minmax(0, 1fr));
-}
-
-.grid-cols-2 {
- grid-template-columns: repeat(2, minmax(0, 1fr));
-}
-
-.grid-cols-3 {
- grid-template-columns: repeat(3, minmax(0, 1fr));
-}
-
-.grid-cols-7 {
- grid-template-columns: repeat(7, minmax(0, 1fr));
-}
-
-.flex-row {
- flex-direction: row;
-}
-
-.flex-col {
- flex-direction: column;
-}
-
-.flex-col-reverse {
- flex-direction: column-reverse;
-}
-
-.flex-wrap {
- flex-wrap: wrap;
-}
-
-.items-start {
- align-items: flex-start;
-}
-
-.items-end {
- align-items: flex-end;
-}
-
-.items-center {
- align-items: center;
-}
-
-.justify-end {
- justify-content: flex-end;
-}
-
-.justify-center {
- justify-content: center;
-}
-
-.justify-between {
- justify-content: space-between;
-}
-
-.gap-6 {
- gap: 1.5rem;
-}
-
-.gap-5 {
- gap: 1.25rem;
-}
-
-.gap-4 {
- gap: 1rem;
-}
-
-.gap-x-4 {
- -moz-column-gap: 1rem;
- column-gap: 1rem;
-}
-
-.gap-y-8 {
- row-gap: 2rem;
-}
-
-.space-y-1 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 0;
- margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
-}
-
-.space-y-6 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 0;
- margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(1.5rem * var(--tw-space-y-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-5 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(1.25rem * var(--tw-space-x-reverse));
- margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.-space-x-1 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(-0.25rem * var(--tw-space-x-reverse));
- margin-left: calc(-0.25rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.-space-y-px > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 0;
- margin-top: calc(-1px * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(-1px * var(--tw-space-y-reverse));
-}
-
-.space-x-8 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(2rem * var(--tw-space-x-reverse));
- margin-left: calc(2rem * calc(1 - var(--tw-space-x-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-3 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.75rem * var(--tw-space-x-reverse));
- margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-y-8 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 0;
- margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(2rem * var(--tw-space-y-reverse));
-}
-
-.space-x-2 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.5rem * var(--tw-space-x-reverse));
- margin-left: calc(0.5rem * 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-reverse > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 1;
-}
-
-.divide-y > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-y-reverse: 0;
- border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
- border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
-}
-
-.divide-gray-300 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(209 213 219 / var(--tw-divide-opacity));
-}
-
-.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(229 231 235 / var(--tw-divide-opacity));
-}
-
-.overflow-auto {
- overflow: auto;
-}
-
-.overflow-hidden {
- overflow: hidden;
-}
-
-.overflow-x-auto {
- overflow-x: auto;
-}
-
-.overflow-y-auto {
- overflow-y: auto;
-}
-
-.truncate {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.whitespace-nowrap {
- white-space: nowrap;
-}
-
-.rounded-full {
- border-radius: 9999px;
-}
-
-.rounded-2xl {
- border-radius: 1rem;
-}
-
-.rounded-md {
- border-radius: 0.375rem;
-}
-
-.rounded-co {
- border-radius: 40%;
-}
-
-.rounded-xl {
- border-radius: 0.75rem;
-}
-
-.rounded {
- border-radius: 0.25rem;
-}
-
-.rounded-3xl {
- border-radius: 1.5rem;
-}
-
-.rounded-lg {
- border-radius: 0.5rem;
-}
-
-.rounded-l-3xl {
- border-top-left-radius: 1.5rem;
- border-bottom-left-radius: 1.5rem;
-}
-
-.rounded-r-3xl {
- border-top-right-radius: 1.5rem;
- border-bottom-right-radius: 1.5rem;
-}
-
-.rounded-l-2xl {
- border-top-left-radius: 1rem;
- border-bottom-left-radius: 1rem;
-}
-
-.rounded-r-2xl {
- border-top-right-radius: 1rem;
- border-bottom-right-radius: 1rem;
-}
-
-.rounded-l-md {
- border-top-left-radius: 0.375rem;
- border-bottom-left-radius: 0.375rem;
-}
-
-.rounded-r-md {
- border-top-right-radius: 0.375rem;
- border-bottom-right-radius: 0.375rem;
-}
-
-.rounded-b-2xl {
- border-bottom-right-radius: 1rem;
- border-bottom-left-radius: 1rem;
-}
-
-.border {
- border-width: 1px;
-}
-
-.border-2 {
- border-width: 2px;
-}
-
-.border-0 {
- border-width: 0px;
-}
-
-.border-r {
- border-right-width: 1px;
-}
-
-.border-t {
- border-top-width: 1px;
-}
-
-.border-b {
- border-bottom-width: 1px;
-}
-
-.border-b-2 {
- border-bottom-width: 2px;
-}
-
-.border-l-0 {
- border-left-width: 0px;
-}
-
-.border-t-2 {
- border-top-width: 2px;
-}
-
-.border-dashed {
- border-style: dashed;
-}
-
-.border-gray-200 {
- --tw-border-opacity: 1;
- border-color: rgb(229 231 235 / var(--tw-border-opacity));
-}
-
-.border-transparent {
- border-color: transparent;
-}
-
-.border-gray-300 {
- --tw-border-opacity: 1;
- border-color: rgb(209 213 219 / var(--tw-border-opacity));
-}
-
-.border-co-red {
- --tw-border-opacity: 1;
- border-color: rgb(255 19 0 / var(--tw-border-opacity));
-}
-
-.border-indigo-500 {
- --tw-border-opacity: 1;
- border-color: rgb(99 102 241 / var(--tw-border-opacity));
-}
-
-.border-co-blue {
- --tw-border-opacity: 1;
- border-color: rgb(36 56 135 / var(--tw-border-opacity));
-}
-
-.bg-gray-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(243 244 246 / var(--tw-bg-opacity));
-}
-
-.bg-gray-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(75 85 99 / var(--tw-bg-opacity));
-}
-
-.bg-co-blue {
- --tw-bg-opacity: 1;
- background-color: rgb(36 56 135 / var(--tw-bg-opacity));
-}
-
-.bg-white {
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.bg-co-green {
- --tw-bg-opacity: 1;
- background-color: rgb(108 193 31 / var(--tw-bg-opacity));
-}
-
-.bg-co-red {
- --tw-bg-opacity: 1;
- background-color: rgb(255 19 0 / var(--tw-bg-opacity));
-}
-
-.bg-co-yellow {
- --tw-bg-opacity: 1;
- background-color: rgb(255 221 0 / var(--tw-bg-opacity));
-}
-
-.bg-gray-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(229 231 235 / var(--tw-bg-opacity));
-}
-
-.bg-gray-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(249 250 251 / var(--tw-bg-opacity));
-}
-
-.bg-green-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(220 252 231 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-50 {
- --tw-bg-opacity: 1;
- background-color: rgb(238 242 255 / var(--tw-bg-opacity));
-}
-
-.bg-indigo-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(79 70 229 / var(--tw-bg-opacity));
-}
-
-.bg-gray-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(17 24 39 / var(--tw-bg-opacity));
-}
-
-.bg-opacity-75 {
- --tw-bg-opacity: 0.75;
-}
-
-.bg-opacity-30 {
- --tw-bg-opacity: 0.3;
-}
-
-.stroke-gray-800 {
- stroke: #1f2937;
-}
-
-.stroke-white {
- stroke: #fff;
-}
-
-.p-1 {
- padding: 0.25rem;
-}
-
-.p-12 {
- padding: 3rem;
-}
-
-.p-2 {
- padding: 0.5rem;
-}
-
-.p-4 {
- padding: 1rem;
-}
-
-.p-0 {
- padding: 0px;
-}
-
-.p-1\.5 {
- padding: 0.375rem;
-}
-
-.px-4 {
- padding-left: 1rem;
- padding-right: 1rem;
-}
-
-.py-2 {
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
-}
-
-.py-1 {
- padding-top: 0.25rem;
- padding-bottom: 0.25rem;
-}
-
-.py-6 {
- padding-top: 1.5rem;
- padding-bottom: 1.5rem;
-}
-
-.py-3\.5 {
- padding-top: 0.875rem;
- padding-bottom: 0.875rem;
-}
-
-.py-3 {
- padding-top: 0.75rem;
- padding-bottom: 0.75rem;
-}
-
-.px-3 {
- padding-left: 0.75rem;
- padding-right: 0.75rem;
-}
-
-.py-4 {
- padding-top: 1rem;
- padding-bottom: 1rem;
-}
-
-.px-2 {
- padding-left: 0.5rem;
- padding-right: 0.5rem;
-}
-
-.py-5 {
- padding-top: 1.25rem;
- padding-bottom: 1.25rem;
-}
-
-.py-10 {
- padding-top: 2.5rem;
- padding-bottom: 2.5rem;
-}
-
-.px-1 {
- padding-left: 0.25rem;
- padding-right: 0.25rem;
-}
-
-.py-12 {
- padding-top: 3rem;
- padding-bottom: 3rem;
-}
-
-.py-8 {
- padding-top: 2rem;
- padding-bottom: 2rem;
-}
-
-.px-6 {
- padding-left: 1.5rem;
- padding-right: 1.5rem;
-}
-
-.pt-5 {
- padding-top: 1.25rem;
-}
-
-.pb-4 {
- padding-bottom: 1rem;
-}
-
-.pt-2 {
- padding-top: 0.5rem;
-}
-
-.pl-8 {
- padding-left: 2rem;
-}
-
-.pr-3 {
- padding-right: 0.75rem;
-}
-
-.pl-3 {
- padding-left: 0.75rem;
-}
-
-.pr-9 {
- padding-right: 2.25rem;
-}
-
-.pl-4 {
- padding-left: 1rem;
-}
-
-.pr-4 {
- padding-right: 1rem;
-}
-
-.pr-2 {
- padding-right: 0.5rem;
-}
-
-.pr-12 {
- padding-right: 3rem;
-}
-
-.pl-1 {
- padding-left: 0.25rem;
-}
-
-.pr-10 {
- padding-right: 2.5rem;
-}
-
-.pb-2 {
- padding-bottom: 0.5rem;
-}
-
-.pt-8 {
- padding-top: 2rem;
-}
-
-.pb-6 {
- padding-bottom: 1.5rem;
-}
-
-.pt-4 {
- padding-top: 1rem;
-}
-
-.pb-8 {
- padding-bottom: 2rem;
-}
-
-.pt-16 {
- padding-top: 4rem;
-}
-
-.pt-1\.5 {
- padding-top: 0.375rem;
-}
-
-.pt-1 {
- padding-top: 0.25rem;
-}
-
-.pl-1\.5 {
- padding-left: 0.375rem;
-}
-
-.text-left {
- text-align: left;
-}
-
-.text-center {
- text-align: center;
-}
-
-.text-right {
- text-align: right;
-}
-
-.align-middle {
- vertical-align: middle;
-}
-
-.text-sm {
- font-size: 0.875rem;
- line-height: 1.25rem;
-}
-
-.text-base {
- font-size: 1rem;
- line-height: 1.5rem;
-}
-
-.text-xs {
- font-size: 0.75rem;
- line-height: 1rem;
-}
-
-.text-2xl {
- font-size: 1.5rem;
- line-height: 2rem;
-}
-
-.text-lg {
- font-size: 1.125rem;
- line-height: 1.75rem;
-}
-
-.text-xl {
- font-size: 1.25rem;
- line-height: 1.75rem;
-}
-
-.text-3xl {
- font-size: 1.875rem;
- line-height: 2.25rem;
-}
-
-.font-medium {
- font-weight: 500;
-}
-
-.font-normal {
- font-weight: 400;
-}
-
-.font-semibold {
- font-weight: 600;
-}
-
-.font-bold {
- font-weight: 700;
-}
-
-.font-extrabold {
- font-weight: 800;
-}
-
-.uppercase {
- text-transform: uppercase;
-}
-
-.capitalize {
- text-transform: capitalize;
-}
-
-.leading-4 {
- line-height: 1rem;
-}
-
-.leading-6 {
- line-height: 1.5rem;
-}
-
-.leading-5 {
- line-height: 1.25rem;
-}
-
-.tracking-wide {
- letter-spacing: 0.025em;
-}
-
-.tracking-tight {
- letter-spacing: -0.025em;
-}
-
-.text-gray-500 {
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity));
-}
-
-.text-gray-400 {
- --tw-text-opacity: 1;
- color: rgb(156 163 175 / var(--tw-text-opacity));
-}
-
-.text-gray-900 {
- --tw-text-opacity: 1;
- color: rgb(17 24 39 / var(--tw-text-opacity));
-}
-
-.text-white {
- --tw-text-opacity: 1;
- color: rgb(255 255 255 / var(--tw-text-opacity));
-}
-
-.text-gray-700 {
- --tw-text-opacity: 1;
- color: rgb(55 65 81 / var(--tw-text-opacity));
-}
-
-.text-co-blue {
- --tw-text-opacity: 1;
- color: rgb(36 56 135 / var(--tw-text-opacity));
-}
-
-.text-co-red {
- --tw-text-opacity: 1;
- color: rgb(255 19 0 / var(--tw-text-opacity));
-}
-
-.text-indigo-600 {
- --tw-text-opacity: 1;
- color: rgb(79 70 229 / var(--tw-text-opacity));
-}
-
-.text-green-800 {
- --tw-text-opacity: 1;
- color: rgb(22 101 52 / var(--tw-text-opacity));
-}
-
-.text-gray-600 {
- --tw-text-opacity: 1;
- color: rgb(75 85 99 / var(--tw-text-opacity));
-}
-
-.text-co-green {
- --tw-text-opacity: 1;
- color: rgb(108 193 31 / var(--tw-text-opacity));
-}
-
-.text-black {
- --tw-text-opacity: 1;
- color: rgb(0 0 0 / var(--tw-text-opacity));
-}
-
-.placeholder-gray-500::-moz-placeholder {
- --tw-placeholder-opacity: 1;
- color: rgb(107 114 128 / var(--tw-placeholder-opacity));
-}
-
-.placeholder-gray-500:-ms-input-placeholder {
- --tw-placeholder-opacity: 1;
- color: rgb(107 114 128 / var(--tw-placeholder-opacity));
-}
-
-.placeholder-gray-500::placeholder {
- --tw-placeholder-opacity: 1;
- color: rgb(107 114 128 / var(--tw-placeholder-opacity));
-}
-
-.placeholder-gray-400::-moz-placeholder {
- --tw-placeholder-opacity: 1;
- color: rgb(156 163 175 / var(--tw-placeholder-opacity));
-}
-
-.placeholder-gray-400:-ms-input-placeholder {
- --tw-placeholder-opacity: 1;
- color: rgb(156 163 175 / var(--tw-placeholder-opacity));
-}
-
-.placeholder-gray-400::placeholder {
- --tw-placeholder-opacity: 1;
- color: rgb(156 163 175 / var(--tw-placeholder-opacity));
-}
-
-.opacity-0 {
- opacity: 0;
-}
-
-.opacity-100 {
- opacity: 1;
-}
-
-.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-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-sm {
- --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
- --tw-shadow-colored: 0 1px 2px 0 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-inner {
- --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
- --tw-shadow-colored: inset 0 2px 4px 0 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);
-}
-
-.ring-1 {
- --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, 0 0 #0000);
-}
-
-.ring-2 {
- --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, 0 0 #0000);
-}
-
-.ring-0 {
- --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(0px + 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);
-}
-
-.ring-8 {
- --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(8px + 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);
-}
-
-.ring-black {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));
-}
-
-.ring-gray-300 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity));
-}
-
-.ring-white {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));
-}
-
-.ring-opacity-5 {
- --tw-ring-opacity: 0.05;
-}
-
-.blur {
- --tw-blur: blur(8px);
- 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);
-}
-
-.filter {
- 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);
-}
-
-.transition-opacity {
- transition-property: opacity;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
-}
-
-.transition {
- transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
-}
-
-.transition-colors {
- transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
-}
-
-.transition-all {
- transition-property: all;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
-}
-
-.duration-300 {
- transition-duration: 300ms;
-}
-
-.duration-100 {
- transition-duration: 100ms;
-}
-
-.duration-75 {
- transition-duration: 75ms;
-}
-
-.duration-200 {
- transition-duration: 200ms;
-}
-
-.ease-linear {
- transition-timing-function: linear;
-}
-
-.ease-in-out {
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.ease-out {
- transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
-}
-
-.ease-in {
- transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
-}
-
-@font-face {
- font-family: "Manometer";
-
- src: url("https://coopgo.fr/fonts/manometer.woff2") format("woff2"), url("/fonts/manometer.woff") format("woff");
-}
-
-@font-face {
- font-family: "Bitter";
-
- font-style: normal;
-
- src: url("https://coopgo.fr/fonts/Bitter-Regular.woff") format("woff");
-}
-
-.focus-within\:text-gray-600:focus-within {
- --tw-text-opacity: 1;
- color: rgb(75 85 99 / var(--tw-text-opacity));
-}
-
-.focus-within\:outline-none:focus-within {
- outline: 2px solid transparent;
- outline-offset: 2px;
-}
-
-.focus-within\:ring-2:focus-within {
- --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, 0 0 #0000);
-}
-
-.focus-within\:ring-co-blue:focus-within {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(36 56 135 / var(--tw-ring-opacity));
-}
-
-.focus-within\:ring-offset-2:focus-within {
- --tw-ring-offset-width: 2px;
-}
-
-.hover\:border-gray-300:hover {
- --tw-border-opacity: 1;
- border-color: rgb(209 213 219 / var(--tw-border-opacity));
-}
-
-.hover\:bg-gray-50:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(249 250 251 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-200:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(229 231 235 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-white:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-co-blue:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(36 56 135 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-gray-100:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(243 244 246 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-blue-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(29 78 216 / var(--tw-bg-opacity));
-}
-
-.hover\:bg-opacity-5:hover {
- --tw-bg-opacity: 0.05;
-}
-
-.hover\:text-gray-600:hover {
- --tw-text-opacity: 1;
- color: rgb(75 85 99 / var(--tw-text-opacity));
-}
-
-.hover\:text-co-blue:hover {
- --tw-text-opacity: 1;
- color: rgb(36 56 135 / var(--tw-text-opacity));
-}
-
-.hover\:text-white:hover {
- --tw-text-opacity: 1;
- color: rgb(255 255 255 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-700:hover {
- --tw-text-opacity: 1;
- color: rgb(55 65 81 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-900:hover {
- --tw-text-opacity: 1;
- color: rgb(17 24 39 / var(--tw-text-opacity));
-}
-
-.hover\:text-gray-500:hover {
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity));
-}
-
-.hover\:text-inherit:hover {
- color: inherit;
-}
-
-.focus\:border-transparent:focus {
- border-color: transparent;
-}
-
-.focus\:border-co-blue:focus {
- --tw-border-opacity: 1;
- border-color: rgb(36 56 135 / var(--tw-border-opacity));
-}
-
-.focus\:border-indigo-500:focus {
- --tw-border-opacity: 1;
- border-color: rgb(99 102 241 / var(--tw-border-opacity));
-}
-
-.focus\:border-blue-500:focus {
- --tw-border-opacity: 1;
- border-color: rgb(59 130 246 / var(--tw-border-opacity));
-}
-
-.focus\:placeholder-gray-400:focus::-moz-placeholder {
- --tw-placeholder-opacity: 1;
- color: rgb(156 163 175 / var(--tw-placeholder-opacity));
-}
-
-.focus\:placeholder-gray-400:focus:-ms-input-placeholder {
- --tw-placeholder-opacity: 1;
- color: rgb(156 163 175 / var(--tw-placeholder-opacity));
-}
-
-.focus\:placeholder-gray-400:focus::placeholder {
- --tw-placeholder-opacity: 1;
- color: rgb(156 163 175 / var(--tw-placeholder-opacity));
-}
-
-.focus\:outline-none:focus {
- outline: 2px solid transparent;
- outline-offset: 2px;
-}
-
-.focus\:ring-2:focus {
- --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, 0 0 #0000);
-}
-
-.focus\:ring-0:focus {
- --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(0px + 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);
-}
-
-.focus\:ring-1:focus {
- --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, 0 0 #0000);
-}
-
-.focus\:ring-inset:focus {
- --tw-ring-inset: inset;
-}
-
-.focus\:ring-white:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-co-blue:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(36 56 135 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-indigo-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-co-red:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(255 19 0 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-blue-500:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
-}
-
-.focus\:ring-offset-2:focus {
- --tw-ring-offset-width: 2px;
-}
-
-.focus\:ring-offset-gray-100:focus {
- --tw-ring-offset-color: #f3f4f6;
-}
-
-.disabled\:cursor-not-allowed:disabled {
- cursor: not-allowed;
-}
-
-.disabled\:opacity-30:disabled {
- opacity: 0.3;
-}
-
-.group:hover .group-hover\:text-gray-500 {
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity));
-}
-
-@media (prefers-color-scheme: dark) {
- .dark\:border-gray-600 {
- --tw-border-opacity: 1;
- border-color: rgb(75 85 99 / var(--tw-border-opacity));
- }
-
- .dark\:bg-gray-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(55 65 81 / var(--tw-bg-opacity));
- }
-
- .dark\:bg-gray-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(31 41 55 / var(--tw-bg-opacity));
- }
-}
-
-@media (min-width: 640px) {
- .sm\:col-span-3 {
- grid-column: span 3 / span 3;
- }
-
- .sm\:col-span-6 {
- grid-column: span 6 / span 6;
- }
-
- .sm\:col-span-1 {
- grid-column: span 1 / span 1;
- }
-
- .sm\:col-span-2 {
- grid-column: span 2 / span 2;
- }
-
- .sm\:col-span-4 {
- grid-column: span 4 / span 4;
- }
-
- .sm\:-mx-6 {
- margin-left: -1.5rem;
- margin-right: -1.5rem;
- }
-
- .sm\:mx-auto {
- margin-left: auto;
- margin-right: auto;
- }
-
- .sm\:my-8 {
- margin-top: 2rem;
- margin-bottom: 2rem;
- }
-
- .sm\:mt-0 {
- margin-top: 0px;
- }
-
- .sm\:ml-16 {
- margin-left: 4rem;
- }
-
- .sm\:ml-5 {
- margin-left: 1.25rem;
- }
-
- .sm\:mt-5 {
- margin-top: 1.25rem;
- }
-
- .sm\:mt-6 {
- margin-top: 1.5rem;
- }
-
- .sm\:block {
- display: block;
- }
-
- .sm\:flex {
- display: flex;
- }
-
- .sm\:grid {
- display: grid;
- }
-
- .sm\:hidden {
- display: none;
- }
-
- .sm\:w-auto {
- width: auto;
- }
-
- .sm\:w-full {
- width: 100%;
- }
-
- .sm\:max-w-xs {
- max-width: 20rem;
- }
-
- .sm\:max-w-md {
- max-width: 28rem;
- }
-
- .sm\:max-w-sm {
- max-width: 24rem;
- }
-
- .sm\:flex-auto {
- flex: 1 1 auto;
- }
-
- .sm\:flex-none {
- flex: none;
- }
-
- .sm\:flex-1 {
- flex: 1 1 0%;
- }
-
- .sm\:translate-y-0 {
- --tw-translate-y: 0px;
- 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));
- }
-
- .sm\:scale-95 {
- --tw-scale-x: .95;
- --tw-scale-y: .95;
- 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));
- }
-
- .sm\:scale-100 {
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- 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));
- }
-
- .sm\:grid-cols-2 {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-3 {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .sm\:flex-row-reverse {
- flex-direction: row-reverse;
- }
-
- .sm\:flex-nowrap {
- flex-wrap: nowrap;
- }
-
- .sm\:items-center {
- align-items: center;
- }
-
- .sm\:justify-end {
- justify-content: flex-end;
- }
-
- .sm\:justify-between {
- justify-content: space-between;
- }
-
- .sm\:gap-6 {
- gap: 1.5rem;
- }
-
- .sm\:gap-4 {
- gap: 1rem;
- }
-
- .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-y-reverse: 0;
- margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0px * var(--tw-space-y-reverse));
- }
-
- .sm\:space-x-3 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.75rem * var(--tw-space-x-reverse));
- margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
- }
-
- .sm\:space-x-reverse > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 1;
- }
-
- .sm\:divide-y > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-y-reverse: 0;
- border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
- border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
- }
-
- .sm\:divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
- --tw-divide-opacity: 1;
- border-color: rgb(229 231 235 / var(--tw-divide-opacity));
- }
-
- .sm\:overflow-hidden {
- overflow: hidden;
- }
-
- .sm\:rounded-lg {
- border-radius: 0.5rem;
- }
-
- .sm\:rounded-3xl {
- border-radius: 1.5rem;
- }
-
- .sm\:rounded-2xl {
- border-radius: 1rem;
- }
-
- .sm\:p-6 {
- padding: 1.5rem;
- }
-
- .sm\:p-0 {
- padding: 0px;
- }
-
- .sm\:px-6 {
- padding-left: 1.5rem;
- padding-right: 1.5rem;
- }
-
- .sm\:px-10 {
- padding-left: 2.5rem;
- padding-right: 2.5rem;
- }
-
- .sm\:py-5 {
- padding-top: 1.25rem;
- padding-bottom: 1.25rem;
- }
-
- .sm\:pl-6 {
- padding-left: 1.5rem;
- }
-
- .sm\:pr-6 {
- padding-right: 1.5rem;
- }
-
- .sm\:pb-5 {
- padding-bottom: 1.25rem;
- }
-
- .sm\:text-sm {
- font-size: 0.875rem;
- line-height: 1.25rem;
- }
-}
-
-@media (min-width: 768px) {
- .md\:fixed {
- position: fixed;
- }
-
- .md\:inset-y-0 {
- top: 0px;
- bottom: 0px;
- }
-
- .md\:col-span-1 {
- grid-column: span 1 / span 1;
- }
-
- .md\:col-span-2 {
- grid-column: span 2 / span 2;
- }
-
- .md\:mx-0 {
- margin-left: 0px;
- margin-right: 0px;
- }
-
- .md\:ml-0 {
- margin-left: 0px;
- }
-
- .md\:ml-6 {
- margin-left: 1.5rem;
- }
-
- .md\:mt-0 {
- margin-top: 0px;
- }
-
- .md\:flex {
- display: flex;
- }
-
- .md\:grid {
- display: grid;
- }
-
- .md\:hidden {
- display: none;
- }
-
- .md\:w-64 {
- width: 16rem;
- }
-
- .md\:grid-cols-3 {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .md\:grid-cols-6 {
- grid-template-columns: repeat(6, minmax(0, 1fr));
- }
-
- .md\:flex-row {
- flex-direction: row;
- }
-
- .md\:flex-col {
- flex-direction: column;
- }
-
- .md\:items-center {
- align-items: center;
- }
-
- .md\:justify-between {
- justify-content: space-between;
- }
-
- .md\:gap-6 {
- gap: 1.5rem;
- }
-
- .md\:space-x-5 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(1.25rem * var(--tw-space-x-reverse));
- margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse)));
- }
-
- .md\:space-x-3 > :not([hidden]) ~ :not([hidden]) {
- --tw-space-x-reverse: 0;
- margin-right: calc(0.75rem * var(--tw-space-x-reverse));
- margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
- }
-
- .md\:rounded-lg {
- border-radius: 0.5rem;
- }
-
- .md\:px-8 {
- padding-left: 2rem;
- padding-right: 2rem;
- }
-
- .md\:px-6 {
- padding-left: 1.5rem;
- padding-right: 1.5rem;
- }
-
- .md\:pl-64 {
- padding-left: 16rem;
- }
-
- .md\:pl-4 {
- padding-left: 1rem;
- }
-
- .md\:pr-6 {
- padding-right: 1.5rem;
- }
-
- .md\:pl-0 {
- padding-left: 0px;
- }
-
- .md\:pr-0 {
- padding-right: 0px;
- }
-
- .md\:text-right {
- text-align: right;
- }
-}
-
-@media (min-width: 1024px) {
- .lg\:col-span-2 {
- grid-column: span 2 / span 2;
- }
-
- .lg\:col-span-1 {
- grid-column: span 1 / span 1;
- }
-
- .lg\:col-start-1 {
- grid-column-start: 1;
- }
-
- .lg\:col-start-3 {
- grid-column-start: 3;
- }
-
- .lg\:col-start-2 {
- grid-column-start: 2;
- }
-
- .lg\:-mx-8 {
- margin-left: -2rem;
- margin-right: -2rem;
- }
-
- .lg\:table-cell {
- display: table-cell;
- }
-
- .lg\:max-w-7xl {
- max-width: 80rem;
- }
-
- .lg\:grid-flow-col-dense {
- grid-auto-flow: column dense;
- }
-
- .lg\:grid-cols-3 {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .lg\:grid-cols-4 {
- grid-template-columns: repeat(4, minmax(0, 1fr));
- }
-
- .lg\:px-8 {
- padding-left: 2rem;
- padding-right: 2rem;
- }
-}
\ No newline at end of file
diff --git a/themes/default/web/public/images/main_logo.svg b/themes/default/web/public/images/main_logo.svg
deleted file mode 100644
index d267bdd..0000000
--- a/themes/default/web/public/images/main_logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/themes/default/web/public/images/parcoursmob_logo_bluered.svg b/themes/default/web/public/images/parcoursmob_logo_bluered.svg
deleted file mode 100644
index 092d2ef..0000000
--- a/themes/default/web/public/images/parcoursmob_logo_bluered.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/themes/default/web/public/images/parcoursmob_logo_whitered.svg b/themes/default/web/public/images/parcoursmob_logo_whitered.svg
deleted file mode 100644
index d267bdd..0000000
--- a/themes/default/web/public/images/parcoursmob_logo_whitered.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/themes/default/web/public/js/main.js b/themes/default/web/public/js/main.js
deleted file mode 100644
index c1c927c..0000000
--- a/themes/default/web/public/js/main.js
+++ /dev/null
@@ -1,2995 +0,0 @@
-(() => {
- var __create = Object.create;
- var __defProp = Object.defineProperty;
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __getProtoOf = Object.getPrototypeOf;
- var __hasOwnProp = Object.prototype.hasOwnProperty;
- var __commonJS = (cb, mod) => function __require() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
- var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
- };
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
- ));
-
- // ../../../../../../node_modules/@kingshott/iodine/dist/iodine.min.js
- var require_iodine_min = __commonJS({
- "../../../../../../node_modules/@kingshott/iodine/dist/iodine.min.js"(exports, module) {
- var e = class {
- constructor() {
- this.locale = void 0, this.messages = { after: "The date must be after: '[PARAM]'", afterOrEqual: "The date must be after or equal to: '[PARAM]'", array: "[FIELD] must be an array", before: "The date must be before: '[PARAM]'", beforeOrEqual: "The date must be before or equal to: '[PARAM]'", boolean: "[FIELD] must be true or false", date: "[FIELD] must be a date", different: "[FIELD] must be different to '[PARAM]'", endsWith: "[FIELD] must end with '[PARAM]'", email: "[FIELD] must be a valid email address", falsy: "[FIELD] must be a falsy value (false, 'false', 0 or '0')", in: "[FIELD] must be one of the following options: [PARAM]", integer: "[FIELD] must be an integer", json: "[FIELD] must be a parsable JSON object string", max: "[FIELD] must be less than or equal to [PARAM]", min: "[FIELD] must be greater than or equal to [PARAM]", maxLength: "[FIELD] must not be greater than '[PARAM]' in character length", minLength: "[FIELD] must not be less than '[PARAM]' character length", notIn: "[FIELD] must not be one of the following options: [PARAM]", numeric: "[FIELD] must be numeric", optional: "[FIELD] is optional", regexMatch: "[FIELD] must satisify the regular expression: [PARAM]", required: "[FIELD] must be present", same: "[FIELD] must be '[PARAM]'", startsWith: "[FIELD] must start with '[PARAM]'", string: "[FIELD] must be a string", truthy: "[FIELD] must be a truthy value (true, 'true', 1 or '1')", url: "[FIELD] must be a valid url", uuid: "[FIELD] must be a valid UUID" };
- }
- _compare(e2, t, r, s = false) {
- return !!this.assertDate(e2) && !(!this.assertDate(t) && !this.assertInteger(t)) && (t = "number" == typeof t ? t : t.getTime(), "less" === r && s ? e2.getTime() <= t : "less" !== r || s ? "more" === r && s ? e2.getTime() >= t : "more" !== r || s ? void 0 : e2.getTime() > t : e2.getTime() < t);
- }
- _error(e2, t) {
- let { param: r, field: s } = "object" == typeof t ? t : { param: t, field: void 0 };
- const a = e2.split(":");
- let i = a.shift();
- r = r || a.join(":"), ["after", "afterOrEqual", "before", "beforeOrEqual"].includes(i) && (r = new Date(parseInt(r)).toLocaleTimeString(this.locale, { year: "numeric", month: "short", day: "numeric", hour: "2-digit", minute: "numeric", hour12: false }));
- let n = [null, void 0, ""].includes(r) ? this.messages[i] : this.messages[i].replace("[PARAM]", r);
- return [null, void 0, ""].includes(s) ? n.replace("[FIELD]", this.default_field_name ?? "Value") : n.replace("[FIELD]", s);
- }
- _missing() {
- return { valid: false, rule: "None", error: "Rules exist, but no value was provided to check" };
- }
- _prepare(e2, t = []) {
- return t.length ? "optional" === t[0] && this.assertOptional(e2) ? [] : t.filter((e3) => "optional" !== e3).map((e3) => "string" == typeof e3 ? [e3, this._title(e3.split(":").shift()), e3.split(":").slice(1).join(":")] : [`${e3.rule}:${e3.param}`, this._title(e3.rule), e3.param]) : [];
- }
- _title(e2) {
- return `${e2[0].toUpperCase()}${e2.slice(1)}`;
- }
- _validate(e2, t) {
- for (let r in t = this._prepare(e2, t))
- if (!this[`assert${t[r][1]}`].apply(this, [e2, t[r][2]]))
- return { valid: false, rule: t[r][0], error: this._error(t[r][0]) };
- return { valid: true, rule: "", error: "" };
- }
- assert(e2, t) {
- if (Array.isArray(t))
- return this._validate(e2, t);
- let r = Object.keys(t), s = { valid: true, fields: {} };
- for (let a = 0; a < r.length; a++)
- s.fields[r[a]] = e2.hasOwnProperty(r[a]) ? this._validate(e2[r[a]], t[r[a]]) : this._missing(), s.fields[r[a]].valid || (s.valid = false);
- return s;
- }
- assertAfter(e2, t) {
- return this._compare(e2, t, "more", false);
- }
- assertAfterOrEqual(e2, t) {
- return this._compare(e2, t, "more", true);
- }
- assertArray(e2) {
- return Array.isArray(e2);
- }
- assertBefore(e2, t) {
- return this._compare(e2, t, "less", false);
- }
- assertBeforeOrEqual(e2, t) {
- return this._compare(e2, t, "less", true);
- }
- assertBoolean(e2) {
- return [true, false].includes(e2);
- }
- assertDate(e2) {
- return e2 && "[object Date]" === Object.prototype.toString.call(e2) && !isNaN(e2);
- }
- assertDifferent(e2, t) {
- return e2 != t;
- }
- assertEndsWith(e2, t) {
- return this.assertString(e2) && e2.endsWith(t);
- }
- assertEmail(e2) {
- return new RegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$").test(String(e2).toLowerCase());
- }
- assertFalsy(e2) {
- return [0, "0", false, "false"].includes(e2);
- }
- assertIn(e2, t) {
- return ("string" == typeof t ? t.split(",") : t).includes(e2);
- }
- assertInteger(e2) {
- return Number.isInteger(e2) && parseInt(e2).toString() === e2.toString();
- }
- assertJson(e2) {
- try {
- return "object" == typeof JSON.parse(e2);
- } catch (e3) {
- return false;
- }
- }
- assertMax(e2, t) {
- return parseFloat(e2) <= t;
- }
- assertMin(e2, t) {
- return parseFloat(e2) >= t;
- }
- assertMaxLength(e2, t) {
- return "string" == typeof e2 && e2.length <= t;
- }
- assertMinLength(e2, t) {
- return "string" == typeof e2 && e2.length >= t;
- }
- assertNotIn(e2, t) {
- return !this.assertIn(e2, t);
- }
- assertNumeric(e2) {
- return !isNaN(parseFloat(e2)) && isFinite(e2);
- }
- assertOptional(e2) {
- return [null, void 0, ""].includes(e2);
- }
- assertRegexMatch(e2, t) {
- return new RegExp(t).test(String(e2));
- }
- assertRequired(e2) {
- return !this.assertOptional(e2);
- }
- assertSame(e2, t) {
- return e2 == t;
- }
- assertStartsWith(e2, t) {
- return this.assertString(e2) && e2.startsWith(t);
- }
- assertString(e2) {
- return "string" == typeof e2;
- }
- assertTruthy(e2) {
- return [1, "1", true, "true"].includes(e2);
- }
- assertUrl(e2) {
- return new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$").test(String(e2).toLowerCase());
- }
- assertUuid(e2) {
- return new RegExp("^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$").test(String(e2).toLowerCase());
- }
- rule(t, r) {
- e.prototype[`assert${this._title(t)}`] = r;
- }
- setErrorMessages(e2) {
- this.messages = e2;
- }
- setErrorMessage(e2, t) {
- this.messages[e2] = t;
- }
- setLocale(e2) {
- this.locale = e2;
- }
- setDefaultFieldName(e2) {
- this.default_field_name = e2;
- }
- };
- "undefined" != typeof window && (window.Iodine = new e()), module.exports = e;
- }
- });
-
- // assets/js/main.js
- var import_iodine = __toESM(require_iodine_min());
-
- // ../../../../../../node_modules/alpinejs/dist/module.esm.js
- var flushPending = false;
- var flushing = false;
- var queue = [];
- function scheduler(callback) {
- queueJob(callback);
- }
- function queueJob(job) {
- if (!queue.includes(job))
- queue.push(job);
- queueFlush();
- }
- function dequeueJob(job) {
- let index = queue.indexOf(job);
- if (index !== -1)
- queue.splice(index, 1);
- }
- function queueFlush() {
- if (!flushing && !flushPending) {
- flushPending = true;
- queueMicrotask(flushJobs);
- }
- }
- function flushJobs() {
- flushPending = false;
- flushing = true;
- for (let i = 0; i < queue.length; i++) {
- queue[i]();
- }
- queue.length = 0;
- flushing = false;
- }
- var reactive;
- var effect;
- var release;
- var raw;
- var shouldSchedule = true;
- function disableEffectScheduling(callback) {
- shouldSchedule = false;
- callback();
- shouldSchedule = true;
- }
- function setReactivityEngine(engine) {
- reactive = engine.reactive;
- release = engine.release;
- effect = (callback) => engine.effect(callback, { scheduler: (task) => {
- if (shouldSchedule) {
- scheduler(task);
- } else {
- task();
- }
- } });
- raw = engine.raw;
- }
- function overrideEffect(override) {
- effect = override;
- }
- function elementBoundEffect(el) {
- let cleanup2 = () => {
- };
- let wrappedEffect = (callback) => {
- let effectReference = effect(callback);
- if (!el._x_effects) {
- el._x_effects = /* @__PURE__ */ new Set();
- el._x_runEffects = () => {
- el._x_effects.forEach((i) => i());
- };
- }
- el._x_effects.add(effectReference);
- cleanup2 = () => {
- if (effectReference === void 0)
- return;
- el._x_effects.delete(effectReference);
- release(effectReference);
- };
- return effectReference;
- };
- return [wrappedEffect, () => {
- cleanup2();
- }];
- }
- var onAttributeAddeds = [];
- var onElRemoveds = [];
- var onElAddeds = [];
- function onElAdded(callback) {
- onElAddeds.push(callback);
- }
- function onElRemoved(el, callback) {
- if (typeof callback === "function") {
- if (!el._x_cleanups)
- el._x_cleanups = [];
- el._x_cleanups.push(callback);
- } else {
- callback = el;
- onElRemoveds.push(callback);
- }
- }
- function onAttributesAdded(callback) {
- onAttributeAddeds.push(callback);
- }
- function onAttributeRemoved(el, name, callback) {
- if (!el._x_attributeCleanups)
- el._x_attributeCleanups = {};
- if (!el._x_attributeCleanups[name])
- el._x_attributeCleanups[name] = [];
- el._x_attributeCleanups[name].push(callback);
- }
- function cleanupAttributes(el, names) {
- if (!el._x_attributeCleanups)
- return;
- Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {
- if (names === void 0 || names.includes(name)) {
- value.forEach((i) => i());
- delete el._x_attributeCleanups[name];
- }
- });
- }
- var observer = new MutationObserver(onMutate);
- var currentlyObserving = false;
- function startObservingMutations() {
- observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });
- currentlyObserving = true;
- }
- function stopObservingMutations() {
- flushObserver();
- observer.disconnect();
- currentlyObserving = false;
- }
- var recordQueue = [];
- var willProcessRecordQueue = false;
- function flushObserver() {
- recordQueue = recordQueue.concat(observer.takeRecords());
- if (recordQueue.length && !willProcessRecordQueue) {
- willProcessRecordQueue = true;
- queueMicrotask(() => {
- processRecordQueue();
- willProcessRecordQueue = false;
- });
- }
- }
- function processRecordQueue() {
- onMutate(recordQueue);
- recordQueue.length = 0;
- }
- function mutateDom(callback) {
- if (!currentlyObserving)
- return callback();
- stopObservingMutations();
- let result = callback();
- startObservingMutations();
- return result;
- }
- var isCollecting = false;
- var deferredMutations = [];
- function deferMutations() {
- isCollecting = true;
- }
- function flushAndStopDeferringMutations() {
- isCollecting = false;
- onMutate(deferredMutations);
- deferredMutations = [];
- }
- function onMutate(mutations) {
- if (isCollecting) {
- deferredMutations = deferredMutations.concat(mutations);
- return;
- }
- let addedNodes = [];
- let removedNodes = [];
- let addedAttributes = /* @__PURE__ */ new Map();
- let removedAttributes = /* @__PURE__ */ new Map();
- for (let i = 0; i < mutations.length; i++) {
- if (mutations[i].target._x_ignoreMutationObserver)
- continue;
- if (mutations[i].type === "childList") {
- mutations[i].addedNodes.forEach((node) => node.nodeType === 1 && addedNodes.push(node));
- mutations[i].removedNodes.forEach((node) => node.nodeType === 1 && removedNodes.push(node));
- }
- if (mutations[i].type === "attributes") {
- let el = mutations[i].target;
- let name = mutations[i].attributeName;
- let oldValue = mutations[i].oldValue;
- let add2 = () => {
- if (!addedAttributes.has(el))
- addedAttributes.set(el, []);
- addedAttributes.get(el).push({ name, value: el.getAttribute(name) });
- };
- let remove = () => {
- if (!removedAttributes.has(el))
- removedAttributes.set(el, []);
- removedAttributes.get(el).push(name);
- };
- if (el.hasAttribute(name) && oldValue === null) {
- add2();
- } else if (el.hasAttribute(name)) {
- remove();
- add2();
- } else {
- remove();
- }
- }
- }
- removedAttributes.forEach((attrs, el) => {
- cleanupAttributes(el, attrs);
- });
- addedAttributes.forEach((attrs, el) => {
- onAttributeAddeds.forEach((i) => i(el, attrs));
- });
- for (let node of removedNodes) {
- if (addedNodes.includes(node))
- continue;
- onElRemoveds.forEach((i) => i(node));
- if (node._x_cleanups) {
- while (node._x_cleanups.length)
- node._x_cleanups.pop()();
- }
- }
- addedNodes.forEach((node) => {
- node._x_ignoreSelf = true;
- node._x_ignore = true;
- });
- for (let node of addedNodes) {
- if (removedNodes.includes(node))
- continue;
- if (!node.isConnected)
- continue;
- delete node._x_ignoreSelf;
- delete node._x_ignore;
- onElAddeds.forEach((i) => i(node));
- node._x_ignore = true;
- node._x_ignoreSelf = true;
- }
- addedNodes.forEach((node) => {
- delete node._x_ignoreSelf;
- delete node._x_ignore;
- });
- addedNodes = null;
- removedNodes = null;
- addedAttributes = null;
- removedAttributes = null;
- }
- function scope(node) {
- return mergeProxies(closestDataStack(node));
- }
- function addScopeToNode(node, data2, referenceNode) {
- node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];
- return () => {
- node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);
- };
- }
- function refreshScope(element, scope2) {
- let existingScope = element._x_dataStack[0];
- Object.entries(scope2).forEach(([key, value]) => {
- existingScope[key] = value;
- });
- }
- function closestDataStack(node) {
- if (node._x_dataStack)
- return node._x_dataStack;
- if (typeof ShadowRoot === "function" && node instanceof ShadowRoot) {
- return closestDataStack(node.host);
- }
- if (!node.parentNode) {
- return [];
- }
- return closestDataStack(node.parentNode);
- }
- function mergeProxies(objects) {
- let thisProxy = new Proxy({}, {
- ownKeys: () => {
- return Array.from(new Set(objects.flatMap((i) => Object.keys(i))));
- },
- has: (target, name) => {
- return objects.some((obj) => obj.hasOwnProperty(name));
- },
- get: (target, name) => {
- return (objects.find((obj) => {
- if (obj.hasOwnProperty(name)) {
- let descriptor = Object.getOwnPropertyDescriptor(obj, name);
- if (descriptor.get && descriptor.get._x_alreadyBound || descriptor.set && descriptor.set._x_alreadyBound) {
- return true;
- }
- if ((descriptor.get || descriptor.set) && descriptor.enumerable) {
- let getter = descriptor.get;
- let setter = descriptor.set;
- let property = descriptor;
- getter = getter && getter.bind(thisProxy);
- setter = setter && setter.bind(thisProxy);
- if (getter)
- getter._x_alreadyBound = true;
- if (setter)
- setter._x_alreadyBound = true;
- Object.defineProperty(obj, name, {
- ...property,
- get: getter,
- set: setter
- });
- }
- return true;
- }
- return false;
- }) || {})[name];
- },
- set: (target, name, value) => {
- let closestObjectWithKey = objects.find((obj) => obj.hasOwnProperty(name));
- if (closestObjectWithKey) {
- closestObjectWithKey[name] = value;
- } else {
- objects[objects.length - 1][name] = value;
- }
- return true;
- }
- });
- return thisProxy;
- }
- function initInterceptors(data2) {
- let isObject2 = (val) => typeof val === "object" && !Array.isArray(val) && val !== null;
- let recurse = (obj, basePath = "") => {
- Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {
- if (enumerable === false || value === void 0)
- return;
- let path = basePath === "" ? key : `${basePath}.${key}`;
- if (typeof value === "object" && value !== null && value._x_interceptor) {
- obj[key] = value.initialize(data2, path, key);
- } else {
- if (isObject2(value) && value !== obj && !(value instanceof Element)) {
- recurse(value, path);
- }
- }
- });
- };
- return recurse(data2);
- }
- function interceptor(callback, mutateObj = () => {
- }) {
- let obj = {
- initialValue: void 0,
- _x_interceptor: true,
- initialize(data2, path, key) {
- return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);
- }
- };
- mutateObj(obj);
- return (initialValue) => {
- if (typeof initialValue === "object" && initialValue !== null && initialValue._x_interceptor) {
- let initialize = obj.initialize.bind(obj);
- obj.initialize = (data2, path, key) => {
- let innerValue = initialValue.initialize(data2, path, key);
- obj.initialValue = innerValue;
- return initialize(data2, path, key);
- };
- } else {
- obj.initialValue = initialValue;
- }
- return obj;
- };
- }
- function get(obj, path) {
- return path.split(".").reduce((carry, segment) => carry[segment], obj);
- }
- function set(obj, path, value) {
- if (typeof path === "string")
- path = path.split(".");
- if (path.length === 1)
- obj[path[0]] = value;
- else if (path.length === 0)
- throw error;
- else {
- if (obj[path[0]])
- return set(obj[path[0]], path.slice(1), value);
- else {
- obj[path[0]] = {};
- return set(obj[path[0]], path.slice(1), value);
- }
- }
- }
- var magics = {};
- function magic(name, callback) {
- magics[name] = callback;
- }
- function injectMagics(obj, el) {
- Object.entries(magics).forEach(([name, callback]) => {
- Object.defineProperty(obj, `$${name}`, {
- get() {
- let [utilities, cleanup2] = getElementBoundUtilities(el);
- utilities = { interceptor, ...utilities };
- onElRemoved(el, cleanup2);
- return callback(el, utilities);
- },
- enumerable: false
- });
- });
- return obj;
- }
- function tryCatch(el, expression, callback, ...args) {
- try {
- return callback(...args);
- } catch (e) {
- handleError(e, el, expression);
- }
- }
- function handleError(error2, el, expression = void 0) {
- Object.assign(error2, { el, expression });
- console.warn(`Alpine Expression Error: ${error2.message}
-
-${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
- setTimeout(() => {
- throw error2;
- }, 0);
- }
- var shouldAutoEvaluateFunctions = true;
- function dontAutoEvaluateFunctions(callback) {
- let cache = shouldAutoEvaluateFunctions;
- shouldAutoEvaluateFunctions = false;
- callback();
- shouldAutoEvaluateFunctions = cache;
- }
- function evaluate(el, expression, extras = {}) {
- let result;
- evaluateLater(el, expression)((value) => result = value, extras);
- return result;
- }
- function evaluateLater(...args) {
- return theEvaluatorFunction(...args);
- }
- var theEvaluatorFunction = normalEvaluator;
- function setEvaluator(newEvaluator) {
- theEvaluatorFunction = newEvaluator;
- }
- function normalEvaluator(el, expression) {
- let overriddenMagics = {};
- injectMagics(overriddenMagics, el);
- let dataStack = [overriddenMagics, ...closestDataStack(el)];
- if (typeof expression === "function") {
- return generateEvaluatorFromFunction(dataStack, expression);
- }
- let evaluator = generateEvaluatorFromString(dataStack, expression, el);
- return tryCatch.bind(null, el, expression, evaluator);
- }
- function generateEvaluatorFromFunction(dataStack, func) {
- return (receiver = () => {
- }, { scope: scope2 = {}, params = [] } = {}) => {
- let result = func.apply(mergeProxies([scope2, ...dataStack]), params);
- runIfTypeOfFunction(receiver, result);
- };
- }
- var evaluatorMemo = {};
- function generateFunctionFromString(expression, el) {
- if (evaluatorMemo[expression]) {
- return evaluatorMemo[expression];
- }
- let AsyncFunction = Object.getPrototypeOf(async function() {
- }).constructor;
- let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression) || /^(let|const)\s/.test(expression) ? `(() => { ${expression} })()` : expression;
- const safeAsyncFunction = () => {
- try {
- return new AsyncFunction(["__self", "scope"], `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`);
- } catch (error2) {
- handleError(error2, el, expression);
- return Promise.resolve();
- }
- };
- let func = safeAsyncFunction();
- evaluatorMemo[expression] = func;
- return func;
- }
- function generateEvaluatorFromString(dataStack, expression, el) {
- let func = generateFunctionFromString(expression, el);
- return (receiver = () => {
- }, { scope: scope2 = {}, params = [] } = {}) => {
- func.result = void 0;
- func.finished = false;
- let completeScope = mergeProxies([scope2, ...dataStack]);
- if (typeof func === "function") {
- let promise = func(func, completeScope).catch((error2) => handleError(error2, el, expression));
- if (func.finished) {
- runIfTypeOfFunction(receiver, func.result, completeScope, params, el);
- func.result = void 0;
- } else {
- promise.then((result) => {
- runIfTypeOfFunction(receiver, result, completeScope, params, el);
- }).catch((error2) => handleError(error2, el, expression)).finally(() => func.result = void 0);
- }
- }
- };
- }
- function runIfTypeOfFunction(receiver, value, scope2, params, el) {
- if (shouldAutoEvaluateFunctions && typeof value === "function") {
- let result = value.apply(scope2, params);
- if (result instanceof Promise) {
- result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));
- } else {
- receiver(result);
- }
- } else {
- receiver(value);
- }
- }
- var prefixAsString = "x-";
- function prefix(subject = "") {
- return prefixAsString + subject;
- }
- function setPrefix(newPrefix) {
- prefixAsString = newPrefix;
- }
- var directiveHandlers = {};
- function directive(name, callback) {
- directiveHandlers[name] = callback;
- }
- function directives(el, attributes, originalAttributeOverride) {
- attributes = Array.from(attributes);
- if (el._x_virtualDirectives) {
- let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));
- let staticAttributes = attributesOnly(vAttributes);
- vAttributes = vAttributes.map((attribute) => {
- if (staticAttributes.find((attr) => attr.name === attribute.name)) {
- return {
- name: `x-bind:${attribute.name}`,
- value: `"${attribute.value}"`
- };
- }
- return attribute;
- });
- attributes = attributes.concat(vAttributes);
- }
- let transformedAttributeMap = {};
- let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);
- return directives2.map((directive2) => {
- return getDirectiveHandler(el, directive2);
- });
- }
- function attributesOnly(attributes) {
- return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));
- }
- var isDeferringHandlers = false;
- var directiveHandlerStacks = /* @__PURE__ */ new Map();
- var currentHandlerStackKey = Symbol();
- function deferHandlingDirectives(callback) {
- isDeferringHandlers = true;
- let key = Symbol();
- currentHandlerStackKey = key;
- directiveHandlerStacks.set(key, []);
- let flushHandlers = () => {
- while (directiveHandlerStacks.get(key).length)
- directiveHandlerStacks.get(key).shift()();
- directiveHandlerStacks.delete(key);
- };
- let stopDeferring = () => {
- isDeferringHandlers = false;
- flushHandlers();
- };
- callback(flushHandlers);
- stopDeferring();
- }
- function getElementBoundUtilities(el) {
- let cleanups = [];
- let cleanup2 = (callback) => cleanups.push(callback);
- let [effect3, cleanupEffect] = elementBoundEffect(el);
- cleanups.push(cleanupEffect);
- let utilities = {
- Alpine: alpine_default,
- effect: effect3,
- cleanup: cleanup2,
- evaluateLater: evaluateLater.bind(evaluateLater, el),
- evaluate: evaluate.bind(evaluate, el)
- };
- let doCleanup = () => cleanups.forEach((i) => i());
- return [utilities, doCleanup];
- }
- function getDirectiveHandler(el, directive2) {
- let noop = () => {
- };
- let handler3 = directiveHandlers[directive2.type] || noop;
- let [utilities, cleanup2] = getElementBoundUtilities(el);
- onAttributeRemoved(el, directive2.original, cleanup2);
- let fullHandler = () => {
- if (el._x_ignore || el._x_ignoreSelf)
- return;
- handler3.inline && handler3.inline(el, directive2, utilities);
- handler3 = handler3.bind(handler3, el, directive2, utilities);
- isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler3) : handler3();
- };
- fullHandler.runCleanups = cleanup2;
- return fullHandler;
- }
- var startingWith = (subject, replacement) => ({ name, value }) => {
- if (name.startsWith(subject))
- name = name.replace(subject, replacement);
- return { name, value };
- };
- var into = (i) => i;
- function toTransformedAttributes(callback = () => {
- }) {
- return ({ name, value }) => {
- let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {
- return transform(carry);
- }, { name, value });
- if (newName !== name)
- callback(newName, name);
- return { name: newName, value: newValue };
- };
- }
- var attributeTransformers = [];
- function mapAttributes(callback) {
- attributeTransformers.push(callback);
- }
- function outNonAlpineAttributes({ name }) {
- return alpineAttributeRegex().test(name);
- }
- var alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\b`);
- function toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {
- return ({ name, value }) => {
- let typeMatch = name.match(alpineAttributeRegex());
- let valueMatch = name.match(/:([a-zA-Z0-9\-:]+)/);
- let modifiers = name.match(/\.[^.\]]+(?=[^\]]*$)/g) || [];
- let original = originalAttributeOverride || transformedAttributeMap[name] || name;
- return {
- type: typeMatch ? typeMatch[1] : null,
- value: valueMatch ? valueMatch[1] : null,
- modifiers: modifiers.map((i) => i.replace(".", "")),
- expression: value,
- original
- };
- };
- }
- var DEFAULT = "DEFAULT";
- var directiveOrder = [
- "ignore",
- "ref",
- "data",
- "id",
- "bind",
- "init",
- "for",
- "mask",
- "model",
- "modelable",
- "transition",
- "show",
- "if",
- DEFAULT,
- "teleport"
- ];
- function byPriority(a, b) {
- let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;
- let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;
- return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);
- }
- function dispatch(el, name, detail = {}) {
- el.dispatchEvent(new CustomEvent(name, {
- detail,
- bubbles: true,
- composed: true,
- cancelable: true
- }));
- }
- var tickStack = [];
- var isHolding = false;
- function nextTick(callback = () => {
- }) {
- queueMicrotask(() => {
- isHolding || setTimeout(() => {
- releaseNextTicks();
- });
- });
- return new Promise((res) => {
- tickStack.push(() => {
- callback();
- res();
- });
- });
- }
- function releaseNextTicks() {
- isHolding = false;
- while (tickStack.length)
- tickStack.shift()();
- }
- function holdNextTicks() {
- isHolding = true;
- }
- function walk(el, callback) {
- if (typeof ShadowRoot === "function" && el instanceof ShadowRoot) {
- Array.from(el.children).forEach((el2) => walk(el2, callback));
- return;
- }
- let skip = false;
- callback(el, () => skip = true);
- if (skip)
- return;
- let node = el.firstElementChild;
- while (node) {
- walk(node, callback, false);
- node = node.nextElementSibling;
- }
- }
- function warn(message, ...args) {
- console.warn(`Alpine Warning: ${message}`, ...args);
- }
- function start() {
- if (!document.body)
- warn("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's ` -->
-
-
-
-
-
-
- {{.IconSet.Icon "coopgo:parcoursmob/monogram" "mx-auto h-16 w-auto"}}
-
-
-
-
-
-
-
- Organisations
- {{range .ViewState.groups}}
-
-
-
-
- {{.Data.name}}
-
- {{$.IconSet.Icon "hero:solid/chevron-right" "w-6 h-6"}}
-
-
- {{end}}
-
-
-
-
-
-
-