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"}} -

Bonjour,

-

Vous avez demandé à réinitialiser votre mot de passe pour {{.username}}

-

Pour créer votre nouveau mot de passe, cliquez sur le lien suivant : http://localhost:9000/auth/lost-password/recover?key={{.key}}

-{{end}} \ No newline at end of file diff --git a/themes/default/emails/layout.html b/themes/default/emails/layout.html deleted file mode 100644 index 6ac319a..0000000 --- a/themes/default/emails/layout.html +++ /dev/null @@ -1,62 +0,0 @@ -{{define "main"}} - - - - - -
- PARCOURSMOB -
-
- {{template "content" .}} -
- - -{{end}} \ No newline at end of file diff --git a/themes/default/emails/onboarding/existing-administrator.html b/themes/default/emails/onboarding/existing-administrator.html deleted file mode 100644 index ba0fe56..0000000 --- a/themes/default/emails/onboarding/existing-administrator.html +++ /dev/null @@ -1,4 +0,0 @@ -{{define "content"}} -

Vous avez été ajouté comme administrateur de l'organisation {{.group}} sur PARCOURSMOB.

-

Connectez vous sur http://localhost:9000 pour y accéder

-{{end}} \ No newline at end of file diff --git a/themes/default/emails/onboarding/existing-member.html b/themes/default/emails/onboarding/existing-member.html deleted file mode 100644 index f90cd72..0000000 --- a/themes/default/emails/onboarding/existing-member.html +++ /dev/null @@ -1,4 +0,0 @@ -{{define "content"}} -

Vous avez été ajouté à l'organisation {{.group}} sur PARCOURSMOB.

-

Connectez vous sur http://localhost:9000 pour y accéder

-{{end}} \ No newline at end of file diff --git a/themes/default/emails/onboarding/new-administrator.html b/themes/default/emails/onboarding/new-administrator.html deleted file mode 100644 index 53687a3..0000000 --- a/themes/default/emails/onboarding/new-administrator.html +++ /dev/null @@ -1,5 +0,0 @@ -{{define "content"}} -

Vous avez été ajouté comme administrateur de l'organisation {{.group}} sur PARCOURSMOB.

-

Vous devez créer votre compte pour y accéder.

-

Pour créer votre compte PARCOURSMOB, cliquez sur : http://localhost:9000/auth/onboarding?key={{.key}}

-{{end}} \ No newline at end of file diff --git a/themes/default/emails/onboarding/new-member.html b/themes/default/emails/onboarding/new-member.html deleted file mode 100644 index 3c230aa..0000000 --- a/themes/default/emails/onboarding/new-member.html +++ /dev/null @@ -1,5 +0,0 @@ -{{define "content"}} -

Vous avez été ajouté à l'organisation {{.group}} sur PARCOURSMOB.

-

Vous devez créer votre compte pour y accéder.

-

Pour créer votre compte PARCOURSMOB, cliquez sur : http://localhost:9000/auth/onboarding?key={{.key}}

-{{end}} \ No newline at end of file diff --git a/themes/default/emails/onboarding/support_emailing.html b/themes/default/emails/onboarding/support_emailing.html deleted file mode 100644 index 40ea8c7..0000000 --- a/themes/default/emails/onboarding/support_emailing.html +++ /dev/null @@ -1,4 +0,0 @@ -{{define "content"}} -

Vous avez reçu un commentaire sur PARCOURSMOB de la part de {{.user}}

-

{{.key}}

-{{end}} \ No newline at end of file diff --git a/themes/default/web/assets/css/main.css b/themes/default/web/assets/css/main.css deleted file mode 100644 index 15ab027..0000000 --- a/themes/default/web/assets/css/main.css +++ /dev/null @@ -1,19 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@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"); } - - -@layer base { - html { - font-family: Bitter, serif; - } -} \ No newline at end of file diff --git a/themes/default/web/assets/js/main.js b/themes/default/web/assets/js/main.js deleted file mode 100644 index 0b0b059..0000000 --- a/themes/default/web/assets/js/main.js +++ /dev/null @@ -1,6 +0,0 @@ -import '@kingshott/iodine'; -import Alpine from 'alpinejs' - -window.Alpine = Alpine - -Alpine.start() \ No newline at end of file diff --git a/themes/default/web/fonts/bitter.ttf b/themes/default/web/fonts/bitter.ttf deleted file mode 100644 index 3b66905..0000000 Binary files a/themes/default/web/fonts/bitter.ttf and /dev/null differ diff --git a/themes/default/web/layouts/_partials/address_autocomplete.html b/themes/default/web/layouts/_partials/address_autocomplete.html deleted file mode 100644 index 3ffd1b2..0000000 --- a/themes/default/web/layouts/_partials/address_autocomplete.html +++ /dev/null @@ -1,48 +0,0 @@ -{{ define "address_autocomplete" }} - - -
- - - - - -
-{{ end }} \ No newline at end of file diff --git a/themes/default/web/layouts/_partials/files_list.html b/themes/default/web/layouts/_partials/files_list.html deleted file mode 100644 index 0f10791..0000000 --- a/themes/default/web/layouts/_partials/files_list.html +++ /dev/null @@ -1,31 +0,0 @@ -{{define "documents_list"}} -
- - - - - - - - - - - - - - - - - - -
Type - Actions -
-
- {{index $.ViewState.file_types_map .Metadata.Type}} -
-
{{.Metadata.Name}} - -
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/_partials/mainmenu.html b/themes/default/web/layouts/_partials/mainmenu.html deleted file mode 100644 index 94d2108..0000000 --- a/themes/default/web/layouts/_partials/mainmenu.html +++ /dev/null @@ -1,19 +0,0 @@ -{{define "mainmenu"}} - -{{range .LayoutState.MenuItems}} - -{{end}} - -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/administration/_partials/group_members.html b/themes/default/web/layouts/administration/_partials/group_members.html deleted file mode 100644 index 6e03022..0000000 --- a/themes/default/web/layouts/administration/_partials/group_members.html +++ /dev/null @@ -1,47 +0,0 @@ -{{define "groups_members"}} -
- -

Membres de l'organisation

- -
- - {{range .ViewState.members}} - - {{end}} -
-
- - -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/administration/_partials/groups_admins.html b/themes/default/web/layouts/administration/_partials/groups_admins.html deleted file mode 100644 index 3495123..0000000 --- a/themes/default/web/layouts/administration/_partials/groups_admins.html +++ /dev/null @@ -1,49 +0,0 @@ -{{define "groups_admins"}} -
- -

Administrateurs

- -
- - {{range .ViewState.admins}} - - {{end}} -
-
- - - - -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/administration/create_group.html b/themes/default/web/layouts/administration/create_group.html deleted file mode 100644 index c5485ab..0000000 --- a/themes/default/web/layouts/administration/create_group.html +++ /dev/null @@ -1,142 +0,0 @@ -{{define "content"}} - - -
-

Administration > Créer une organisation

-
- -
-
-
-
-
-

Nouvelle organisation

-

Informations de base sur la nouvelle organisation à créer

-
-
-
-
- - -
-
-
-
-
-
-
-
-

Paramètres

-

Paramètres de configuration de l'organisation (modules - accessibles, ...)

-
-
- -
- Droits d'accès aux modules - -
-
-
- -
-
- -

Gestion des bénéficiaires assignés à sa propre organisation. -

-
-
-
-
- -
-
- -

Trouver des solutions et organiser les déplacements de ses bénéficiaires.

-
-
-
-
- -
-
- -

Trouver et réserver des véhicules pour ses bénéficiaires. -

-
-
-
-
- -
-
- -

Gérer les véhicules et réservations (pour les gestionnaires de flottes) -

-
-
-
-
- -
-
- -

Agenda des dispositifs pour les bénéficiaires (sessions permis, événements, ...) -

-
-
-
-
-
-
-
- -
-

Certains champs de sont pas valides.

- - - - -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/administration/display_group.html b/themes/default/web/layouts/administration/display_group.html deleted file mode 100644 index eece157..0000000 --- a/themes/default/web/layouts/administration/display_group.html +++ /dev/null @@ -1,140 +0,0 @@ -{{define "content"}} -
-
-
- -
-

{{.ViewState.group.Data.name}}

-
-
-
- -
-
-
-
-
-
-
-

- Paramètres de l'organisation

-

Paramètres généraux de l'organisation

-
- {{template "groups_admins" .}} -
-
-
- -
- - -
- -
- - {{template "groups_members" .}} -
-
-
- -
- - -
- -
-
-
-
-
-
-

Modules activés

- -
-
-
-
- -
-
- -

Gestion des bénéficiaires assignés à sa propre organisation. -

-
-
-
-
- -
-
- -

Trouver des solutions et organiser les déplacements de ses bénéficiaires.

-
-
-
-
- -
-
- -

Trouver et réserver des véhicules pour ses bénéficiaires. -

-
-
-
-
- -
-
- -

Gérer les véhicules et réservations (pour les gestionnaires de flottes) -

-
-
-
-
- -
-
- -

Agenda des dispositifs pour les bénéficiaires (sessions permis, événements, ...) -

-
-
-
-
- -
-
- -

Administration générale de la plateforme PARCOURSMOB. Créer, ajouter des organisations et administrateurs. -

-
-
-
-
-
- -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/administration/home.html b/themes/default/web/layouts/administration/home.html deleted file mode 100644 index 372307d..0000000 --- a/themes/default/web/layouts/administration/home.html +++ /dev/null @@ -1,124 +0,0 @@ -{{define "content"}} -
-

Administration

-
- -
-

Statistiques

- -
- -
-

Gestion des organisations

- -
-
-

-
- -
- -
- -
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/agenda/create-event.html b/themes/default/web/layouts/agenda/create-event.html deleted file mode 100644 index c3af0c4..0000000 --- a/themes/default/web/layouts/agenda/create-event.html +++ /dev/null @@ -1,217 +0,0 @@ -{{ define "content" }} - -
-

Ajouter à l'agenda

-
- -
-
-
-
-
-

Informations sur le dispositif

-

Informations générales sur le dispositif d'accompagnement à ajouter à l'agenda

-
-
-
-
- - -
-
- - -
-
- -
- -
-
- - {{ $fieldName := "address" }} - {{ template "address_autocomplete" dict "FieldName" $fieldName }} -
-
-
-
- -
-
-
-

Planification

-

Dates et horaires de l'événement

-
-
-
- -
- - Toute la journée - - -
- -
-
-
- - -
-
- - -
- - -
-
- -
-
-
- - -
-
- - -
- - -
-
- - -
- -
-
-
- -
-
-
-

Paramètres

-

Paramètres du dispositift (nombre de places disponibles, etc...)

-
-
-
-
- - -
-
-
-
-
- - - -
-

Certains champs de sont pas valides.

- - - - -
-
-
- -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/agenda/display-event.html b/themes/default/web/layouts/agenda/display-event.html deleted file mode 100644 index fcc31a7..0000000 --- a/themes/default/web/layouts/agenda/display-event.html +++ /dev/null @@ -1,140 +0,0 @@ -{{ define "content" }} -
-
-
-
-

{{.ViewState.event.Name}}

-

- {{if eq .ViewState.event.Startdate .ViewState.event.Enddate}} - Le {{(timeFrom .ViewState.event.Startdate).Format "02/01/2006"}} - {{else}} - Du {{(timeFrom .ViewState.event.Startdate).Format "02/01/2006"}} au {{(timeFrom .ViewState.event.Enddate).Format "02/01/2006"}} - {{end}} -

-
-
-
- -
-
-
-
-
-

Informations

-

Informations sur le dispositif.

-
-
-
- {{if .ViewState.event.Type}} -
-
Type
-
{{.ViewState.event.Type}}
-
- {{end}} - {{if .ViewState.group}} -
-
Structure gestionnaire
-
{{.ViewState.group.Data.name}}
-
- {{end}} - {{if .ViewState.event.MaxSubscribers}} -
-
Total places
-
{{.ViewState.event.MaxSubscribers}}
-
- {{end}} - {{if ne .ViewState.event.MaxSubscribers 0}} -
-
Places restantes
-
{{.ViewState.event.RemainingSubscriptions}}
-
- {{end}} - {{if .ViewState.event.Data.address}} -
-
Adresse
-
{{.ViewState.event.Data.address.properties.label}}
-
- {{end}} - {{if .ViewState.event.Description}} -
-
Description
-
{{.ViewState.event.Description}}
-
- {{end}} -
-
-
-
-
-
-
-

Inscrire un bénéficiaire

- {{if gt .ViewState.event.RemainingSubscriptions 0}} -
-
- - - - -
    - - -
- -
- -
- {{else}} -

Il n'y a plus de place disponible

- {{end}} - {{if .ViewState.subscribers}} -

Inscrits

-
- {{range .ViewState.subscribers}} - - {{end}} -
- {{end}} -
-
-
-
-{{ end }} \ No newline at end of file diff --git a/themes/default/web/layouts/agenda/home.html b/themes/default/web/layouts/agenda/home.html deleted file mode 100644 index 864f81c..0000000 --- a/themes/default/web/layouts/agenda/home.html +++ /dev/null @@ -1,114 +0,0 @@ -{{define "content"}} -
-

Agenda dispositifs

- -
-
-

-
- -
-
- -
-
-
-
-
- - - - - - - - - - - - - - {{range .ViewState.events}} - - - - - - - - - - - - - - - {{end}} - - -
- Type de dispositif - - Structure - - Nom - - Lieu - - Dates - - Places disponibles - - Bénéficiaires positionnés - - Actions -
-
{{.Type}}
-
- -
- {{range .Owners}} - {{if (index $.ViewState.groups .)}} - {{(index $.ViewState.groups .).Data.name}} - {{end}} - {{end}} -
-
-
{{.Name}}
-
-
{{if .Data.address}}{{.Data.address.properties.label}}{{end}}
-
-
- {{if eq .Startdate .Enddate}} - Le {{(timeFrom .Startdate).Format "02/01/2006"}} - {{else}} - Du {{(timeFrom .Startdate).Format "02/01/2006"}}
Au {{(timeFrom .Enddate).Format "02/01/2006"}} - {{end}} -
-
- {{if ne .RemainingSubscriptions 999}} -
{{.RemainingSubscriptions}}
- {{end}} -
-
- {{range .Subscriptions}} - - {{end}} -
-
- Voir -
-
-
-
-
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/auth/groups.html b/themes/default/web/layouts/auth/groups.html deleted file mode 100644 index e2aad30..0000000 --- a/themes/default/web/layouts/auth/groups.html +++ /dev/null @@ -1,40 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - - - - - - -
-
- {{.IconSet.Icon "coopgo:parcoursmob/monogram" "mx-auto h-16 w-auto"}} -

Connectez vous à votre organisation

-
- -
-
-
-
- Organisations - {{range .ViewState.groups}} -
- -
- {{end}} -
-
-
-
-
- - -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/auth/lost-password-init.html b/themes/default/web/layouts/auth/lost-password-init.html deleted file mode 100644 index 996fcbd..0000000 --- a/themes/default/web/layouts/auth/lost-password-init.html +++ /dev/null @@ -1,40 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - -
- - - -
-
- -

Réinitialiser votre mot de passe PARCOURSMOB

-
- -
-
-
- -
- -
-
- -

Si votre compte existe, vous allez recevoir un mot de passe par email contenant un lien pour réinitialiser votre mot de passe. Celui-ci sera actif pendant 72h.

- -
- -
- - -
-
-
-
- - -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/auth/lost-password-recover-ko.html b/themes/default/web/layouts/auth/lost-password-recover-ko.html deleted file mode 100644 index 90b6928..0000000 --- a/themes/default/web/layouts/auth/lost-password-recover-ko.html +++ /dev/null @@ -1,26 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - - - - -
-
- -

Réinitialiser votre mot de passe PARCOURSMOB

-

Ce lien de réinitialisation n'est plus actif. Vous l'avez déjà utilisé ou il a expiré. Vous pouvez redemander un nouveau mot de passe ou réessayer de vous connecter directement à PARCOURSMOB.

-
- - - -
-
- -
- - -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/auth/lost-password-recover.html b/themes/default/web/layouts/auth/lost-password-recover.html deleted file mode 100644 index 4286fd5..0000000 --- a/themes/default/web/layouts/auth/lost-password-recover.html +++ /dev/null @@ -1,41 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - -
- - - -
-
- -

Réinitialisez votre mot de passe PARCOURSMOB

-
- -
-
- -

Vous avez demandé à réinitialiser votre mot de passe pour {{.ViewState.recover.username}}

- -
- -
- -
-
- -
- -
- - -
-
-
-
- - -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/auth/onboarding-ko.html b/themes/default/web/layouts/auth/onboarding-ko.html deleted file mode 100644 index 12d3972..0000000 --- a/themes/default/web/layouts/auth/onboarding-ko.html +++ /dev/null @@ -1,26 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - - - - -
-
- -

Inscription à PARCOURSMOB

-

Ce lien d'inscription n'est plus actif. Vous avez peut être déjà créé votre compte. Si ce n'est pas le cas, le lien a pu expirer : veuillez en demander un nouveau à l'administrateur PARCOURSMOB de votre structure.

-
- - - -
-
- -
- - -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/auth/onboarding.html b/themes/default/web/layouts/auth/onboarding.html deleted file mode 100644 index 3d18e6c..0000000 --- a/themes/default/web/layouts/auth/onboarding.html +++ /dev/null @@ -1,54 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - -
- - - -
-
- -

Créez votre compte PARCOURSMOB

-
- -
-
-
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- - - -
- -
- - -
-
-
-
- - -{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-events.html b/themes/default/web/layouts/beneficiaries/_partials/beneficiary-events.html deleted file mode 100644 index 684622f..0000000 --- a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-events.html +++ /dev/null @@ -1,4 +0,0 @@ -{{define "beneficiary_events"}} -
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-files.html b/themes/default/web/layouts/beneficiaries/_partials/beneficiary-files.html deleted file mode 100644 index b4a3de4..0000000 --- a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-files.html +++ /dev/null @@ -1,135 +0,0 @@ -{{define "beneficiary_files"}} -
- {{if eq (len .ViewState.documents) 0}} -

Aucun document

- {{end}} - - - {{if gt (len .ViewState.documents) 0}} - -
- - - - - - - - - - - {{range .ViewState.documents}} - - - - - - - {{end}} - - - - -
Type - Actions -
-
- {{index $.ViewState.file_types_map .Metadata.Type}} -
-
{{.Metadata.Name}}{{.LastModified.Format "02/01/2006"}} - - - -
-
- - {{end}} - -

Ajouter un document

-
-
-
- - -
-
- - -
-
- -
-
- {{.IconSet.Icon "hero:outline/folder-plus" "mx-auto h-12 w-12 text-gray-400"}} -
- - - - -
-

Jusqu'à 10MB

-

-
-
-
-
- -
- -
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-journeys.html b/themes/default/web/layouts/beneficiaries/_partials/beneficiary-journeys.html deleted file mode 100644 index 160a179..0000000 --- a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-journeys.html +++ /dev/null @@ -1,38 +0,0 @@ -{{define "beneficiary_journeys"}} -
-
- - {{ $departureField := "departure" }} - {{ $departureLabel := "Départ" }} - {{ template "address_autocomplete" dict "FieldName" $departureField "FieldLabel" $departureLabel }} - - {{ $destinationField := "destination" }} - {{ $destinationLabel := "Destination" }} - {{ template "address_autocomplete" dict "FieldName" $destinationField "FieldLabel" $destinationLabel }} - - -
-
- -
- -
-
-
- -
- -
-
- -
- - -
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-notes.html b/themes/default/web/layouts/beneficiaries/_partials/beneficiary-notes.html deleted file mode 100644 index a793a17..0000000 --- a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-notes.html +++ /dev/null @@ -1,108 +0,0 @@ -{{define "beneficiary_notes"}} -
- -
-
-
-
- -
- -
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-vehicles.html b/themes/default/web/layouts/beneficiaries/_partials/beneficiary-vehicles.html deleted file mode 100644 index 897ade0..0000000 --- a/themes/default/web/layouts/beneficiaries/_partials/beneficiary-vehicles.html +++ /dev/null @@ -1,39 +0,0 @@ -{{define "beneficiary_vehicles"}} -
- {{if .ViewState.bookings}} -

Mises à disposition réalisées

- - {{end}} -

Réserver un véhicule

-
- -
-
- -
- -
-
-
- -
- -
-
- -
- {{template "vehicle_type_select" .}} - - -
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/beneficiaries/create.html b/themes/default/web/layouts/beneficiaries/create.html deleted file mode 100644 index 36ba876..0000000 --- a/themes/default/web/layouts/beneficiaries/create.html +++ /dev/null @@ -1,184 +0,0 @@ -{{define "content"}} - -
-

Ajouter un bénéficiaire

-
- -
-
-
-
-
-

Informations obligatoires

-

Informations personnelles sur le bénéficiaire obligatoires - pour créer son profil dans PARCOURSMOB

-
-
-
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
-
-
-
- -
-
-
-

Informations optionnelles

-

Autres informations de profil optionnelles

-
-
-
- -
- - -
- -
- -
- -
-
- - - - -
-
-
-
-
-
-
-

Paramètres

-

Paramètres liés au bénéficiaire, utiles pour exploiter les fonctionnalités de PARCOURSMOB

-
-
- - {{ $fieldName := "address" }} - {{ template "address_autocomplete" dict "FieldName" $fieldName }} - - - -
-
-
- -
-

Certains champs de sont pas valides.

- - - - -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/beneficiaries/display.html b/themes/default/web/layouts/beneficiaries/display.html deleted file mode 100644 index 6829e5a..0000000 --- a/themes/default/web/layouts/beneficiaries/display.html +++ /dev/null @@ -1,152 +0,0 @@ -{{define "content"}} -
- -
-
-
-
- - -
-
-
-

{{.ViewState.beneficiary.Data.first_name}} - {{.ViewState.beneficiary.Data.last_name}}

-

{{if .ViewState.beneficiary.Metadata.created}}Ajouté le par - Conseiller 1{{end}} -

-
-
-
- - -
-
- -
-
-
-
-
-

- Informations personnelles

-

Informations générales sur le bénéficiaire.

-
-
-
- {{if .ViewState.beneficiary.Data.email}} -
-
Email
-
{{.ViewState.beneficiary.Data.email}}
-
- {{end}} - {{if .ViewState.beneficiary.Data.phone_number}} -
-
Téléphone
-
{{.ViewState.beneficiary.Data.phone_number}}
-
- {{end}} - {{if .ViewState.beneficiary.Data.birthdate}} -
-
Date de naissance
-
{{(timeFrom .ViewState.beneficiary.Data.birthdate).Format - "02/01/2006"}}
-
- {{end}} - {{if and .ViewState.beneficiary.Data.gender (ne .ViewState.beneficiary.Data.gender "0")}} -
-
Genre
-
{{genderISO5218 .ViewState.beneficiary.Data.gender}}
-
- {{end}} - {{if .ViewState.beneficiary.Data.address}} -
-
Adresse
-
{{.ViewState.beneficiary.Data.address.properties.label}}
-
- {{end}} -
-
-
-
- -
-
-
-
-
- - -
- -
- -
{{template "beneficiary_journeys" .}}
-
{{template "beneficiary_vehicles" .}}
-
{{template "beneficiary_events" .}}
-
{{template "beneficiary_files" .}}
-
{{template "beneficiary_notes" .}}
-
-
-
-
- -
-
-

Actions réalisées

-

Aucune action réalisée pour le moment

-
-
-
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/beneficiaries/list.html b/themes/default/web/layouts/beneficiaries/list.html deleted file mode 100644 index da8bbad..0000000 --- a/themes/default/web/layouts/beneficiaries/list.html +++ /dev/null @@ -1,166 +0,0 @@ -{{define "content"}} -
-

Bénéficiaires

- -
-
-

-
- -
-
-
-
-
-
-
- - - - - - - - - - - - - - - -
- Nom - - Téléphone - - Adresse - - Labels - - Modifier -
-
- - -
-
-
- -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/beneficiaries/update.html b/themes/default/web/layouts/beneficiaries/update.html deleted file mode 100644 index da1b4c9..0000000 --- a/themes/default/web/layouts/beneficiaries/update.html +++ /dev/null @@ -1,184 +0,0 @@ -{{define "content"}} - -
-

Modifier un bénéficiaire

-
- -
-
-
-
-
-

Informations obligatoires

-

Informations personnelles sur le bénéficiaire obligatoires - pour créer son profil dans PARCOURSMOB

-
-
-
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
-
-
-
- -
-
-
-

Informations optionnelles

-

Autres informations de profil optionnelles

-
-
-
- -
- - -
- -
- -
- -
-
- - - - -
-
-
-
-
-
-
-

Paramètres

-

Paramètres liés au bénéficiaire, utiles pour exploiter les fonctionnalités de PARCOURSMOB

-
-
- - {{ $fieldName := "address" }} - {{ template "address_autocomplete" (dict "FieldName" $fieldName "Address" .ViewState.Data.address) }} - - -
-
-
- -
-

Certains champs de sont pas valides.

- - - - -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/dashboard/_partials/agenda-widget.html b/themes/default/web/layouts/dashboard/_partials/agenda-widget.html deleted file mode 100644 index c63ce4b..0000000 --- a/themes/default/web/layouts/dashboard/_partials/agenda-widget.html +++ /dev/null @@ -1,29 +0,0 @@ -{{define "agenda_widget"}} -
-
-
-

Prochains dispositifs

-
- -
- - - - - -
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/dashboard/_partials/beneficiaries-widget.html b/themes/default/web/layouts/dashboard/_partials/beneficiaries-widget.html deleted file mode 100644 index dcf45cc..0000000 --- a/themes/default/web/layouts/dashboard/_partials/beneficiaries-widget.html +++ /dev/null @@ -1,31 +0,0 @@ -{{define "beneficiaries_widget"}} -
-
-
-

Bénéficiaires

-

Derniers bénéficiaires ajoutés

-
- -
- - - - - -
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/dashboard/dashboard.html b/themes/default/web/layouts/dashboard/dashboard.html deleted file mode 100644 index 10c1e7f..0000000 --- a/themes/default/web/layouts/dashboard/dashboard.html +++ /dev/null @@ -1,77 +0,0 @@ -{{define "content"}} - -
-

Tableau de bord

-
-
-

Statistiques de votre organisation

- -
- -
-
- - - {{template "beneficiaries_widget" .ViewState.beneficiaries}} - {{template "agenda_widget" .ViewState.events}} - - -
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/directory/home.html b/themes/default/web/layouts/directory/home.html deleted file mode 100644 index da927c1..0000000 --- a/themes/default/web/layouts/directory/home.html +++ /dev/null @@ -1,23 +0,0 @@ -{{define "content"}} -
-

Répertoire des solutions

- -
-
-

-
-
- -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/group/settings.html b/themes/default/web/layouts/group/settings.html deleted file mode 100644 index c693377..0000000 --- a/themes/default/web/layouts/group/settings.html +++ /dev/null @@ -1,129 +0,0 @@ -{{define "content"}} -
-
-
- -
-

{{.ViewState.group.Data.name}}

-
-
-
- -
-
-
-
-
-
-
-

- Paramètres de l'organisation

-

Paramètres généraux de l'organisation

-
- {{template "groups_members" .}} - -
-
-
- -
- - -
- -
- - {{template "groups_admins" .}} -
-
-
-
-
-

Modules activés

- -
-
-
-
- -
-
- -

Gestion des bénéficiaires assignés à sa propre organisation. -

-
-
-
-
- -
-
- -

Trouver des solutions et organiser les déplacements de ses bénéficiaires.

-
-
-
-
- -
-
- -

Trouver et réserver des véhicules pour ses bénéficiaires. -

-
-
-
-
- -
-
- -

Gérer les véhicules et réservations (pour les gestionnaires de flottes) -

-
-
-
-
- -
-
- -

Agenda des dispositifs pour les bénéficiaires (sessions permis, événements, ...) -

-
-
-
-
- -
-
- -

Administration générale de la plateforme PARCOURSMOB. Créer, ajouter des organisations et administrateurs. -

-
-
-
-
-
- -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/journeys/_partials/journeys-all.html b/themes/default/web/layouts/journeys/_partials/journeys-all.html deleted file mode 100644 index c340373..0000000 --- a/themes/default/web/layouts/journeys/_partials/journeys-all.html +++ /dev/null @@ -1,105 +0,0 @@ -{{define "journeys_all"}} -
- {{ if gt (len .ViewState.carpools) 0}} - {{$carpool := (index .ViewState.carpools 0)}} -
-
- {{.IconSet.Icon "tabler-icons:car" "h-6 w-6 inline-flex mr-4"}} Covoiturage - {{if $carpool.days.monday}} - entre {{$carpool.outward.monday.mintime}} et {{$carpool.outward.monday.maxtime}} - {{else if $carpool.days.tuesday}} - entre {{$carpool.outward.tuesday.mintime}} et {{$carpool.outward.tuesday.maxtime}} - {{else if $carpool.days.wednesday}} - entre {{$carpool.outward.wednesday.mintime}} et {{$carpool.outward.wednesday.maxtime}} - {{else if $carpool.days.thursday}} - entre {{$carpool.outward.thursday.mintime}} et {{$carpool.outward.thursday.maxtime}} - {{else if $carpool.days.friday}} - entre {{$carpool.outward.friday.mintime}} et {{$carpool.outward.friday.maxtime}} - {{else if $carpool.days.saturday}} - entre {{$carpool.outward.saturday.mintime}} et {{$carpool.outward.saturday.maxtime}} - {{else if $carpool.days.sunday}} - entre {{$carpool.outward.sunday.mintime}} et {{$carpool.outward.sunday.maxtime}} - {{end}} - (Temps trajet : {{divideFloat64 $carpool.duration 60.0 | printf "%.0f"}} Minutes) -
-
- - RIDYGO - -
-
- -
- - {{$carpool.from.address}}, {{$carpool.from.city}} - - {{$.IconSet.Icon "hero:outline/chevron-right" "h-3 w-3 stroke-gray-800 m-2"}} - - {{$carpool.to.address}}, {{$carpool.to.city}} - -
- -
- Conducteur : - - {{$carpool.driver.alias}} - -
- -
- -
- - - {{end}} - - {{ if gt (len .ViewState.journeys.Journeys) 0}} -
-
- {{.IconSet.Icon "tabler-icons:bus" "h-6 w-6 inline-flex mr-4"}} - {{(timeFrom (index .ViewState.journeys.Journeys 0).Departure).Format "15:04"}} - {{(timeFrom (index .ViewState.journeys.Journeys 0).Arrival).Format "15:04"}} - ({{(index .ViewState.journeys.Journeys 0).Duration.Minutes | printf "%.0f"}} Minutes) -
-
-
-
- {{$firstwalk := true}} - {{range (index .ViewState.journeys.Journeys 0).Sections}} - {{if eq .Type "street_network"}} - - {{$.IconSet.Icon "tabler-icons:walk" "h-4 w-4 stroke-gray-800"}} - - {{if $firstwalk}} - {{$firstwalk = false}} - {{$.IconSet.Icon "hero:outline/chevron-right" "h-3 w-3 stroke-gray-800 m-2"}} - {{end}} - {{end}} - {{if eq .Type "public_transport"}} - - {{if eq .Display.Network "Antibes - Envibus"}}Envibus{{else}}{{.Display.Network}}{{end}} Ligne {{.Display.Label}} - - {{$.IconSet.Icon "hero:outline/chevron-right" "h-3 w-3 stroke-gray-800 m-2"}} - {{end}} - {{end}} -
- -
-
- -
- - {{end}} - - -
-
- {{.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 -
-
-
-
- -
-
-{{end}} \ No newline at end of file diff --git a/themes/default/web/layouts/journeys/_partials/journeys-carpool.html b/themes/default/web/layouts/journeys/_partials/journeys-carpool.html deleted file mode 100644 index 1a0a198..0000000 --- a/themes/default/web/layouts/journeys/_partials/journeys-carpool.html +++ /dev/null @@ -1,56 +0,0 @@ -{{define "journeys_carpool"}} - -{{ if eq (len .ViewState.carpools) 0}} -

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 -
-
-
-
-
- - - - - - - - - - - {{range .ViewState.vehicles}} - - - - - - - {{end}} - -
VéhiculeNuméroGestionnaireLieu
{{.Data.name}}{{.Data.licence_plate}}COOPGO{{if .Data.address}}{{.Data.address.properties.label}}{{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
-
-
- - -
-
-{{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

-
-
- - {{ $departureField := "departure" }} - {{ $departureLabel := "Départ" }} - {{ $departure := .ViewState.departure }} - {{ template "address_autocomplete" dict "FieldName" $departureField "FieldLabel" $departureLabel "Address" $departure }} - - {{ $destinationField := "destination" }} - {{ $destinationLabel := "Destination" }} - {{ $destination := .ViewState.destination }} - {{ template "address_autocomplete" dict "FieldName" $destinationField "FieldLabel" $destinationLabel "Address" $destination }} - - -
-
- -
- -
-
-
- -
- -
-
- -
- - -
-
-
-
-
- {{if .ViewState.searched}} -
-
-
-
-
- - -
- -
- -
{{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 - - - - - - - - - - - -
-
- - -
- -
-
- {{ 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}} -
- -
Réservé par
-
- {{if .ViewState.booking.Data.booked_by.user}} - - - {{.ViewState.booking.Data.booked_by.user.display_name}} - - {{end}} -
-
- {{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}} - -
- - - - - - - - - - - {{range .ViewState.documents}} - - - - - - - {{end}} - - - - -
Type - Actions -
-
- {{index $.ViewState.file_types_map .Metadata.Type}} -
-
-

{{.Metadata.Name}}

-
{{.LastModified.Format "02/01/2006"}} - - - -
-
- - {{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

-
- -
-
-
-
-
- - - - - - - - - - - - - {{range .ViewState.bookings}} - - - - - - - - - {{end}} - - -
- Type - - Beneficiaire - - Dates - - Actions -
-
Voiture
-
-
-
-
Du {{(timeFrom .Startdate).Format "02/01/2006"}} au {{(timeFrom .Enddate).Format "02/01/2006"}}
-
- Voir -
-
-
-
-
-
- - -{{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

-
-
- -
- - -
- - - - -
    - - - - -
-
-
- - - -
-
- -
- -
-
-
- -
- -
-
- -
- {{template "vehicle_type_select" .}} - - -
-
-
-
-
- {{if .ViewState.searched}} -
-

Véhicules disponibles

-
-
-
- - - - - - - - - - - - {{range .ViewState.search.vehicles}} - - - - - - - - {{end}} - -
VéhiculeNuméroGestionnaireLieu - Réserver -
{{.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}} - -
-
-
-
-
- {{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"}} -
-
-
-
-
- - - - - - - - - - - - - {{range .ViewState.bookings}} - - - - - - - - - {{end}} - -
- Statut - - Type - - Numéro (Immat / Bicycode) - - Beneficiaire - - Dates - - Actions -
- {{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}} \ 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

- - -
-
-
L
-
M
-
M
-
J
-
V
-
S
-
D
-
-
-
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-{{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"}} -
- - -
- - -
    - -
  • - - 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"}} -
-
-
-
-
- - - - - - - - - - - - {{range .ViewState.vehicles}} - - - - - - - - {{end}} - -
- Numéro (Immat / Bicycode) - - Type - - Modèle - - Lieu - - Actions -
-
{{.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}} \ 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.

-
-
- - - -
-
-
-
-
-
-
- - {{if .ViewState.booking.Data.booked_by}} - -
-
Prescripteur
-
- {{if .ViewState.booking.Data.booked_by.user}} - - - {{.ViewState.booking.Data.booked_by.user.display_name}} - - {{end}} - {{if .ViewState.booking.Data.booked_by.group}}{{.ViewState.booking.Data.booked_by.group.name}}{{end}} -
-
- {{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 -
-
-
- -
- -
-
-
-
-
Date de retour
-
-
-
{{(timeFrom .ViewState.booking.Enddate).Format "02/01/2006"}}
- Modifier -
-
-
- -
- -
-
-
-
-
Indisponible à partir du
-
-
-
{{(timeFrom .ViewState.booking.Unavailablefrom).Format "02/01/2006"}}
- Modifier -
-
-
- -
- -
-
-
-
-
Sera à nouveau disponible le
-
-
-
{{(timeFrom .ViewState.booking.Unavailableto).Format "02/01/2006"}}
- Modifier -
-
-
- -
- -
-
-
-

Documents

- {{if eq (len .ViewState.documents) 0}} -

Aucun document

- {{end}} - - - {{if gt (len .ViewState.documents) 0}} - -
- - - - - - - - - - - {{range .ViewState.documents}} - - - - - - - {{end}} - - - - -
Type - Actions -
-
- {{index $.ViewState.file_types_map .Metadata.Type}} -
-
-

{{.Metadata.Name}}

-
{{.LastModified.Format "02/01/2006"}} - - - -
-
- - {{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

-
-
-
-
- - -
-
- {{template "vehicle_type_select" .}} -
-
- - -
-
-
-
-
-
-
-
-

Informations pratiques

-

Informations pratiques pour la réservation

-
-
- {{ $fieldName := "address" }} - {{ template "address_autocomplete" dict "FieldName" $fieldName }} - -
- -
- -
-
-
-
-
- -
-

Certains champs de sont pas valides.

- - - - -
- -
-{{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}} - - {{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

-
-
-
-
- - -
-
- {{template "vehicle_type_select" .}} -
-
- - -
-
-
-
-
-
-
-
-

Informations pratiques

-

Informations pratiques pour la réservation

-
-
- {{ $fieldName := "address" }} - {{ template "address_autocomplete" (dict "FieldName" $fieldName "Address" .ViewState.vehicle.Data.address) }} - -
- -
- -
-
-
-
-
- -
-

Certains champs de sont pas valides.

- - - - -
-
-
-{{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

- - - -
- -{{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"}} -

Connectez vous à votre organisation

-
- -
-
-
-
- Organisations - {{range .ViewState.groups}} -
- -
- {{end}} -
-
-
-
-
- - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/auth/lost-password-init.html b/themes/spie06/web/layouts/auth/lost-password-init.html deleted file mode 100644 index 996fcbd..0000000 --- a/themes/spie06/web/layouts/auth/lost-password-init.html +++ /dev/null @@ -1,40 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - -
- - - -
-
- -

Réinitialiser votre mot de passe PARCOURSMOB

-
- -
-
-
- -
- -
-
- -

Si votre compte existe, vous allez recevoir un mot de passe par email contenant un lien pour réinitialiser votre mot de passe. Celui-ci sera actif pendant 72h.

- -
- -
- - -
-
-
-
- - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/auth/lost-password-recover-ko.html b/themes/spie06/web/layouts/auth/lost-password-recover-ko.html deleted file mode 100644 index 90b6928..0000000 --- a/themes/spie06/web/layouts/auth/lost-password-recover-ko.html +++ /dev/null @@ -1,26 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - - - - -
-
- -

Réinitialiser votre mot de passe PARCOURSMOB

-

Ce lien de réinitialisation n'est plus actif. Vous l'avez déjà utilisé ou il a expiré. Vous pouvez redemander un nouveau mot de passe ou réessayer de vous connecter directement à PARCOURSMOB.

-
- - - -
-
- -
- - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/auth/lost-password-recover.html b/themes/spie06/web/layouts/auth/lost-password-recover.html deleted file mode 100644 index 4286fd5..0000000 --- a/themes/spie06/web/layouts/auth/lost-password-recover.html +++ /dev/null @@ -1,41 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - -
- - - -
-
- -

Réinitialisez votre mot de passe PARCOURSMOB

-
- -
-
- -

Vous avez demandé à réinitialiser votre mot de passe pour {{.ViewState.recover.username}}

- -
- -
- -
-
- -
- -
- - -
-
-
-
- - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/auth/onboarding-ko.html b/themes/spie06/web/layouts/auth/onboarding-ko.html deleted file mode 100644 index 12d3972..0000000 --- a/themes/spie06/web/layouts/auth/onboarding-ko.html +++ /dev/null @@ -1,26 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - - - - -
-
- -

Inscription à PARCOURSMOB

-

Ce lien d'inscription n'est plus actif. Vous avez peut être déjà créé votre compte. Si ce n'est pas le cas, le lien a pu expirer : veuillez en demander un nouveau à l'administrateur PARCOURSMOB de votre structure.

-
- - - -
-
- -
- - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/auth/onboarding.html b/themes/spie06/web/layouts/auth/onboarding.html deleted file mode 100644 index 3d18e6c..0000000 --- a/themes/spie06/web/layouts/auth/onboarding.html +++ /dev/null @@ -1,54 +0,0 @@ -{{define "main"}} - - - PARCOURSMOB - Identification - - - -
- - - -
-
- -

Créez votre compte PARCOURSMOB

-
- -
-
-
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- - - -
- -
- - -
-
-
-
- - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-events.html b/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-events.html deleted file mode 100644 index 684622f..0000000 --- a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-events.html +++ /dev/null @@ -1,4 +0,0 @@ -{{define "beneficiary_events"}} -
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-files.html b/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-files.html deleted file mode 100644 index b4a3de4..0000000 --- a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-files.html +++ /dev/null @@ -1,135 +0,0 @@ -{{define "beneficiary_files"}} -
- {{if eq (len .ViewState.documents) 0}} -

Aucun document

- {{end}} - - - {{if gt (len .ViewState.documents) 0}} - -
- - - - - - - - - - - {{range .ViewState.documents}} - - - - - - - {{end}} - - - - -
Type - Actions -
-
- {{index $.ViewState.file_types_map .Metadata.Type}} -
-
{{.Metadata.Name}}{{.LastModified.Format "02/01/2006"}} - - - -
-
- - {{end}} - -

Ajouter un document

-
-
-
- - -
-
- - -
-
- -
-
- {{.IconSet.Icon "hero:outline/folder-plus" "mx-auto h-12 w-12 text-gray-400"}} -
- - - - -
-

Jusqu'à 10MB

-

-
-
-
-
- -
- -
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-journeys.html b/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-journeys.html deleted file mode 100644 index 160a179..0000000 --- a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-journeys.html +++ /dev/null @@ -1,38 +0,0 @@ -{{define "beneficiary_journeys"}} -
-
- - {{ $departureField := "departure" }} - {{ $departureLabel := "Départ" }} - {{ template "address_autocomplete" dict "FieldName" $departureField "FieldLabel" $departureLabel }} - - {{ $destinationField := "destination" }} - {{ $destinationLabel := "Destination" }} - {{ template "address_autocomplete" dict "FieldName" $destinationField "FieldLabel" $destinationLabel }} - - -
-
- -
- -
-
-
- -
- -
-
- -
- - -
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-notes.html b/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-notes.html deleted file mode 100644 index a793a17..0000000 --- a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-notes.html +++ /dev/null @@ -1,108 +0,0 @@ -{{define "beneficiary_notes"}} -
- -
-
- -
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-vehicles.html b/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-vehicles.html deleted file mode 100644 index 897ade0..0000000 --- a/themes/spie06/web/layouts/beneficiaries/_partials/beneficiary-vehicles.html +++ /dev/null @@ -1,39 +0,0 @@ -{{define "beneficiary_vehicles"}} -
- {{if .ViewState.bookings}} -

Mises à disposition réalisées

- - {{end}} -

Réserver un véhicule

-
- -
-
- -
- -
-
-
- -
- -
-
- -
- {{template "vehicle_type_select" .}} - - -
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/beneficiaries/create.html b/themes/spie06/web/layouts/beneficiaries/create.html deleted file mode 100644 index 36ba876..0000000 --- a/themes/spie06/web/layouts/beneficiaries/create.html +++ /dev/null @@ -1,184 +0,0 @@ -{{define "content"}} - -
-

Ajouter un bénéficiaire

-
- -
-
-
-
-
-

Informations obligatoires

-

Informations personnelles sur le bénéficiaire obligatoires - pour créer son profil dans PARCOURSMOB

-
-
-
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
-
-
-
- -
-
-
-

Informations optionnelles

-

Autres informations de profil optionnelles

-
-
-
- -
- - -
- -
- -
- -
-
- - - - -
-
-
-
-
-
-
-

Paramètres

-

Paramètres liés au bénéficiaire, utiles pour exploiter les fonctionnalités de PARCOURSMOB

-
-
- - {{ $fieldName := "address" }} - {{ template "address_autocomplete" dict "FieldName" $fieldName }} - - - -
-
-
- -
-

Certains champs de sont pas valides.

- - - - -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/beneficiaries/display.html b/themes/spie06/web/layouts/beneficiaries/display.html deleted file mode 100644 index 6829e5a..0000000 --- a/themes/spie06/web/layouts/beneficiaries/display.html +++ /dev/null @@ -1,152 +0,0 @@ -{{define "content"}} -
- -
-
-
-
- - -
-
-
-

{{.ViewState.beneficiary.Data.first_name}} - {{.ViewState.beneficiary.Data.last_name}}

-

{{if .ViewState.beneficiary.Metadata.created}}Ajouté le par - Conseiller 1{{end}} -

-
-
-
- - -
-
- -
-
-
-
-
-

- Informations personnelles

-

Informations générales sur le bénéficiaire.

-
-
-
- {{if .ViewState.beneficiary.Data.email}} -
-
Email
-
{{.ViewState.beneficiary.Data.email}}
-
- {{end}} - {{if .ViewState.beneficiary.Data.phone_number}} -
-
Téléphone
-
{{.ViewState.beneficiary.Data.phone_number}}
-
- {{end}} - {{if .ViewState.beneficiary.Data.birthdate}} -
-
Date de naissance
-
{{(timeFrom .ViewState.beneficiary.Data.birthdate).Format - "02/01/2006"}}
-
- {{end}} - {{if and .ViewState.beneficiary.Data.gender (ne .ViewState.beneficiary.Data.gender "0")}} -
-
Genre
-
{{genderISO5218 .ViewState.beneficiary.Data.gender}}
-
- {{end}} - {{if .ViewState.beneficiary.Data.address}} -
-
Adresse
-
{{.ViewState.beneficiary.Data.address.properties.label}}
-
- {{end}} -
-
-
-
- -
-
-
-
-
- - -
- -
- -
{{template "beneficiary_journeys" .}}
-
{{template "beneficiary_vehicles" .}}
-
{{template "beneficiary_events" .}}
-
{{template "beneficiary_files" .}}
-
{{template "beneficiary_notes" .}}
-
-
-
-
- -
-
-

Actions réalisées

-

Aucune action réalisée pour le moment

-
-
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/beneficiaries/list.html b/themes/spie06/web/layouts/beneficiaries/list.html deleted file mode 100644 index da8bbad..0000000 --- a/themes/spie06/web/layouts/beneficiaries/list.html +++ /dev/null @@ -1,166 +0,0 @@ -{{define "content"}} -
-

Bénéficiaires

- - -
-
-
-
-
-
- - - - - - - - - - - - - - - -
- Nom - - Téléphone - - Adresse - - Labels - - Modifier -
-
- - -
-
-
- -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/beneficiaries/update.html b/themes/spie06/web/layouts/beneficiaries/update.html deleted file mode 100644 index da1b4c9..0000000 --- a/themes/spie06/web/layouts/beneficiaries/update.html +++ /dev/null @@ -1,184 +0,0 @@ -{{define "content"}} - -
-

Modifier un bénéficiaire

-
- -
-
-
-
-
-

Informations obligatoires

-

Informations personnelles sur le bénéficiaire obligatoires - pour créer son profil dans PARCOURSMOB

-
-
-
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
-
-
-
- -
-
-
-

Informations optionnelles

-

Autres informations de profil optionnelles

-
-
-
- -
- - -
- -
- -
- -
-
- - - - -
-
-
-
-
-
-
-

Paramètres

-

Paramètres liés au bénéficiaire, utiles pour exploiter les fonctionnalités de PARCOURSMOB

-
-
- - {{ $fieldName := "address" }} - {{ template "address_autocomplete" (dict "FieldName" $fieldName "Address" .ViewState.Data.address) }} - - -
-
-
- -
-

Certains champs de sont pas valides.

- - - - -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/dashboard/_partials/agenda-widget.html b/themes/spie06/web/layouts/dashboard/_partials/agenda-widget.html deleted file mode 100644 index c63ce4b..0000000 --- a/themes/spie06/web/layouts/dashboard/_partials/agenda-widget.html +++ /dev/null @@ -1,29 +0,0 @@ -{{define "agenda_widget"}} -
-
-
-

Prochains dispositifs

-
- -
- - - - - -
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/dashboard/_partials/beneficiaries-widget.html b/themes/spie06/web/layouts/dashboard/_partials/beneficiaries-widget.html deleted file mode 100644 index dcf45cc..0000000 --- a/themes/spie06/web/layouts/dashboard/_partials/beneficiaries-widget.html +++ /dev/null @@ -1,31 +0,0 @@ -{{define "beneficiaries_widget"}} -
-
-
-

Bénéficiaires

-

Derniers bénéficiaires ajoutés

-
- -
- - - - - -
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/dashboard/dashboard.html b/themes/spie06/web/layouts/dashboard/dashboard.html deleted file mode 100644 index 10c1e7f..0000000 --- a/themes/spie06/web/layouts/dashboard/dashboard.html +++ /dev/null @@ -1,77 +0,0 @@ -{{define "content"}} - -
-

Tableau de bord

-
-
-

Statistiques de votre organisation

- -
- -
-
- - - {{template "beneficiaries_widget" .ViewState.beneficiaries}} - {{template "agenda_widget" .ViewState.events}} - - -
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/directory/home.html b/themes/spie06/web/layouts/directory/home.html deleted file mode 100644 index da927c1..0000000 --- a/themes/spie06/web/layouts/directory/home.html +++ /dev/null @@ -1,23 +0,0 @@ -{{define "content"}} -
-

Répertoire des solutions

- -
-
-

-
-
- -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/group/settings.html b/themes/spie06/web/layouts/group/settings.html deleted file mode 100644 index c693377..0000000 --- a/themes/spie06/web/layouts/group/settings.html +++ /dev/null @@ -1,129 +0,0 @@ -{{define "content"}} -
-
-
- -
-

{{.ViewState.group.Data.name}}

-
-
-
- -
-
-
-
-
-
-
-

- Paramètres de l'organisation

-

Paramètres généraux de l'organisation

-
- {{template "groups_members" .}} - -
-
-
- -
- - -
- -
- - {{template "groups_admins" .}} -
-
-
-
-
-

Modules activés

- -
-
-
-
- -
-
- -

Gestion des bénéficiaires assignés à sa propre organisation. -

-
-
-
-
- -
-
- -

Trouver des solutions et organiser les déplacements de ses bénéficiaires.

-
-
-
-
- -
-
- -

Trouver et réserver des véhicules pour ses bénéficiaires. -

-
-
-
-
- -
-
- -

Gérer les véhicules et réservations (pour les gestionnaires de flottes) -

-
-
-
-
- -
-
- -

Agenda des dispositifs pour les bénéficiaires (sessions permis, événements, ...) -

-
-
-
-
- -
-
- -

Administration générale de la plateforme PARCOURSMOB. Créer, ajouter des organisations et administrateurs. -

-
-
-
-
-
- -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/journeys/_partials/journeys-all.html b/themes/spie06/web/layouts/journeys/_partials/journeys-all.html deleted file mode 100644 index c340373..0000000 --- a/themes/spie06/web/layouts/journeys/_partials/journeys-all.html +++ /dev/null @@ -1,105 +0,0 @@ -{{define "journeys_all"}} -
- {{ if gt (len .ViewState.carpools) 0}} - {{$carpool := (index .ViewState.carpools 0)}} -
-
- {{.IconSet.Icon "tabler-icons:car" "h-6 w-6 inline-flex mr-4"}} Covoiturage - {{if $carpool.days.monday}} - entre {{$carpool.outward.monday.mintime}} et {{$carpool.outward.monday.maxtime}} - {{else if $carpool.days.tuesday}} - entre {{$carpool.outward.tuesday.mintime}} et {{$carpool.outward.tuesday.maxtime}} - {{else if $carpool.days.wednesday}} - entre {{$carpool.outward.wednesday.mintime}} et {{$carpool.outward.wednesday.maxtime}} - {{else if $carpool.days.thursday}} - entre {{$carpool.outward.thursday.mintime}} et {{$carpool.outward.thursday.maxtime}} - {{else if $carpool.days.friday}} - entre {{$carpool.outward.friday.mintime}} et {{$carpool.outward.friday.maxtime}} - {{else if $carpool.days.saturday}} - entre {{$carpool.outward.saturday.mintime}} et {{$carpool.outward.saturday.maxtime}} - {{else if $carpool.days.sunday}} - entre {{$carpool.outward.sunday.mintime}} et {{$carpool.outward.sunday.maxtime}} - {{end}} - (Temps trajet : {{divideFloat64 $carpool.duration 60.0 | printf "%.0f"}} Minutes) -
-
- - RIDYGO - -
-
- -
- - {{$carpool.from.address}}, {{$carpool.from.city}} - - {{$.IconSet.Icon "hero:outline/chevron-right" "h-3 w-3 stroke-gray-800 m-2"}} - - {{$carpool.to.address}}, {{$carpool.to.city}} - -
- -
- Conducteur : - - {{$carpool.driver.alias}} - -
- -
- -
- - - {{end}} - - {{ if gt (len .ViewState.journeys.Journeys) 0}} -
-
- {{.IconSet.Icon "tabler-icons:bus" "h-6 w-6 inline-flex mr-4"}} - {{(timeFrom (index .ViewState.journeys.Journeys 0).Departure).Format "15:04"}} - {{(timeFrom (index .ViewState.journeys.Journeys 0).Arrival).Format "15:04"}} - ({{(index .ViewState.journeys.Journeys 0).Duration.Minutes | printf "%.0f"}} Minutes) -
-
-
-
- {{$firstwalk := true}} - {{range (index .ViewState.journeys.Journeys 0).Sections}} - {{if eq .Type "street_network"}} - - {{$.IconSet.Icon "tabler-icons:walk" "h-4 w-4 stroke-gray-800"}} - - {{if $firstwalk}} - {{$firstwalk = false}} - {{$.IconSet.Icon "hero:outline/chevron-right" "h-3 w-3 stroke-gray-800 m-2"}} - {{end}} - {{end}} - {{if eq .Type "public_transport"}} - - {{if eq .Display.Network "Antibes - Envibus"}}Envibus{{else}}{{.Display.Network}}{{end}} Ligne {{.Display.Label}} - - {{$.IconSet.Icon "hero:outline/chevron-right" "h-3 w-3 stroke-gray-800 m-2"}} - {{end}} - {{end}} -
- -
-
- -
- - {{end}} - - -
-
- {{.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 -
-
-
- -
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/journeys/_partials/journeys-carpool.html b/themes/spie06/web/layouts/journeys/_partials/journeys-carpool.html deleted file mode 100644 index 1a0a198..0000000 --- a/themes/spie06/web/layouts/journeys/_partials/journeys-carpool.html +++ /dev/null @@ -1,56 +0,0 @@ -{{define "journeys_carpool"}} - -{{ if eq (len .ViewState.carpools) 0}} -

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/spie06/web/layouts/journeys/_partials/journeys-others.html b/themes/spie06/web/layouts/journeys/_partials/journeys-others.html deleted file mode 100644 index 39f2176..0000000 --- a/themes/spie06/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 -
-
-
-
-
- - - - - - - - - - - {{range .ViewState.vehicles}} - - - - - - - {{end}} - -
VéhiculeNuméroGestionnaireLieu
{{.Data.name}}{{.Data.licence_plate}}COOPGO{{if .Data.address}}{{.Data.address.properties.label}}{{end}}
-
- - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/journeys/_partials/journeys-public-transit.html b/themes/spie06/web/layouts/journeys/_partials/journeys-public-transit.html deleted file mode 100644 index 59bbfab..0000000 --- a/themes/spie06/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
-
-
- - -
-
-{{end}} -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/journeys/search.html b/themes/spie06/web/layouts/journeys/search.html deleted file mode 100644 index bbe6f8f..0000000 --- a/themes/spie06/web/layouts/journeys/search.html +++ /dev/null @@ -1,120 +0,0 @@ -{{define "content"}} -
-

Déplacements

- - -
-
-
-

Chercher une solution

-
-
- - {{ $departureField := "departure" }} - {{ $departureLabel := "Départ" }} - {{ $departure := .ViewState.departure }} - {{ template "address_autocomplete" dict "FieldName" $departureField "FieldLabel" $departureLabel "Address" $departure }} - - {{ $destinationField := "destination" }} - {{ $destinationLabel := "Destination" }} - {{ $destination := .ViewState.destination }} - {{ template "address_autocomplete" dict "FieldName" $destinationField "FieldLabel" $destinationLabel "Address" $destination }} - - -
-
- -
- -
-
-
- -
- -
-
- -
- - -
-
-
-
-
- {{if .ViewState.searched}} -
-
-
-
-
- - -
- -
- -
{{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/spie06/web/layouts/layout.html b/themes/spie06/web/layouts/layout.html deleted file mode 100644 index 557ab71..0000000 --- a/themes/spie06/web/layouts/layout.html +++ /dev/null @@ -1,180 +0,0 @@ -{{define "main"}} - - - - - PARCOURSMOB - - - - - - - - - - - -
-
- - -
- -
-
- {{ template "content" . }} -
-
-
-
- - - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/support/support.html b/themes/spie06/web/layouts/support/support.html deleted file mode 100644 index 224bd63..0000000 --- a/themes/spie06/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/spie06/web/layouts/vehicles/booking-display.html b/themes/spie06/web/layouts/vehicles/booking-display.html deleted file mode 100644 index 21d19c3..0000000 --- a/themes/spie06/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}} -
- -
Réservé par
-
- {{if .ViewState.booking.Data.booked_by.user}} - - - {{.ViewState.booking.Data.booked_by.user.display_name}} - - {{end}} -
-
- {{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}} - -
- - - - - - - - - - - {{range .ViewState.documents}} - - - - - - - {{end}} - - - - -
Type - Actions -
-
- {{index $.ViewState.file_types_map .Metadata.Type}} -
-
-

{{.Metadata.Name}}

-
{{.LastModified.Format "02/01/2006"}} - - - -
-
- - {{end}} -
-
-
-
-
-
-
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles/bookings-list.html b/themes/spie06/web/layouts/vehicles/bookings-list.html deleted file mode 100644 index 5cc979c..0000000 --- a/themes/spie06/web/layouts/vehicles/bookings-list.html +++ /dev/null @@ -1,68 +0,0 @@ -{{define "content"}} -
-

Réservations

-
- -
-
-
-
-
- - - - - - - - - - - - - {{range .ViewState.bookings}} - - - - - - - - - {{end}} - - -
- Type - - Beneficiaire - - Dates - - Actions -
-
Voiture
-
-
-
-
Du {{(timeFrom .Startdate).Format "02/01/2006"}} au {{(timeFrom .Enddate).Format "02/01/2006"}}
-
- Voir -
-
-
-
-
-
- - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles/search.html b/themes/spie06/web/layouts/vehicles/search.html deleted file mode 100644 index b9d4845..0000000 --- a/themes/spie06/web/layouts/vehicles/search.html +++ /dev/null @@ -1,237 +0,0 @@ -{{define "content"}} -
-

Véhicules partagés

- - - -
-
-
-

Chercher un véhicule

-
-
- -
- - -
- - - - -
    - - - - -
-
-
- - - -
-
- -
- -
-
-
- -
- -
-
- -
- {{template "vehicle_type_select" .}} - - -
-
-
-
-
- {{if .ViewState.searched}} -
-

Véhicules disponibles

-
-
-
- - - - - - - - - - - - {{range .ViewState.search.vehicles}} - - - - - - - - {{end}} - -
VéhiculeNuméroGestionnaireLieu - Réserver -
{{.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}} - -
-
-
-
-
- {{end}} -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles_management/_partials/bookings-list.html b/themes/spie06/web/layouts/vehicles_management/_partials/bookings-list.html deleted file mode 100644 index 77a477d..0000000 --- a/themes/spie06/web/layouts/vehicles_management/_partials/bookings-list.html +++ /dev/null @@ -1,77 +0,0 @@ -{{define "bookings_list"}} -
-
-
-
-
- - - - - - - - - - - - - {{range .ViewState.bookings}} - - - - - - - - - {{end}} - -
- Statut - - Type - - Numéro (Immat / Bicycode) - - Beneficiaire - - Dates - - Actions -
- {{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}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles_management/_partials/calendar.html b/themes/spie06/web/layouts/vehicles_management/_partials/calendar.html deleted file mode 100644 index 5a6dbb5..0000000 --- a/themes/spie06/web/layouts/vehicles_management/_partials/calendar.html +++ /dev/null @@ -1,259 +0,0 @@ -{{define "calendar"}} -
-

Août 2022

- - -
-
-
L
-
M
-
M
-
J
-
V
-
S
-
D
-
-
-
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles_management/_partials/vehicle-type-select.html b/themes/spie06/web/layouts/vehicles_management/_partials/vehicle-type-select.html deleted file mode 100644 index eaadfa0..0000000 --- a/themes/spie06/web/layouts/vehicles_management/_partials/vehicle-type-select.html +++ /dev/null @@ -1,105 +0,0 @@ -{{define "vehicle_type_select"}} -
- - -
- - -
    - -
  • - - Voiture - - - -
  • -
  • - - Voiture sans permis - - - -
  • -
  • - - Scooter - - - -
  • -
  • - - Trotinette - - - -
  • -
  • - - Vélo électrique - - - -
  • - - -
-
-
- -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles_management/_partials/vehicles-list.html b/themes/spie06/web/layouts/vehicles_management/_partials/vehicles-list.html deleted file mode 100644 index c8840ae..0000000 --- a/themes/spie06/web/layouts/vehicles_management/_partials/vehicles-list.html +++ /dev/null @@ -1,56 +0,0 @@ -{{define "vehicles_list"}} -
-
-
-
-
- - - - - - - - - - - - {{range .ViewState.vehicles}} - - - - - - - - {{end}} - -
- Numéro (Immat / Bicycode) - - Type - - Modèle - - Lieu - - Actions -
-
{{.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}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles_management/booking-display.html b/themes/spie06/web/layouts/vehicles_management/booking-display.html deleted file mode 100644 index 2a767fd..0000000 --- a/themes/spie06/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.

-
-
- - - -
-
-
-
-
-
-
- - {{if .ViewState.booking.Data.booked_by}} - -
-
Prescripteur
-
- {{if .ViewState.booking.Data.booked_by.user}} - - - {{.ViewState.booking.Data.booked_by.user.display_name}} - - {{end}} - {{if .ViewState.booking.Data.booked_by.group}}{{.ViewState.booking.Data.booked_by.group.name}}{{end}} -
-
- {{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 -
-
-
- -
- -
-
-
-
-
Date de retour
-
-
-
{{(timeFrom .ViewState.booking.Enddate).Format "02/01/2006"}}
- Modifier -
-
-
- -
- -
-
-
-
-
Indisponible à partir du
-
-
-
{{(timeFrom .ViewState.booking.Unavailablefrom).Format "02/01/2006"}}
- Modifier -
-
-
- -
- -
-
-
-
-
Sera à nouveau disponible le
-
-
-
{{(timeFrom .ViewState.booking.Unavailableto).Format "02/01/2006"}}
- Modifier -
-
-
- -
- -
-
-
-

Documents

- {{if eq (len .ViewState.documents) 0}} -

Aucun document

- {{end}} - - - {{if gt (len .ViewState.documents) 0}} - -
- - - - - - - - - - - {{range .ViewState.documents}} - - - - - - - {{end}} - - - - -
Type - Actions -
-
- {{index $.ViewState.file_types_map .Metadata.Type}} -
-
-

{{.Metadata.Name}}

-
{{.LastModified.Format "02/01/2006"}} - - - -
-
- - {{end}} -
-
-
-
-
-
-
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles_management/bookings-list.html b/themes/spie06/web/layouts/vehicles_management/bookings-list.html deleted file mode 100644 index 6bd90c0..0000000 --- a/themes/spie06/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/spie06/web/layouts/vehicles_management/fleet-add.html b/themes/spie06/web/layouts/vehicles_management/fleet-add.html deleted file mode 100644 index 55ae759..0000000 --- a/themes/spie06/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

-
-
-
-
- - -
-
- {{template "vehicle_type_select" .}} -
-
- - -
-
-
-
-
-
-
-
-

Informations pratiques

-

Informations pratiques pour la réservation

-
-
- {{ $fieldName := "address" }} - {{ template "address_autocomplete" dict "FieldName" $fieldName }} - -
- -
- -
-
-
-
-
- -
-

Certains champs de sont pas valides.

- - - - -
- -
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles_management/fleet-display.html b/themes/spie06/web/layouts/vehicles_management/fleet-display.html deleted file mode 100644 index d786100..0000000 --- a/themes/spie06/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}} - - {{template "calendar" .}} -
-
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles_management/fleet-update.html b/themes/spie06/web/layouts/vehicles_management/fleet-update.html deleted file mode 100644 index 88b6770..0000000 --- a/themes/spie06/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

-
-
-
-
- - -
-
- {{template "vehicle_type_select" .}} -
-
- - -
-
-
-
-
-
-
-
-

Informations pratiques

-

Informations pratiques pour la réservation

-
-
- {{ $fieldName := "address" }} - {{ template "address_autocomplete" (dict "FieldName" $fieldName "Address" .ViewState.vehicle.Data.address) }} - -
- -
- -
-
-
-
-
- -
-

Certains champs de sont pas valides.

- - - - -
-
-
-{{end}} \ No newline at end of file diff --git a/themes/spie06/web/layouts/vehicles_management/overview.html b/themes/spie06/web/layouts/vehicles_management/overview.html deleted file mode 100644 index 60fd3ab..0000000 --- a/themes/spie06/web/layouts/vehicles_management/overview.html +++ /dev/null @@ -1,45 +0,0 @@ -{{define "content"}} -
-

Gestion des véhicules et réservations

- - - -
- -{{template "bookings_list" .}} - - - -{{template "vehicles_list" .}} - -{{end}} \ No newline at end of file diff --git a/themes/spie06/web/public/css/main.css b/themes/spie06/web/public/css/main.css deleted file mode 100644 index 768eb13..0000000 --- a/themes/spie06/web/public/css/main.css +++ /dev/null @@ -1,2877 +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-auto { - margin: auto; -} - -.m-2 { - margin: 0.5rem; -} - -.-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-16 { - height: 4rem; -} - -.h-8 { - height: 2rem; -} - -.h-0 { - height: 0px; -} - -.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; -} - -.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; -} - -.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(222 21 129 / 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(0 114 126 / 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(0 114 126 / 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(222 21 129 / 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; -} - -.pb-4 { - padding-bottom: 1rem; -} - -.pt-2 { - padding-top: 0.5rem; -} - -.pt-5 { - padding-top: 1.25rem; -} - -.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(0 114 126 / var(--tw-text-opacity)); -} - -.text-co-red { - --tw-text-opacity: 1; - color: rgb(222 21 129 / 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(0 114 126 / 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(0 114 126 / 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(0 114 126 / 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(0 114 126 / 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(0 114 126 / 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(222 21 129 / 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/spie06/web/public/images/Tutoriel SPIE06 - Positionner sur un permis accéléré.pdf b/themes/spie06/web/public/images/Tutoriel SPIE06 - Positionner sur un permis accéléré.pdf deleted file mode 100644 index c1497f7..0000000 Binary files a/themes/spie06/web/public/images/Tutoriel SPIE06 - Positionner sur un permis accéléré.pdf and /dev/null differ diff --git a/themes/spie06/web/public/images/departement06.png b/themes/spie06/web/public/images/departement06.png deleted file mode 100644 index c7e5608..0000000 Binary files a/themes/spie06/web/public/images/departement06.png and /dev/null differ diff --git a/themes/spie06/web/public/images/main_logo.svg b/themes/spie06/web/public/images/main_logo.svg deleted file mode 100644 index e098d7a..0000000 --- a/themes/spie06/web/public/images/main_logo.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/themes/spie06/web/public/images/parcoursmob_logo_bluered.svg b/themes/spie06/web/public/images/parcoursmob_logo_bluered.svg deleted file mode 100644 index 092d2ef..0000000 --- a/themes/spie06/web/public/images/parcoursmob_logo_bluered.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/themes/spie06/web/public/images/parcoursmob_logo_whitered.svg b/themes/spie06/web/public/images/parcoursmob_logo_whitered.svg deleted file mode 100644 index d267bdd..0000000 --- a/themes/spie06/web/public/images/parcoursmob_logo_whitered.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/themes/spie06/web/public/js/main.js b/themes/spie06/web/public/js/main.js deleted file mode 100644 index c1c927c..0000000 --- a/themes/spie06/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 `