diff --git a/.env.local.example b/.env.local.example index c81aed0..3ac3a5f 100644 --- a/.env.local.example +++ b/.env.local.example @@ -4,5 +4,8 @@ NEXT_PUBLIC_POSTHOG_UI_HOST= NEXT_PUBLIC_SANITY_PROJECT_ID= NEXT_PUBLIC_SANITY_DATASET= - SANITY_API_READ_TOKEN= + +NEXT_PUBLIC_WEBPAGE= +NEXT_PUBLIC_TICKETS_API_URL= +NEXT_PUBLIC_COMMUNITY_EVENT_URL= diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg deleted file mode 100644 index 1815ce3..0000000 --- a/.husky/prepare-commit-msg +++ /dev/null @@ -1 +0,0 @@ -exec < /dev/tty && npx cz --hook || true \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6f1251a..cd241fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,12 +15,13 @@ "@sanity/vision": "^3.36.3", "@tsparticles/engine": "^3.2.2", "@tsparticles/react": "^3.0.0", + "atropos": "^2.0.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "easymde": "^2.18.0", "graphql": "^16.8.1", "graphql-request": "^6.1.0", - "lucide-react": "^0.335.0", + "lucide-react": "^0.446.0", "next": "14.1.0", "next-sanity": "^9.0.14", "next-sanity-image": "^6.1.1", @@ -51,7 +52,6 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "autoprefixer": "^10.0.1", - "commitizen": "^4.3.0", "cz-conventional-changelog": "^3.3.0", "eslint": "^8", "eslint-config-next": "14.1.0", @@ -7901,6 +7901,14 @@ "node": ">= 4.0.0" } }, + "node_modules/atropos": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/atropos/-/atropos-2.0.2.tgz", + "integrity": "sha512-8f0u0hEOlBTWTSvzY17TcHuQjxUIpkTBq70/I4+UF5B43ORtOoRjm8TPBYEgLM8Ba9AWf6PDtkagbYoybdjaKg==", + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/auto-bind": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", @@ -14588,11 +14596,11 @@ } }, "node_modules/lucide-react": { - "version": "0.335.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.335.0.tgz", - "integrity": "sha512-FNmIG4JLdvpK86ZFJjrT0SnFEa95KhsiNokVicA5mWEf1oe+ujP2C/bTr0PVQzr/wzvZpzgxaOySq0O79q2oMA==", + "version": "0.446.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.446.0.tgz", + "integrity": "sha512-BU7gy8MfBMqvEdDPH79VhOXSEgyG8TSPOKWaExWGCQVqnGH7wGgDngPbofu+KdtVjPQBWbEmnfMTq90CTiiDRg==", "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0" + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, "node_modules/make-dir": { diff --git a/package.json b/package.json index 43cf38c..43144d4 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,7 @@ "lint:fix": "eslint ./src --cache --fix", "prettier": "prettier ./src --cache --check", "prettier:fix": "prettier ./src --cache --write", - "prepare": "husky install", - "commit": "cz" + "prepare": "husky install" }, "engines": { "node": ">=18.17.0" @@ -28,12 +27,13 @@ "@sanity/vision": "^3.36.3", "@tsparticles/engine": "^3.2.2", "@tsparticles/react": "^3.0.0", + "atropos": "^2.0.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "easymde": "^2.18.0", "graphql": "^16.8.1", "graphql-request": "^6.1.0", - "lucide-react": "^0.335.0", + "lucide-react": "^0.446.0", "next": "14.1.0", "next-sanity": "^9.0.14", "next-sanity-image": "^6.1.1", @@ -64,7 +64,6 @@ "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "autoprefixer": "^10.0.1", - "commitizen": "^4.3.0", "cz-conventional-changelog": "^3.3.0", "eslint": "^8", "eslint-config-next": "14.1.0", @@ -85,10 +84,5 @@ "lint-staged": { "src/*.{js,jsx,ts,tsx}": "eslint --cache --fix", "src/*.{js,jsx,ts,tsx,css,md}": "prettier --write" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } } } diff --git a/src/api/schema.gql b/src/api/schema.gql index 3e66189..994f585 100644 --- a/src/api/schema.gql +++ b/src/api/schema.gql @@ -29,6 +29,8 @@ type Block { style: String } +union BlockOrImage = Block | Image + input BooleanFilter { """Checks if the value is equal to the given input.""" eq: Boolean @@ -44,6 +46,7 @@ type Card { _key: String _type: String description: RichText + description2: RichText icon: String image: Image showType: String @@ -54,13 +57,14 @@ input CardFilter { _key: StringFilter _type: StringFilter description: RichTextFilter + description2: RichTextFilter icon: StringFilter image: ImageFilter showType: StringFilter title: StringFilter } -union CardOrCustomInfoOrHeroOrRichTextOrRow = Card | CustomInfo | Hero | RichText | Row +union CardOrCustomSectionOrHeroOrRichTextOrRow = Card | CustomSection | Hero | RichText | Row union CardOrImageOrRichText = Card | Image | RichText @@ -68,6 +72,7 @@ input CardSorting { _key: SortOrder _type: SortOrder description: RichTextSorting + description2: RichTextSorting icon: SortOrder image: ImageSorting showType: SortOrder @@ -169,7 +174,7 @@ input CustomAttributesSorting { value: SortOrder } -type CustomInfo { +type CustomSection { _key: String _type: String actions: [Link] @@ -180,7 +185,7 @@ type CustomInfo { title: String } -input CustomInfoFilter { +input CustomSectionFilter { _key: StringFilter _type: StringFilter description: RichTextFilter @@ -189,7 +194,7 @@ input CustomInfoFilter { title: StringFilter } -input CustomInfoSorting { +input CustomSectionSorting { _key: SortOrder _type: SortOrder description: RichTextSorting @@ -405,6 +410,7 @@ type Hero { heading: String icon: String image: Image + specialTagline: RichText tagline: String } @@ -414,6 +420,7 @@ input HeroFilter { heading: StringFilter icon: StringFilter image: ImageFilter + specialTagline: RichTextFilter tagline: StringFilter } @@ -423,6 +430,7 @@ input HeroSorting { heading: SortOrder icon: SortOrder image: ImageSorting + specialTagline: RichTextSorting tagline: SortOrder } @@ -662,12 +670,13 @@ type Page implements Document { footer: Footer name: String navbar: Navbar - sections: [CardOrCustomInfoOrHeroOrRichTextOrRow] + sections: [CardOrCustomSectionOrHeroOrRichTextOrRow] seoDescription: String seoImage: Image seoKeywords: String seoTitle: String slug: Slug + theme: String } input PageFilter { @@ -688,6 +697,7 @@ input PageFilter { seoKeywords: StringFilter seoTitle: StringFilter slug: SlugFilter + theme: StringFilter } input PageSorting { @@ -704,31 +714,29 @@ input PageSorting { seoKeywords: SortOrder seoTitle: SortOrder slug: SlugSorting + theme: SortOrder } type RichText { _key: String _type: String htmlTextRaw: JSON - markdownText: String name: String - textType: String + styleModifier: String } input RichTextFilter { _key: StringFilter _type: StringFilter - markdownText: StringFilter name: StringFilter - textType: StringFilter + styleModifier: StringFilter } input RichTextSorting { _key: SortOrder _type: SortOrder - markdownText: SortOrder name: SortOrder - textType: SortOrder + styleModifier: SortOrder } type RootQuery { @@ -896,6 +904,7 @@ type Row { children: [CardOrImageOrRichText] description: RichText icon: String + inverse: Boolean rowType: String title: String } @@ -905,6 +914,7 @@ input RowFilter { _type: StringFilter description: RichTextFilter icon: StringFilter + inverse: BooleanFilter rowType: StringFilter title: StringFilter } @@ -914,6 +924,7 @@ input RowSorting { _type: SortOrder description: RichTextSorting icon: SortOrder + inverse: SortOrder rowType: SortOrder title: SortOrder } @@ -1353,9 +1364,12 @@ type Speaker implements Document { """Date the document was last modified""" _updatedAt: DateTime company: String + companyLogo: Image + companyWebpage: String description: RichText instagram: String isKeynoter: Boolean + isPrevia: Boolean linkedin: String longName: String photos: [Image] @@ -1377,9 +1391,12 @@ input SpeakerFilter { _type: StringFilter _updatedAt: DatetimeFilter company: StringFilter + companyLogo: ImageFilter + companyWebpage: StringFilter description: RichTextFilter instagram: StringFilter isKeynoter: BooleanFilter + isPrevia: BooleanFilter linkedin: StringFilter longName: StringFilter profilePicture: ImageFilter @@ -1398,9 +1415,12 @@ input SpeakerSorting { _type: SortOrder _updatedAt: SortOrder company: SortOrder + companyLogo: ImageSorting + companyWebpage: SortOrder description: RichTextSorting instagram: SortOrder isKeynoter: SortOrder + isPrevia: SortOrder linkedin: SortOrder longName: SortOrder profilePicture: ImageSorting diff --git a/src/api/types.ts b/src/api/types.ts index 638c7ac..85804c3 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -34,6 +34,8 @@ export type Block = { style: Maybe; }; +export type BlockOrImage = Block | Image; + export type BooleanFilter = { /** Checks if the value is equal to the given input. */ eq: InputMaybe; @@ -48,6 +50,7 @@ export type Card = { _key: Maybe; _type: Maybe; description: Maybe; + description2: Maybe; icon: Maybe; image: Maybe; showType: Maybe; @@ -58,13 +61,14 @@ export type CardFilter = { _key: InputMaybe; _type: InputMaybe; description: InputMaybe; + description2: InputMaybe; icon: InputMaybe; image: InputMaybe; showType: InputMaybe; title: InputMaybe; }; -export type CardOrCustomInfoOrHeroOrRichTextOrRow = Card | CustomInfo | Hero | RichText | Row; +export type CardOrCustomSectionOrHeroOrRichTextOrRow = Card | CustomSection | Hero | RichText | Row; export type CardOrImageOrRichText = Card | Image | RichText; @@ -72,6 +76,7 @@ export type CardSorting = { _key: InputMaybe; _type: InputMaybe; description: InputMaybe; + description2: InputMaybe; icon: InputMaybe; image: InputMaybe; showType: InputMaybe; @@ -172,8 +177,8 @@ export type CustomAttributesSorting = { value: InputMaybe; }; -export type CustomInfo = { - __typename?: 'CustomInfo'; +export type CustomSection = { + __typename?: 'CustomSection'; _key: Maybe; _type: Maybe; actions: Maybe>>; @@ -184,7 +189,7 @@ export type CustomInfo = { title: Maybe; }; -export type CustomInfoFilter = { +export type CustomSectionFilter = { _key: InputMaybe; _type: InputMaybe; description: InputMaybe; @@ -193,7 +198,7 @@ export type CustomInfoFilter = { title: InputMaybe; }; -export type CustomInfoSorting = { +export type CustomSectionSorting = { _key: InputMaybe; _type: InputMaybe; description: InputMaybe; @@ -377,6 +382,7 @@ export type Hero = { heading: Maybe; icon: Maybe; image: Maybe; + specialTagline: Maybe; tagline: Maybe; }; @@ -386,6 +392,7 @@ export type HeroFilter = { heading: InputMaybe; icon: InputMaybe; image: InputMaybe; + specialTagline: InputMaybe; tagline: InputMaybe; }; @@ -395,6 +402,7 @@ export type HeroSorting = { heading: InputMaybe; icon: InputMaybe; image: InputMaybe; + specialTagline: InputMaybe; tagline: InputMaybe; }; @@ -607,12 +615,13 @@ export type Page = Document & { footer: Maybe