diff --git a/apps/sanity/src/contentSections/PricingTable/index.tsx b/apps/sanity/src/contentSections/PricingTable/index.tsx deleted file mode 100644 index d449ec2..0000000 --- a/apps/sanity/src/contentSections/PricingTable/index.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import EmptyBlock from "@shared/ui/components/EmptyBlock"; - -import { PricingTable as PricingTableUI } from "@shared/ui"; - -import { prepareImageProps } from "@/lib/adapters/prepareImageProps"; -import { prepareLinkProps } from "@/lib/adapters/prepareLinkProps"; -import SectionContainer from "@/components/SectionContainer"; - -import type { IPricingTableProps } from "./types"; - -export default function PricingTable({ data }: IPricingTableProps) { - if (!data || data.tiers.length === 0) - return ; - - const { tiers } = data; - - const formattedTiers = tiers?.map((tier) => ({ - ...tier, - icon: prepareImageProps(tier.icon), - cta: prepareLinkProps(tier.link), - })); - - return ( - - - - ); -} diff --git a/apps/sanity/src/contentSections/PricingTable/schema.ts b/apps/sanity/src/contentSections/PricingTable/schema.ts deleted file mode 100644 index a2eced4..0000000 --- a/apps/sanity/src/contentSections/PricingTable/schema.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { - CommonGroup, - commonGroups, - sectionCommonFields, -} from "@/contentSections/commonFields"; -import { defineField, defineType } from "sanity"; - -import customImage from "@/lib/schemas/customImage"; -import customLink from "@/lib/schemas/customLink"; - -export const pricingTier = defineType({ - name: "pricingTableTier", - type: "object", - title: "Pricing Table Tier", - fields: [ - defineField({ - name: "name", - type: "string", - validation: (Rule) => Rule.required(), - }), - defineField({ - name: "icon", - type: customImage.name, - validation: (Rule) => Rule.required(), - }), - defineField({ - name: "price", - type: "number", - }), - defineField({ - name: "description", - type: "text", - validation: (Rule) => Rule.required(), - }), - defineField({ - name: "features", - type: "array", - of: [ - { - type: "string", - }, - ], - validation: (Rule) => Rule.required(), - }), - defineField({ - name: "link", - title: "CTA", - type: customLink.name, - validation: (Rule) => Rule.required(), - }), - defineField({ - name: "popular", - type: "boolean", - title: "Popular", - }), - ], -}); - -export default { - name: "section.pricingTable", - title: "Pricing Table", - type: "object", - groups: commonGroups, - fields: [ - defineField({ - name: "tiers", - type: "array", - of: [{ type: pricingTier.name }], - validation: (Rule) => Rule.required(), - group: CommonGroup.Content, - }), - defineField({ - name: "yearlyDiscountPercentage", - type: "number", - group: CommonGroup.Content, - validation: (Rule) => Rule.required().min(0).max(100), - }), - defineField({ - name: "extraServiceEnabled", - type: "boolean", - group: CommonGroup.Content, - }), - defineField({ - name: "extraService", - type: "object", - group: CommonGroup.Content, - hidden: ({ parent }) => !parent?.extraServiceEnabled, - fields: [ - defineField({ - name: "text", - type: "string", - validation: (Rule) => Rule.required(), - }), - defineField({ - name: "cost", - type: "number", - validation: (Rule) => Rule.required(), - }), - ], - }), - ...sectionCommonFields, - ], - preview: { - prepare: () => ({ - title: `Pricing Table`, - }), - }, -}; diff --git a/apps/sanity/src/contentSections/PricingTable/types.ts b/apps/sanity/src/contentSections/PricingTable/types.ts deleted file mode 100644 index 2fdda4b..0000000 --- a/apps/sanity/src/contentSections/PricingTable/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { type SectionPricingTable } from "@/generated/extracted-types"; - -export interface IPricingTableProps { - data: SectionPricingTable & { - _key: string; - }; -} diff --git a/apps/sanity/src/contentSections/StepGuide/index.tsx b/apps/sanity/src/contentSections/StepGuide/index.tsx deleted file mode 100644 index aaf12f4..0000000 --- a/apps/sanity/src/contentSections/StepGuide/index.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import EmptyBlock from "@shared/ui/components/EmptyBlock"; - -import { StepGuide as StepGuideUI } from "@shared/ui"; - -import { prepareImageProps } from "@/lib/adapters/prepareImageProps"; -import { prepareLinkProps } from "@/lib/adapters/prepareLinkProps"; -import SectionContainer from "@/components/SectionContainer"; - -import type { IStepsGuideProps } from "./types"; - -export default function StepGuide({ data }: IStepsGuideProps) { - const { items, link } = data; - - if (!items || items.length === 0) { - return ; - } - - const formattedItems = items.map((item) => ({ - ...item, - image: prepareImageProps(item?.image), - })); - - return ( - - - - ); -} diff --git a/apps/sanity/src/contentSections/StepGuide/schema.ts b/apps/sanity/src/contentSections/StepGuide/schema.ts deleted file mode 100644 index 015f2cd..0000000 --- a/apps/sanity/src/contentSections/StepGuide/schema.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { - CommonGroup, - commonGroups, - sectionCommonFields, -} from "@/contentSections/commonFields"; -import { defineField, defineType } from "sanity"; - -import customImage from "@/lib/schemas/customImage"; -import customLink from "@/lib/schemas/customLink"; - -export const stepGuideItem = defineType({ - name: "stepGuideItem", - type: "object", - title: "Step Guide Item", - fields: [ - defineField({ - name: "number", - type: "string", - validation: (Rule) => Rule.required(), - initialValue: "01", - }), - defineField({ - name: "text", - type: "string", - validation: (Rule) => Rule.required(), - initialValue: "Some text", - }), - defineField({ - name: "image", - type: customImage.name, - validation: (Rule) => Rule.required(), - }), - ], -}); - -export default { - name: "section.stepGuide", - title: "Step Guide", - type: "object", - groups: commonGroups, - fields: [ - defineField({ - name: "items", - type: "array", - of: [{ type: stepGuideItem.name }], - validation: (Rule) => Rule.required().min(1), - group: CommonGroup.Content, - }), - defineField({ - name: "link", - type: customLink.name, - validation: (Rule) => Rule.required(), - group: CommonGroup.Content, - }), - ...sectionCommonFields, - ], - preview: { - select: { - number: "items.0.number", - text: "items.0.text", - image: "items.0.image.image", - }, - prepare(value: any) { - return { - media: value.image, - subtitle: "Step Guide", - title: `${value.number} ${value.text}`, - }; - }, - }, -}; diff --git a/apps/sanity/src/contentSections/StepGuide/types.ts b/apps/sanity/src/contentSections/StepGuide/types.ts deleted file mode 100644 index bfd46ea..0000000 --- a/apps/sanity/src/contentSections/StepGuide/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { type SectionStepGuide } from "@/generated/extracted-types"; - -export interface IStepsGuideProps { - data: SectionStepGuide & { - _key: string; - }; -} diff --git a/apps/sanity/src/contentSections/ThreeDElement/index.tsx b/apps/sanity/src/contentSections/ThreeDElement/index.tsx deleted file mode 100644 index 17e3ffd..0000000 --- a/apps/sanity/src/contentSections/ThreeDElement/index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { stegaClean } from "@sanity/client/stega"; -import EmptyBlock from "@shared/ui/components/EmptyBlock"; - -import { ThreeDElement as ThreeDElementUI } from "@shared/ui"; - -import SectionContainer from "@/components/SectionContainer"; - -import type { IThreeDElementProps } from "./types"; - -export default function ThreeDElement({ data }: IThreeDElementProps) { - const { model } = data; - - if (!model) return ; - - return ( - - - - ); -} diff --git a/apps/sanity/src/contentSections/ThreeDElement/schema.ts b/apps/sanity/src/contentSections/ThreeDElement/schema.ts deleted file mode 100644 index f97f0b5..0000000 --- a/apps/sanity/src/contentSections/ThreeDElement/schema.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { - CommonGroup, - commonGroups, - sectionCommonFields, -} from "@/contentSections/commonFields"; -import { defineField } from "sanity"; - -export default { - name: "section.threeDElement", - title: "3D Element", - type: "object", - groups: commonGroups, - fields: [ - defineField({ - name: "model", - type: "string", - group: CommonGroup.Content, - options: { - list: [ - { title: "Donut", value: "donut" }, - { title: "Globe", value: "globe" }, - { title: "Kubik Rubik", value: "kubik-rubik" }, - ], - layout: "dropdown", - }, - initialValue: "donut", - validation: (Rule) => Rule.required(), - }), - ...sectionCommonFields, - ], -}; diff --git a/apps/sanity/src/contentSections/ThreeDElement/types.ts b/apps/sanity/src/contentSections/ThreeDElement/types.ts deleted file mode 100644 index 9415548..0000000 --- a/apps/sanity/src/contentSections/ThreeDElement/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { SectionThreeDElement } from "@/generated/extracted-types"; - -export interface IThreeDElementProps { - data: SectionThreeDElement & { - _key: string; - }; -} diff --git a/apps/sanity/src/contentSections/index.tsx b/apps/sanity/src/contentSections/index.tsx index c5c5af4..ffce0d6 100644 --- a/apps/sanity/src/contentSections/index.tsx +++ b/apps/sanity/src/contentSections/index.tsx @@ -6,9 +6,6 @@ import Copy from "./Copy"; import Hero from "./Hero"; import LinksList from "./LinksList"; import Logos from "./Logos"; -import Pricing from "./PricingTable"; -import StepGuide from "./StepGuide"; -import ThreeDElement from "./ThreeDElement"; // end of section imports @@ -21,9 +18,6 @@ export const sections: Record = { "section.blog": Blog, "section.carousel": Carousel, "section.hero": Hero, - "section.pricing": Pricing, - "section.stepGuide": StepGuide, - "section.threeDElement": ThreeDElement, // end of section object }; diff --git a/apps/sanity/src/generated/extracted-schema.json b/apps/sanity/src/generated/extracted-schema.json index 82f7abe..2b3b280 100644 --- a/apps/sanity/src/generated/extracted-schema.json +++ b/apps/sanity/src/generated/extracted-schema.json @@ -325,626 +325,6 @@ } } }, - { - "name": "section.threeDElement", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "section.threeDElement" - } - }, - "model": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "donut" - }, - { - "type": "string", - "value": "globe" - }, - { - "type": "string", - "value": "kubik-rubik" - } - ] - }, - "optional": false - }, - "marginTop": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "none" - }, - { - "type": "string", - "value": "base" - }, - { - "type": "string", - "value": "lg" - } - ] - }, - "optional": false - }, - "marginBottom": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "none" - }, - { - "type": "string", - "value": "base" - }, - { - "type": "string", - "value": "lg" - } - ] - }, - "optional": false - }, - "maxWidth": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "none" - }, - { - "type": "string", - "value": "base" - }, - { - "type": "string", - "value": "small" - } - ] - }, - "optional": false - }, - "backgroundColor": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "light" - }, - { - "type": "string", - "value": "light-gray" - }, - { - "type": "string", - "value": "dark-gray" - }, - { - "type": "string", - "value": "dark" - }, - { - "type": "string", - "value": "none" - } - ] - }, - "optional": false - }, - "backgroundImage": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "sanity.imageAsset" - }, - "optional": true - }, - "hotspot": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageHotspot" - }, - "optional": true - }, - "crop": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageCrop" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "image" - } - } - } - }, - "optional": true - } - } - } - }, - { - "name": "section.stepGuide", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "section.stepGuide" - } - }, - "items": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "stepGuideItem" - } - } - }, - "optional": false - }, - "link": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "customLink" - }, - "optional": false - }, - "marginTop": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "none" - }, - { - "type": "string", - "value": "base" - }, - { - "type": "string", - "value": "lg" - } - ] - }, - "optional": false - }, - "marginBottom": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "none" - }, - { - "type": "string", - "value": "base" - }, - { - "type": "string", - "value": "lg" - } - ] - }, - "optional": false - }, - "maxWidth": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "none" - }, - { - "type": "string", - "value": "base" - }, - { - "type": "string", - "value": "small" - } - ] - }, - "optional": false - }, - "backgroundColor": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "light" - }, - { - "type": "string", - "value": "light-gray" - }, - { - "type": "string", - "value": "dark-gray" - }, - { - "type": "string", - "value": "dark" - }, - { - "type": "string", - "value": "none" - } - ] - }, - "optional": false - }, - "backgroundImage": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "sanity.imageAsset" - }, - "optional": true - }, - "hotspot": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageHotspot" - }, - "optional": true - }, - "crop": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageCrop" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "image" - } - } - } - }, - "optional": true - } - } - } - }, - { - "name": "section.pricingTable", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "section.pricingTable" - } - }, - "tiers": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "pricingTableTier" - } - } - }, - "optional": false - }, - "yearlyDiscountPercentage": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": false - }, - "extraServiceEnabled": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "extraService": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": false - }, - "cost": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": false - } - } - }, - "optional": true - }, - "marginTop": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "none" - }, - { - "type": "string", - "value": "base" - }, - { - "type": "string", - "value": "lg" - } - ] - }, - "optional": false - }, - "marginBottom": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "none" - }, - { - "type": "string", - "value": "base" - }, - { - "type": "string", - "value": "lg" - } - ] - }, - "optional": false - }, - "maxWidth": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "none" - }, - { - "type": "string", - "value": "base" - }, - { - "type": "string", - "value": "small" - } - ] - }, - "optional": false - }, - "backgroundColor": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "light" - }, - { - "type": "string", - "value": "light-gray" - }, - { - "type": "string", - "value": "dark-gray" - }, - { - "type": "string", - "value": "dark" - }, - { - "type": "string", - "value": "none" - } - ] - }, - "optional": false - }, - "backgroundImage": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "sanity.imageAsset" - }, - "optional": true - }, - "hotspot": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageHotspot" - }, - "optional": true - }, - "crop": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageCrop" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "image" - } - } - } - }, - "optional": true - } - } - } - }, { "name": "section.hero", "type": "document", @@ -2432,185 +1812,77 @@ "type": "string", "value": "dark-gray" }, - { - "type": "string", - "value": "dark" - }, - { - "type": "string", - "value": "none" - } - ] - }, - "optional": false - }, - "backgroundImage": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "sanity.imageAsset" - }, - "optional": true - }, - "hotspot": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageHotspot" - }, - "optional": true - }, - "crop": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageCrop" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "image" - } - } - } - }, - "optional": true - } - } - } - }, - { - "name": "stepGuideItem", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "stepGuideItem" - } - }, - "number": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": false - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": false - }, - "image": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "customImage" - }, - "optional": false - } - } - } - }, - { - "name": "pricingTableTier", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "pricingTableTier" - } - }, - "name": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": false - }, - "icon": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "customImage" - }, - "optional": false - }, - "price": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true - }, - "description": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": false - }, - "features": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": false - }, - "link": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "customLink" + { + "type": "string", + "value": "dark" + }, + { + "type": "string", + "value": "none" + } + ] }, "optional": false }, - "popular": { + "backgroundImage": { "type": "objectAttribute", "value": { - "type": "boolean" + "type": "object", + "attributes": { + "asset": { + "type": "objectAttribute", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "sanity.imageAsset" + }, + "optional": true + }, + "hotspot": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageHotspot" + }, + "optional": true + }, + "crop": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageCrop" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "image" + } + } + } }, "optional": true } @@ -3214,51 +2486,426 @@ "value": "primary" }, { - "type": "string", - "value": "secondary" + "type": "string", + "value": "secondary" + }, + { + "type": "string", + "value": "badge" + }, + { + "type": "string", + "value": "ghost" + }, + { + "type": "string", + "value": "ghost-dark" + } + ] + }, + "optional": false + }, + "size": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "base" + }, + { + "type": "string", + "value": "sm" + }, + { + "type": "string", + "value": "lg" + } + ] + }, + "optional": false + } + } + } + }, + { + "name": "page", + "type": "document", + "attributes": { + "_id": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "page" + } + }, + "_createdAt": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_updatedAt": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_rev": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "theme": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "light" + }, + { + "type": "string", + "value": "dark" + } + ] + }, + "optional": false + }, + "title": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "pathname": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "slug" + }, + "optional": true + }, + "header": { + "type": "objectAttribute", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "header" + }, + "optional": false + }, + "sectionsBody": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "section.copy" + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "section.logos" + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "section.linksList" + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "section.cardsGrid" + } }, { - "type": "string", - "value": "badge" + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "section.blog" + } }, { - "type": "string", - "value": "ghost" + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "section.carousel" + } }, { - "type": "string", - "value": "ghost-dark" + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "section.hero", + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } } ] - }, - "optional": false + } }, - "size": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { + "optional": true + }, + "footer": { + "type": "objectAttribute", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { "type": "string", - "value": "base" + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" }, - { - "type": "string", - "value": "sm" + "optional": true + } + }, + "dereferencesTo": "footer" + }, + "optional": false + }, + "seoTitle": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "seoDescription": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "showCookieBanner": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + }, + "robots": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "index" + }, + { + "type": "string", + "value": "no-index" + } + ] + }, + "optional": true + }, + "ogImage": { + "type": "objectAttribute", + "value": { + "type": "object", + "attributes": { + "asset": { + "type": "objectAttribute", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "sanity.imageAsset" }, - { + "optional": true + }, + "hotspot": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageHotspot" + }, + "optional": true + }, + "crop": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageCrop" + }, + "optional": true + }, + "alt": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": false + }, + "_type": { + "type": "objectAttribute", + "value": { "type": "string", - "value": "lg" + "value": "image" } - ] - }, - "optional": false - } + } + } + }, + "optional": true } } }, { - "name": "page", + "name": "footer", "type": "document", "attributes": { "_id": { @@ -3271,7 +2918,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "page" + "value": "footer" } }, "_createdAt": { @@ -3292,191 +2939,258 @@ "type": "string" } }, - "theme": { + "title": { "type": "objectAttribute", "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "light" - }, - { - "type": "string", - "value": "dark" - } - ] + "type": "string" }, - "optional": false + "optional": true }, - "title": { + "image": { "type": "objectAttribute", "value": { - "type": "string" + "type": "inline", + "name": "customImage" }, "optional": true }, - "pathname": { + "text": { "type": "objectAttribute", "value": { "type": "inline", - "name": "slug" + "name": "customRichText" }, "optional": true }, - "header": { + "links": { "type": "objectAttribute", "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" + "type": "array", + "of": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } } }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true + "rest": { + "type": "inline", + "name": "customLink" } - }, - "dereferencesTo": "header" + } }, - "optional": false + "optional": true }, - "sectionsBody": { + "copywriteText": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "section.copy" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "section.logos" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "section.linksList" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "section.cardsGrid" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "section.blog" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "section.carousel" - } - }, - { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" + "type": "string" + }, + "optional": true + } + } + }, + { + "name": "customRichText", + "type": "type", + "value": { + "type": "object", + "attributes": { + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "customRichText" + } + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "children": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } + }, + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "span" + } + } + }, + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" + }, + { + "type": "string", + "value": "h1" + }, + { + "type": "string", + "value": "h2" + }, + { + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "union", + "of": [ + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "textColor" + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "highlightColor" + } + } + ] + } + }, + "optional": true + }, + "level": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "block" + } } }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true } }, - "dereferencesTo": "section.hero", - "rest": { + { "type": "object", "attributes": { "_key": { @@ -3485,200 +3199,110 @@ "type": "string" } } - } - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "section.pricingTable" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } + }, + "rest": { + "type": "inline", + "name": "break" } }, - "rest": { - "type": "inline", - "name": "section.stepGuide" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } } + }, + "rest": { + "type": "inline", + "name": "customImage" } }, - "rest": { - "type": "inline", - "name": "section.threeDElement" - } - } - ] - } - }, - "optional": true - }, - "footer": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "footer" - }, - "optional": false - }, - "seoTitle": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "seoDescription": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "showCookieBanner": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - }, - "robots": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "index" - }, - { - "type": "string", - "value": "no-index" - } - ] - }, - "optional": true - }, - "ogImage": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } } }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" + "rest": { + "type": "inline", + "name": "section.logos" + } + }, + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } } }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true + "rest": { + "type": "inline", + "name": "section.cardsGrid" } }, - "dereferencesTo": "sanity.imageAsset" - }, - "optional": true - }, - "hotspot": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageHotspot" - }, - "optional": true - }, - "crop": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageCrop" + { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + }, + "rest": { + "type": "inline", + "name": "section.linksList" + } + } + ] + } + }, + "optional": true + }, + "alignVariant": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "left" }, - "optional": true - }, - "alt": { - "type": "objectAttribute", - "value": { - "type": "string" + { + "type": "string", + "value": "center" }, - "optional": false - }, - "_type": { - "type": "objectAttribute", - "value": { + { "type": "string", - "value": "image" + "value": "right" } - } - } + ] + }, + "optional": false }, - "optional": true + "removeInnerMargins": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": false + } } } }, { - "name": "footer", + "name": "header", "type": "document", "attributes": { "_id": { @@ -3691,7 +3315,7 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "footer" + "value": "header" } }, "_createdAt": { @@ -3727,14 +3351,6 @@ }, "optional": true }, - "text": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "customRichText" - }, - "optional": true - }, "links": { "type": "objectAttribute", "value": { @@ -3748,26 +3364,214 @@ "type": "string" } } - }, - "rest": { - "type": "inline", - "name": "customLink" - } + }, + "rest": { + "type": "inline", + "name": "customLink" + } + } + }, + "optional": false + }, + "alignVariant": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "left" + }, + { + "type": "string", + "value": "center" + }, + { + "type": "string", + "value": "right" + } + ] + }, + "optional": false + } + } + }, + { + "name": "customImage", + "type": "type", + "value": { + "type": "object", + "attributes": { + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "customImage" + } + }, + "image": { + "type": "objectAttribute", + "value": { + "type": "object", + "attributes": { + "asset": { + "type": "objectAttribute", + "value": { + "type": "object", + "attributes": { + "_ref": { + "type": "objectAttribute", + "value": { + "type": "string" + } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + }, + "dereferencesTo": "sanity.imageAsset" + }, + "optional": true + }, + "hotspot": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageHotspot" + }, + "optional": true + }, + "crop": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageCrop" + }, + "optional": true + }, + "alt": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": false + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "image" + } + } + } + }, + "optional": false + }, + "height": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": false + }, + "aspectRatio": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "16/9" + }, + { + "type": "string", + "value": "3/2" + }, + { + "type": "string", + "value": "4/3" + }, + { + "type": "string", + "value": "1/1" + }, + { + "type": "string", + "value": "9/16" + }, + { + "type": "string", + "value": "1/2" + }, + { + "type": "string", + "value": "4/1" + }, + { + "type": "string", + "value": "3/1" + }, + { + "type": "string", + "value": "auto" + } + ] + }, + "optional": false + } + } + } + }, + { + "name": "slug", + "type": "type", + "value": { + "type": "object", + "attributes": { + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "slug" } }, - "optional": true - }, - "copywriteText": { - "type": "objectAttribute", - "value": { - "type": "string" + "current": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": false }, - "optional": true + "source": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + } } } }, { - "name": "customRichText", + "name": "glob.templateView", + "type": "type", + "value": { + "type": "string" + } + }, + { + "name": "glob.SmartLink", "type": "type", "value": { "type": "object", @@ -3776,194 +3580,116 @@ "type": "objectAttribute", "value": { "type": "string", - "value": "customRichText" + "value": "glob.SmartLink" } }, + "type": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "url" + }, + { + "type": "string", + "value": "internal" + } + ] + }, + "optional": true + }, "text": { "type": "objectAttribute", "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "children": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "object", - "attributes": { - "marks": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "string" - } - }, - "optional": true - }, - "text": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "span" - } - } - }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - } - } - } - }, - "optional": true - }, - "style": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "normal" - }, - { - "type": "string", - "value": "h1" - }, - { - "type": "string", - "value": "h2" - }, - { - "type": "string", - "value": "h3" - }, - { - "type": "string", - "value": "h4" - }, - { - "type": "string", - "value": "h5" - }, - { - "type": "string", - "value": "h6" - }, - { - "type": "string", - "value": "blockquote" - } - ] - }, - "optional": true - }, - "listItem": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "bullet" - }, - { - "type": "string", - "value": "number" - } - ] - }, - "optional": true - }, - "markDefs": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { - "type": "union", - "of": [ - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "textColor" - } - }, - { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "highlightColor" - } - } - ] - } - }, - "optional": true + "type": "string" + }, + "optional": true + }, + "href": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true + }, + "target": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "_self" + }, + { + "type": "string", + "value": "_blank" + }, + { + "type": "string", + "value": "_parent" + }, + { + "type": "string", + "value": "_top" + } + ] + }, + "optional": true + }, + "prefetch": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true + } + } + } + }, + { + "name": "glob.customRichText", + "type": "type", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "children": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "marks": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "string" + } }, - "level": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": true + "optional": true + }, + "text": { + "type": "objectAttribute", + "value": { + "type": "string" }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "block" - } - } + "optional": true }, - "rest": { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "span" } } }, - { + "rest": { "type": "object", "attributes": { "_key": { @@ -3972,58 +3698,93 @@ "type": "string" } } - }, - "rest": { - "type": "inline", - "name": "break" } + } + } + }, + "optional": true + }, + "style": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "normal" }, { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "customImage" - } + "type": "string", + "value": "h1" }, { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } - }, - "rest": { - "type": "inline", - "name": "section.logos" - } + "type": "string", + "value": "h2" }, { - "type": "object", - "attributes": { - "_key": { - "type": "objectAttribute", - "value": { - "type": "string" - } - } + "type": "string", + "value": "h3" + }, + { + "type": "string", + "value": "h4" + }, + { + "type": "string", + "value": "h5" + }, + { + "type": "string", + "value": "h6" + }, + { + "type": "string", + "value": "blockquote" + } + ] + }, + "optional": true + }, + "listItem": { + "type": "objectAttribute", + "value": { + "type": "union", + "of": [ + { + "type": "string", + "value": "bullet" + }, + { + "type": "string", + "value": "number" + } + ] + }, + "optional": true + }, + "markDefs": { + "type": "objectAttribute", + "value": { + "type": "array", + "of": { + "type": "object", + "attributes": { + "href": { + "type": "objectAttribute", + "value": { + "type": "string" + }, + "optional": true }, - "rest": { - "type": "inline", - "name": "section.cardsGrid" + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "link" + } } }, - { + "rest": { "type": "object", "attributes": { "_key": { @@ -4032,140 +3793,100 @@ "type": "string" } } - }, - "rest": { - "type": "inline", - "name": "section.linksList" } } - ] - } - }, - "optional": true - }, - "alignVariant": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "left" - }, - { - "type": "string", - "value": "center" - }, - { - "type": "string", - "value": "right" } - ] + }, + "optional": true }, - "optional": false - }, - "removeInnerMargins": { - "type": "objectAttribute", - "value": { - "type": "boolean" + "level": { + "type": "objectAttribute", + "value": { + "type": "number" + }, + "optional": true }, - "optional": false - } - } - } - }, - { - "name": "header", - "type": "document", - "attributes": { - "_id": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "header" - } - }, - "_createdAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_updatedAt": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_rev": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "title": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - }, - "image": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "customImage" + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "block" + } + } }, - "optional": true - }, - "links": { - "type": "objectAttribute", - "value": { - "type": "array", - "of": { + "rest": { + "type": "object", + "attributes": { + "_key": { + "type": "objectAttribute", + "value": { + "type": "string" + } + } + } + } + } + } + }, + { + "name": "glob.imageWithMetadata", + "type": "type", + "value": { + "type": "object", + "attributes": { + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "glob.imageWithMetadata" + } + }, + "asset": { + "type": "objectAttribute", + "value": { "type": "object", "attributes": { - "_key": { + "_ref": { "type": "objectAttribute", "value": { "type": "string" } + }, + "_type": { + "type": "objectAttribute", + "value": { + "type": "string", + "value": "reference" + } + }, + "_weak": { + "type": "objectAttribute", + "value": { + "type": "boolean" + }, + "optional": true } }, - "rest": { - "type": "inline", - "name": "customLink" - } - } + "dereferencesTo": "sanity.imageAsset" + }, + "optional": true }, - "optional": false - }, - "alignVariant": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "left" - }, - { - "type": "string", - "value": "center" - }, - { - "type": "string", - "value": "right" - } - ] + "hotspot": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageHotspot" + }, + "optional": true }, - "optional": false + "crop": { + "type": "objectAttribute", + "value": { + "type": "inline", + "name": "sanity.imageCrop" + }, + "optional": true + } } } }, @@ -4506,173 +4227,6 @@ } } }, - { - "name": "customImage", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "customImage" - } - }, - "image": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "asset": { - "type": "objectAttribute", - "value": { - "type": "object", - "attributes": { - "_ref": { - "type": "objectAttribute", - "value": { - "type": "string" - } - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "reference" - } - }, - "_weak": { - "type": "objectAttribute", - "value": { - "type": "boolean" - }, - "optional": true - } - }, - "dereferencesTo": "sanity.imageAsset" - }, - "optional": true - }, - "hotspot": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageHotspot" - }, - "optional": true - }, - "crop": { - "type": "objectAttribute", - "value": { - "type": "inline", - "name": "sanity.imageCrop" - }, - "optional": true - }, - "alt": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": false - }, - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "image" - } - } - } - }, - "optional": false - }, - "height": { - "type": "objectAttribute", - "value": { - "type": "number" - }, - "optional": false - }, - "aspectRatio": { - "type": "objectAttribute", - "value": { - "type": "union", - "of": [ - { - "type": "string", - "value": "16/9" - }, - { - "type": "string", - "value": "3/2" - }, - { - "type": "string", - "value": "4/3" - }, - { - "type": "string", - "value": "1/1" - }, - { - "type": "string", - "value": "9/16" - }, - { - "type": "string", - "value": "1/2" - }, - { - "type": "string", - "value": "4/1" - }, - { - "type": "string", - "value": "3/1" - }, - { - "type": "string", - "value": "auto" - } - ] - }, - "optional": false - } - } - } - }, - { - "name": "slug", - "type": "type", - "value": { - "type": "object", - "attributes": { - "_type": { - "type": "objectAttribute", - "value": { - "type": "string", - "value": "slug" - } - }, - "current": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": false - }, - "source": { - "type": "objectAttribute", - "value": { - "type": "string" - }, - "optional": true - } - } - } - }, { "name": "highlightColor", "type": "type", diff --git a/apps/sanity/src/generated/extracted-types.ts b/apps/sanity/src/generated/extracted-types.ts index cbeef8c..9a764da 100644 --- a/apps/sanity/src/generated/extracted-types.ts +++ b/apps/sanity/src/generated/extracted-types.ts @@ -68,81 +68,6 @@ export type Geopoint = { alt?: number; }; -export type SectionThreeDElement = { - _type: "section.threeDElement"; - model: "donut" | "globe" | "kubik-rubik"; - marginTop: "none" | "base" | "lg"; - marginBottom: "none" | "base" | "lg"; - maxWidth: "none" | "base" | "small"; - backgroundColor: "light" | "light-gray" | "dark-gray" | "dark" | "none"; - backgroundImage?: { - asset?: { - _ref: string; - _type: "reference"; - _weak?: boolean; - [internalGroqTypeReferenceTo]?: "sanity.imageAsset"; - }; - hotspot?: SanityImageHotspot; - crop?: SanityImageCrop; - _type: "image"; - }; -}; - -export type SectionStepGuide = { - _type: "section.stepGuide"; - items: Array< - { - _key: string; - } & StepGuideItem - >; - link: CustomLink; - marginTop: "none" | "base" | "lg"; - marginBottom: "none" | "base" | "lg"; - maxWidth: "none" | "base" | "small"; - backgroundColor: "light" | "light-gray" | "dark-gray" | "dark" | "none"; - backgroundImage?: { - asset?: { - _ref: string; - _type: "reference"; - _weak?: boolean; - [internalGroqTypeReferenceTo]?: "sanity.imageAsset"; - }; - hotspot?: SanityImageHotspot; - crop?: SanityImageCrop; - _type: "image"; - }; -}; - -export type SectionPricingTable = { - _type: "section.pricingTable"; - tiers: Array< - { - _key: string; - } & PricingTableTier - >; - yearlyDiscountPercentage: number; - extraServiceEnabled?: boolean; - extraService?: { - text: string; - cost: number; - }; - marginTop: "none" | "base" | "lg"; - marginBottom: "none" | "base" | "lg"; - maxWidth: "none" | "base" | "small"; - backgroundColor: "light" | "light-gray" | "dark-gray" | "dark" | "none"; - backgroundImage?: { - asset?: { - _ref: string; - _type: "reference"; - _weak?: boolean; - [internalGroqTypeReferenceTo]?: "sanity.imageAsset"; - }; - hotspot?: SanityImageHotspot; - crop?: SanityImageCrop; - _type: "image"; - }; -}; - export type SectionHero = { _id: string; _type: "section.hero"; @@ -336,24 +261,6 @@ export type SectionCopy = { }; }; -export type StepGuideItem = { - _type: "stepGuideItem"; - number: string; - text: string; - image: CustomImage; -}; - -export type PricingTableTier = { - _type: "pricingTableTier"; - name: string; - icon: CustomImage; - price?: number; - description: string; - features: Array; - link: CustomLink; - popular?: boolean; -}; - export type CarouselCard = { _type: "carouselCard"; text?: CustomRichText; @@ -498,15 +405,6 @@ export type Page = { _key: string; [internalGroqTypeReferenceTo]?: "section.hero"; } - | ({ - _key: string; - } & SectionPricingTable) - | ({ - _key: string; - } & SectionStepGuide) - | ({ - _key: string; - } & SectionThreeDElement) >; footer: { _ref: string; @@ -617,6 +515,81 @@ export type Header = { alignVariant: "left" | "center" | "right"; }; +export type CustomImage = { + _type: "customImage"; + image: { + asset?: { + _ref: string; + _type: "reference"; + _weak?: boolean; + [internalGroqTypeReferenceTo]?: "sanity.imageAsset"; + }; + hotspot?: SanityImageHotspot; + crop?: SanityImageCrop; + alt: string; + _type: "image"; + }; + height: number; + aspectRatio: + | "16/9" + | "3/2" + | "4/3" + | "1/1" + | "9/16" + | "1/2" + | "4/1" + | "3/1" + | "auto"; +}; + +export type Slug = { + _type: "slug"; + current: string; + source?: string; +}; + +export type GlobTemplateView = string; + +export type GlobSmartLink = { + _type: "glob.SmartLink"; + type?: "url" | "internal"; + text?: string; + href?: string; + target?: "_self" | "_blank" | "_parent" | "_top"; + prefetch?: boolean; +}; + +export type GlobCustomRichText = Array<{ + children?: Array<{ + marks?: Array; + text?: string; + _type: "span"; + _key: string; + }>; + style?: "normal" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "blockquote"; + listItem?: "bullet" | "number"; + markDefs?: Array<{ + href?: string; + _type: "link"; + _key: string; + }>; + level?: number; + _type: "block"; + _key: string; +}>; + +export type GlobImageWithMetadata = { + _type: "glob.imageWithMetadata"; + asset?: { + _ref: string; + _type: "reference"; + _weak?: boolean; + [internalGroqTypeReferenceTo]?: "sanity.imageAsset"; + }; + hotspot?: SanityImageHotspot; + crop?: SanityImageCrop; +}; + export type SanityImageCrop = { _type: "sanity.imageCrop"; top?: number; @@ -674,39 +647,6 @@ export type SanityImageMetadata = { isOpaque?: boolean; }; -export type CustomImage = { - _type: "customImage"; - image: { - asset?: { - _ref: string; - _type: "reference"; - _weak?: boolean; - [internalGroqTypeReferenceTo]?: "sanity.imageAsset"; - }; - hotspot?: SanityImageHotspot; - crop?: SanityImageCrop; - alt: string; - _type: "image"; - }; - height: number; - aspectRatio: - | "16/9" - | "3/2" - | "4/3" - | "1/1" - | "9/16" - | "1/2" - | "4/1" - | "3/1" - | "auto"; -}; - -export type Slug = { - _type: "slug"; - current: string; - source?: string; -}; - export type HighlightColor = { _type: "highlightColor"; label?: string; @@ -731,9 +671,6 @@ export type AllSanitySchemaTypes = | SanityImageDimensions | SanityFileAsset | Geopoint - | SectionThreeDElement - | SectionStepGuide - | SectionPricingTable | SectionHero | SectionCarousel | SectionBlog @@ -741,8 +678,6 @@ export type AllSanitySchemaTypes = | SectionLinksList | SectionLogos | SectionCopy - | StepGuideItem - | PricingTableTier | CarouselCard | BlogSectionPost | BasicRichText @@ -754,13 +689,17 @@ export type AllSanitySchemaTypes = | Footer | CustomRichText | Header + | CustomImage + | Slug + | GlobTemplateView + | GlobSmartLink + | GlobCustomRichText + | GlobImageWithMetadata | SanityImageCrop | SanityImageHotspot | SanityImageAsset | SanityAssetSourceData | SanityImageMetadata - | CustomImage - | Slug | HighlightColor | TextColor | SimplerColor; @@ -1042,81 +981,6 @@ export type PAGE_BY_SLUG_QUERYResult = { _type: "image"; }; } - | { - _key: string; - _type: "section.pricingTable"; - tiers: Array< - { - _key: string; - } & PricingTableTier - >; - yearlyDiscountPercentage: number; - extraServiceEnabled?: boolean; - extraService?: { - text: string; - cost: number; - }; - marginTop: "base" | "lg" | "none"; - marginBottom: "base" | "lg" | "none"; - maxWidth: "base" | "none" | "small"; - backgroundColor: "dark-gray" | "dark" | "light-gray" | "light" | "none"; - backgroundImage?: { - asset?: { - _ref: string; - _type: "reference"; - _weak?: boolean; - [internalGroqTypeReferenceTo]?: "sanity.imageAsset"; - }; - hotspot?: SanityImageHotspot; - crop?: SanityImageCrop; - _type: "image"; - }; - } - | { - _key: string; - _type: "section.stepGuide"; - items: Array< - { - _key: string; - } & StepGuideItem - >; - link: CustomLink; - marginTop: "base" | "lg" | "none"; - marginBottom: "base" | "lg" | "none"; - maxWidth: "base" | "none" | "small"; - backgroundColor: "dark-gray" | "dark" | "light-gray" | "light" | "none"; - backgroundImage?: { - asset?: { - _ref: string; - _type: "reference"; - _weak?: boolean; - [internalGroqTypeReferenceTo]?: "sanity.imageAsset"; - }; - hotspot?: SanityImageHotspot; - crop?: SanityImageCrop; - _type: "image"; - }; - } - | { - _key: string; - _type: "section.threeDElement"; - model: "donut" | "globe" | "kubik-rubik"; - marginTop: "base" | "lg" | "none"; - marginBottom: "base" | "lg" | "none"; - maxWidth: "base" | "none" | "small"; - backgroundColor: "dark-gray" | "dark" | "light-gray" | "light" | "none"; - backgroundImage?: { - asset?: { - _ref: string; - _type: "reference"; - _weak?: boolean; - [internalGroqTypeReferenceTo]?: "sanity.imageAsset"; - }; - hotspot?: SanityImageHotspot; - crop?: SanityImageCrop; - _type: "image"; - }; - } > | null; footer: { _id: string; diff --git a/apps/sanity/src/lib/renderRichText.tsx b/apps/sanity/src/lib/renderRichText.tsx index 7a7b1ef..f705426 100644 --- a/apps/sanity/src/lib/renderRichText.tsx +++ b/apps/sanity/src/lib/renderRichText.tsx @@ -2,9 +2,6 @@ import CardsGrid from "@/contentSections/CardsGrid"; import Carousel from "@/contentSections/Carousel"; import LinksList from "@/contentSections/LinksList"; import Logos from "@/contentSections/Logos"; -import PricingTable from "@/contentSections/PricingTable"; -import StepGuide from "@/contentSections/StepGuide"; -import ThreeDElement from "@/contentSections/ThreeDElement"; import type { CustomImage } from "@/generated/extracted-types"; import { PortableText } from "@portabletext/react"; import { stegaClean } from "@sanity/client/stega"; @@ -54,18 +51,6 @@ const COMPONENTS = { return ; }, - "section.stepGuide": ({ value }: { value: any }) => { - return ; - }, - - "section.threeDElement": ({ value }: { value: any }) => { - return ; - }, - - "section.pricingTable": ({ value }: { value: any }) => { - return ; - }, - "section.carousel": ({ value }: { value: any }) => { return ; }, diff --git a/apps/sanity/src/lib/schemas/index.ts b/apps/sanity/src/lib/schemas/index.ts index 1725c37..e428ab2 100644 --- a/apps/sanity/src/lib/schemas/index.ts +++ b/apps/sanity/src/lib/schemas/index.ts @@ -2,8 +2,6 @@ import { blogPost } from "@/contentSections/Blog/schema"; import { defaultCard } from "@/contentSections/CardsGrid/schema"; import { carouselCard } from "@/contentSections/Carousel/schema"; import { logoItem } from "@/contentSections/Logos/schema"; -import { pricingTier } from "@/contentSections/PricingTable/schema"; -import { stepGuideItem } from "@/contentSections/StepGuide/schema"; import footer from "@/components/Footer/schema"; import header from "@/components/Header/schema"; @@ -27,8 +25,6 @@ const schemas = [ basicRichText, blogPost, carouselCard, - pricingTier, - stepGuideItem, ...sections, ]; diff --git a/apps/sanity/src/lib/schemas/sections.ts b/apps/sanity/src/lib/schemas/sections.ts index df09d7c..60d8ff4 100644 --- a/apps/sanity/src/lib/schemas/sections.ts +++ b/apps/sanity/src/lib/schemas/sections.ts @@ -6,9 +6,6 @@ import copy from "@/contentSections/Copy/schema"; import hero from "@/contentSections/Hero/schema"; import linksList from "@/contentSections/LinksList/schema"; import logos from "@/contentSections/Logos/schema"; -import pricing from "@/contentSections/PricingTable/schema"; -import stepGuideSchema from "@/contentSections/StepGuide/schema"; -import threeDElement from "@/contentSections/ThreeDElement/schema"; // end of section imports @@ -21,9 +18,6 @@ const sections = [ blog, carousel, hero, - pricing, - stepGuideSchema, - threeDElement, // end of section array ]; diff --git a/apps/storyblok/src/app/[[...slug]]/page.tsx b/apps/storyblok/src/app/[[...slug]]/page.tsx index dfb94bb..334222a 100644 --- a/apps/storyblok/src/app/[[...slug]]/page.tsx +++ b/apps/storyblok/src/app/[[...slug]]/page.tsx @@ -2,17 +2,9 @@ import type { Metadata } from "next"; import { notFound } from "next/navigation"; import { StoryblokStory } from "@storyblok/react/rsc"; -import { - checkDraftModeToken, - fetchAllPages, - fetchStoryBySlug, - getMetaData, -} from "@/lib/api"; +import { checkDraftModeToken, fetchStoryBySlug, getMetaData } from "@/lib/api"; import CoreLayout from "@/components/CoreLayout"; -const isDraftModeEnv = process.env.NEXT_PUBLIC_IS_PREVIEW === "true"; -export const dynamic = isDraftModeEnv ? "force-dynamic" : "force-static"; - type Props = { params: { slug?: string[] }; searchParams: { [key: string]: string | string[] | undefined }; @@ -23,19 +15,7 @@ export async function generateMetadata({ params }: Props): Promise { } export async function generateStaticParams() { - if (isDraftModeEnv) return []; - - const pages = await fetchAllPages(); - - const paths = pages - .filter((page) => page.is_folder === false) - .map((page) => { - return { - slug: page.slug.split("/"), - }; - }); - - return paths; + return []; } export default async function Home({ params, searchParams }: Props) { diff --git a/apps/storyblok/src/constants/sbComponents.tsx b/apps/storyblok/src/constants/sbComponents.tsx index fde01ff..b4ae3ee 100644 --- a/apps/storyblok/src/constants/sbComponents.tsx +++ b/apps/storyblok/src/constants/sbComponents.tsx @@ -1,14 +1,11 @@ // start of sb components imports import Blog from "@/contentSections/Blog"; import CardsGrid from "@/contentSections/CardsGrid"; -import Carousel from "src/contentSections/Carousel"; import Copy from "@/contentSections/Copy"; import Hero from "@/contentSections/Hero"; import LinksList from "@/contentSections/LinksList"; import Logos from "@/contentSections/Logos"; -import Pricing from "src/contentSections/PricingTable"; -import StepGuide from "@/contentSections/StepGuide"; -import ThreeDElement from "@/contentSections/ThreeDElement"; +import Carousel from "src/contentSections/Carousel"; import Footer from "@/components/Footer"; import Header from "@/components/Header"; @@ -28,8 +25,5 @@ export const COMPONENTS = { blog: Blog, carousel: Carousel, hero: Hero, - pricingTable: Pricing, - stepGuide: StepGuide, - threeDElement: ThreeDElement, // end of sb components mapping }; diff --git a/apps/storyblok/src/contentSections/PricingTable/index.tsx b/apps/storyblok/src/contentSections/PricingTable/index.tsx deleted file mode 100644 index 581f91e..0000000 --- a/apps/storyblok/src/contentSections/PricingTable/index.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import EmptyBlock from "@shared/ui/components/EmptyBlock"; - -import { PricingTable as PricingTableUI } from "@shared/ui"; - -import { prepareImageProps } from "@/lib/adapters/prepareImageProps"; -import { prepareLinkProps } from "@/lib/adapters/prepareLinkProps"; -import SectionContainer from "@/components/SectionContainer"; - -import type { IPricingTableProps } from "./types"; - -export default function PricingTable({ blok }: IPricingTableProps) { - if (!blok || blok?.tiers?.length === 0) - return ; - - const { tiers, yearlyDiscountPercentage } = blok; - - const formattedTiers = tiers?.map((tier) => ({ - ...tier, - icon: prepareImageProps(tier.icon[0]), - cta: prepareLinkProps(tier.link[0]), - price: tier.price ? parseFloat(tier.price) : undefined, - features: tier.features?.map(({ text }) => text), - })); - const extraService = - blok.extraServiceEnabled && blok.extraService?.[0] - ? { - text: blok.extraService[0].text, - cost: parseFloat(blok.extraService[0]?.cost), - } - : undefined; - - return ( - - - - ); -} diff --git a/apps/storyblok/src/contentSections/PricingTable/types.ts b/apps/storyblok/src/contentSections/PricingTable/types.ts deleted file mode 100644 index ce92ee6..0000000 --- a/apps/storyblok/src/contentSections/PricingTable/types.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { PricingTableStoryblok } from "@/generated/extracted-types"; - -export interface IPricingTableProps { - blok: PricingTableStoryblok; -} diff --git a/apps/storyblok/src/contentSections/StepGuide/index.tsx b/apps/storyblok/src/contentSections/StepGuide/index.tsx deleted file mode 100644 index 26c7ea7..0000000 --- a/apps/storyblok/src/contentSections/StepGuide/index.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import EmptyBlock from "@shared/ui/components/EmptyBlock"; - -import { StepGuide as StepGuideUI } from "@shared/ui"; - -import { prepareImageProps } from "@/lib/adapters/prepareImageProps"; -import { prepareLinkProps } from "@/lib/adapters/prepareLinkProps"; -import SectionContainer from "@/components/SectionContainer"; - -import type { IStepGuideProps } from "./types"; - -export default function StepGuide({ blok }: IStepGuideProps) { - const { stepGuideItem, link } = blok; - - if (!stepGuideItem || stepGuideItem.length === 0) - return ; - - const formattedItems = stepGuideItem.map((item) => ({ - ...item, - image: prepareImageProps(item?.image?.[0]), - })); - - return ( - - - - ); -} diff --git a/apps/storyblok/src/contentSections/StepGuide/types.ts b/apps/storyblok/src/contentSections/StepGuide/types.ts deleted file mode 100644 index 165bd9a..0000000 --- a/apps/storyblok/src/contentSections/StepGuide/types.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { StepGuideStoryblok } from "@/generated/extracted-types"; - -export interface IStepGuideProps { - blok: StepGuideStoryblok; -} diff --git a/apps/storyblok/src/contentSections/ThreeDElement/index.tsx b/apps/storyblok/src/contentSections/ThreeDElement/index.tsx deleted file mode 100644 index e883852..0000000 --- a/apps/storyblok/src/contentSections/ThreeDElement/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import EmptyBlock from "@shared/ui/components/EmptyBlock"; - -import { ThreeDElement as ThreeDElementUI } from "@shared/ui"; - -import SectionContainer from "@/components/SectionContainer"; - -import type { IThreeDElementProps } from "./types"; - -export default function ThreeDElement({ blok }: IThreeDElementProps) { - const { threeDModel } = blok; - - if (!threeDModel) return ; - - return ( - - - - ); -} diff --git a/apps/storyblok/src/contentSections/ThreeDElement/types.ts b/apps/storyblok/src/contentSections/ThreeDElement/types.ts deleted file mode 100644 index bb4d20c..0000000 --- a/apps/storyblok/src/contentSections/ThreeDElement/types.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { ThreeDElementStoryblok } from "@/generated/extracted-types"; - -export interface IThreeDElementProps { - blok: ThreeDElementStoryblok; -} diff --git a/apps/storyblok/src/generated/components.production.json b/apps/storyblok/src/generated/components.production.json index 6e1f4e6..b2deb0e 100644 --- a/apps/storyblok/src/generated/components.production.json +++ b/apps/storyblok/src/generated/components.production.json @@ -2387,201 +2387,6 @@ "content_type_asset_preview": null, "component_group_name": "pages" }, - { - "name": "pricingTable", - "display_name": null, - "description": null, - "created_at": "2024-10-29T14:19:10.496Z", - "updated_at": "2024-11-07T10:16:34.141Z", - "id": 6489128, - "schema": { - "tiers": { - "type": "bloks", - "pos": 0, - "restrict_type": "", - "restrict_components": true, - "component_whitelist": [ - "pricingTableTier" - ] - }, - "tab-701da23f-5d81-4d15-ba9f-a2cac6952da5": { - "display_name": "Style", - "keys": [ - "marginTop", - "marginBottom", - "maxWidth", - "backgroundColor", - "backgroundImage" - ], - "pos": 0, - "type": "tab" - }, - "yearlyDiscountPercentage": { - "type": "text", - "pos": 1 - }, - "extraServiceEnabled": { - "type": "boolean", - "pos": 2, - "default_value": false - }, - "extraService": { - "type": "bloks", - "pos": 3, - "restrict_type": "", - "restrict_components": true, - "component_whitelist": [ - "pricingTableExtraService" - ], - "minimum": 1, - "maximum": 1, - "required": true - }, - "marginTop": { - "type": "option", - "pos": 5, - "use_uuid": true, - "options": [ - { - "_uid": "645ef416-5e1c-4c51-bf01-3c4f288b4dfe", - "name": "none", - "value": "none" - }, - { - "_uid": "a01ac8fa-537e-42d4-a128-14645f210b12", - "value": "base", - "name": "base" - }, - { - "_uid": "38d0f9d0-9bb8-4a0e-9857-5bf31979879d", - "value": "lg", - "name": "large" - } - ], - "default_value": "base", - "required": true, - "exclude_empty_option": true - }, - "marginBottom": { - "type": "option", - "pos": 6, - "use_uuid": true, - "default_value": "base", - "options": [ - { - "_uid": "ae6df6f6-ea33-455f-ad2a-9d1c2b7362e7", - "name": "none", - "value": "none" - }, - { - "_uid": "68b8f24d-9031-4fbc-9243-f61b09b57ed8", - "value": "base", - "name": "base" - }, - { - "_uid": "c712ed18-94ef-460b-a727-77f23d0c85fc", - "value": "lg", - "name": "large" - } - ], - "required": true, - "exclude_empty_option": true - }, - "maxWidth": { - "type": "option", - "pos": 7, - "use_uuid": true, - "required": true, - "options": [ - { - "_uid": "f53a269f-6e2e-40aa-8f8b-4abcda1393ae", - "value": "small", - "name": "small" - }, - { - "_uid": "175213a8-1ae7-49e7-b90f-3d66194f24bc", - "name": "base", - "value": "base" - }, - { - "_uid": "8e136040-dded-4ef8-b2c1-8234c9617818", - "value": "none", - "name": "none" - } - ], - "default_value": "base", - "exclude_empty_option": true - }, - "backgroundColor": { - "type": "option", - "pos": 8, - "use_uuid": true, - "required": true, - "options": [ - { - "_uid": "765bb5ac-3338-45b1-be4d-42c11e16bdc4", - "name": "light", - "value": "light" - }, - { - "_uid": "1a457ed6-3381-424a-ada8-a396383300d5", - "value": "light-gray", - "name": "light gray" - }, - { - "_uid": "20900bc9-728a-4468-b6b0-2ffedf57f45a", - "value": "dark-gray", - "name": "dark gray" - }, - { - "_uid": "cf9b179b-ca89-4296-8cac-4fd5223116b3", - "value": "dark", - "name": "dark" - }, - { - "_uid": "83bb1656-0813-4555-bb3c-94870e9e8856", - "value": "none", - "name": "none" - } - ], - "default_value": "none", - "exclude_empty_option": true, - "description": "// todo: change to theme later?" - }, - "backgroundImage": { - "type": "asset", - "pos": 9, - "filetypes": [ - "images" - ] - } - }, - "image": "//a.storyblok.com/f/293915/x/537b05d5d2/screenshot-2024-11-05-at-15-51-16.png", - "preview_field": null, - "is_root": false, - "preview_tmpl": null, - "is_nestable": true, - "all_presets": [ - { - "id": 2335597, - "name": "Pricing Table", - "component_id": 6489128, - "image": "//a.storyblok.com/f/293915/x/a01a228065/screenshot-2024-10-29-at-15-33-45.png", - "icon": "", - "color": "", - "description": "" - } - ], - "preset_id": null, - "real_name": "pricingTable", - "component_group_uuid": "9a95e24a-4024-4145-992e-070fbb399f97", - "color": null, - "icon": null, - "internal_tags_list": [], - "internal_tag_ids": [], - "content_type_asset_preview": null, - "component_group_name": "sections" - }, { "name": "pricingTableExtraService", "display_name": null, @@ -2832,193 +2637,6 @@ "content_type_asset_preview": null, "component_group_name": "components" }, - { - "name": "stepGuide", - "display_name": null, - "description": null, - "created_at": "2024-10-30T07:56:07.407Z", - "updated_at": "2024-11-07T06:37:18.067Z", - "id": 6492253, - "schema": { - "stepGuideItem": { - "type": "bloks", - "pos": 0, - "restrict_type": "", - "restrict_components": true, - "component_whitelist": [ - "stepGuideItem" - ], - "minimum": 1, - "required": true - }, - "tab-b0e3f249-deee-4944-b03f-5d62625aae45": { - "display_name": "Style", - "keys": [ - "marginTop", - "marginBottom", - "maxWidth", - "backgroundColor", - "backgroundImage" - ], - "pos": 0, - "type": "tab" - }, - "marginTop": { - "type": "option", - "pos": 2, - "use_uuid": true, - "required": true, - "options": [ - { - "_uid": "1063169d-1331-4187-b2eb-5b4c6563f674", - "name": "none", - "value": "none" - }, - { - "_uid": "71ac8c97-2785-4056-80d7-3cadedc034cb", - "value": "base", - "name": "base" - }, - { - "_uid": "29d0694c-dec2-490f-896f-00661b1e8963", - "value": "lg", - "name": "large" - } - ], - "exclude_empty_option": true, - "default_value": "base" - }, - "marginBottom": { - "type": "option", - "pos": 3, - "use_uuid": true, - "required": true, - "options": [ - { - "_uid": "92e39ca1-90bf-4d72-9c51-d9aab63d392b", - "name": "none", - "value": "none" - }, - { - "_uid": "42018810-1dd6-4f70-813b-ba4e4927577b", - "value": "base", - "name": "base" - }, - { - "_uid": "88fd3669-13c9-44ab-82d6-1dd76380d99c", - "value": "lg", - "name": "large" - } - ], - "exclude_empty_option": true, - "default_value": "base" - }, - "link": { - "type": "bloks", - "pos": 4, - "required": true, - "minimum": 1, - "maximum": 1, - "restrict_type": "", - "restrict_components": true, - "component_whitelist": [ - "link" - ] - }, - "maxWidth": { - "type": "option", - "pos": 5, - "use_uuid": true, - "required": true, - "options": [ - { - "_uid": "49129fda-856b-4a35-9d5c-ebd00c92d10b", - "name": "base", - "value": "base" - }, - { - "_uid": "da99fe06-781d-43c9-887d-9cfbde606389", - "value": "none", - "name": "none" - }, - { - "_uid": "f4014b32-3de5-45c5-836a-3642e540d54d", - "value": "small", - "name": "small" - } - ], - "default_value": "base", - "exclude_empty_option": true - }, - "backgroundColor": { - "type": "option", - "pos": 6, - "use_uuid": true, - "required": true, - "options": [ - { - "_uid": "f4024212-6982-4770-8769-049ee9b827f7", - "name": "light", - "value": "light" - }, - { - "_uid": "9e7c0d04-fd33-4742-8a9d-02ffb26043e9", - "value": "light-gray", - "name": "light-gray" - }, - { - "_uid": "ef8c0b40-046a-4b1b-bfa3-f95770b53afa", - "value": "dark-gray", - "name": "dark-gray" - }, - { - "_uid": "f4c1c918-0270-4ada-bea0-d5e4b35a957d", - "value": "dark", - "name": "dark" - }, - { - "_uid": "eb986f85-cbe6-4d1a-b453-63773d352054", - "value": "none", - "name": "none" - } - ], - "default_value": "none", - "exclude_empty_option": true - }, - "backgroundImage": { - "type": "asset", - "pos": 7, - "filetypes": [ - "images" - ] - } - }, - "image": "//a.storyblok.com/f/293915/x/86b490a547/screenshot-2024-10-30-at-17-09-53.png", - "preview_field": null, - "is_root": false, - "preview_tmpl": null, - "is_nestable": true, - "all_presets": [ - { - "id": 2337116, - "name": "Default", - "component_id": 6492253, - "image": "//a.storyblok.com/f/293915/x/b454ec3d40/screenshot-2024-10-30-at-17-09-53.png", - "icon": "", - "color": "", - "description": "" - } - ], - "preset_id": null, - "real_name": "stepGuide", - "component_group_uuid": "9a95e24a-4024-4145-992e-070fbb399f97", - "color": null, - "icon": null, - "internal_tags_list": [], - "internal_tag_ids": [], - "content_type_asset_preview": null, - "component_group_name": "sections" - }, { "name": "stepGuideItem", "display_name": null, @@ -3076,215 +2694,6 @@ "internal_tag_ids": [], "content_type_asset_preview": null, "component_group_name": "components" - }, - { - "name": "threeDElement", - "display_name": "3D Element", - "description": null, - "created_at": "2024-11-01T07:46:52.931Z", - "updated_at": "2024-11-07T06:53:35.438Z", - "id": 6502652, - "schema": { - "threeDModel": { - "type": "option", - "pos": 0, - "use_uuid": true, - "required": true, - "exclude_empty_option": true, - "default_value": "donut", - "options": [ - { - "_uid": "19572a45-9c85-4f71-90c2-502ca58476f0", - "name": "Donut", - "value": "donut" - }, - { - "_uid": "62a43843-e351-4885-8afe-3dcdae45c048", - "value": "globe", - "name": "Globe" - }, - { - "_uid": "cb57a106-c8e1-429f-bc72-e1a086e45f76", - "value": "kubik-rubik", - "name": "Kubik rubik" - } - ], - "display_name": "3D model" - }, - "tab-a56fbd62-e3cd-4f10-8de8-b218250de1a7": { - "display_name": "Style", - "keys": [ - "marginTop", - "marginBottom", - "maxWidth", - "backgroundColor", - "backgroundImage" - ], - "pos": 2, - "type": "tab", - "key": "tab-a56fbd62-e3cd-4f10-8de8-b218250de1a7" - }, - "marginTop": { - "type": "option", - "pos": 3, - "use_uuid": true, - "required": true, - "options": [ - { - "_uid": "bb118ed8-0c4d-4168-9d90-1ae5ada4716a", - "name": "none", - "value": "none" - }, - { - "_uid": "847bcc05-3524-4ebd-9abf-8d7ae03e3dd3", - "value": "base", - "name": "base" - }, - { - "_uid": "c6fe7939-4db1-4db1-a95d-a5115f18ebec", - "value": "lg", - "name": "large" - } - ], - "exclude_empty_option": true, - "default_value": "base" - }, - "marginBottom": { - "type": "option", - "pos": 4, - "use_uuid": true, - "required": true, - "exclude_empty_option": true, - "options": [ - { - "_uid": "2041c484-aeed-412b-bfae-1239e6a1303a", - "name": "none", - "value": "none" - }, - { - "_uid": "20ff7466-d69a-4659-995e-4240ff9bef69", - "value": "base", - "name": "base" - }, - { - "_uid": "6d3f51ae-0690-4c1d-a250-e2f6245aaf51", - "value": "lg", - "name": "large" - } - ], - "default_value": "base" - }, - "maxWidth": { - "type": "option", - "pos": 4, - "use_uuid": true, - "options": [ - { - "_uid": "313e1eff-76f7-4497-bb98-d8591b4c3c4c", - "name": "base", - "value": "base" - }, - { - "_uid": "3ef895ee-accf-4fe9-bc66-4f136da869a2", - "value": "none", - "name": "none" - }, - { - "_uid": "80edab38-e59b-439b-834d-7ea46842ca08", - "value": "small", - "name": "small" - } - ], - "default_value": "base", - "required": true, - "exclude_empty_option": true - }, - "backgroundColor": { - "type": "option", - "pos": 5, - "use_uuid": true, - "required": true, - "options": [ - { - "_uid": "1eaad08e-7123-4bd8-a3cf-6ab814074277", - "name": "light", - "value": "light" - }, - { - "_uid": "b90790bd-ae3e-4836-91c3-8998b830a24e", - "value": "light-gray", - "name": "light-gray" - }, - { - "_uid": "13476891-b768-4f10-b018-51672f013f22", - "value": "dark-gray", - "name": "dark-gray" - }, - { - "_uid": "48e84069-4d47-4fad-91d1-b7a086d979ad", - "value": "dark", - "name": "dark" - }, - { - "_uid": "3711d6c8-9052-4567-b05c-3ce1b51ef391", - "value": "none", - "name": "none" - } - ], - "exclude_empty_option": true, - "default_value": "none" - }, - "backgroundImage": { - "type": "asset", - "pos": 6, - "filetypes": [ - "images" - ] - } - }, - "image": "//a.storyblok.com/f/293915/x/82b8a3dba8/screenshot-2024-11-01-at-08-49-14.png", - "preview_field": null, - "is_root": false, - "preview_tmpl": null, - "is_nestable": true, - "all_presets": [ - { - "id": 2339030, - "name": "Donut", - "component_id": 6502652, - "image": "//a.storyblok.com/f/293915/x/d39c375cf9/screenshot-2024-11-01-at-09-29-42.png", - "icon": "", - "color": "", - "description": "" - }, - { - "id": 2339069, - "name": "Globe", - "component_id": 6502652, - "image": "//a.storyblok.com/f/293915/x/e7b4b1f94e/screenshot-2024-11-01-at-10-40-44.png", - "icon": "", - "color": "", - "description": "" - }, - { - "id": 2339068, - "name": "Kubik Rubik", - "component_id": 6502652, - "image": "//a.storyblok.com/f/293915/x/75159faf13/screenshot-2024-11-01-at-10-40-32.png", - "icon": "", - "color": "", - "description": "" - } - ], - "preset_id": null, - "real_name": "3D Element", - "component_group_uuid": "9a95e24a-4024-4145-992e-070fbb399f97", - "color": null, - "icon": null, - "internal_tags_list": [], - "internal_tag_ids": [], - "content_type_asset_preview": null, - "component_group_name": "sections" } ], "component_groups": [ diff --git a/apps/storyblok/src/generated/extracted-types.ts b/apps/storyblok/src/generated/extracted-types.ts index 80f81ab..254aecb 100644 --- a/apps/storyblok/src/generated/extracted-types.ts +++ b/apps/storyblok/src/generated/extracted-types.ts @@ -288,9 +288,6 @@ export interface PageStoryblok { | HeroStoryblok | LinksListStoryblok | LogosStoryblok - | PricingTableStoryblok - | StepGuideStoryblok - | ThreeDElementStoryblok )[]; seoTitle: string; seoDescription: string; @@ -304,21 +301,6 @@ export interface PageStoryblok { [k: string]: any; } -export interface PricingTableStoryblok { - tiers?: PricingTableTierStoryblok[]; - yearlyDiscountPercentage?: string; - extraServiceEnabled?: boolean; - extraService: PricingTableExtraServiceStoryblok[]; - marginTop: "none" | "base" | "lg"; - marginBottom: "none" | "base" | "lg"; - maxWidth: "small" | "base" | "none"; - backgroundColor: "light" | "light-gray" | "dark-gray" | "dark" | "none"; - backgroundImage?: AssetStoryblok; - component: "pricingTable"; - _uid: string; - [k: string]: any; -} - export interface PricingTableExtraServiceStoryblok { text: string; cost: string; @@ -365,19 +347,6 @@ export interface RichTextStoryblok { [k: string]: any; } -export interface StepGuideStoryblok { - stepGuideItem: StepGuideItemStoryblok[]; - marginTop: "none" | "base" | "lg"; - marginBottom: "none" | "base" | "lg"; - link: LinkStoryblok[]; - maxWidth: "base" | "none" | "small"; - backgroundColor: "light" | "light-gray" | "dark-gray" | "dark" | "none"; - backgroundImage?: AssetStoryblok; - component: "stepGuide"; - _uid: string; - [k: string]: any; -} - export interface StepGuideItemStoryblok { number: string; text: string; @@ -386,15 +355,3 @@ export interface StepGuideItemStoryblok { _uid: string; [k: string]: any; } - -export interface ThreeDElementStoryblok { - threeDModel: "donut" | "globe" | "kubik-rubik"; - marginTop: "none" | "base" | "lg"; - marginBottom: "none" | "base" | "lg"; - maxWidth: "base" | "none" | "small"; - backgroundColor: "light" | "light-gray" | "dark-gray" | "dark" | "none"; - backgroundImage?: AssetStoryblok; - component: "threeDElement"; - _uid: string; - [k: string]: any; -} diff --git a/apps/storyblok/src/generated/presets.production.json b/apps/storyblok/src/generated/presets.production.json index 4631882..f0f0d53 100644 --- a/apps/storyblok/src/generated/presets.production.json +++ b/apps/storyblok/src/generated/presets.production.json @@ -1750,84 +1750,6 @@ "icon": "", "description": "" }, - { - "id": 2312483, - "name": "Custom", - "preset": { - "_uid": "4ad7fd52-a576-4601-9889-04b46142e382", - "image": [ - { - "_uid": "106d9002-a1c3-4f45-a2aa-8ff515b167e5", - "asset": { - "id": 17605716, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/284x260/c2ace3521b/screenshot-2024-10-07-at-22-01-09.png", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "16/9" - } - ], - "links": [ - { - "_uid": "40490f01-340c-429a-8658-7cc2a7cb4ac3", - "link": { - "id": "", - "url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok" - }, - "text": "Vercel", - "variant": "default", - "component": "link" - }, - { - "_uid": "eadbb7ad-f909-42d0-a16e-3279b3699734", - "link": { - "id": "", - "url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok" - }, - "text": "Vercel", - "variant": "default", - "component": "link" - }, - { - "_uid": "f52b36a2-29d5-4b86-a79b-ddd7d135b274", - "link": { - "id": "", - "url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok" - }, - "text": "Vercel", - "variant": "default", - "component": "link" - } - ], - "component": "header", - "alignVariant": "right" - }, - "component_id": 6394530, - "space_id": 293915, - "created_at": "2024-10-09T05:55:16.076Z", - "updated_at": "2024-10-09T05:55:16.076Z", - "image": "//a.storyblok.com/f/293915/x/a6940e5b40/screenshot-2024-10-09-at-07-55-06.png", - "color": "", - "icon": "", - "description": "" - }, { "id": 2313387, "name": "Custom", @@ -1982,6 +1904,84 @@ "icon": "", "description": "" }, + { + "id": 2312483, + "name": "Custom", + "preset": { + "_uid": "4ad7fd52-a576-4601-9889-04b46142e382", + "image": [ + { + "_uid": "106d9002-a1c3-4f45-a2aa-8ff515b167e5", + "asset": { + "id": 17605716, + "alt": "", + "name": "", + "focus": "", + "title": "", + "source": "", + "filename": "https://a.storyblok.com/f/293915/284x260/c2ace3521b/screenshot-2024-10-07-at-22-01-09.png", + "copyright": "", + "fieldtype": "asset", + "meta_data": {}, + "is_external_url": false + }, + "component": "image", + "aspectRatio": "16/9" + } + ], + "links": [ + { + "_uid": "40490f01-340c-429a-8658-7cc2a7cb4ac3", + "link": { + "id": "", + "url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok", + "linktype": "url", + "fieldtype": "multilink", + "cached_url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok" + }, + "text": "Vercel", + "variant": "default", + "component": "link" + }, + { + "_uid": "eadbb7ad-f909-42d0-a16e-3279b3699734", + "link": { + "id": "", + "url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok", + "linktype": "url", + "fieldtype": "multilink", + "cached_url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok" + }, + "text": "Vercel", + "variant": "default", + "component": "link" + }, + { + "_uid": "f52b36a2-29d5-4b86-a79b-ddd7d135b274", + "link": { + "id": "", + "url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok", + "linktype": "url", + "fieldtype": "multilink", + "cached_url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok" + }, + "text": "Vercel", + "variant": "default", + "component": "link" + } + ], + "component": "header", + "alignVariant": "right" + }, + "component_id": 6394530, + "space_id": 293915, + "created_at": "2024-10-09T05:55:16.076Z", + "updated_at": "2024-10-09T05:55:16.076Z", + "image": "//a.storyblok.com/f/293915/x/a6940e5b40/screenshot-2024-10-09-at-07-55-06.png", + "color": "", + "icon": "", + "description": "" + }, { "id": 2282725, "name": "Dark cards with text and image", @@ -2511,74 +2511,33 @@ "description": "" }, { - "id": 2311927, + "id": 2312484, "name": "Default", "preset": { - "_uid": "78b9116c-66e1-47e6-a843-3420b3ccc362", + "_uid": "4ad7fd52-a576-4601-9889-04b46142e382", "image": [ { - "_uid": "28239737-5fc1-448d-a995-19b7fc5021a2", - "asset": { - "id": 17302361, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/1792x1024/3c65b2e66b/generated-social-logo.webp", - "copyright": "", - "fieldtype": "asset", - "meta_data": { - "alt": "", - "title": "", - "source": "", - "copyright": "" - }, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "16/9" - } - ], - "component": "wideSimpleCarouselSlide" - }, - "component_id": 6391279, - "space_id": 293915, - "created_at": "2024-10-08T14:32:40.489Z", - "updated_at": "2024-10-08T14:32:40.489Z", - "image": "//a.storyblok.com/f/293915/x/e32cf6ec6b/screenshot-2024-10-08-at-16-31-09.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2344451, - "name": "Default", - "preset": { - "_uid": "9393f0dd-9ddd-4dff-a278-7d15b933bb64", - "icon": [ - { - "_uid": "1b27d5ef-edbb-407e-84b0-705826523200", + "_uid": "106d9002-a1c3-4f45-a2aa-8ff515b167e5", "asset": { - "id": 17887678, + "id": 17593700, "alt": "", "name": "", "focus": "", "title": "", "source": "", - "filename": "https://a.storyblok.com/f/293915/68x80/a59904240e/personal.png", + "filename": "https://a.storyblok.com/f/293915/3840x2160/2e8c505a38/nike-logo.png", "copyright": "", "fieldtype": "asset", "meta_data": {}, "is_external_url": false }, "component": "image", - "aspectRatio": "auto" + "aspectRatio": "16/9" } ], - "link": [ + "links": [ { - "_uid": "c5c30f6a-24d8-4c81-992e-85f2f6a06540", + "_uid": "892b4038-4a39-473f-b3b6-b9b0b2c853bd", "link": { "id": "19601884-a1af-4b99-bd95-1a3ca01d5b7a", "url": "", @@ -2586,537 +2545,36 @@ "fieldtype": "multilink", "cached_url": "home" }, - "size": "base", - "text": "Sign up", - "variant": "ghost", + "text": "Home", + "variant": "default", "component": "link" - } - ], - "name": "Free", - "price": "0", - "popular": false, - "features": [ - { - "_uid": "4d86c6fd-abf9-4e5c-86f0-1985f0d5eeb1", - "text": "Collaborative workspace", - "component": "pricingTableTierFeature" - }, - { - "_uid": "b55484df-bbbe-4b6a-9cbc-01cd15a0c4d6", - "text": "Integrate with Slack, GitHub & more", - "component": "pricingTableTierFeature" }, { - "_uid": "8f87924e-f474-4d71-b694-e87a1143910b", - "text": "Basic page analytics", - "component": "pricingTableTierFeature" + "_uid": "42da28cf-0299-4a13-a006-a1813862fe91", + "link": { + "id": "5d416347-de08-4adb-b496-00b0a083de3a", + "url": "", + "linktype": "story", + "fieldtype": "multilink", + "cached_url": "blog" + }, + "text": "Blog", + "variant": "default", + "component": "link" }, { - "_uid": "4b9b385e-962b-42ce-84ec-61635548bdbe", - "text": "7 day page history", - "component": "pricingTableTierFeature" - }, - { - "_uid": "56c0cc89-2993-40fa-bb9b-910c9d1d5961", - "text": "Invite 10 guests", - "component": "pricingTableTierFeature" - } - ], - "component": "pricingTableTier", - "description": "For individuals to organize personal projects and life" - }, - "component_id": 6489131, - "space_id": 293915, - "created_at": "2024-11-07T10:17:11.807Z", - "updated_at": "2024-12-11T15:56:00.294Z", - "image": "//a.storyblok.com/f/293915/x/a3a979a7d8/screenshot-2024-11-07-at-11-16-47.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2311975, - "name": "Default", - "preset": { - "_uid": "a3e625da-0ccb-4b6a-a379-d3518d374e59", - "text": [ - { - "_uid": "2089c560-f262-4041-ab8e-ce0a11b1595a", - "content": { - "type": "doc", - "content": [ - { - "type": "heading", - "attrs": { - "level": 2 - }, - "content": [ - { - "text": "In Notion, work feels better.", - "type": "text" - } - ] - }, - { - "type": "heading", - "attrs": { - "level": 2 - }, - "content": [ - { - "text": "With a little help from AI.", - "type": "text" - } - ] - } - ] - }, - "component": "richText", - "alignVariant": "left", - "removeInnerMargins": true - } - ], - "image": [ - { - "_uid": "77e8a791-b426-4101-8b49-0967cd14b17c", - "asset": { - "id": 17600300, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/2474x1318/df22f90af3/screenshot-2024-10-08-at-16-53-38.png", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "16/9" - } - ], - "links": [ - { - "_uid": "8db7eb44-74dc-4549-8e71-3386251dceb7", - "link": { - "id": "", - "url": "https://github.com/focusreactive/cms-kit", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://github.com/focusreactive/cms-kit" - }, - "size": "lg", - "text": "Get for free", - "variant": "primary", - "component": "link" - }, - { - "_uid": "9a58e8b0-bc14-4dd4-ae15-eb1d98d6bef8", - "link": { - "id": "", - "url": "https://focusreactive.com/#mail-us", - "target": "_blank", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://focusreactive.com/#mail-us" - }, - "size": "lg", - "text": "Request a demo", - "variant": "secondary", - "component": "link" - } - ], - "title": "Write. Plan. Collab. Win.", - "maxWidth": "base", - "component": "hero", - "marginTop": "base", - "marginBottom": "base", - "backgroundColor": "none", - "backgroundImage": { - "id": null, - "alt": null, - "name": "", - "focus": null, - "title": null, - "source": null, - "filename": "", - "copyright": null, - "fieldtype": "asset", - "meta_data": {} - } - }, - "component_id": 6391508, - "space_id": 293915, - "created_at": "2024-10-08T15:14:26.596Z", - "updated_at": "2024-12-11T15:52:30.143Z", - "image": "//a.storyblok.com/f/293915/x/9118f0bd1b/screenshot-2024-10-08-at-17-14-10.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2311925, - "name": "Default", - "preset": { - "_uid": "785ab1c4-8866-4814-aa5d-ba91483fb0b8", - "text": [ - { - "_uid": "f7ffe359-618f-4c4d-b217-94e28e7e239f", - "content": { - "type": "doc", - "content": [ - { - "type": "heading", - "attrs": { - "level": 3 - }, - "content": [ - { - "text": "Phasellus ut sagittis sapien", - "type": "text" - } - ] - }, - { - "type": "paragraph", - "content": [ - { - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel congue est, sed ullamcorper sapien. Cras purus leo, rutrum tincidunt lacus id, pretium commodo risus. Maecenas auctor erat vel pretium sagittis.", - "type": "text" - } - ] - } - ] - }, - "component": "richText", - "alignVariant": "left", - "removeInnerMargins": false - } - ], - "image": [ - { - "_uid": "46c9b4d4-1925-4196-8053-f2675a3a5323", - "asset": { - "id": 18057065, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/960x960/ffc4b04f00/app-launch.svg", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "1/1" - } - ], - "component": "carouselSlide" - }, - "component_id": 6391277, - "space_id": 293915, - "created_at": "2024-10-08T14:31:37.528Z", - "updated_at": "2024-11-07T10:13:13.893Z", - "image": "//a.storyblok.com/f/293915/x/86f4dd871f/screenshot-2024-11-07-at-11-12-52.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2225127, - "name": "Default", - "preset": { - "_uid": "8a993c13-4588-46b4-8285-d2f59d18b11f", - "text": [ - { - "_uid": "d8050fa9-6b9d-438f-99e3-d038c9250382", - "content": { - "type": "doc", - "content": [ - { - "type": "heading", - "attrs": { - "level": 2 - }, - "content": [ - { - "text": "Let's find more that brings us together.", - "type": "text", - "marks": [ - { - "type": "bold" - } - ] - } - ] - }, - { - "type": "paragraph", - "content": [ - { - "text": "Flowbite helps you connect with friends, family and communities of people who share your interests. Connecting with your friends and family as well as discovering new ones is easy with features like Groups, Watch and Marketplace.", - "type": "text" - } - ] - } - ] - }, - "component": "richText", - "removeInnerMargins": false - } - ], - "links": [ - { - "_uid": "bdb0b522-2f4c-4836-a8bc-d8526d5acb94", - "link": { - "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768" - }, - "text": "Get Started", - "variant": "primary", - "component": "link" - }, - { - "_uid": "d084111d-6fbd-4159-8210-81694be82221", - "link": { - "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768" - }, - "text": "Learn More", - "variant": "secondary", - "component": "link" - }, - { - "_uid": "4cf8608f-0859-4c87-a74d-2d2b2c5e24fe", - "link": { - "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768" - }, - "text": "New Info", - "variant": "secondary", - "component": "link" - } - ], - "variant": "default", - "component": "cta" - }, - "component_id": 6030875, - "space_id": 293915, - "created_at": "2024-07-12T15:24:16.323Z", - "updated_at": "2024-07-12T15:24:16.323Z", - "image": "//a.storyblok.com/f/293915/x/eb1b14e23e/cta.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2337116, - "name": "Default", - "preset": { - "_uid": "1a6a6eff-b541-45d6-826b-d03a28cbcd79", - "link": [ - { - "_uid": "7ce3957a-1a95-4500-801e-1b4a0479ba14", - "link": { - "id": "5d416347-de08-4adb-b496-00b0a083de3a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "blog" - }, - "size": "base", - "text": "Take your shot", - "variant": "secondary", - "component": "link" - } - ], - "maxWidth": "base", - "component": "stepGuide", - "marginTop": "base", - "marginBottom": "base", - "stepGuideItem": [ - { - "_uid": "a0e8c3a3-45f0-4d1f-9d81-9535e3044ad7", - "text": " Add your first product", - "image": [ - { - "_uid": "bd28615c-d6d7-450b-a3f6-38c429d475bf", - "asset": { - "id": 17902334, - "alt": "call us", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/960x960/6a4a666d16/call-us.svg", - "copyright": "", - "fieldtype": "asset", - "meta_data": { - "alt": "call us", - "title": "", - "source": "", - "copyright": "" - }, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "3/1" - } - ], - "number": "01", - "component": "stepGuideItem" - }, - { - "_uid": "cd287905-ebc1-49b1-9744-ff905777db81", - "text": "Customize your site", - "image": [ - { - "_uid": "ac0ada03-0630-4150-83cd-47fa9c71c595", - "asset": { - "id": 17902335, - "alt": "Notion Office Cubicle", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/960x960/6f9f80538d/notion-office-cubicle.svg", - "copyright": "", - "fieldtype": "asset", - "meta_data": { - "alt": "Notion Office Cubicle", - "title": "", - "source": "", - "copyright": "" - }, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "16/9" - } - ], - "number": "02", - "component": "stepGuideItem" - }, - { - "_uid": "3a8d68f1-4180-468d-b760-826f48ceca72", - "text": "Set up payments", - "image": [ - { - "_uid": "9152168a-14f8-4ffc-adc1-174f4301d5b7", - "asset": { - "id": 17902333, - "alt": "grow", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/960x960/1434ff31bc/grow.svg", - "copyright": "", - "fieldtype": "asset", - "meta_data": { - "alt": "grow", - "title": "", - "source": "", - "copyright": "" - }, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "16/9" - } - ], - "number": "03", - "component": "stepGuideItem" - } - ], - "backgroundColor": "none" - }, - "component_id": 6492253, - "space_id": 293915, - "created_at": "2024-10-30T16:14:09.669Z", - "updated_at": "2024-12-11T15:56:24.595Z", - "image": "//a.storyblok.com/f/293915/x/b454ec3d40/screenshot-2024-10-30-at-17-09-53.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2312484, - "name": "Default", - "preset": { - "_uid": "4ad7fd52-a576-4601-9889-04b46142e382", - "image": [ - { - "_uid": "106d9002-a1c3-4f45-a2aa-8ff515b167e5", - "asset": { - "id": 17593700, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/3840x2160/2e8c505a38/nike-logo.png", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "16/9" - } - ], - "links": [ - { - "_uid": "892b4038-4a39-473f-b3b6-b9b0b2c853bd", - "link": { - "id": "19601884-a1af-4b99-bd95-1a3ca01d5b7a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "home" - }, - "text": "Home", - "variant": "default", - "component": "link" - }, - { - "_uid": "42da28cf-0299-4a13-a006-a1813862fe91", - "link": { - "id": "5d416347-de08-4adb-b496-00b0a083de3a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "blog" - }, - "text": "Blog", - "variant": "default", - "component": "link" - }, - { - "_uid": "e60a7e37-87dc-4ce8-b6a5-70c3c7d4cecc", - "link": { - "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915", - "target": "_blank", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915" - }, - "text": "Storyblok", - "variant": "default", - "component": "link" + "_uid": "e60a7e37-87dc-4ce8-b6a5-70c3c7d4cecc", + "link": { + "id": "", + "url": "https://app.storyblok.com/#/me/spaces/293915", + "target": "_blank", + "linktype": "url", + "fieldtype": "multilink", + "cached_url": "https://app.storyblok.com/#/me/spaces/293915" + }, + "text": "Storyblok", + "variant": "default", + "component": "link" }, { "_uid": "3d6ad342-43b8-4b71-ad05-d9b581d76a0b", @@ -3173,178 +2631,154 @@ "description": "" }, { - "id": 2225124, + "id": 2344451, "name": "Default", "preset": { - "_uid": "f69d732d-2748-41a3-a242-44c14ce4d9bf", - "text": [ - { - "_uid": "a750fdb5-4826-4829-b538-c947b2fcb704", - "content": { - "type": "doc", - "content": [ - { - "type": "heading", - "attrs": { - "level": 1 - }, - "content": [ - { - "text": "Payments tool for software companies", - "type": "text", - "marks": [ - { - "type": "bold" - } - ] - } - ] - }, - { - "type": "paragraph", - "content": [ - { - "text": "From checkout to global sales tax compliance, companies around the world use Flowbite to simplify their payment stack.", - "type": "text" - } - ] - } - ] - }, - "component": "richText", - "removeInnerMargins": false - } - ], - "Title": { - "type": "doc", - "content": [ - { - "type": "heading", - "attrs": { - "level": 1 - }, - "content": [ - { - "text": "Payments tool for software companies", - "type": "text", - "marks": [ - { - "type": "bold" - } - ] - } - ] - }, - { - "type": "paragraph", - "content": [ - { - "text": "From checkout to global sales tax compliance, companies around the world use Flowbite to simplify their payment stack.", - "type": "text" - } - ] - } - ] - }, - "image": [ + "_uid": "9393f0dd-9ddd-4dff-a278-7d15b933bb64", + "icon": [ { - "_uid": "9b1e6ac1-5d3d-464a-9e0f-89e5e6012f49", + "_uid": "1b27d5ef-edbb-407e-84b0-705826523200", "asset": { - "id": 16613655, + "id": 17887678, "alt": "", "name": "", "focus": "", "title": "", "source": "", - "filename": "https://a.storyblok.com/f/293915/943x706/c52a102a70/phone-mockup.webp", + "filename": "https://a.storyblok.com/f/293915/68x80/a59904240e/personal.png", "copyright": "", "fieldtype": "asset", "meta_data": {}, - "is_private": false, "is_external_url": false }, "component": "image", - "aspectRatio": "4/3" + "aspectRatio": "auto" } ], - "links": [ + "link": [ { - "_uid": "153a06e8-2eac-47d9-9ac8-019faf1055e1", + "_uid": "c5c30f6a-24d8-4c81-992e-85f2f6a06540", "link": { - "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768", - "linktype": "url", + "id": "19601884-a1af-4b99-bd95-1a3ca01d5b7a", + "url": "", + "linktype": "story", "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768" + "cached_url": "home" }, - "text": "Get Started", - "variant": "primary", + "size": "base", + "text": "Sign up", + "variant": "ghost", "component": "link" + } + ], + "name": "Free", + "price": "0", + "popular": false, + "features": [ + { + "_uid": "4d86c6fd-abf9-4e5c-86f0-1985f0d5eeb1", + "text": "Collaborative workspace", + "component": "pricingTableTierFeature" }, { - "_uid": "df78a958-f7a0-46f3-b540-173106e8a3fd", - "link": { - "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768" - }, - "text": "Learn More", - "variant": "secondary", - "component": "link" + "_uid": "b55484df-bbbe-4b6a-9cbc-01cd15a0c4d6", + "text": "Integrate with Slack, GitHub & more", + "component": "pricingTableTierFeature" + }, + { + "_uid": "8f87924e-f474-4d71-b694-e87a1143910b", + "text": "Basic page analytics", + "component": "pricingTableTierFeature" + }, + { + "_uid": "4b9b385e-962b-42ce-84ec-61635548bdbe", + "text": "7 day page history", + "component": "pricingTableTierFeature" + }, + { + "_uid": "56c0cc89-2993-40fa-bb9b-910c9d1d5961", + "text": "Invite 10 guests", + "component": "pricingTableTierFeature" } ], - "component": "hero" + "component": "pricingTableTier", + "description": "For individuals to organize personal projects and life" }, - "component_id": 6030807, + "component_id": 6489131, "space_id": 293915, - "created_at": "2024-07-12T15:21:23.929Z", - "updated_at": "2024-07-12T15:21:23.929Z", - "image": "//a.storyblok.com/f/293915/x/970561938d/hero.png", + "created_at": "2024-11-07T10:17:11.807Z", + "updated_at": "2024-12-11T15:56:00.294Z", + "image": "//a.storyblok.com/f/293915/x/a3a979a7d8/screenshot-2024-11-07-at-11-16-47.png", "color": "", "icon": "", "description": "" }, { - "id": 2337115, + "id": 2311925, "name": "Default", "preset": { - "_uid": "611c74ab-fad3-4b2f-9ee6-ba15543e98d3", - "text": " Add your first product", + "_uid": "785ab1c4-8866-4814-aa5d-ba91483fb0b8", + "text": [ + { + "_uid": "f7ffe359-618f-4c4d-b217-94e28e7e239f", + "content": { + "type": "doc", + "content": [ + { + "type": "heading", + "attrs": { + "level": 3 + }, + "content": [ + { + "text": "Phasellus ut sagittis sapien", + "type": "text" + } + ] + }, + { + "type": "paragraph", + "content": [ + { + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel congue est, sed ullamcorper sapien. Cras purus leo, rutrum tincidunt lacus id, pretium commodo risus. Maecenas auctor erat vel pretium sagittis.", + "type": "text" + } + ] + } + ] + }, + "component": "richText", + "alignVariant": "left", + "removeInnerMargins": false + } + ], "image": [ { - "_uid": "2e1f5bca-6409-430a-b3aa-1d9fc7ddbe18", + "_uid": "46c9b4d4-1925-4196-8053-f2675a3a5323", "asset": { - "id": 17902334, - "alt": "call us", + "id": 18057065, + "alt": "", "name": "", "focus": "", "title": "", "source": "", - "filename": "https://a.storyblok.com/f/293915/960x960/6a4a666d16/call-us.svg", + "filename": "https://a.storyblok.com/f/293915/960x960/ffc4b04f00/app-launch.svg", "copyright": "", "fieldtype": "asset", - "meta_data": { - "alt": "call us", - "title": "", - "source": "", - "copyright": "" - }, + "meta_data": {}, "is_external_url": false }, "component": "image", - "aspectRatio": "3/1" + "aspectRatio": "1/1" } ], - "number": "01", - "component": "stepGuideItem" + "component": "carouselSlide" }, - "component_id": 6492255, + "component_id": 6391277, "space_id": 293915, - "created_at": "2024-10-30T16:11:36.349Z", - "updated_at": "2024-10-30T16:20:36.391Z", - "image": "//a.storyblok.com/f/293915/x/8becce59cc/screenshot-2024-10-30-at-17-11-17.png", + "created_at": "2024-10-08T14:31:37.528Z", + "updated_at": "2024-11-07T10:13:13.893Z", + "image": "//a.storyblok.com/f/293915/x/86f4dd871f/screenshot-2024-11-07-at-11-12-52.png", "color": "", "icon": "", "description": "" @@ -3640,13 +3074,13 @@ "description": "" }, { - "id": 2225125, - "name": "Default Centered", + "id": 2311975, + "name": "Default", "preset": { - "_uid": "227056ef-8b0d-4350-872c-1fff4d75c6f7", + "_uid": "a3e625da-0ccb-4b6a-a379-d3518d374e59", "text": [ { - "_uid": "6007c614-19b9-424a-b842-a3f4aba822da", + "_uid": "2089c560-f262-4041-ab8e-ce0a11b1595a", "content": { "type": "doc", "content": [ @@ -3657,21 +3091,19 @@ }, "content": [ { - "text": "Let's find more that brings us together.", - "type": "text", - "marks": [ - { - "type": "bold" - } - ] + "text": "In Notion, work feels better.", + "type": "text" } ] }, { - "type": "paragraph", + "type": "heading", + "attrs": { + "level": 2 + }, "content": [ { - "text": "Flowbite helps you connect with friends, family and communities of people who share your interests. Connecting with your friends and family as well as discovering new ones is easy with features like Groups, Watch and Marketplace.", + "text": "With a little help from AI.", "type": "text" } ] @@ -3679,150 +3111,128 @@ ] }, "component": "richText", - "removeInnerMargins": false + "alignVariant": "left", + "removeInnerMargins": true } ], - "links": [ + "image": [ { - "_uid": "35cfe6e6-6d29-4af5-a476-7db4b7fd04e8", - "link": { - "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768" + "_uid": "77e8a791-b426-4101-8b49-0967cd14b17c", + "asset": { + "id": 17600300, + "alt": "", + "name": "", + "focus": "", + "title": "", + "source": "", + "filename": "https://a.storyblok.com/f/293915/2474x1318/df22f90af3/screenshot-2024-10-08-at-16-53-38.png", + "copyright": "", + "fieldtype": "asset", + "meta_data": {}, + "is_external_url": false }, - "text": "Get Started", - "variant": "primary", - "component": "link" - }, + "component": "image", + "aspectRatio": "16/9" + } + ], + "links": [ { - "_uid": "cfc05e94-8fa8-48d4-9634-0d2b8bcc1687", + "_uid": "8db7eb44-74dc-4549-8e71-3386251dceb7", "link": { "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768", + "url": "https://github.com/focusreactive/cms-kit", "linktype": "url", "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768" + "cached_url": "https://github.com/focusreactive/cms-kit" }, - "text": "Learn More", - "variant": "secondary", + "size": "lg", + "text": "Get for free", + "variant": "primary", "component": "link" }, { - "_uid": "3c2a573b-0afd-43e7-ac3e-0783cacc0732", + "_uid": "9a58e8b0-bc14-4dd4-ae15-eb1d98d6bef8", "link": { "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768", + "url": "https://focusreactive.com/#mail-us", + "target": "_blank", "linktype": "url", "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915/stories/0/0/513794103/blok/382d42b7-6aec-4768-b88b-6cb3540b4768" + "cached_url": "https://focusreactive.com/#mail-us" }, - "text": "New Info", + "size": "lg", + "text": "Request a demo", "variant": "secondary", "component": "link" } ], - "variant": "centered", - "component": "cta" + "title": "Write. Plan. Collab. Win.", + "maxWidth": "base", + "component": "hero", + "marginTop": "base", + "marginBottom": "base", + "backgroundColor": "none", + "backgroundImage": { + "id": null, + "alt": null, + "name": "", + "focus": null, + "title": null, + "source": null, + "filename": "", + "copyright": null, + "fieldtype": "asset", + "meta_data": {} + } }, - "component_id": 6030875, + "component_id": 6391508, "space_id": 293915, - "created_at": "2024-07-12T15:22:43.344Z", - "updated_at": "2024-07-12T15:22:43.344Z", - "image": "//a.storyblok.com/f/293915/x/a4522fc576/screenshot-2024-07-12-at-17-22-13.png", + "created_at": "2024-10-08T15:14:26.596Z", + "updated_at": "2024-12-11T15:52:30.143Z", + "image": "//a.storyblok.com/f/293915/x/9118f0bd1b/screenshot-2024-10-08-at-17-14-10.png", "color": "", "icon": "", "description": "" }, { - "id": 2225126, - "name": "Default Image/Text", + "id": 2337115, + "name": "Default", "preset": { - "_uid": "ecd5960c-3d21-4c7d-bb17-b91750867dac", - "columns": [ - { - "_uid": "9ce9329c-9e16-49cb-b43f-364ff063473c", - "content": { - "type": "doc", - "content": [ - { - "type": "blok", - "attrs": { - "id": "46ffe80b-acaa-4c47-9a43-069590078dd8", - "body": [ - { - "_uid": "i-3926b58b-b997-48c6-b7c8-daaec86e66b6", - "asset": { - "id": 16613655, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/943x706/c52a102a70/phone-mockup.webp", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_private": false, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "9/16" - } - ] - } - } - ] - }, - "component": "richText", - "removeInnerMargins": false - }, + "_uid": "611c74ab-fad3-4b2f-9ee6-ba15543e98d3", + "text": " Add your first product", + "image": [ { - "_uid": "3af2f97f-d6bf-420e-a8c0-8d072d5563b4", - "content": { - "type": "doc", - "content": [ - { - "type": "heading", - "attrs": { - "level": 1 - }, - "content": [ - { - "text": "Payments tool for software companies", - "type": "text", - "marks": [ - { - "type": "bold" - } - ] - } - ] - }, - { - "type": "paragraph", - "content": [ - { - "text": "From checkout to global sales tax compliance, companies around the world use Flowbite to simplify their payment stack.", - "type": "text" - } - ] - } - ] + "_uid": "2e1f5bca-6409-430a-b3aa-1d9fc7ddbe18", + "asset": { + "id": 17902334, + "alt": "call us", + "name": "", + "focus": "", + "title": "", + "source": "", + "filename": "https://a.storyblok.com/f/293915/960x960/6a4a666d16/call-us.svg", + "copyright": "", + "fieldtype": "asset", + "meta_data": { + "alt": "call us", + "title": "", + "source": "", + "copyright": "" + }, + "is_external_url": false }, - "component": "richText", - "removeInnerMargins": false + "component": "image", + "aspectRatio": "3/1" } ], - "component": "copy5050", - "isReversedOnMobile": false + "number": "01", + "component": "stepGuideItem" }, - "component_id": 6034852, + "component_id": 6492255, "space_id": 293915, - "created_at": "2024-07-12T15:23:46.369Z", - "updated_at": "2024-07-12T15:25:47.256Z", - "image": "//a.storyblok.com/f/293915/x/2be4a2e5d4/screenshot-2024-07-12-at-17-23-20.png", + "created_at": "2024-10-30T16:11:36.349Z", + "updated_at": "2024-10-30T16:20:36.391Z", + "image": "//a.storyblok.com/f/293915/x/8becce59cc/screenshot-2024-10-30-at-17-11-17.png", "color": "", "icon": "", "description": "" @@ -4323,178 +3733,65 @@ "type": "paragraph", "content": [ { - "text": "Proin ex nisi, ultrices nec posuere sit amet, scelerisque eu metus. Donec tristique at felis ut scelerisque. Nam id lectus id urna eleifend dignissim.", - "type": "text" - } - ] - } - ] - }, - "component": "richText", - "alignVariant": "left", - "removeInnerMargins": false - } - ], - "image": [ - { - "_uid": "f5fd4aa3-035d-419c-aec7-c604d776bd5c", - "asset": { - "id": 18057070, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/960x960/bf6793fa17/taking-notes.svg", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "1/1" - } - ], - "component": "carouselSlide" - } - ], - "maxWidth": "base", - "component": "carousel", - "marginTop": "base", - "marginBottom": "base", - "slidesPerView": "3", - "backgroundColor": "light", - "backgroundImage": { - "id": null, - "alt": null, - "name": "", - "focus": null, - "title": null, - "filename": null, - "copyright": null, - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - } - }, - "component_id": 6391276, - "space_id": 293915, - "created_at": "2024-11-04T09:36:56.351Z", - "updated_at": "2024-11-07T09:16:52.984Z", - "image": "//a.storyblok.com/f/293915/x/1d5cfd198a/screenshot-2024-11-04-at-10-32-09.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2225128, - "name": "Default Text/Image", - "preset": { - "_uid": "2420ff93-4dae-4cbc-9df9-602f5744d716", - "columns": [ - { - "_uid": "1cceac44-d67d-4bb4-b01c-f3bcf6eed068", - "content": { - "type": "doc", - "content": [ - { - "type": "heading", - "attrs": { - "level": 2 - }, - "content": [ - { - "text": "Let's find more that brings us together.", - "type": "text", - "marks": [ - { - "type": "bold" - } - ] - } - ] - }, - { - "type": "paragraph", - "content": [ - { - "text": "Flowbite helps you connect with friends, family and communities of people who share your interests. Connecting with your friends and family as well as discovering new ones is easy with features like Groups, Watch and Marketplace.", - "type": "text" - } - ] - } - ] - }, - "component": "richText", - "removeInnerMargins": false - }, - { - "_uid": "6dd386ff-2f1a-4f37-a6ad-a168007ad845", - "content": { - "type": "doc", - "content": [ - { - "type": "blok", - "attrs": { - "id": "46ffe80b-acaa-4c47-9a43-069590078dd8", - "body": [ - { - "_uid": "i-7ccf01f9-39b7-447b-9aa1-f8b7e2514aa3", - "asset": { - "id": 16613655, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/943x706/c52a102a70/phone-mockup.webp", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_private": false, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "4/3" - } - ] - } - } - ] - }, - "component": "richText", - "removeInnerMargins": false + "text": "Proin ex nisi, ultrices nec posuere sit amet, scelerisque eu metus. Donec tristique at felis ut scelerisque. Nam id lectus id urna eleifend dignissim.", + "type": "text" + } + ] + } + ] + }, + "component": "richText", + "alignVariant": "left", + "removeInnerMargins": false + } + ], + "image": [ + { + "_uid": "f5fd4aa3-035d-419c-aec7-c604d776bd5c", + "asset": { + "id": 18057070, + "alt": "", + "name": "", + "focus": "", + "title": "", + "source": "", + "filename": "https://a.storyblok.com/f/293915/960x960/bf6793fa17/taking-notes.svg", + "copyright": "", + "fieldtype": "asset", + "meta_data": {}, + "is_external_url": false + }, + "component": "image", + "aspectRatio": "1/1" + } + ], + "component": "carouselSlide" } ], - "component": "copy5050", - "isReversedOnMobile": true - }, - "component_id": 6034852, - "space_id": 293915, - "created_at": "2024-07-12T15:26:09.884Z", - "updated_at": "2024-07-12T15:26:09.884Z", - "image": "//a.storyblok.com/f/293915/x/66ef38c108/copy5050.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2339030, - "name": "Donut", - "preset": { - "_uid": "9d83edc5-e596-466d-865c-6f8aff80318e", "maxWidth": "base", - "component": "threeDElement", + "component": "carousel", "marginTop": "base", - "threeDModel": "donut", "marginBottom": "base", - "backgroundColor": "none" + "slidesPerView": "3", + "backgroundColor": "light", + "backgroundImage": { + "id": null, + "alt": null, + "name": "", + "focus": null, + "title": null, + "filename": null, + "copyright": null, + "fieldtype": "asset", + "meta_data": {}, + "is_external_url": false + } }, - "component_id": 6502652, + "component_id": 6391276, "space_id": 293915, - "created_at": "2024-11-01T08:29:59.224Z", - "updated_at": "2024-11-07T10:22:16.046Z", - "image": "//a.storyblok.com/f/293915/x/d39c375cf9/screenshot-2024-11-01-at-09-29-42.png", + "created_at": "2024-11-04T09:36:56.351Z", + "updated_at": "2024-11-07T09:16:52.984Z", + "image": "//a.storyblok.com/f/293915/x/1d5cfd198a/screenshot-2024-11-04-at-10-32-09.png", "color": "", "icon": "", "description": "" @@ -5153,27 +4450,6 @@ "icon": "", "description": "" }, - { - "id": 2339069, - "name": "Globe", - "preset": { - "_uid": "87ecb54c-3976-4400-a36b-da4c5a7ee1e9", - "maxWidth": "base", - "component": "threeDElement", - "marginTop": "base", - "threeDModel": "globe", - "marginBottom": "base", - "backgroundColor": "none" - }, - "component_id": 6502652, - "space_id": 293915, - "created_at": "2024-11-01T09:42:06.666Z", - "updated_at": "2024-11-07T10:23:21.734Z", - "image": "//a.storyblok.com/f/293915/x/e7b4b1f94e/screenshot-2024-11-01-at-10-40-44.png", - "color": "", - "icon": "", - "description": "" - }, { "id": 2285392, "name": "Home", @@ -8159,278 +7435,47 @@ "content": [ { "type": "paragraph", - "content": [ - { - "text": "Lorem ipsum is placeholder text commonly used in the graphic, print, and publishing industries for previewing layouts and visual mockups.", - "type": "text" - } - ] - } - ] - }, - "component": "richText", - "alignVariant": "left", - "removeInnerMargins": false - } - ], - "image": [ - { - "_uid": "7d4751c1-7cdc-4e23-82ee-deecad955a9f", - "asset": { - "id": 17287635, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/1067x600/d4eff3564e/presentation-1792x1008-1.webp", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "4/1" - } - ], - "component": "blogPost" - }, - "component_id": 6275962, - "space_id": 293915, - "created_at": "2024-09-10T14:40:17.187Z", - "updated_at": "2024-12-11T15:49:26.005Z", - "image": "//a.storyblok.com/f/293915/x/3fb1081539/screenshot-2024-09-10-at-16-39-45.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2339068, - "name": "Kubik Rubik", - "preset": { - "_uid": "911a6cac-21c3-48f4-a2c2-8823ab39b738", - "maxWidth": "base", - "component": "threeDElement", - "marginTop": "base", - "threeDModel": "kubik-rubik", - "marginBottom": "base", - "backgroundColor": "none" - }, - "component_id": 6502652, - "space_id": 293915, - "created_at": "2024-11-01T09:41:48.827Z", - "updated_at": "2024-11-07T10:22:44.473Z", - "image": "//a.storyblok.com/f/293915/x/75159faf13/screenshot-2024-11-01-at-10-40-32.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2282764, - "name": "Light", - "preset": { - "_uid": "c298fa8c-eb48-4657-b1f9-a8fd62e343c4", - "image": [ - { - "_uid": "f0c8d535-d484-4ddb-8da9-f4effe37a8e0", - "asset": { - "id": 17593700, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/3840x2160/2e8c505a38/nike-logo.png", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "16/9" - } - ], - "links": [ - { - "_uid": "dd240d55-f01a-4e25-8a8f-0d8e8b20bba8", - "link": { - "id": "19601884-a1af-4b99-bd95-1a3ca01d5b7a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "home" - }, - "text": "Home", - "variant": "default", - "component": "link" - }, - { - "_uid": "4bbd38c5-5ea1-4ce5-ad84-46c31da1951a", - "link": { - "id": "5d416347-de08-4adb-b496-00b0a083de3a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "blog" - }, - "text": "Blog", - "variant": "default", - "component": "link" - }, - { - "_uid": "49741fc6-81c9-430c-bea9-5c086d0c5950", - "link": { - "id": "", - "url": "https://app.storyblok.com/#/me/spaces/293915", - "target": "_blank", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://app.storyblok.com/#/me/spaces/293915" - }, - "text": "Storyblok", - "variant": "default", - "component": "link" - }, - { - "_uid": "5f93d524-bb21-4efa-8f12-bccc672c45fe", - "link": { - "id": "", - "url": "https://github.com/focusreactive/turbo-cms-kit", - "target": "_blank", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://github.com/focusreactive/turbo-cms-kit" - }, - "text": "GitHub", - "variant": "default", - "component": "link" - }, - { - "_uid": "f28777c3-a837-4ad1-9a26-826eadb51710", - "link": { - "id": "", - "url": "https://trello.com/b/2XLLkCma/cms-kit", - "target": "_blank", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://trello.com/b/2XLLkCma/cms-kit" - }, - "text": "Trello", - "variant": "default", - "component": "link" - }, - { - "_uid": "1e322a60-4272-45b0-b66b-fba186b5ab6a", - "link": { - "id": "", - "url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok", - "linktype": "url", - "fieldtype": "multilink", - "cached_url": "https://vercel.com/focusreactive/turbo-cms-kit-storyblok" - }, - "text": "Vercel", - "variant": "default", - "component": "link" - } - ], - "theme": "light", - "component": "header-old", - "alignVariant": "right" - }, - "component_id": 6275697, - "space_id": 293915, - "created_at": "2024-09-10T14:43:40.339Z", - "updated_at": "2024-10-08T11:37:15.680Z", - "image": "//a.storyblok.com/f/293915/x/c38bd1625a/screenshot-2024-10-08-at-13-37-02.png", - "color": "", - "icon": "", - "description": "" - }, - { - "id": 2282778, - "name": "Light align center", - "preset": { - "_uid": "337f031d-e7bf-4a2e-9985-20d3e70574e7", - "text": [ - { - "_uid": "daaef2de-b645-4b60-8196-5b3ce6a1f1f6", - "content": { - "type": "doc", - "content": [ - { - "type": "heading", - "attrs": { - "level": 3 - }, - "content": [ - { - "text": "Lorem ipsum is placeholder text commonly", - "type": "text", - "marks": [ - { - "type": "bold" - } - ] + "content": [ + { + "text": "Lorem ipsum is placeholder text commonly used in the graphic, print, and publishing industries for previewing layouts and visual mockups.", + "type": "text" } ] } ] }, "component": "richText", - "alignVariant": "center", + "alignVariant": "left", "removeInnerMargins": false } ], - "links": [ - { - "_uid": "866a72a9-cf64-46b1-8e4c-52beefcb1e8d", - "link": { - "id": "5d416347-de08-4adb-b496-00b0a083de3a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "demo" - }, - "text": "services", - "variant": "default", - "component": "link" - }, - { - "_uid": "9ff5cbe6-3030-41eb-aaa4-5b6be8c4dcaf", - "link": { - "id": "5d416347-de08-4adb-b496-00b0a083de3a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "demo" - }, - "text": "about us", - "variant": "default", - "component": "link" - }, + "image": [ { - "_uid": "5966a8ea-295e-4e85-94d8-0e1b8a827850", - "link": { - "id": "5d416347-de08-4adb-b496-00b0a083de3a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "demo" + "_uid": "7d4751c1-7cdc-4e23-82ee-deecad955a9f", + "asset": { + "id": 17287635, + "alt": "", + "name": "", + "focus": "", + "title": "", + "source": "", + "filename": "https://a.storyblok.com/f/293915/1067x600/d4eff3564e/presentation-1792x1008-1.webp", + "copyright": "", + "fieldtype": "asset", + "meta_data": {}, + "is_external_url": false }, - "text": "careers", - "variant": "default", - "component": "link" + "component": "image", + "aspectRatio": "4/1" } ], - "theme": "light", - "component": "footer-old", - "copywriteText": "copywrite" + "component": "blogPost" }, - "component_id": 6275699, + "component_id": 6275962, "space_id": 293915, - "created_at": "2024-09-10T14:46:14.392Z", - "updated_at": "2024-09-10T14:46:14.392Z", - "image": "//a.storyblok.com/f/293915/x/14d7756fa8/screenshot-2024-09-10-at-16-45-53.png", + "created_at": "2024-09-10T14:40:17.187Z", + "updated_at": "2024-12-11T15:49:26.005Z", + "image": "//a.storyblok.com/f/293915/x/3fb1081539/screenshot-2024-09-10-at-16-39-45.png", "color": "", "icon": "", "description": "" @@ -8576,372 +7621,6 @@ "icon": "", "description": "" }, - { - "id": 2335597, - "name": "Pricing Table", - "preset": { - "_uid": "664ee9f4-a7bb-4bf7-aa5c-e27328513ca3", - "tiers": [ - { - "_uid": "9393f0dd-9ddd-4dff-a278-7d15b933bb64", - "icon": [ - { - "_uid": "1b27d5ef-edbb-407e-84b0-705826523200", - "asset": { - "id": 17887678, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/68x80/a59904240e/personal.png", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "auto" - } - ], - "link": [ - { - "_uid": "c5c30f6a-24d8-4c81-992e-85f2f6a06540", - "link": { - "id": "19601884-a1af-4b99-bd95-1a3ca01d5b7a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "home" - }, - "size": "base", - "text": "Sign up", - "variant": "ghost", - "component": "link" - } - ], - "name": "Free", - "price": "0", - "popular": false, - "features": [ - { - "_uid": "4d86c6fd-abf9-4e5c-86f0-1985f0d5eeb1", - "text": "Collaborative workspace", - "component": "pricingTableTierFeature" - }, - { - "_uid": "b55484df-bbbe-4b6a-9cbc-01cd15a0c4d6", - "text": "Integrate with Slack, GitHub & more", - "component": "pricingTableTierFeature" - }, - { - "_uid": "8f87924e-f474-4d71-b694-e87a1143910b", - "text": "Basic page analytics", - "component": "pricingTableTierFeature" - }, - { - "_uid": "4b9b385e-962b-42ce-84ec-61635548bdbe", - "text": "7 day page history", - "component": "pricingTableTierFeature" - }, - { - "_uid": "56c0cc89-2993-40fa-bb9b-910c9d1d5961", - "text": "Invite 10 guests", - "component": "pricingTableTierFeature" - } - ], - "component": "pricingTableTier", - "description": "For individuals to organize personal projects and life" - }, - { - "_uid": "39341603-eddb-4ea5-9695-2c2cf60d27b0", - "icon": [ - { - "_uid": "88d2babf-6b6d-495e-9e0e-1305355eaad1", - "asset": { - "id": 17887679, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/86x80/d9b65aa6fe/pro.png", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "auto" - } - ], - "link": [ - { - "_uid": "3677d28c-79cc-422c-b00f-b22b0e8e1120", - "link": { - "id": "19601884-a1af-4b99-bd95-1a3ca01d5b7a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "home" - }, - "size": "base", - "text": "Get started", - "variant": "ghost-dark", - "component": "link" - } - ], - "name": "Plus", - "price": "", - "popular": true, - "features": [ - { - "_uid": "41d6dd7f-2e84-47ae-92d3-f718c113c536", - "text": "Everything in Free +", - "component": "pricingTableTierFeature" - }, - { - "_uid": "ef6ef543-367f-4f95-b05e-a46aea89b402", - "text": "Unlimited blocks for teams", - "component": "pricingTableTierFeature" - }, - { - "_uid": "ffad141b-683a-4f2c-9945-5c58e42cb58b", - "text": "Unlimited file uploads", - "component": "pricingTableTierFeature" - }, - { - "_uid": "5f8a9a9b-f6ca-4075-b9ba-7ed27db820c7", - "text": "30 day page history", - "component": "pricingTableTierFeature" - }, - { - "_uid": "9dbf9650-0c2b-4983-bc3b-2b76b55c8370", - "text": "Invite 100 guests", - "component": "pricingTableTierFeature" - }, - { - "_uid": "1487efa6-51e2-4cbd-bca1-ce187b353ac9", - "text": "Synced databases with 3rd party apps", - "component": "pricingTableTierFeature" - }, - { - "_uid": "8ff9fb9e-53f8-49f5-ac78-a03465caa726", - "text": "Custom websites", - "component": "pricingTableTierFeature" - }, - { - "_uid": "37730a48-b948-4638-bdcf-66e86697fec9", - "text": "Custom automations", - "component": "pricingTableTierFeature" - }, - { - "_uid": "362d31e3-8d48-4250-b965-9ba57bd13c0c", - "text": "Charts & dashboards", - "component": "pricingTableTierFeature" - } - ], - "component": "pricingTableTier", - "description": "For small teams and professionals to work together" - }, - { - "_uid": "e3cb5344-bcc1-4d17-ad3e-e7bfb623e7e2", - "icon": [ - { - "_uid": "af95824f-c970-4373-b19c-f4ef8c4bbb1e", - "asset": { - "id": 17887681, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/72x80/4229f5e65b/team.png", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "auto" - } - ], - "link": [ - { - "_uid": "fc9c457e-c937-4d81-a6f8-c12581954e3f", - "link": { - "id": "19601884-a1af-4b99-bd95-1a3ca01d5b7a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "home" - }, - "size": "base", - "text": "Get started", - "variant": "ghost", - "component": "link" - } - ], - "name": "Business", - "price": "14", - "popular": false, - "features": [ - { - "_uid": "a13396dc-0e03-4b5a-9348-0b433b48f719", - "text": "Everything in Plus +", - "component": "pricingTableTierFeature" - }, - { - "_uid": "68701d21-2e82-4ac6-913e-9bac311cb9e7", - "text": "SAML SSO", - "component": "pricingTableTierFeature" - }, - { - "_uid": "93c6a839-9815-4d66-98d2-ac2e959d8741", - "text": "Private teamspaces", - "component": "pricingTableTierFeature" - }, - { - "_uid": "317b226b-79eb-41a9-9ee5-4b052448194b", - "text": "Bulk PDF export", - "component": "pricingTableTierFeature" - }, - { - "_uid": "7bf4c3e2-14aa-4cab-b863-66fdd8589bdd", - "text": "Advanced page analytics", - "component": "pricingTableTierFeature" - }, - { - "_uid": "78c60e8f-bbc8-47ea-b11c-1dfa7069ac6a", - "text": "90 day page history", - "component": "pricingTableTierFeature" - }, - { - "_uid": "7dda7608-b3fa-4d58-b2ea-5dc61eeb93d8", - "text": "Invite 250 guests", - "component": "pricingTableTierFeature" - } - ], - "component": "pricingTableTier", - "description": "For growing businesses to streamline teamwork" - }, - { - "_uid": "87c28f6a-9372-4496-b782-640fdcdf0e02", - "icon": [ - { - "_uid": "5eb6ce00-5d92-4dbb-b610-d6fd94432933", - "asset": { - "id": 17887680, - "alt": "", - "name": "", - "focus": "", - "title": "", - "source": "", - "filename": "https://a.storyblok.com/f/293915/84x80/8b7995cd2e/enterprise.png", - "copyright": "", - "fieldtype": "asset", - "meta_data": {}, - "is_external_url": false - }, - "component": "image", - "aspectRatio": "auto" - } - ], - "link": [ - { - "_uid": "9c80b2f2-dc2c-480a-b813-e64d750cfd78", - "link": { - "id": "5d416347-de08-4adb-b496-00b0a083de3a", - "url": "", - "linktype": "story", - "fieldtype": "multilink", - "cached_url": "blog" - }, - "size": "base", - "text": "Contact Sales", - "variant": "ghost", - "component": "link" - } - ], - "name": "Enterprise", - "price": "", - "popular": false, - "features": [ - { - "_uid": "c7cc6ebb-06a2-4eca-8cc8-8ae70378ab42", - "text": "Everything in Business +", - "component": "pricingTableTierFeature" - }, - { - "_uid": "c44580b6-e4c6-4a21-9b56-af40ac1385af", - "text": "User provisioning (SCIM)", - "component": "pricingTableTierFeature" - }, - { - "_uid": "4c046c73-2105-46e8-a2c0-a18dd6ff766f", - "text": "Advanced security & controls", - "component": "pricingTableTierFeature" - }, - { - "_uid": "70bf1296-10d2-4320-8200-c8f0cf24bc26", - "text": "Audit log", - "component": "pricingTableTierFeature" - }, - { - "_uid": "0eac75f8-a045-4aca-be59-79a72dd32ab3", - "text": "Customer success manager", - "component": "pricingTableTierFeature" - }, - { - "_uid": "93440383-a26d-455f-9881-4176129f1f42", - "text": "Workspace analytics", - "component": "pricingTableTierFeature" - }, - { - "_uid": "ae9a8b8c-255c-4260-9a18-cee8ebbbceb9", - "text": "Unlimited page history", - "component": "pricingTableTierFeature" - }, - { - "_uid": "af5900be-f68d-4590-972d-745316d70da4", - "text": "Security & Compliance integrations", - "component": "pricingTableTierFeature" - }, - { - "_uid": "3334d4a2-8a81-400a-82a9-0fdd8103da96", - "text": "Invite 250 guests", - "component": "pricingTableTierFeature" - } - ], - "component": "pricingTableTier", - "description": "For organizations to operate with scalability, control, and security" - } - ], - "maxWidth": "base", - "component": "pricingTable", - "marginTop": "base", - "extraService": [ - { - "_uid": "4fb80102-2f45-4e85-98b2-e962dfb164f5", - "cost": "10", - "text": "Add AI", - "component": "pricingTableExtraService" - } - ], - "marginBottom": "base", - "backgroundColor": "none", - "extraServiceEnabled": true, - "yearlyDiscountPercentage": "20" - }, - "component_id": 6489128, - "space_id": 293915, - "created_at": "2024-10-29T14:34:25.198Z", - "updated_at": "2024-12-11T15:55:42.987Z", - "image": "//a.storyblok.com/f/293915/x/a01a228065/screenshot-2024-10-29-at-15-33-45.png", - "color": "", - "icon": "", - "description": "" - }, { "id": 2282728, "name": "Text with CMS logos", diff --git a/apps/storyblok/src/lib/api.ts b/apps/storyblok/src/lib/api.ts index 183221d..a7b78b0 100644 --- a/apps/storyblok/src/lib/api.ts +++ b/apps/storyblok/src/lib/api.ts @@ -69,15 +69,13 @@ export async function fetchStoryBySlug( searchParamsData as Record, ); - const { story, links } = await fetch( + const response = await fetch( `${API_GATE}/stories/${slug?.join("/") || ""}?${searchParams.toString()}`, ).then((res) => res.json()); - console.log("links length: ", links.length); - return { - story, - links, + story: response.story, + links: response.links, }; } @@ -107,7 +105,7 @@ export async function fetchAllPages() { const lastPageNumber = Math.ceil(total / 1000); let pages: { slug: string; is_folder: boolean; published_at: string }[] = - Object.values(pagesData.links); + Object.values(pagesData?.links || []); for (let i = 2; i <= lastPageNumber; i++) { const paginatedLinksResponse = await fetch( diff --git a/apps/storyblok/src/lib/renderRichText.tsx b/apps/storyblok/src/lib/renderRichText.tsx index 4bd3066..7a74a18 100644 --- a/apps/storyblok/src/lib/renderRichText.tsx +++ b/apps/storyblok/src/lib/renderRichText.tsx @@ -64,34 +64,6 @@ export default function renderRichText(data: ISbRichtext) { ); }, - stepGuide: (props) => { - return ( - - ); - }, - - threeDElement: (props) => { - return ( - - ); - }, - - pricingTable: (props) => { - return ( - - ); - }, - carousel: (props) => { return ( { - if (monthlyPrice === 0) return 0; - return (monthlyPrice * 12 * (yearlyDiscountPercentage / 100)).toFixed(2); - }; - - return ( -
-
- { - setIsYearly(value === "yearly"); - }} - /> - - {extraServiceEnabled && ( - - )} -
- -
- {tiers.map((tier) => { - const monthlyPrice = tier.price - ? addExtraService - ? tier.price + (extraService?.cost || 0) - : tier.price - : 0; - - return ( -
-
-
-

- {tier.name} -

- - {tier.popular && ( - - Popular - - )} -
-
- -
- - {tier.price !== undefined ? ( -

- - €{isYearly ? getYearlyPrice(monthlyPrice) : monthlyPrice} - - - {tier.price > 0 ? " seat" : ""} - {isYearly ? "/year" : "/month"} - -

- ) : ( -

- Custom -

- )} -

{tier.description}

-
- -
- - -
    - {tier.features.map((feature) => ( -
  • -
    - -
    -

    {feature}

    -
  • - ))} -
-
-
- ); - })} -
-
- ); -} diff --git a/packages/ui/components/sections/pricingTable/types.ts b/packages/ui/components/sections/pricingTable/types.ts deleted file mode 100644 index 1053fb5..0000000 --- a/packages/ui/components/sections/pricingTable/types.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { IImageProps } from "../../ui/image/types"; -import type { LinkProps } from "../../ui/link/types"; - -export interface IPricingTier { - name: string; - icon: IImageProps; - price?: number; - description: string; - features: string[]; - cta: LinkProps; - popular?: boolean; -} - -export interface IPricingProps { - tiers: IPricingTier[]; - yearlyDiscountPercentage: number; - extraServiceEnabled?: boolean; - extraService?: { - text: string; - cost: number; - }; -} diff --git a/packages/ui/components/sections/stepGuide/index.tsx b/packages/ui/components/sections/stepGuide/index.tsx deleted file mode 100644 index 32e588e..0000000 --- a/packages/ui/components/sections/stepGuide/index.tsx +++ /dev/null @@ -1,62 +0,0 @@ -"use client"; - -import { useState } from "react"; - -import { cn } from "../../../utils"; -import { Image } from "../../ui/image"; -import { Link } from "../../ui/link"; -import type { IStepGuideProps } from "./types"; - -export function StepGuide({ link, items }: IStepGuideProps) { - // todo: implement using tailwind CSS only, no JS - const [activeIndex, setActiveIndex] = useState(0); - - return ( -
-
- {items.map(({ image }, index) => ( -
- {image && ( -
- -
- )} -
- ))} -
- -
-
    - {items.map(({ number, text }, index) => ( -
  • setActiveIndex(index)} - onFocus={() => setActiveIndex(index)} - > -
    - {number} -
    -

    - {text} -

    -
  • - ))} -
- - {link && ( - - )} -
-
- ); -} diff --git a/packages/ui/components/sections/stepGuide/types.ts b/packages/ui/components/sections/stepGuide/types.ts deleted file mode 100644 index 68492a6..0000000 --- a/packages/ui/components/sections/stepGuide/types.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { IImageProps } from "../../ui/image/types"; -import type { LinkProps } from "../../ui/link/types"; - -interface IStepGuideItem { - number: string; - text: string; - image: IImageProps; -} - -export interface IStepGuideProps { - link: LinkProps; - items: IStepGuideItem[]; -} diff --git a/packages/ui/components/sections/threeDElement/donut-model.tsx b/packages/ui/components/sections/threeDElement/donut-model.tsx deleted file mode 100644 index 58f7662..0000000 --- a/packages/ui/components/sections/threeDElement/donut-model.tsx +++ /dev/null @@ -1,217 +0,0 @@ -"use client"; - -import { useEffect, useMemo, useRef } from "react"; -import { Canvas, useFrame, useThree } from "@react-three/fiber"; -import * as THREE from "three"; - -const GlazeMaterial = { - uniforms: { - time: { value: 0 }, - colorA: { value: new THREE.Color("#4158D0") }, - colorB: { value: new THREE.Color("#C850C0") }, - colorC: { value: new THREE.Color("#FFCC70") }, - }, - vertexShader: ` - varying vec2 vUv; - varying vec3 vPosition; - void main() { - vUv = uv; - vPosition = position; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); - } - `, - fragmentShader: ` - uniform float time; - uniform vec3 colorA; - uniform vec3 colorB; - uniform vec3 colorC; - varying vec2 vUv; - varying vec3 vPosition; - - void main() { - float noise = sin(vUv.x * 10.0 + time) * sin(vUv.y * 10.0 + time) * 0.1; - - vec3 color1 = mix(colorA, colorB, vUv.x); - vec3 color2 = mix(color1, colorC, vUv.y); - - gl_FragColor = vec4(color2 + noise, 1.0); - } - `, -}; - -function CameraController() { - const { camera, gl } = useThree(); - const rotationSpeed = 0.005; - - useEffect(() => { - const canvas = gl.domElement; - let isDragging = false; - let previousMousePosition = { x: 0, y: 0 }; - - const handleMouseDown = (event: MouseEvent) => { - isDragging = true; - previousMousePosition = { x: event.clientX, y: event.clientY }; - }; - - const handleMouseMove = (event: MouseEvent) => { - if (!isDragging) return; - - const deltaMove = { - x: event.clientX - previousMousePosition.x, - y: event.clientY - previousMousePosition.y, - }; - - const rotationQuaternion = new THREE.Quaternion().setFromEuler( - new THREE.Euler( - deltaMove.y * rotationSpeed, - deltaMove.x * rotationSpeed, - 0, - "XYZ", - ), - ); - - camera.position.applyQuaternion(rotationQuaternion); - camera.lookAt(new THREE.Vector3(0, 0, 0)); - - previousMousePosition = { x: event.clientX, y: event.clientY }; - }; - - const handleMouseUp = () => { - isDragging = false; - }; - - canvas.addEventListener("mousedown", handleMouseDown); - canvas.addEventListener("mousemove", handleMouseMove); - window.addEventListener("mouseup", handleMouseUp); - - return () => { - canvas.removeEventListener("mousedown", handleMouseDown); - canvas.removeEventListener("mousemove", handleMouseMove); - window.removeEventListener("mouseup", handleMouseUp); - }; - }, [camera, gl, rotationSpeed]); - - return null; -} - -const Donut = ({ count = 2000, radius = 5, tubeRadius = 2 }) => { - const meshRef = useRef(null!); - const glazeRef = useRef(null!); - const sprinklesRef = useRef(null!); - const { raycaster, mouse, camera } = useThree(); - - const [particlesPosition, sprinklesPosition] = useMemo(() => { - const positions = new Float32Array(count * 3); - const sprinklesPos = new Float32Array(count * 3); - const colors = new Float32Array(count * 3); - for (let i = 0; i < count; i++) { - const theta = Math.random() * Math.PI * 2; - const phi = Math.random() * Math.PI; - const r = radius + tubeRadius * Math.cos(phi); - const x = r * Math.cos(theta); - const y = r * Math.sin(theta); - const z = tubeRadius * Math.sin(phi); - positions.set([x, y, z], i * 3); - - if (z > 0) { - const sprinkleR = radius + tubeRadius * 1.05 * Math.cos(phi); - sprinklesPos.set( - [ - sprinkleR * Math.cos(theta), - sprinkleR * Math.sin(theta), - tubeRadius * 1.05 * Math.sin(phi), - ], - i * 3, - ); - - colors.set( - [ - Math.random() * 0.5 + 0.5, - Math.random() * 0.5 + 0.5, - Math.random() * 0.5 + 0.5, - ], - i * 3, - ); - } - } - return [positions, sprinklesPos] as const; - }, [count, radius, tubeRadius]); - - useFrame((state) => { - if (meshRef.current && glazeRef.current && sprinklesRef.current) { - const material = glazeRef.current.material as THREE.ShaderMaterial; - if (material.uniforms?.time) { - material.uniforms.time.value = state.clock.getElapsedTime(); - } - - raycaster.setFromCamera(mouse, camera); - const intersection = raycaster.intersectObject(glazeRef.current); - - const tempObject = new THREE.Object3D(); - const tempSprinkle = new THREE.Object3D(); - - for (let i = 0; i < count; i++) { - tempObject.position.fromArray(particlesPosition, i * 3); - - if (intersection?.[0]?.point) { - const point = intersection[0].point; - const distance = tempObject.position.distanceTo(point); - if (distance < 1) { - const direction = tempObject.position.sub(point).normalize(); - tempObject.position.add(direction.multiplyScalar(0.2)); - } - } - - tempObject.updateMatrix(); - meshRef.current.setMatrixAt(i, tempObject.matrix); - - // Handle sprinkles separately - const sprinkleZ = sprinklesPosition?.[i * 3 + 2]; - if (sprinkleZ !== undefined && sprinkleZ > 0) { - tempSprinkle.position.fromArray(sprinklesPosition, i * 3); - tempSprinkle.updateMatrix(); - sprinklesRef.current.setMatrixAt(i, tempSprinkle.matrix); - } - } - - meshRef.current.instanceMatrix.needsUpdate = true; - sprinklesRef.current.instanceMatrix.needsUpdate = true; - } - }); - - return ( - - - - - - - - - - - - - - - ); -}; - -export default function DonutModel() { - return ( -
- - - - - - -
- ); -} diff --git a/packages/ui/components/sections/threeDElement/globe-model.tsx b/packages/ui/components/sections/threeDElement/globe-model.tsx deleted file mode 100644 index 5c89728..0000000 --- a/packages/ui/components/sections/threeDElement/globe-model.tsx +++ /dev/null @@ -1,174 +0,0 @@ -"use client"; - -import { useEffect, useRef } from "react"; -import { Canvas, useFrame, useThree } from "@react-three/fiber"; -import * as THREE from "three"; - -const GlobeMaterial = { - uniforms: { - time: { value: 0 }, - colorA: { value: new THREE.Color("#1E4D7B") }, // Deep blue - colorB: { value: new THREE.Color("#4CB5F5") }, // Light blue - }, - vertexShader: ` - varying vec2 vUv; - varying vec3 vNormal; - void main() { - vUv = uv; - vNormal = normalize(normalMatrix * normal); - gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); - } - `, - fragmentShader: ` - uniform float time; - uniform vec3 colorA; - uniform vec3 colorB; - varying vec2 vUv; - varying vec3 vNormal; - - void main() { - float fresnel = pow(1.0 - abs(dot(vNormal, vec3(0.0, 0.0, 1.0))), 2.0); - vec3 color = mix(colorA, colorB, fresnel + sin(vUv.y * 20.0 + time) * 0.1); - gl_FragColor = vec4(color, 1.0); - } - `, -}; - -function CameraController() { - const { camera, gl } = useThree(); - const rotationSpeed = 0.005; - - useEffect(() => { - const canvas = gl.domElement; - let isDragging = false; - let previousMousePosition = { x: 0, y: 0 }; - - const handleMouseDown = (event: MouseEvent) => { - isDragging = true; - previousMousePosition = { x: event.clientX, y: event.clientY }; - }; - - const handleMouseMove = (event: MouseEvent) => { - if (!isDragging) return; - - const deltaMove = { - x: event.clientX - previousMousePosition.x, - y: event.clientY - previousMousePosition.y, - }; - - const rotationQuaternion = new THREE.Quaternion().setFromEuler( - new THREE.Euler( - deltaMove.y * rotationSpeed, - deltaMove.x * rotationSpeed, - 0, - "XYZ", - ), - ); - - camera.position.applyQuaternion(rotationQuaternion); - camera.lookAt(new THREE.Vector3(0, 0, 0)); - - previousMousePosition = { x: event.clientX, y: event.clientY }; - }; - - const handleMouseUp = () => { - isDragging = false; - }; - - canvas.addEventListener("mousedown", handleMouseDown); - canvas.addEventListener("mousemove", handleMouseMove); - window.addEventListener("mouseup", handleMouseUp); - - return () => { - canvas.removeEventListener("mousedown", handleMouseDown); - canvas.removeEventListener("mousemove", handleMouseMove); - window.removeEventListener("mouseup", handleMouseUp); - }; - }, [camera, gl, rotationSpeed]); - - return null; -} - -const Globe = ({ radius = 8 }) => { - const globeRef = useRef(null!); - const atmosphereRef = useRef(null!); - - // Grid points for the globe surface - const pointsGeometry = new THREE.BufferGeometry(); - const pointsCount = 2000; - const positions = new Float32Array(pointsCount * 3); - - // Create grid points positions - for (let i = 0; i < pointsCount; i++) { - const theta = Math.random() * Math.PI * 2; - const phi = Math.acos(2 * Math.random() - 1); - const x = radius * Math.sin(phi) * Math.cos(theta); - const y = radius * Math.sin(phi) * Math.sin(theta); - const z = radius * Math.cos(phi); - positions.set([x, y, z], i * 3); - } - - pointsGeometry.setAttribute( - "position", - new THREE.BufferAttribute(positions, 3), - ); - - useFrame((state) => { - if (globeRef.current && atmosphereRef.current) { - // Rotate the globe slowly - globeRef.current.rotation.y += 0.001; - atmosphereRef.current.rotation.y += 0.001; - - // Update shader time - const material = globeRef.current.material as THREE.ShaderMaterial; - if (material.uniforms?.time) { - material.uniforms.time.value = state.clock.getElapsedTime(); - } - } - }); - - return ( - - {/* Main Globe */} - - - - - - {/* Atmosphere layer */} - - - - - - {/* Grid points */} - - - - - ); -}; - -export default function GlobeModel() { - return ( -
- - - - - - -
- ); -} diff --git a/packages/ui/components/sections/threeDElement/index.tsx b/packages/ui/components/sections/threeDElement/index.tsx deleted file mode 100644 index e2be38d..0000000 --- a/packages/ui/components/sections/threeDElement/index.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import type { FC } from "react"; - -import DonutModel from "./donut-model"; -import GlobeModel from "./globe-model"; -import KubikRubik from "./kubik-rubik"; -import type { IThreeDElementProps } from "./types"; - -const MODELS_MAP: Record = { - donut: DonutModel, - globe: GlobeModel, - "kubik-rubik": KubikRubik, -}; - -export function ThreeDElement({ model }: IThreeDElementProps) { - const ModelComponent = MODELS_MAP[model]; - - if (!ModelComponent) return null; - - return ( -
- -
- ); -} diff --git a/packages/ui/components/sections/threeDElement/kubik-rubik.tsx b/packages/ui/components/sections/threeDElement/kubik-rubik.tsx deleted file mode 100644 index e9c63ba..0000000 --- a/packages/ui/components/sections/threeDElement/kubik-rubik.tsx +++ /dev/null @@ -1,192 +0,0 @@ -"use client"; - -import { useEffect, useRef, useState } from "react"; -import { Canvas, useFrame, useThree } from "@react-three/fiber"; -import * as THREE from "three"; - -// Colors for the cube faces -const CUBE_COLORS = { - white: "#FFFFFF", - yellow: "#FFFF00", - red: "#FF0000", - orange: "#FFA500", - blue: "#0000FF", - green: "#00FF00", -}; - -// Material for cube faces with subtle shading -const createFaceMaterial = (color: string) => { - return new THREE.MeshStandardMaterial({ - color, - metalness: 0, - roughness: 0.2, - side: THREE.DoubleSide, - emissive: color, - emissiveIntensity: 0.2, - }); -}; - -function CameraController() { - const { camera, gl } = useThree(); - const rotationSpeed = 0.005; - - useEffect(() => { - const canvas = gl.domElement; - let isDragging = false; - let previousMousePosition = { x: 0, y: 0 }; - - const handleMouseDown = (event: MouseEvent) => { - isDragging = true; - previousMousePosition = { x: event.clientX, y: event.clientY }; - }; - - const handleMouseMove = (event: MouseEvent) => { - if (!isDragging) return; - - const deltaMove = { - x: event.clientX - previousMousePosition.x, - y: event.clientY - previousMousePosition.y, - }; - - const rotationQuaternion = new THREE.Quaternion().setFromEuler( - new THREE.Euler( - deltaMove.y * rotationSpeed, - deltaMove.x * rotationSpeed, - 0, - "XYZ", - ), - ); - - camera.position.applyQuaternion(rotationQuaternion); - camera.lookAt(new THREE.Vector3(0, 0, 0)); - - previousMousePosition = { x: event.clientX, y: event.clientY }; - }; - - const handleMouseUp = () => { - isDragging = false; - }; - - canvas.addEventListener("mousedown", handleMouseDown); - canvas.addEventListener("mousemove", handleMouseMove); - window.addEventListener("mouseup", handleMouseUp); - - return () => { - canvas.removeEventListener("mousedown", handleMouseDown); - canvas.removeEventListener("mousemove", handleMouseMove); - window.removeEventListener("mouseup", handleMouseUp); - }; - }, [camera, gl, rotationSpeed]); - - return null; -} - -interface CubeletProps { - position: [number, number, number]; - colors: [string, string, string, string, string, string]; -} - -const Cubelet: React.FC = ({ position, colors }) => { - const meshRef = useRef(null!); - const size = 0.95; // Slightly smaller than 1 to create gaps - - return ( - - {/* Front face */} - - - - - {/* Back face */} - - - - - {/* Right face */} - - - - - {/* Left face */} - - - - - {/* Top face */} - - - - - {/* Bottom face */} - - - - - - ); -}; - -const RubiksCube = () => { - const groupRef = useRef(null!); - const [cubelets] = useState(() => { - const cubes = []; - const { white, yellow, red, orange, blue, green } = CUBE_COLORS; - - // Create 27 cubelets (3x3x3) - for (let x = -1; x <= 1; x++) { - for (let y = -1; y <= 1; y++) { - for (let z = -1; z <= 1; z++) { - const colors: [string, string, string, string, string, string] = [ - z === 1 ? red : "#222", // Front - z === -1 ? orange : "#222", // Back - x === 1 ? blue : "#222", // Right - x === -1 ? green : "#222", // Left - y === 1 ? white : "#222", // Top - y === -1 ? yellow : "#222", // Bottom - ]; - - cubes.push({ - position: [x, y, z] as [number, number, number], - colors, - }); - } - } - } - return cubes; - }); - - useFrame(() => { - if (groupRef.current) { - // Add subtle automatic rotation - groupRef.current.rotation.y += 0.001; - } - }); - - return ( - - {cubelets.map((props, index) => ( - - ))} - - ); -}; - -export default function KubikRubikModel() { - return ( -
- - - - - - - -
- ); -} diff --git a/packages/ui/components/sections/threeDElement/types.ts b/packages/ui/components/sections/threeDElement/types.ts deleted file mode 100644 index efb80f1..0000000 --- a/packages/ui/components/sections/threeDElement/types.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface IThreeDElementProps { - model: "donut" | "globe" | "kubik-rubik"; -} diff --git a/packages/ui/index.tsx b/packages/ui/index.tsx index fd454d0..041685b 100644 --- a/packages/ui/index.tsx +++ b/packages/ui/index.tsx @@ -14,9 +14,6 @@ export * from "./components/sections/blog"; export * from "./components/sections/hero"; export * from "./components/sections/carousel"; export * from "./components/sections/cookieBanner"; -export * from "./components/sections/pricingTable"; -export * from "./components/sections/stepGuide"; -export * from "./components/sections/threeDElement"; // end component exports export { cn } from "./utils"; diff --git a/packages/ui/package.json b/packages/ui/package.json index f7da5d8..770f944 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -13,7 +13,6 @@ "@shared/ts-config": "workspace:*", "@types/react": "^18", "@types/react-dom": "^18", - "@types/three": "^0.169.0", "eslint": "^8", "react": "^18", "react-dom": "^18", @@ -35,7 +34,6 @@ "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.1", "@radix-ui/react-toast": "^1.1.5", - "@react-three/fiber": "^8.17.10", "@tanstack/react-table": "^8.17.3", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", @@ -44,7 +42,6 @@ "react-hook-form": "^7.51.5", "swiper": "^11.1.14", "tailwind-merge": "^2.3.0", - "tailwindcss-animate": "^1.0.7", - "three": "^0.170.0" + "tailwindcss-animate": "^1.0.7" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af089a6..30063cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -302,9 +302,6 @@ importers: '@radix-ui/react-toast': specifier: ^1.1.5 version: 1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-three/fiber': - specifier: ^8.17.10 - version: 8.17.10(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.170.0) '@tanstack/react-table': specifier: ^8.17.3 version: 8.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -332,9 +329,6 @@ importers: tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.7.28)(@types/node@22.0.2)(typescript@5.4.5))) - three: - specifier: ^0.170.0 - version: 0.170.0 devDependencies: '@shared/eslint-config': specifier: workspace:* @@ -351,9 +345,6 @@ importers: '@types/react-dom': specifier: ^18 version: 18.3.0 - '@types/three': - specifier: ^0.169.0 - version: 0.169.0 eslint: specifier: ^8 version: 8.57.0 @@ -2425,31 +2416,6 @@ packages: '@radix-ui/rect@1.1.0': resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} - '@react-three/fiber@8.17.10': - resolution: {integrity: sha512-S6bqa4DqUooEkInYv/W+Jklv2zjSYCXAhm6qKpAQyOXhTEt5gBXnA7W6aoJ0bjmp9pAeaSj/AZUoz1HCSof/uA==} - peerDependencies: - expo: '>=43.0' - expo-asset: '>=8.4' - expo-file-system: '>=11.0' - expo-gl: '>=11.0' - react: '>=18.0' - react-dom: '>=18.0' - react-native: '>=0.64' - three: '>=0.133' - peerDependenciesMeta: - expo: - optional: true - expo-asset: - optional: true - expo-file-system: - optional: true - expo-gl: - optional: true - react-dom: - optional: true - react-native: - optional: true - '@rexxars/react-json-inspector@8.0.1': resolution: {integrity: sha512-XAsgQwqG8fbDGpWnsvOesRMgPfvwuU7Cx3/cUf/fNIRmGP8lj2YYIf5La/4ayvZLWlSw4tTb4BPCKdmK9D8RuQ==} peerDependencies: @@ -2934,9 +2900,6 @@ packages: resolution: {integrity: sha512-WMX8OZLgUAZZMzyVfEk7s3/cs0uoOWpJ9y8sGSLlbDdc0Wdhoa88B2967xiMI8dPtWHg4mpEUduyYy2Lzmaofg==} hasBin: true - '@tweenjs/tween.js@23.1.3': - resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==} - '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -2952,9 +2915,6 @@ packages: '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} - '@types/debounce@1.2.4': - resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==} - '@types/eslint@8.56.10': resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} @@ -3030,14 +2990,6 @@ packages: '@types/react-is@18.3.0': resolution: {integrity: sha512-KZJpHUkAdzyKj/kUHJDc6N7KyidftICufJfOFpiG6haL/BDQNQt5i4n1XDUL/nDZAtGLHDSWRYpLzKTAKSvX6w==} - '@types/react-reconciler@0.26.7': - resolution: {integrity: sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==} - - '@types/react-reconciler@0.28.9': - resolution: {integrity: sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==} - peerDependencies: - '@types/react': '*' - '@types/react@18.3.3': resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} @@ -3053,18 +3005,12 @@ packages: '@types/speakingurl@13.0.6': resolution: {integrity: sha512-ywkRHNHBwq0mFs/2HRgW6TEBAzH66G8f2Txzh1aGR0UC9ZoAUHfHxLZGDhwMpck4BpSnB61eNFIFmlV+TJ+KUA==} - '@types/stats.js@0.17.3': - resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} - '@types/stylis@4.2.5': resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} '@types/tar-stream@3.1.3': resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} - '@types/three@0.169.0': - resolution: {integrity: sha512-oan7qCgJBt03wIaK+4xPWclYRPG9wzcg7Z2f5T8xYTNEF95kh0t0lklxLLYBDo7gQiGLYzE6iF4ta7nXF2bcsw==} - '@types/through@0.0.33': resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} @@ -3080,9 +3026,6 @@ packages: '@types/uuid@8.3.4': resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - '@types/webxr@0.5.20': - resolution: {integrity: sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==} - '@typescript-eslint/eslint-plugin@7.16.0': resolution: {integrity: sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -3356,9 +3299,6 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 - '@webgpu/types@0.1.52': - resolution: {integrity: sha512-eI883Nlag2hGIkhXxAnq8s4APpqXWuPL3Gbn2ghiU12UjLvfCbVqHK4XfXl3eLRTatqcMmeK7jws7IwWsGfbzw==} - JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -4062,9 +4002,6 @@ packages: debounce@1.0.0: resolution: {integrity: sha512-4FCfBL8uZFIh3BShn4AlxH4O9F5v+CVriJfiwW8Me/MhO7NqBE5JO5WO48NasbsY9Lww/KYflB79MejA3eKhxw==} - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -4605,9 +4542,6 @@ packages: picomatch: optional: true - fflate@0.8.2: - resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - figlet@1.8.0: resolution: {integrity: sha512-chzvGjd+Sp7KUvPHZv6EXV5Ir3Q7kYNpCr4aHrRW79qFtTefmQZNny+W1pW9kf5zeE6dikku2W50W/wAH2xWgw==} engines: {node: '>= 0.4.0'} @@ -5420,11 +5354,6 @@ packages: iterator.prototype@1.1.2: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - its-fine@1.2.5: - resolution: {integrity: sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==} - peerDependencies: - react: '>=18.0' - jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -5764,9 +5693,6 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - meshoptimizer@0.18.1: - resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} - micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} @@ -6610,12 +6536,6 @@ packages: react-lifecycles-compat@3.0.4: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} - react-reconciler@0.27.0: - resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.0.0 - react-refractor@2.2.0: resolution: {integrity: sha512-UvWkBVqH/2b9nkkkt4UNFtU3aY1orQfd4plPjx5rxbefy6vGajNHU9n+tv8CbykFyVirr3vEBfN2JTxyK0d36g==} peerDependencies: @@ -6947,9 +6867,6 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.21.0: - resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} - scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} @@ -7342,9 +7259,6 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - three@0.170.0: - resolution: {integrity: sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ==} - through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} @@ -7932,15 +7846,6 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - zustand@3.7.2: - resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} - engines: {node: '>=12.7.0'} - peerDependencies: - react: '>=16.8' - peerDependenciesMeta: - react: - optional: true - snapshots: '@alloc/quick-lru@5.2.0': {} @@ -10222,27 +10127,6 @@ snapshots: '@radix-ui/rect@1.1.0': {} - '@react-three/fiber@8.17.10(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.170.0)': - dependencies: - '@babel/runtime': 7.24.7 - '@types/debounce': 1.2.4 - '@types/react-reconciler': 0.26.7 - '@types/webxr': 0.5.20 - base64-js: 1.5.1 - buffer: 6.0.3 - debounce: 1.2.1 - its-fine: 1.2.5(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-reconciler: 0.27.0(react@18.3.1) - scheduler: 0.21.0 - suspend-react: 0.1.3(react@18.3.1) - three: 0.170.0 - zustand: 3.7.2(react@18.3.1) - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - '@rexxars/react-json-inspector@8.0.1(react@18.3.1)': dependencies: create-react-class: 15.7.0 @@ -10984,8 +10868,6 @@ snapshots: semver: 7.6.2 update-check: 1.5.4 - '@tweenjs/tween.js@23.1.3': {} - '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.24.7 @@ -11011,8 +10893,6 @@ snapshots: dependencies: '@types/node': 20.14.10 - '@types/debounce@1.2.4': {} - '@types/eslint@8.56.10': dependencies: '@types/estree': 1.0.5 @@ -11088,14 +10968,6 @@ snapshots: dependencies: '@types/react': 18.3.3 - '@types/react-reconciler@0.26.7': - dependencies: - '@types/react': 18.3.3 - - '@types/react-reconciler@0.28.9(@types/react@18.3.3)': - dependencies: - '@types/react': 18.3.3 - '@types/react@18.3.3': dependencies: '@types/prop-types': 15.7.12 @@ -11111,23 +10983,12 @@ snapshots: '@types/speakingurl@13.0.6': {} - '@types/stats.js@0.17.3': {} - '@types/stylis@4.2.5': {} '@types/tar-stream@3.1.3': dependencies: '@types/node': 20.14.10 - '@types/three@0.169.0': - dependencies: - '@tweenjs/tween.js': 23.1.3 - '@types/stats.js': 0.17.3 - '@types/webxr': 0.5.20 - '@webgpu/types': 0.1.52 - fflate: 0.8.2 - meshoptimizer: 0.18.1 - '@types/through@0.0.33': dependencies: '@types/node': 20.14.10 @@ -11140,8 +11001,6 @@ snapshots: '@types/uuid@8.3.4': {} - '@types/webxr@0.5.20': {} - '@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.11.0 @@ -11505,8 +11364,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@webgpu/types@0.1.52': {} - JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -12306,8 +12163,6 @@ snapshots: dependencies: date-now: 1.0.1 - debounce@1.2.1: {} - debug@2.6.9: dependencies: ms: 2.0.0 @@ -13089,8 +12944,6 @@ snapshots: optionalDependencies: picomatch: 4.0.2 - fflate@0.8.2: {} - figlet@1.8.0: {} figures@3.2.0: @@ -13925,13 +13778,6 @@ snapshots: reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 - its-fine@1.2.5(@types/react@18.3.3)(react@18.3.1): - dependencies: - '@types/react-reconciler': 0.28.9(@types/react@18.3.3) - react: 18.3.1 - transitivePeerDependencies: - - '@types/react' - jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 @@ -14266,8 +14112,6 @@ snapshots: merge2@1.4.1: {} - meshoptimizer@0.18.1: {} - micromatch@4.0.7: dependencies: braces: 3.0.3 @@ -15074,12 +14918,6 @@ snapshots: react-lifecycles-compat@3.0.4: {} - react-reconciler@0.27.0(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.21.0 - react-refractor@2.2.0(react@18.3.1): dependencies: react: 18.3.1 @@ -15580,10 +15418,6 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.21.0: - dependencies: - loose-envify: 1.4.0 - scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -16093,8 +15927,6 @@ snapshots: dependencies: any-promise: 1.3.0 - three@0.170.0: {} - through2@2.0.5: dependencies: readable-stream: 2.3.8 @@ -16672,7 +16504,3 @@ snapshots: readable-stream: 4.5.2 zod@3.23.8: {} - - zustand@3.7.2(react@18.3.1): - optionalDependencies: - react: 18.3.1