/* tslint:disable */ /* eslint-disable */ /** * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ /** * Supported timezones in IANA format. * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "supportedTimezones". */ export type SupportedTimezones = | 'Pacific/Midway' | 'Pacific/Niue' | 'Pacific/Honolulu' | 'Pacific/Rarotonga' | 'America/Anchorage' | 'Pacific/Gambier' | 'America/Los_Angeles' | 'America/Tijuana' | 'America/Denver' | 'America/Phoenix' | 'America/Chicago' | 'America/Guatemala' | 'America/New_York' | 'America/Bogota' | 'America/Caracas' | 'America/Santiago' | 'America/Buenos_Aires' | 'America/Sao_Paulo' | 'Atlantic/South_Georgia' | 'Atlantic/Azores' | 'Atlantic/Cape_Verde' | 'Europe/London' | 'Europe/Berlin' | 'Africa/Lagos' | 'Europe/Athens' | 'Africa/Cairo' | 'Europe/Moscow' | 'Asia/Riyadh' | 'Asia/Dubai' | 'Asia/Baku' | 'Asia/Karachi' | 'Asia/Tashkent' | 'Asia/Calcutta' | 'Asia/Dhaka' | 'Asia/Almaty' | 'Asia/Jakarta' | 'Asia/Bangkok' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Tokyo' | 'Asia/Seoul' | 'Australia/Brisbane' | 'Australia/Sydney' | 'Pacific/Guam' | 'Pacific/Noumea' | 'Pacific/Auckland' | 'Pacific/Fiji'; export interface Config { auth: { users: UserAuthOperations; }; blocks: {}; collections: { pages: Page; posts: Post; media: Media; categories: Category; users: User; redirects: Redirect; forms: Form; 'form-submissions': FormSubmission; 'payload-kv': PayloadKv; 'payload-jobs': PayloadJob; 'payload-locked-documents': PayloadLockedDocument; 'payload-preferences': PayloadPreference; 'payload-migrations': PayloadMigration; }; collectionsJoins: {}; collectionsSelect: { pages: PagesSelect | PagesSelect; posts: PostsSelect | PostsSelect; media: MediaSelect | MediaSelect; categories: CategoriesSelect | CategoriesSelect; users: UsersSelect | UsersSelect; redirects: RedirectsSelect | RedirectsSelect; forms: FormsSelect | FormsSelect; 'form-submissions': FormSubmissionsSelect | FormSubmissionsSelect; 'payload-kv': PayloadKvSelect | PayloadKvSelect; 'payload-jobs': PayloadJobsSelect | PayloadJobsSelect; 'payload-locked-documents': PayloadLockedDocumentsSelect | PayloadLockedDocumentsSelect; 'payload-preferences': PayloadPreferencesSelect | PayloadPreferencesSelect; 'payload-migrations': PayloadMigrationsSelect | PayloadMigrationsSelect; }; db: { defaultIDType: number; }; fallbackLocale: null; globals: { header: Header; footer: Footer; 'announcement-bar': AnnouncementBar; 'popup-announcement': PopupAnnouncement; 'site-settings': SiteSetting; }; globalsSelect: { header: HeaderSelect | HeaderSelect; footer: FooterSelect | FooterSelect; 'announcement-bar': AnnouncementBarSelect | AnnouncementBarSelect; 'popup-announcement': PopupAnnouncementSelect | PopupAnnouncementSelect; 'site-settings': SiteSettingsSelect | SiteSettingsSelect; }; locale: null; user: User; jobs: { tasks: { schedulePublish: TaskSchedulePublish; inline: { input: unknown; output: unknown; }; }; workflows: unknown; }; } export interface UserAuthOperations { forgotPassword: { email: string; password: string; }; login: { email: string; password: string; }; registerFirstUser: { email: string; password: string; }; unlock: { email: string; password: string; }; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "pages". */ export interface Page { id: number; title: string; layout: ( | FDHeroBlock | FDCtaSideImageBlock | FDFeatureAnnouncementBlock | FDServicesGridBlock | FDContactBlock | FDFaqBlock | FDCardGridBlock | FDPricingCardBlock | FDSpacerBlock | FDIconBarBlock | FDUspChecklistBlock | FDWideCardBlock | FDTechPropertiesBlock | FDUspTableBlock | FDHeaderTextImageBlock | FDContactFormBlock | FDLocationsGridBlock | FDAlternateHeroBlock | FDStatisticsBlock | FDPartnersLogosBlock | FDNewsletterBlock | FDServiceChooserBlock | FDDataTableBlock | FDVpsCalculatorBlock | FDTagsBlock | FDTextBlock | FDCodeEmbedBlock | FDVideoBlock | FDCtaBannerBlock | FDTestimonialBlock | FDTeamBlock )[]; meta?: { title?: string | null; /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media; description?: string | null; }; publishedAt?: string | null; /** * Genereras automatiskt från titeln. */ slug: string; updatedAt: string; createdAt: string; _status?: ('draft' | 'published') | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDHeroBlock". */ export interface FDHeroBlock { heading: string; subheading?: string | null; body?: string | null; ctaText?: string | null; ctaLink?: string | null; secondaryCtaText?: string | null; secondaryCtaLink?: string | null; /** * Fullbreddsbild bakom texten. Lämna tom för enfärgad bakgrund. */ backgroundImage?: (number | null) | Media; /** * Hur mörk overlay över bilden (för läsbarhet) */ overlayOpacity?: ('30' | '50' | '70') | null; textColor?: ('auto' | 'white' | 'navy') | null; /** * Ignoreras om bakgrundsbild är vald */ theme?: ('light' | 'dark') | null; id?: string | null; blockName?: string | null; blockType: 'fdHero'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "media". */ export interface Media { id: number; alt: string; updatedAt: string; createdAt: string; url?: string | null; thumbnailURL?: string | null; filename?: string | null; mimeType?: string | null; filesize?: number | null; width?: number | null; height?: number | null; focalX?: number | null; focalY?: number | null; sizes?: { thumbnail?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; medium?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; large?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; hero?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; }; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDCtaSideImageBlock". */ export interface FDCtaSideImageBlock { heading: string; body: string; ctaText?: string | null; ctaLink?: string | null; image: number | Media; imagePosition?: ('right' | 'left') | null; theme?: ('light' | 'dark' | 'custom') | null; /** * Valfri HEX-färg, t.ex. #1a3a5c eller #fecc02 */ customBackgroundColor?: string | null; /** * Aktivera för vit text på mörk anpassad bakgrund */ customTextLight?: boolean | null; /** * Tonad overlay över bilden med varumärkesfärg */ imageOverlay?: ('none' | 'navy' | 'yellow' | 'black') | null; /** * Hur stark overlay över bilden */ imageOverlayOpacity?: ('20' | '30' | '50' | '70') | null; id?: string | null; blockName?: string | null; blockType: 'fdCtaSideImage'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDFeatureAnnouncementBlock". */ export interface FDFeatureAnnouncementBlock { heading: string; body: string; ctaText?: string | null; ctaLink?: string | null; theme?: ('gray' | 'light' | 'dark') | null; id?: string | null; blockName?: string | null; blockType: 'fdFeatureAnnouncement'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDServicesGridBlock". */ export interface FDServicesGridBlock { heading: string; services?: | { title: string; description: string; image?: (number | null) | Media; link?: string | null; id?: string | null; }[] | null; columns?: ('2' | '3' | '4') | null; id?: string | null; blockName?: string | null; blockType: 'fdServicesGrid'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDContactBlock". */ export interface FDContactBlock { heading: string; contactMethods?: | { label: string; icon?: (number | null) | Media; /** * tel:, mailto:, eller URL */ link?: string | null; id?: string | null; }[] | null; id?: string | null; blockName?: string | null; blockType: 'fdContact'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDFaqBlock". */ export interface FDFaqBlock { heading: string; items?: | { question: string; answer?: { root: { type: string; children: { type: any; version: number; [k: string]: unknown; }[]; direction: ('ltr' | 'rtl') | null; format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; indent: number; version: number; }; [k: string]: unknown; } | null; id?: string | null; }[] | null; theme?: ('gray' | 'light' | 'dark') | null; id?: string | null; blockName?: string | null; blockType: 'fdFaq'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDCardGridBlock". */ export interface FDCardGridBlock { layout: '1-2' | '2-1' | '1-1-1' | '1-1'; cardStyle: 'navy' | 'gray' | 'yellow' | 'green' | 'outlined'; cards?: | { /** * "Centrerad stor rubrik" visar bara rubrikfältet centrerat med stor text. "Centrerad brödtext" visar bara brödtext centrerat. */ displayMode?: ('content' | 'centeredHeading' | 'centeredBody') | null; heading?: string | null; centeredBodyText?: string | null; contentLines?: | { text: string; style?: ('normal' | 'bold' | 'italic' | 'boldItalic') | null; /** * Om ifylld blir texten en klickbar länk med understruken stil */ link?: string | null; id?: string | null; }[] | null; /** * Gör hela kortet klickbart */ cardLink?: string | null; id?: string | null; }[] | null; sectionBackground?: ('white' | 'navy' | 'gray') | null; id?: string | null; blockName?: string | null; blockType: 'fdCardGrid'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDPricingCardBlock". */ export interface FDPricingCardBlock { /** * Stor rubrik ovanför korten */ sectionTitle?: string | null; cards?: | { /** * T.ex. produktnamn eller tjänstenamn */ title: string; /** * T.ex. pris: "från 640 kr/mån" */ subtitle?: string | null; description?: string | null; bulletPoints?: | { text: string; id?: string | null; }[] | null; ctaText?: string | null; ctaLink?: string | null; id?: string | null; }[] | null; cardStyle?: ('outlined' | 'navy' | 'gray' | 'yellow' | 'white') | null; buttonColor?: ('yellow' | 'navy' | 'outlinedNavy' | 'outlinedWhite') | null; sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow') | null; /** * Färg på blockrubriken */ titleColor?: ('navy' | 'white' | 'yellow') | null; id?: string | null; blockName?: string | null; blockType: 'fdPricingCard'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDSpacerBlock". */ export interface FDSpacerBlock { height?: ('sm' | 'md' | 'lg' | 'xl') | null; sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow' | 'transparent') | null; id?: string | null; blockName?: string | null; blockType: 'fdSpacer'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDIconBarBlock". */ export interface FDIconBarBlock { heading?: string | null; icons?: | { icon: number | Media; label: string; link?: string | null; id?: string | null; }[] | null; iconStyle?: ('navy' | 'yellow' | 'gray' | 'none') | null; sectionBackground?: ('white' | 'gray' | 'navy' | 'yellow') | null; textColor?: ('navy' | 'white') | null; id?: string | null; blockName?: string | null; blockType: 'fdIconBar'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDUspChecklistBlock". */ export interface FDUspChecklistBlock { heading: string; items?: | { text: string; id?: string | null; }[] | null; image?: (number | null) | Media; imagePosition?: ('right' | 'left') | null; checkColor?: ('navy' | 'yellow' | 'gray') | null; sectionBackground?: ('white' | 'gray' | 'navy') | null; textColor?: ('navy' | 'white') | null; id?: string | null; blockName?: string | null; blockType: 'fdUspChecklist'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDWideCardBlock". */ export interface FDWideCardBlock { heading: string; body?: string | null; ctaText?: string | null; ctaLink?: string | null; image?: (number | null) | Media; cardBackground?: ('navy' | 'yellow' | 'gray' | 'white') | null; buttonColor?: ('yellow' | 'navy' | 'white') | null; sectionBackground?: ('white' | 'gray' | 'navy') | null; id?: string | null; blockName?: string | null; blockType: 'fdWideCard'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTechPropertiesBlock". */ export interface FDTechPropertiesBlock { properties?: | { /** * T.ex. "Skyddsklass" */ category: string; /** * T.ex. "3" eller "1,6 MW" */ value: string; id?: string | null; }[] | null; sectionBackground?: ('navy' | 'white' | 'gray' | 'yellow') | null; categoryColor?: ('white' | 'navy') | null; valueColor?: ('yellow' | 'white' | 'navy') | null; id?: string | null; blockName?: string | null; blockType: 'fdTechProperties'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDUspTableBlock". */ export interface FDUspTableBlock { heading?: string | null; rows?: | { /** * T.ex. "Högsta säkerhet" */ title: string; description?: { root: { type: string; children: { type: any; version: number; [k: string]: unknown; }[]; direction: ('ltr' | 'rtl') | null; format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; indent: number; version: number; }; [k: string]: unknown; } | null; id?: string | null; }[] | null; checkColor?: ('navy' | 'yellow' | 'gray') | null; sectionBackground?: ('white' | 'gray' | 'navy') | null; textColor?: ('navy' | 'white') | null; id?: string | null; blockName?: string | null; blockType: 'fdUspTable'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDHeaderTextImageBlock". */ export interface FDHeaderTextImageBlock { heading?: string | null; body?: string | null; image: number | Media; imageOverlay?: | ('none' | 'navyLight' | 'navyMedium' | 'yellowLight' | 'yellowMedium' | 'sepia' | 'blackLight' | 'blackMedium') | null; imageRounded?: ('none' | 'medium' | 'large') | null; textAlign?: ('left' | 'center') | null; sectionBackground?: ('white' | 'gray' | 'navy') | null; textColor?: ('navy' | 'white') | null; id?: string | null; blockName?: string | null; blockType: 'fdHeaderTextImage'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDContactFormBlock". */ export interface FDContactFormBlock { /** * Välj ett formulär skapat under Formulär i adminpanelen */ form: number | Form; heading: string; description?: string | null; submitText?: string | null; sectionBackground?: ('white' | 'gray' | 'navy' | 'navyGradient') | null; layout?: ('standard' | 'withImage' | 'card') | null; /** * Visas till höger om formuläret på desktop */ sideImage?: (number | null) | Media; privacyText?: string | null; privacyLinkText?: string | null; privacyLinkUrl?: string | null; /** * Skicka formulärdata till ett externt system (t.ex. Lime CRM) utöver Payload */ externalApi?: { enabled?: boolean | null; /** * T.ex. https://api.lime-crm.se/webhook/forms */ endpoint?: string | null; /** * Skickas som Authorization: Bearer {token} */ authToken?: string | null; }; id?: string | null; blockName?: string | null; blockType: 'fdContactForm'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "forms". */ export interface Form { id: number; title: string; fields?: | ( | { name: string; label?: string | null; width?: number | null; required?: boolean | null; defaultValue?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'checkbox'; } | { name: string; label?: string | null; width?: number | null; required?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'country'; } | { name: string; label?: string | null; width?: number | null; required?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'email'; } | { message?: { root: { type: string; children: { type: any; version: number; [k: string]: unknown; }[]; direction: ('ltr' | 'rtl') | null; format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; indent: number; version: number; }; [k: string]: unknown; } | null; id?: string | null; blockName?: string | null; blockType: 'message'; } | { name: string; label?: string | null; width?: number | null; defaultValue?: number | null; required?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'number'; } | { name: string; label?: string | null; width?: number | null; defaultValue?: string | null; placeholder?: string | null; options?: | { label: string; value: string; id?: string | null; }[] | null; required?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'select'; } | { name: string; label?: string | null; width?: number | null; required?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'state'; } | { name: string; label?: string | null; width?: number | null; defaultValue?: string | null; required?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'text'; } | { name: string; label?: string | null; width?: number | null; defaultValue?: string | null; required?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'textarea'; } )[] | null; submitButtonLabel?: string | null; /** * Choose whether to display an on-page message or redirect to a different page after they submit the form. */ confirmationType?: ('message' | 'redirect') | null; confirmationMessage?: { root: { type: string; children: { type: any; version: number; [k: string]: unknown; }[]; direction: ('ltr' | 'rtl') | null; format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; indent: number; version: number; }; [k: string]: unknown; } | null; redirect?: { url: string; }; /** * Send custom emails when the form submits. Use comma separated lists to send the same email to multiple recipients. To reference a value from this form, wrap that field's name with double curly brackets, i.e. {{firstName}}. You can use a wildcard {{*}} to output all data and {{*:table}} to format it as an HTML table in the email. */ emails?: | { emailTo?: string | null; cc?: string | null; bcc?: string | null; replyTo?: string | null; emailFrom?: string | null; subject: string; /** * Enter the message that should be sent in this email. */ message?: { root: { type: string; children: { type: any; version: number; [k: string]: unknown; }[]; direction: ('ltr' | 'rtl') | null; format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; indent: number; version: number; }; [k: string]: unknown; } | null; id?: string | null; }[] | null; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDLocationsGridBlock". */ export interface FDLocationsGridBlock { heading?: string | null; description?: string | null; ctaText?: string | null; ctaLink?: string | null; cards?: | { image: number | Media; locationName: string; address?: string | null; link?: string | null; id?: string | null; }[] | null; hoverColor?: ('navy' | 'yellow' | 'mint') | null; sectionBackground?: ('white' | 'navy' | 'gray') | null; id?: string | null; blockName?: string | null; blockType: 'fdLocationsGrid'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDAlternateHeroBlock". */ export interface FDAlternateHeroBlock { heading: string; description?: string | null; primaryCtaText?: string | null; primaryCtaLink?: string | null; secondaryCtaText?: string | null; secondaryCtaLink?: string | null; /** * Bred bild utan border-radius — visas som en full showcase under CTA-knapparna. */ image?: (number | null) | Media; imageCaption?: string | null; sectionBackground?: ('white' | 'navy' | 'gray') | null; id?: string | null; blockName?: string | null; blockType: 'fdAlternateHero'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDStatisticsBlock". */ export interface FDStatisticsBlock { heading?: string | null; stats?: | { /** * T.ex. "77%", "24/7", "10 Gbit" */ number: string; /** * T.ex. "av ärenden lösta av AI" */ label: string; id?: string | null; }[] | null; sectionBackground?: ('white' | 'navy' | 'gray') | null; numberColor?: ('gradient' | 'yellow' | 'mint' | 'navy' | 'white') | null; id?: string | null; blockName?: string | null; blockType: 'fdStatistics'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDPartnersLogosBlock". */ export interface FDPartnersLogosBlock { heading?: string | null; logos?: | { image: number | Media; /** * Beskrivning av logotypen (tillgänglighet) */ alt?: string | null; /** * URL till partnerns webbplats */ link?: string | null; id?: string | null; }[] | null; displayMode?: ('color' | 'monochrome') | null; sectionBackground?: ('white' | 'gray' | 'navy') | null; id?: string | null; blockName?: string | null; blockType: 'fdPartnersLogos'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDNewsletterBlock". */ export interface FDNewsletterBlock { heading?: string | null; description?: string | null; /** * URL dit formulärdata skickas (POST). T.ex. /api/newsletter, en Lime CRM webhook, eller en tredjeparts-URL. */ submitEndpoint: string; buttonText?: string | null; successMessage?: string | null; /** * Text bredvid samtyckeskryssrutan (GDPR) */ consentText?: string | null; privacyPolicyLink?: string | null; /** * Lägg till ett namnfält i formuläret */ collectName?: boolean | null; /** * Lägg till ett fält för företagsnamn */ collectCompany?: boolean | null; layout?: ('inline' | 'stacked' | 'card') | null; sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow') | null; textColor?: ('auto' | 'navy' | 'white') | null; id?: string | null; blockName?: string | null; blockType: 'fdNewsletter'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDServiceChooserBlock". */ export interface FDServiceChooserBlock { heading?: string | null; description?: string | null; categories?: | { /** * T.ex. "Butik & Handel", "Lager & Logistik" */ label: string; intro?: string | null; services?: | { title: string; description?: string | null; ctaText?: string | null; ctaLink?: string | null; id?: string | null; }[] | null; id?: string | null; }[] | null; sectionBackground?: ('gray' | 'white' | 'navy') | null; id?: string | null; blockName?: string | null; blockType: 'fdServiceChooser'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDDataTableBlock". */ export interface FDDataTableBlock { heading?: string | null; description?: string | null; /** * Välj om du vill ladda upp en fil eller ange tabelldata manuellt. */ dataSource?: ('upload' | 'manual') | null; /** * Ladda upp en .csv, .xlsx eller .xls fil. Den första raden används som kolumnrubriker. */ file?: (number | null) | Media; /** * Lägg till en rad per kolumn. */ headers?: | { text: string; id?: string | null; }[] | null; /** * Varje rad är en kommaseparerad sträng av cellvärden, i samma ordning som kolumnrubrikerna. */ rows?: | { /** * T.ex: "Stockholm, 10 Gbit, 99.9%, 2 400 kr/mån" */ cells: string; id?: string | null; }[] | null; sectionBackground?: ('white' | 'navy' | 'gray') | null; headerStyle?: ('navy' | 'yellow' | 'mint' | 'gray') | null; /** * Aktivera för att annenhålla rader med subtil bakgrundsfärg. */ stripeRows?: boolean | null; /** * Lägg till linjer mellan alla celler. */ bordered?: boolean | null; /** * Gör den första kolumnen fet — användbart för namnkolumner. */ firstColumnBold?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'fdDataTable'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDVpsCalculatorBlock". */ export interface FDVpsCalculatorBlock { heading?: string | null; description?: string | null; orderCtaText?: string | null; orderCtaLink?: string | null; contactCtaText?: string | null; contactCtaLink?: string | null; sectionBackground?: ('white' | 'gray' | 'navy') | null; pricingCpuPerCore?: number | null; pricingRamPerGb?: number | null; pricingSsdPerGb?: number | null; pricingHddPerGb?: number | null; pricingWindowsLicense?: number | null; /** * Appliceras på alla resurser. 0 = ingen rabatt. */ discountPercent?: number | null; /** * Lägg till en fast avgift som alltid ingår i totalen. */ showAdminFee?: boolean | null; /** * Standard: 200 kr/mån */ adminFeeAmount?: number | null; /** * Kunden kan slå på/av dessa i kalkylatorn. Visas under "Tillvalstjänster". */ additionalServices?: | { label: string; price: number; id?: string | null; }[] | null; id?: string | null; blockName?: string | null; blockType: 'fdVpsCalculator'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTagsBlock". */ export interface FDTagsBlock { heading?: string | null; tags?: | { text: string; link?: string | null; id?: string | null; }[] | null; tagStyle?: ('navy' | 'yellow' | 'outlined' | 'gray') | null; tagSize?: ('small' | 'medium' | 'large') | null; alignment?: ('left' | 'center') | null; sectionBackground?: ('white' | 'navy' | 'gray') | null; id?: string | null; blockName?: string | null; blockType: 'fdTags'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTextBlock". */ export interface FDTextBlock { heading?: string | null; subheading?: string | null; body?: { root: { type: string; children: { type: any; version: number; [k: string]: unknown; }[]; direction: ('ltr' | 'rtl') | null; format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; indent: number; version: number; }; [k: string]: unknown; } | null; alignment?: ('left' | 'center' | 'right') | null; textColor?: ('navy' | 'white' | 'yellow') | null; sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow') | null; maxWidth?: ('narrow' | 'medium' | 'wide' | 'full') | null; id?: string | null; blockName?: string | null; blockType: 'fdText'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDCodeEmbedBlock". */ export interface FDCodeEmbedBlock { /** * Visas ovanför den inbäddade koden */ heading?: string | null; /** * Visas mellan rubrik och inbäddning */ description?: string | null; embedType: 'iframe' | 'custom'; /** * Full URL till iframe-källan, t.ex. Lime CRM-formulär */ iframeSrc?: string | null; /** * Beskrivning för skärmläsare */ iframeTitle?: string | null; /** * CSS-höjd, t.ex. 600px, 80vh, auto */ iframeHeight?: string | null; /** * T.ex. "clipboard-write; encrypted-media" — lämna tomt om du är osäker */ iframeAllow?: string | null; /** * Klistra in din HTML, CSS eller JavaScript här. Renderas i en sandlåda. */ customCode?: string | null; /** * Renderar koden i en isolerad iframe. Avaktivera bara om koden måste interagera med huvudsidan. */ sandboxed?: boolean | null; maxWidth?: ('default' | 'narrow' | 'wide' | 'full') | null; sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow' | 'transparent') | null; textColor?: ('auto' | 'navy' | 'white') | null; embedBackground?: ('none' | 'card' | 'navy-card') | null; id?: string | null; blockName?: string | null; blockType: 'fdCodeEmbed'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDVideoBlock". */ export interface FDVideoBlock { heading?: string | null; description?: string | null; videoSource: 'upload' | 'youtube' | 'vimeo'; /** * Ladda upp en MP4, WebM eller annan videofil */ videoFile?: (number | null) | Media; /** * Full YouTube-länk, t.ex. https://www.youtube.com/watch?v=abc123 eller https://youtu.be/abc123 */ youtubeUrl?: string | null; /** * Full Vimeo-länk, t.ex. https://vimeo.com/123456789 */ vimeoUrl?: string | null; /** * Ersätter standardminiatyrbilden. Visas innan videon spelas. Rekommenderad storlek: 1920×1080 (16:9) eller 1920×1200 (16:10) */ thumbnail?: (number | null) | Media; aspectRatio?: ('16/9' | '16/10') | null; /** * Spelar videon automatiskt utan ljud vid sidladdning */ autoplay?: boolean | null; loop?: boolean | null; maxWidth?: ('default' | 'narrow' | 'wide') | null; sectionBackground?: ('white' | 'navy' | 'gray' | 'yellow' | 'transparent') | null; textColor?: ('auto' | 'navy' | 'white') | null; id?: string | null; blockName?: string | null; blockType: 'fdVideo'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDCtaBannerBlock". */ export interface FDCtaBannerBlock { heading: string; /** * Kort text under rubriken */ subheading?: string | null; ctaText?: string | null; ctaLink?: string | null; secondaryCtaText?: string | null; secondaryCtaLink?: string | null; sectionBackground?: ('yellow' | 'navy' | 'gray' | 'white') | null; alignment?: ('center' | 'left') | null; size?: ('small' | 'medium' | 'large') | null; id?: string | null; blockName?: string | null; blockType: 'fdCtaBanner'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTestimonialBlock". */ export interface FDTestimonialBlock { /** * T.ex. "Vad våra kunder säger" */ heading?: string | null; testimonials?: | { /** * Kundens citat utan citattecken */ quote: string; authorName: string; /** * T.ex. "IT-chef" */ authorRole?: string | null; authorCompany?: string | null; avatar?: (number | null) | Media; id?: string | null; }[] | null; layout?: ('grid' | 'featured') | null; sectionBackground?: ('gray' | 'white' | 'navy') | null; id?: string | null; blockName?: string | null; blockType: 'fdTestimonial'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTeamBlock". */ export interface FDTeamBlock { /** * T.ex. "Möt vårt team" */ heading?: string | null; subheading?: string | null; members?: | { photo?: (number | null) | Media; name: string; role: string; /** * Kort beskrivning om personen */ bio?: string | null; email?: string | null; linkedin?: string | null; id?: string | null; }[] | null; columns?: ('2' | '3' | '4') | null; cardStyle?: ('navy' | 'white' | 'gray') | null; sectionBackground?: ('white' | 'gray' | 'navy') | null; id?: string | null; blockName?: string | null; blockType: 'fdTeam'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "posts". */ export interface Post { id: number; title: string; heroImage?: (number | null) | Media; content: { root: { type: string; children: { type: any; version: number; [k: string]: unknown; }[]; direction: ('ltr' | 'rtl') | null; format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; indent: number; version: number; }; [k: string]: unknown; }; relatedPosts?: (number | Post)[] | null; categories?: (number | Category)[] | null; meta?: { title?: string | null; /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media; description?: string | null; }; publishedAt?: string | null; authors?: (number | User)[] | null; populatedAuthors?: | { id?: string | null; name?: string | null; }[] | null; /** * Genereras automatiskt från titeln. */ slug: string; updatedAt: string; createdAt: string; _status?: ('draft' | 'published') | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "categories". */ export interface Category { id: number; title: string; slug: string; parent?: (number | null) | Category; breadcrumbs?: | { doc?: (number | null) | Category; url?: string | null; label?: string | null; id?: string | null; }[] | null; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "users". */ export interface User { id: number; name?: string | null; updatedAt: string; createdAt: string; email: string; resetPasswordToken?: string | null; resetPasswordExpiration?: string | null; salt?: string | null; hash?: string | null; loginAttempts?: number | null; lockUntil?: string | null; sessions?: | { id: string; createdAt?: string | null; expiresAt: string; }[] | null; password?: string | null; collection: 'users'; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "redirects". */ export interface Redirect { id: number; /** * You will need to rebuild the website when changing this field. */ from: string; to?: { type?: ('reference' | 'custom') | null; reference?: | ({ relationTo: 'pages'; value: number | Page; } | null) | ({ relationTo: 'posts'; value: number | Post; } | null); url?: string | null; }; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "form-submissions". */ export interface FormSubmission { id: number; form: number | Form; submissionData?: | { field: string; value: string; id?: string | null; }[] | null; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-kv". */ export interface PayloadKv { id: number; key: string; data: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-jobs". */ export interface PayloadJob { id: number; /** * Input data provided to the job */ input?: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; taskStatus?: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; completedAt?: string | null; totalTried?: number | null; /** * If hasError is true this job will not be retried */ hasError?: boolean | null; /** * If hasError is true, this is the error that caused it */ error?: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; /** * Task execution log */ log?: | { executedAt: string; completedAt: string; taskSlug: 'inline' | 'schedulePublish'; taskID: string; input?: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; output?: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; state: 'failed' | 'succeeded'; error?: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; id?: string | null; }[] | null; taskSlug?: ('inline' | 'schedulePublish') | null; queue?: string | null; waitUntil?: string | null; processing?: boolean | null; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-locked-documents". */ export interface PayloadLockedDocument { id: number; document?: | ({ relationTo: 'pages'; value: number | Page; } | null) | ({ relationTo: 'posts'; value: number | Post; } | null) | ({ relationTo: 'media'; value: number | Media; } | null) | ({ relationTo: 'categories'; value: number | Category; } | null) | ({ relationTo: 'users'; value: number | User; } | null) | ({ relationTo: 'redirects'; value: number | Redirect; } | null) | ({ relationTo: 'forms'; value: number | Form; } | null) | ({ relationTo: 'form-submissions'; value: number | FormSubmission; } | null); globalSlug?: string | null; user: { relationTo: 'users'; value: number | User; }; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-preferences". */ export interface PayloadPreference { id: number; user: { relationTo: 'users'; value: number | User; }; key?: string | null; value?: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-migrations". */ export interface PayloadMigration { id: number; name?: string | null; batch?: number | null; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "pages_select". */ export interface PagesSelect { title?: T; layout?: | T | { fdHero?: T | FDHeroBlockSelect; fdCtaSideImage?: T | FDCtaSideImageBlockSelect; fdFeatureAnnouncement?: T | FDFeatureAnnouncementBlockSelect; fdServicesGrid?: T | FDServicesGridBlockSelect; fdContact?: T | FDContactBlockSelect; fdFaq?: T | FDFaqBlockSelect; fdCardGrid?: T | FDCardGridBlockSelect; fdPricingCard?: T | FDPricingCardBlockSelect; fdSpacer?: T | FDSpacerBlockSelect; fdIconBar?: T | FDIconBarBlockSelect; fdUspChecklist?: T | FDUspChecklistBlockSelect; fdWideCard?: T | FDWideCardBlockSelect; fdTechProperties?: T | FDTechPropertiesBlockSelect; fdUspTable?: T | FDUspTableBlockSelect; fdHeaderTextImage?: T | FDHeaderTextImageBlockSelect; fdContactForm?: T | FDContactFormBlockSelect; fdLocationsGrid?: T | FDLocationsGridBlockSelect; fdAlternateHero?: T | FDAlternateHeroBlockSelect; fdStatistics?: T | FDStatisticsBlockSelect; fdPartnersLogos?: T | FDPartnersLogosBlockSelect; fdNewsletter?: T | FDNewsletterBlockSelect; fdServiceChooser?: T | FDServiceChooserBlockSelect; fdDataTable?: T | FDDataTableBlockSelect; fdVpsCalculator?: T | FDVpsCalculatorBlockSelect; fdTags?: T | FDTagsBlockSelect; fdText?: T | FDTextBlockSelect; fdCodeEmbed?: T | FDCodeEmbedBlockSelect; fdVideo?: T | FDVideoBlockSelect; fdCtaBanner?: T | FDCtaBannerBlockSelect; fdTestimonial?: T | FDTestimonialBlockSelect; fdTeam?: T | FDTeamBlockSelect; }; meta?: | T | { title?: T; image?: T; description?: T; }; publishedAt?: T; slug?: T; updatedAt?: T; createdAt?: T; _status?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDHeroBlock_select". */ export interface FDHeroBlockSelect { heading?: T; subheading?: T; body?: T; ctaText?: T; ctaLink?: T; secondaryCtaText?: T; secondaryCtaLink?: T; backgroundImage?: T; overlayOpacity?: T; textColor?: T; theme?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDCtaSideImageBlock_select". */ export interface FDCtaSideImageBlockSelect { heading?: T; body?: T; ctaText?: T; ctaLink?: T; image?: T; imagePosition?: T; theme?: T; customBackgroundColor?: T; customTextLight?: T; imageOverlay?: T; imageOverlayOpacity?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDFeatureAnnouncementBlock_select". */ export interface FDFeatureAnnouncementBlockSelect { heading?: T; body?: T; ctaText?: T; ctaLink?: T; theme?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDServicesGridBlock_select". */ export interface FDServicesGridBlockSelect { heading?: T; services?: | T | { title?: T; description?: T; image?: T; link?: T; id?: T; }; columns?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDContactBlock_select". */ export interface FDContactBlockSelect { heading?: T; contactMethods?: | T | { label?: T; icon?: T; link?: T; id?: T; }; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDFaqBlock_select". */ export interface FDFaqBlockSelect { heading?: T; items?: | T | { question?: T; answer?: T; id?: T; }; theme?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDCardGridBlock_select". */ export interface FDCardGridBlockSelect { layout?: T; cardStyle?: T; cards?: | T | { displayMode?: T; heading?: T; centeredBodyText?: T; contentLines?: | T | { text?: T; style?: T; link?: T; id?: T; }; cardLink?: T; id?: T; }; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDPricingCardBlock_select". */ export interface FDPricingCardBlockSelect { sectionTitle?: T; cards?: | T | { title?: T; subtitle?: T; description?: T; bulletPoints?: | T | { text?: T; id?: T; }; ctaText?: T; ctaLink?: T; id?: T; }; cardStyle?: T; buttonColor?: T; sectionBackground?: T; titleColor?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDSpacerBlock_select". */ export interface FDSpacerBlockSelect { height?: T; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDIconBarBlock_select". */ export interface FDIconBarBlockSelect { heading?: T; icons?: | T | { icon?: T; label?: T; link?: T; id?: T; }; iconStyle?: T; sectionBackground?: T; textColor?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDUspChecklistBlock_select". */ export interface FDUspChecklistBlockSelect { heading?: T; items?: | T | { text?: T; id?: T; }; image?: T; imagePosition?: T; checkColor?: T; sectionBackground?: T; textColor?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDWideCardBlock_select". */ export interface FDWideCardBlockSelect { heading?: T; body?: T; ctaText?: T; ctaLink?: T; image?: T; cardBackground?: T; buttonColor?: T; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTechPropertiesBlock_select". */ export interface FDTechPropertiesBlockSelect { properties?: | T | { category?: T; value?: T; id?: T; }; sectionBackground?: T; categoryColor?: T; valueColor?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDUspTableBlock_select". */ export interface FDUspTableBlockSelect { heading?: T; rows?: | T | { title?: T; description?: T; id?: T; }; checkColor?: T; sectionBackground?: T; textColor?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDHeaderTextImageBlock_select". */ export interface FDHeaderTextImageBlockSelect { heading?: T; body?: T; image?: T; imageOverlay?: T; imageRounded?: T; textAlign?: T; sectionBackground?: T; textColor?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDContactFormBlock_select". */ export interface FDContactFormBlockSelect { form?: T; heading?: T; description?: T; submitText?: T; sectionBackground?: T; layout?: T; sideImage?: T; privacyText?: T; privacyLinkText?: T; privacyLinkUrl?: T; externalApi?: | T | { enabled?: T; endpoint?: T; authToken?: T; }; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDLocationsGridBlock_select". */ export interface FDLocationsGridBlockSelect { heading?: T; description?: T; ctaText?: T; ctaLink?: T; cards?: | T | { image?: T; locationName?: T; address?: T; link?: T; id?: T; }; hoverColor?: T; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDAlternateHeroBlock_select". */ export interface FDAlternateHeroBlockSelect { heading?: T; description?: T; primaryCtaText?: T; primaryCtaLink?: T; secondaryCtaText?: T; secondaryCtaLink?: T; image?: T; imageCaption?: T; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDStatisticsBlock_select". */ export interface FDStatisticsBlockSelect { heading?: T; stats?: | T | { number?: T; label?: T; id?: T; }; sectionBackground?: T; numberColor?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDPartnersLogosBlock_select". */ export interface FDPartnersLogosBlockSelect { heading?: T; logos?: | T | { image?: T; alt?: T; link?: T; id?: T; }; displayMode?: T; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDNewsletterBlock_select". */ export interface FDNewsletterBlockSelect { heading?: T; description?: T; submitEndpoint?: T; buttonText?: T; successMessage?: T; consentText?: T; privacyPolicyLink?: T; collectName?: T; collectCompany?: T; layout?: T; sectionBackground?: T; textColor?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDServiceChooserBlock_select". */ export interface FDServiceChooserBlockSelect { heading?: T; description?: T; categories?: | T | { label?: T; intro?: T; services?: | T | { title?: T; description?: T; ctaText?: T; ctaLink?: T; id?: T; }; id?: T; }; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDDataTableBlock_select". */ export interface FDDataTableBlockSelect { heading?: T; description?: T; dataSource?: T; file?: T; headers?: | T | { text?: T; id?: T; }; rows?: | T | { cells?: T; id?: T; }; sectionBackground?: T; headerStyle?: T; stripeRows?: T; bordered?: T; firstColumnBold?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDVpsCalculatorBlock_select". */ export interface FDVpsCalculatorBlockSelect { heading?: T; description?: T; orderCtaText?: T; orderCtaLink?: T; contactCtaText?: T; contactCtaLink?: T; sectionBackground?: T; pricingCpuPerCore?: T; pricingRamPerGb?: T; pricingSsdPerGb?: T; pricingHddPerGb?: T; pricingWindowsLicense?: T; discountPercent?: T; showAdminFee?: T; adminFeeAmount?: T; additionalServices?: | T | { label?: T; price?: T; id?: T; }; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTagsBlock_select". */ export interface FDTagsBlockSelect { heading?: T; tags?: | T | { text?: T; link?: T; id?: T; }; tagStyle?: T; tagSize?: T; alignment?: T; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTextBlock_select". */ export interface FDTextBlockSelect { heading?: T; subheading?: T; body?: T; alignment?: T; textColor?: T; sectionBackground?: T; maxWidth?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDCodeEmbedBlock_select". */ export interface FDCodeEmbedBlockSelect { heading?: T; description?: T; embedType?: T; iframeSrc?: T; iframeTitle?: T; iframeHeight?: T; iframeAllow?: T; customCode?: T; sandboxed?: T; maxWidth?: T; sectionBackground?: T; textColor?: T; embedBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDVideoBlock_select". */ export interface FDVideoBlockSelect { heading?: T; description?: T; videoSource?: T; videoFile?: T; youtubeUrl?: T; vimeoUrl?: T; thumbnail?: T; aspectRatio?: T; autoplay?: T; loop?: T; maxWidth?: T; sectionBackground?: T; textColor?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDCtaBannerBlock_select". */ export interface FDCtaBannerBlockSelect { heading?: T; subheading?: T; ctaText?: T; ctaLink?: T; secondaryCtaText?: T; secondaryCtaLink?: T; sectionBackground?: T; alignment?: T; size?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTestimonialBlock_select". */ export interface FDTestimonialBlockSelect { heading?: T; testimonials?: | T | { quote?: T; authorName?: T; authorRole?: T; authorCompany?: T; avatar?: T; id?: T; }; layout?: T; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "FDTeamBlock_select". */ export interface FDTeamBlockSelect { heading?: T; subheading?: T; members?: | T | { photo?: T; name?: T; role?: T; bio?: T; email?: T; linkedin?: T; id?: T; }; columns?: T; cardStyle?: T; sectionBackground?: T; id?: T; blockName?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "posts_select". */ export interface PostsSelect { title?: T; heroImage?: T; content?: T; relatedPosts?: T; categories?: T; meta?: | T | { title?: T; image?: T; description?: T; }; publishedAt?: T; authors?: T; populatedAuthors?: | T | { id?: T; name?: T; }; slug?: T; updatedAt?: T; createdAt?: T; _status?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "media_select". */ export interface MediaSelect { alt?: T; updatedAt?: T; createdAt?: T; url?: T; thumbnailURL?: T; filename?: T; mimeType?: T; filesize?: T; width?: T; height?: T; focalX?: T; focalY?: T; sizes?: | T | { thumbnail?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; medium?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; large?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; hero?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; }; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "categories_select". */ export interface CategoriesSelect { title?: T; slug?: T; parent?: T; breadcrumbs?: | T | { doc?: T; url?: T; label?: T; id?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "users_select". */ export interface UsersSelect { name?: T; updatedAt?: T; createdAt?: T; email?: T; resetPasswordToken?: T; resetPasswordExpiration?: T; salt?: T; hash?: T; loginAttempts?: T; lockUntil?: T; sessions?: | T | { id?: T; createdAt?: T; expiresAt?: T; }; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "redirects_select". */ export interface RedirectsSelect { from?: T; to?: | T | { type?: T; reference?: T; url?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "forms_select". */ export interface FormsSelect { title?: T; fields?: | T | { checkbox?: | T | { name?: T; label?: T; width?: T; required?: T; defaultValue?: T; id?: T; blockName?: T; }; country?: | T | { name?: T; label?: T; width?: T; required?: T; id?: T; blockName?: T; }; email?: | T | { name?: T; label?: T; width?: T; required?: T; id?: T; blockName?: T; }; message?: | T | { message?: T; id?: T; blockName?: T; }; number?: | T | { name?: T; label?: T; width?: T; defaultValue?: T; required?: T; id?: T; blockName?: T; }; select?: | T | { name?: T; label?: T; width?: T; defaultValue?: T; placeholder?: T; options?: | T | { label?: T; value?: T; id?: T; }; required?: T; id?: T; blockName?: T; }; state?: | T | { name?: T; label?: T; width?: T; required?: T; id?: T; blockName?: T; }; text?: | T | { name?: T; label?: T; width?: T; defaultValue?: T; required?: T; id?: T; blockName?: T; }; textarea?: | T | { name?: T; label?: T; width?: T; defaultValue?: T; required?: T; id?: T; blockName?: T; }; }; submitButtonLabel?: T; confirmationType?: T; confirmationMessage?: T; redirect?: | T | { url?: T; }; emails?: | T | { emailTo?: T; cc?: T; bcc?: T; replyTo?: T; emailFrom?: T; subject?: T; message?: T; id?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "form-submissions_select". */ export interface FormSubmissionsSelect { form?: T; submissionData?: | T | { field?: T; value?: T; id?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-kv_select". */ export interface PayloadKvSelect { key?: T; data?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-jobs_select". */ export interface PayloadJobsSelect { input?: T; taskStatus?: T; completedAt?: T; totalTried?: T; hasError?: T; error?: T; log?: | T | { executedAt?: T; completedAt?: T; taskSlug?: T; taskID?: T; input?: T; output?: T; state?: T; error?: T; id?: T; }; taskSlug?: T; queue?: T; waitUntil?: T; processing?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-locked-documents_select". */ export interface PayloadLockedDocumentsSelect { document?: T; globalSlug?: T; user?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-preferences_select". */ export interface PayloadPreferencesSelect { user?: T; key?: T; value?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-migrations_select". */ export interface PayloadMigrationsSelect { name?: T; batch?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "header". */ export interface Header { id: number; navItems?: | { label: string; url?: string | null; /** * When checked, hovering/clicking this item opens a full-width mega menu instead of a small dropdown card. */ megaMenu?: boolean | null; /** * Add submenu links. If these exist, the parent URL is ignored. Use "Group" to create columns in the mega menu. */ children?: | { label: string; url: string; /** * Links with the same group name appear together in a separate column in the mega menu. Leave empty for the main column. */ group?: string | null; id?: string | null; }[] | null; id?: string | null; }[] | null; updatedAt?: string | null; createdAt?: string | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "footer". */ export interface Footer { id: number; /** * Footer-kolumner med rubriker och länkar (sitemap-stil) */ columns?: | { /** * T.ex. "Tjänster", "Om oss", "Support" */ heading: string; links?: | { link: { type?: ('reference' | 'custom') | null; newTab?: boolean | null; reference?: | ({ relationTo: 'pages'; value: number | Page; } | null) | ({ relationTo: 'posts'; value: number | Post; } | null); url?: string | null; label: string; }; id?: string | null; }[] | null; id?: string | null; }[] | null; /** * Enkla footer-länkar (visas om inga kolumner finns) */ navItems?: | { link: { type?: ('reference' | 'custom') | null; newTab?: boolean | null; reference?: | ({ relationTo: 'pages'; value: number | Page; } | null) | ({ relationTo: 'posts'; value: number | Post; } | null); url?: string | null; label: string; }; id?: string | null; }[] | null; /** * Använd {year} för aktuellt årtal */ bottomLeftText?: string | null; bottomRightText?: string | null; updatedAt?: string | null; createdAt?: string | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "announcement-bar". */ export interface AnnouncementBar { id: number; enabled?: boolean | null; text?: string | null; buttonLabel?: string | null; buttonUrl?: string | null; dismissible?: boolean | null; backgroundColor?: ('yellow' | 'navy' | 'mint') | null; updatedAt?: string | null; createdAt?: string | null; } /** * Ett popup-fönster som visas för besökare. Kan begränsas till specifika sidor. * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "popup-announcement". */ export interface PopupAnnouncement { id: number; enabled?: boolean | null; heading?: string | null; subheading?: string | null; body?: string | null; ctaText?: string | null; ctaLink?: string | null; image?: (number | null) | Media; /** * T.ex. "NYHET", "ERBJUDANDE", "VIKTIG INFO" */ badgeText?: string | null; theme?: ('light' | 'dark') | null; showOnPages?: ('all' | 'home' | 'specific') | null; /** * T.ex. /bredband, /cloud, /kontakt */ specificPages?: string | null; /** * Hur många dagar popupen ska döljas efter att besökaren stänger den */ dismissDays?: number | null; updatedAt?: string | null; createdAt?: string | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "site-settings". */ export interface SiteSetting { id: number; headerCodeInjection?: { enabled?: boolean | null; /** * Klistra in