+ Temizmama Blog İçerik Ekibi olarak kapsamlı araştırmalar sonucunda yerli ve yabancı kaynaklardan edindiğimiz güncel bilgileri toplayıp kedi ve köpeklerle ilgili sorularınıza yanıt buluyor ve ilginç bilgiler paylaşıyoruz.
+
+
- )}
- {author.bio?.html && (
-
+
+
+ Temizmama Blog İçerik Ekibi olarak kapsamlı araştırmalar sonucunda yerli ve yabancı kaynaklardan edindiğimiz güncel bilgileri toplayıp kedi ve köpeklerle ilgili sorularınıza yanıt buluyor ve ilginç bilgiler paylaşıyoruz.
+
+ >
+ );
+};
\ No newline at end of file
diff --git a/packages/blog-starter-kit/themes/enterprise/components/useOnlineStatus.tsx b/packages/blog-starter-kit/themes/enterprise/components/useOnlineStatus.tsx
new file mode 100644
index 00000000..ea121ac9
--- /dev/null
+++ b/packages/blog-starter-kit/themes/enterprise/components/useOnlineStatus.tsx
@@ -0,0 +1,22 @@
+import { useState, useEffect } from 'react';
+
+const useOnlineStatus = () => {
+ const [isOnline, setIsOnline] = useState(true);
+
+ useEffect(() => {
+ const handleOnline = () => setIsOnline(true);
+ const handleOffline = () => setIsOnline(false);
+
+ window.addEventListener('online', handleOnline);
+ window.addEventListener('offline', handleOffline);
+
+ return () => {
+ window.removeEventListener('online', handleOnline);
+ window.removeEventListener('offline', handleOffline);
+ };
+ }, []);
+
+ return isOnline;
+};
+
+export default useOnlineStatus;
\ No newline at end of file
diff --git a/packages/blog-starter-kit/themes/enterprise/favicon.ico b/packages/blog-starter-kit/themes/enterprise/favicon.ico
new file mode 100644
index 00000000..89aa17f4
Binary files /dev/null and b/packages/blog-starter-kit/themes/enterprise/favicon.ico differ
diff --git a/packages/blog-starter-kit/themes/enterprise/generated/graphql.ts b/packages/blog-starter-kit/themes/enterprise/generated/graphql.ts
index 0bc59bb8..de59dd21 100644
--- a/packages/blog-starter-kit/themes/enterprise/generated/graphql.ts
+++ b/packages/blog-starter-kit/themes/enterprise/generated/graphql.ts
@@ -15,9 +15,67 @@ export type Scalars = {
Float: { input: number; output: number; }
DateTime: { input: string; output: string; }
ObjectId: { input: string; output: string; }
+ TimeZone: { input: any; output: any; }
URL: { input: any; output: any; }
};
+export type AbsoluteTimeRange = {
+ /**
+ * The start date of the views.
+ * The time range will include this date (using >=).
+ *
+ * Defaults to the unix epoch start (1970-01-01).
+ */
+ from?: InputMaybe;
+ /**
+ * The end date of the views.
+ * The time range will include this date (using <=).
+ *
+ * Defaults to the current date.
+ */
+ to?: InputMaybe;
+};
+
+/** The input for accepting an invitation to join a documentation project. */
+export type AcceptInviteToDocumentationProjectInput = {
+ /** The invitation token to accept. */
+ inviteToken: Scalars['String']['input'];
+};
+
+/** Response to accepting an invitation to join a documentation project. */
+export type AcceptInviteToDocumentationProjectPayload = {
+ __typename?: 'AcceptInviteToDocumentationProjectPayload';
+ /** The documentation project that the user has been invited to. */
+ project?: Maybe;
+ /** Signifies the success of the mutation. */
+ success: Scalars['Boolean']['output'];
+};
+
+export type AcceptInviteToPublicationInput = {
+ /** The invitation token to accept. */
+ inviteToken: Scalars['String']['input'];
+};
+
+/** Response to accepting an invitation to join a publication. */
+export type AcceptInviteToPublicationPayload = {
+ __typename?: 'AcceptInviteToPublicationPayload';
+ /** Signifies if the mutation was successful. */
+ success: Scalars['Boolean']['output'];
+};
+
+/** Input to accept a role based invite. */
+export type AcceptRoleBasedInviteInput = {
+ /** Invite token of the role based invite. */
+ inviteToken: Scalars['String']['input'];
+};
+
+/** Input to toggle role based invite links. */
+export type AcceptRoleBasedInvitePayload = {
+ __typename?: 'AcceptRoleBasedInvitePayload';
+ /** Signifies if the mutation was successful. */
+ success: Scalars['Boolean']['output'];
+};
+
export type AddCommentInput = {
contentMarkdown: Scalars['String']['input'];
postId: Scalars['ID']['input'];
@@ -28,6 +86,23 @@ export type AddCommentPayload = {
comment?: Maybe;
};
+export type AddDocumentationProjectCustomDomainInput = {
+ domain: Scalars['String']['input'];
+ projectId: Scalars['ID']['input'];
+ wwwDomain: Scalars['Boolean']['input'];
+};
+
+export type AddDocumentationProjectCustomDomainPayload = {
+ __typename?: 'AddDocumentationProjectCustomDomainPayload';
+ /**
+ * Additional DNS entries required to verify the domain.
+ * There are cases where additional records in the DNS config are required to successfully verify the domain.
+ */
+ dnsVerificationEntries: Array;
+ project?: Maybe;
+ wwwRedirectDnsVerificationEntries: Array;
+};
+
export type AddPostToSeriesInput = {
/** The ID of the post to be added to the series. */
postId: Scalars['ObjectId']['input'];
@@ -139,6 +214,65 @@ export type CancelScheduledDraftPayload = {
scheduledPost: ScheduledPost;
};
+/** Input to change the role of a user in a publication. */
+export type ChangePublicationMemberRoleInput = {
+ /** The publication ID the user is a member of. */
+ publicationId: Scalars['ID']['input'];
+ /** The role of the user in the publication. */
+ role: UserPublicationRole;
+ /** The username of the user to change the role for. */
+ username: Scalars['String']['input'];
+};
+
+/** Response to changing the role of a user in a publication. */
+export type ChangePublicationMemberRolePayload = {
+ __typename?: 'ChangePublicationMemberRolePayload';
+ /** The updated publication member. */
+ member: PublicationMember;
+};
+
+/** Input to change the privacy state of a user in a publication. */
+export type ChangePublicationMemberVisibilityInput = {
+ /**
+ * The privacy state of the user in the publication.
+ * PRIVATE members are not visible on the members page while PUBLIC members are visible.
+ */
+ privacyState: PublicationMemberPrivacyState;
+ /** The publication ID the user is a member of. */
+ publicationId: Scalars['ID']['input'];
+ /** The username of the user to change the role for. */
+ username: Scalars['String']['input'];
+};
+
+/** Response to changing the privacy state of a user in a publication. */
+export type ChangePublicationMemberVisibilityPayload = {
+ __typename?: 'ChangePublicationMemberVisibilityPayload';
+ /** The updated publication member. */
+ member: PublicationMember;
+};
+
+export type CheckCustomDomainAvailabilityInput = {
+ domain: Scalars['String']['input'];
+ withWWWRedirect: Scalars['Boolean']['input'];
+};
+
+export type CheckCustomDomainAvailabilityResult = {
+ __typename?: 'CheckCustomDomainAvailabilityResult';
+ domainAvailable: Scalars['Boolean']['output'];
+};
+
+export type CheckSubdomainAvailabilityResult = {
+ __typename?: 'CheckSubdomainAvailabilityResult';
+ subdomainAvailable: Scalars['Boolean']['output'];
+};
+
+/** Contains the flag indicating if the collaboration feature is enabled or not. */
+export type CollaborationFeature = Feature & {
+ __typename?: 'CollaborationFeature';
+ /** A flag indicating if the collaboration feature is enabled or not. */
+ isEnabled: Scalars['Boolean']['output'];
+};
+
/**
* Contains basic information about the comment.
* A comment is a response to a post.
@@ -752,6 +886,112 @@ export type CoverImageOptionsInput = {
stickCoverToBottom?: InputMaybe;
};
+export type CreateDocumentationApiReferenceInput = {
+ name?: InputMaybe;
+ projectId: Scalars['ID']['input'];
+ slug?: InputMaybe;
+ url: Scalars['String']['input'];
+};
+
+export type CreateDocumentationApiReferencePayload = {
+ __typename?: 'CreateDocumentationApiReferencePayload';
+ guide: DocumentationApiReference;
+};
+
+export type CreateDocumentationGuideInput = {
+ name: Scalars['String']['input'];
+ projectId: Scalars['ID']['input'];
+ slug?: InputMaybe;
+};
+
+export type CreateDocumentationGuidePayload = {
+ __typename?: 'CreateDocumentationGuidePayload';
+ guide: DocumentationGuide;
+};
+
+export type CreateDocumentationLinkInput = {
+ guideSlug: Scalars['String']['input'];
+ label: Scalars['String']['input'];
+ projectId: Scalars['ID']['input'];
+ url: Scalars['String']['input'];
+};
+
+export type CreateDocumentationLinkPayload = {
+ __typename?: 'CreateDocumentationLinkPayload';
+ guide?: Maybe;
+ link?: Maybe;
+};
+
+export type CreateDocumentationPageDraftInput = {
+ content?: InputMaybe;
+ description?: InputMaybe;
+ guideSlug: Scalars['String']['input'];
+ label?: InputMaybe;
+ parentId?: InputMaybe;
+ projectId: Scalars['ID']['input'];
+ /** The slug of the path used to generate the path. */
+ slug?: InputMaybe;
+ title?: InputMaybe;
+};
+
+export type CreateDocumentationPageDraftPayload = {
+ __typename?: 'CreateDocumentationPageDraftPayload';
+ guide?: Maybe;
+ page?: Maybe;
+};
+
+/** The input for creating a documentation preview page */
+export type CreateDocumentationPreviewPageInput = {
+ /** The content of the page */
+ content?: InputMaybe;
+ /** The description of the page */
+ description?: InputMaybe;
+ /** The ID of the page to create */
+ id?: InputMaybe;
+ /** The label of the page on the sidebar */
+ label: Scalars['String']['input'];
+ /** The meta tags of the page */
+ metaTags?: InputMaybe;
+ /** The nested pages of the page */
+ pages: Array;
+ /** The slug of the page used to create the path */
+ slug?: InputMaybe;
+ /** The title of the page */
+ title?: InputMaybe;
+ /** The visibility of the page */
+ visibility?: InputMaybe;
+};
+
+export type CreateDocumentationProjectInput = {
+ description?: InputMaybe;
+ favIconUrl?: InputMaybe;
+ links?: InputMaybe;
+ logoDarkThemeUrl?: InputMaybe;
+ logoUrl?: InputMaybe;
+ name: Scalars['String']['input'];
+ settings?: InputMaybe;
+ subdomain: Scalars['String']['input'];
+};
+
+export type CreateDocumentationProjectPayload = {
+ __typename?: 'CreateDocumentationProjectPayload';
+ project: DocumentationProject;
+};
+
+export type CreateDocumentationSectionInput = {
+ guideSlug: Scalars['String']['input'];
+ label?: InputMaybe;
+ projectId: Scalars['ID']['input'];
+ /** The slug of the section used to generate the path. */
+ slug?: InputMaybe;
+};
+
+export type CreateDocumentationSectionPayload = {
+ __typename?: 'CreateDocumentationSectionPayload';
+ guide?: Maybe;
+ section?: Maybe;
+};
+
export type CreateDraftInput = {
/** Ids of the co-authors of the resulting draft. */
coAuthors?: InputMaybe>;
@@ -761,6 +1001,11 @@ export type CreateDraftInput = {
coverImageOptions?: InputMaybe;
/** A flag to indicate if the comments are disabled for the resulting draft. */
disableComments?: InputMaybe;
+ /**
+ * The id of the user who owns the draft. When this field is supplied, the draft is created directly under that user's account.
+ * Only applicable for team publications.
+ */
+ draftOwner?: InputMaybe;
/** Information about the meta tags added to the resulting draft, used for SEO purpose. */
metaTags?: InputMaybe;
/** The URL of the original article if the draft is imported from an external source. */
@@ -827,6 +1072,41 @@ export type CreateDraftTagInput = {
slug?: InputMaybe;
};
+export type CreateRedirectionRuleInput = {
+ destination: Scalars['URL']['input'];
+ publicationId: Scalars['ID']['input'];
+ source: Scalars['String']['input'];
+ type: HttpRedirectionType;
+};
+
+export type CreateRedirectionRulePayload = {
+ __typename?: 'CreateRedirectionRulePayload';
+ redirectionRule: RedirectionRule;
+};
+
+/** Input to create a role based invite for a publication. */
+export type CreateRoleBasedInviteForPublicationInput = {
+ /** The capacity of how many members to be invited by the link. */
+ capacity?: InputMaybe;
+ /** Boolean to enable unlimited capacity. */
+ enableUnlimitedCapacity?: InputMaybe;
+ /** The expiry date of the invite. */
+ expiryDate?: InputMaybe;
+ /** Invite token set for the invitation */
+ inviteToken?: InputMaybe;
+ /** The publication ID to create the invite for. */
+ publicationId: Scalars['ID']['input'];
+ /** The role to assign to the user in the publication. */
+ role: UserPublicationInviteRole;
+};
+
+/** Response to creating a role based invite for a publication. */
+export type CreateRoleBasedInviteForPublicationPayload = {
+ __typename?: 'CreateRoleBasedInviteForPublicationPayload';
+ /** The created role based invite. */
+ invite: RoleBasedInvite;
+};
+
export type CreateSeriesInput = {
/** The cover image of the series. */
coverImage?: InputMaybe;
@@ -901,6 +1181,12 @@ export type DarkModePreferences = {
logo?: Maybe;
};
+export enum DefaultDocsTheme {
+ Dark = 'DARK',
+ Light = 'LIGHT'
+}
+
+/** Input to delete a role based invite. */
export type DeleteRoleBasedInviteInput = {
/** The ID of the role based invite. */
inviteId: Scalars['ID']['input'];
@@ -926,156 +1212,857 @@ export enum DeviceType {
Tablet = 'TABLET'
}
-/** Contains the publication's domain information. */
-export type DomainInfo = {
- __typename?: 'DomainInfo';
- /** The domain of the publication. */
- domain?: Maybe;
- /**
- * The subdomain of the publication on hashnode.dev.
- *
- * It will redirect to you custom domain if it is present and ready.
- */
- hashnodeSubdomain?: Maybe;
- /** The www prefixed domain of the publication. Says if redirect to www domain is configured. */
- wwwPrefixedDomain?: Maybe;
+/** The input for disabling AI search for a documentation project */
+export type DisableDocumentationProjectAiSearchInput = {
+ /** The ID of the documentation project */
+ projectId: Scalars['ID']['input'];
};
-/** Contains the publication's domain status. */
-export type DomainStatus = {
- __typename?: 'DomainStatus';
- /** The host of the publication domain. */
- host: Scalars['String']['output'];
- /** A flag indicating if the publication domain is ready. */
- ready: Scalars['Boolean']['output'];
- /** A flag indicating the status of a publication domain */
- status: CustomDomainStatus;
- /**
- * A timestamp indicating when the domain was verified.
- * It is only present if the domain is verified.
- */
- verifiedAt?: Maybe;
+/** The response to disabling AI search for a documentation project */
+export type DisableDocumentationProjectAiSearchPayload = {
+ __typename?: 'DisableDocumentationProjectAISearchPayload';
+ project?: Maybe;
};
-/**
- * Contains basic information about the draft.
- * A draft is a post that is not published yet.
- */
-export type Draft = Node & {
- __typename?: 'Draft';
- /** The author of the draft. */
- author: User;
- canonicalUrl?: Maybe;
- /**
- * Returns the user details of the co-authors of the post.
- * Hashnode users can add up to 4 co-authors as collaborators to their posts.
- * This functionality is limited to teams publication.
- */
- coAuthors?: Maybe>;
- /** Content of the draft in HTML and markdown */
- content?: Maybe;
- /** The cover image preference of the draft. Contains cover image URL and other details. */
- coverImage?: Maybe;
- /**
- * The date the draft was updated.
- * @deprecated Use updatedAt instead. Will be removed on 26/12/2023.
- */
- dateUpdated: Scalars['DateTime']['output'];
- /** Draft feature-related fields. */
- features: DraftFeatures;
- /** The ID of the draft. */
- id: Scalars['ID']['output'];
- /** Information about the last backup of the draft. */
- lastBackup?: Maybe;
- /** The date the draft last failed to back up. */
- lastFailedBackupAt?: Maybe;
- /** The date the draft was last successfully backed up. */
- lastSuccessfulBackupAt?: Maybe;
- /** OG meta-data of the draft. Contains image url used in open graph meta tags. */
- ogMetaData?: Maybe;
- readTimeInMinutes: Scalars['Int']['output'];
- /** The date the draft is scheduled to be published. */
- scheduledDate?: Maybe;
- /** SEO information of the draft. Contains title and description used in meta tags. */
- seo?: Maybe;
- /** Information of the series the draft belongs to. */
- series?: Maybe;
- settings: DraftSettings;
- slug: Scalars['String']['output'];
- /** The subtitle of the draft. It would become the subtitle of the post when published. */
- subtitle?: Maybe;
- /**
- * Returns list of tags added to the draft. Contains tag id, name, slug, etc.
- * @deprecated Use tagsV2 instead. Will be removed on 26/02/2024.
- */
- tags: Array;
- tagsV2: Array;
- /** The title of the draft. It would become the title of the post when published. */
- title?: Maybe;
- updatedAt: Scalars['DateTime']['output'];
+export type DisableDocumentationProjectHeadlessCmsInput = {
+ projectId: Scalars['ID']['input'];
};
-export type DraftBackup = {
- __typename?: 'DraftBackup';
- /** The date the backup was created. */
- at?: Maybe;
- /** The status of the backup i.e., success or failure. */
- status?: Maybe;
+export type DisableDocumentationProjectHeadlessCmsPayload = {
+ __typename?: 'DisableDocumentationProjectHeadlessCmsPayload';
+ project?: Maybe;
};
-/**
- * Contains basic information about a Tag within a Draft.
- * A tag in a draft is a tag that is not published yet.
- */
-export type DraftBaseTag = {
- __typename?: 'DraftBaseTag';
- /** The name of the tag. Shown in tag page. */
+export type DnsVerificationEntry = {
+ __typename?: 'DnsVerificationEntry';
name: Scalars['String']['output'];
- /** The slug of the tag. Used to access tags feed. Example https://hashnode.com/n/graphql */
- slug: Scalars['String']['output'];
+ type: DnsVerificationType;
+ value: Scalars['String']['output'];
};
+export enum DnsVerificationType {
+ ARecord = 'A_RECORD',
+ CnameRecord = 'CNAME_RECORD',
+ TxtRecord = 'TXT_RECORD'
+}
+
+export enum DocsAnalyticsDimension {
+ ApiReferenceGuide = 'API_REFERENCE_GUIDE',
+ Browser = 'BROWSER',
+ Country = 'COUNTRY',
+ DeviceType = 'DEVICE_TYPE',
+ DocumentationGuide = 'DOCUMENTATION_GUIDE',
+ OperatingSystem = 'OPERATING_SYSTEM',
+ Page = 'PAGE',
+ Path = 'PATH',
+ ReferrerHost = 'REFERRER_HOST'
+}
+
/**
- * Connection to get list of drafts.
- * Returns a list of edges which contains the draft and cursor to the last item of the previous page.
+ * Contains basic information about the docs custom page.
+ * Docs custom pages are pages that can be written in mdx and can be added to docs. It can be used for changelog or other such requirements.
*/
-export type DraftConnection = Connection & {
- __typename?: 'DraftConnection';
- /** A list of edges of drafts connection. */
- edges: Array;
- /** Information to aid in pagination. */
- pageInfo: PageInfo;
- /** The total number of documents in the connection. */
- totalDocuments: Scalars['Int']['output'];
+export type DocsCustomPage = Node & {
+ __typename?: 'DocsCustomPage';
+ /** Content of the docs custom page. Contains mdx version of the docs custom page's content. */
+ content: DocumentationPageContent;
+ /** The ID of the docs custom page. */
+ id: Scalars['ID']['output'];
+ /** Last modified date of the docs custom page. */
+ lastModified: Scalars['DateTime']['output'];
+ /** Information about the docs custom page's Open Graph metadata i.e. image. */
+ ogMetaData?: Maybe;
+ /** Information about the docs custom page's SEO metadata i.e. title and description */
+ seo?: Maybe;
+ /** the slug of the docs custom page. Used to access docs custom page. Example `https://mydocs.com/my-page`. */
+ slug: Scalars['String']['output'];
+ /** The title of the docs custom page. */
+ title: Scalars['String']['output'];
+ /** Visibility of the docs custom page. */
+ visibility: DocumentationSidebarItemVisibility;
};
-/** Contains information about the cover image of the draft. */
-export type DraftCoverImage = {
- __typename?: 'DraftCoverImage';
- /** Provides attribution information for the cover image, if available. */
- attribution?: Maybe;
- /** True if the image attribution should be hidden. */
- isAttributionHidden: Scalars['Boolean']['output'];
- /** The name of the photographer who captured the cover image. */
- photographer?: Maybe;
- /** The URL of the cover image. */
- url: Scalars['String']['output'];
+export type DocsProjectInvitedMembers = {
+ __typename?: 'DocsProjectInvitedMembers';
+ email: Scalars['String']['output'];
+ role: DocumentationMemberRole;
+ /** Invited Hashnode user, returns null if the user is not a Hashnode user. */
+ user?: Maybe;
};
-/** An edge that contains a node of type draft and cursor to the node. */
-export type DraftEdge = Edge & {
- __typename?: 'DraftEdge';
- /** A cursor for use in pagination. */
- cursor: Scalars['String']['output'];
- /** A node in the connection containing a draft. */
- node: Draft;
+export type DocsViews = {
+ id: Scalars['ID']['output'];
+ /** The aggregated views. */
+ total: Scalars['Int']['output'];
};
-export type DraftFeatures = {
- __typename?: 'DraftFeatures';
+export type DocsVisitors = {
+ id: Scalars['ID']['output'];
+ /** The aggregated number of visitors. */
+ total: Scalars['Int']['output'];
+};
+
+export type DocumentationApiReference = IGuide & {
+ __typename?: 'DocumentationApiReference';
+ /** The parsed Swagger Definition of the API Reference. */
+ definition?: Maybe;
+ /** The base64 encoded gzip compressed string of the parsed OpenAPI Definition of the API Reference. */
+ definitionV2?: Maybe;
+ id: Scalars['ID']['output'];
+ /**
+ * A guide can be locked if the subscription doesn't cover to having this guide.
+ *
+ * A locked guide is readonly. It can only be removed or edited after subscribing.
+ */
+ isLocked: Scalars['Boolean']['output'];
+ lastModified: Scalars['DateTime']['output'];
+ name: Scalars['String']['output'];
+ /** OG meta-data of the page. Contains image url used in open graph meta tags. */
+ ogMetaData?: Maybe;
+ /** URL of the published api reference. */
+ publishedUrl?: Maybe;
+ /** SEO information of the page. Contains title and description used in meta tags. */
+ seo?: Maybe;
+ slug: Scalars['String']['output'];
+ status: DocumentationGuideItemStatus;
+ /** URL of the API definition this guide is based on. */
+ url: Scalars['String']['output'];
+ versionId?: Maybe;
+};
+
+export type DocumentationGuide = IGuide & {
+ __typename?: 'DocumentationGuide';
+ hasChanges: Scalars['Boolean']['output'];
+ id: Scalars['ID']['output'];
+ /**
+ * A guide can be locked if the subscription doesn't cover to having this guide.
+ *
+ * A locked guide is readonly. It can only be removed or edited after subscribing.
+ */
+ isLocked: Scalars['Boolean']['output'];
+ lastModified: Scalars['DateTime']['output'];
+ name: Scalars['String']['output'];
+ /** OG meta-data of the page. Contains image url used in open graph meta tags. */
+ ogMetaData?: Maybe;
+ page?: Maybe;
+ publishedPage?: Maybe;
+ publishedSidebarItems: Array;
+ redirectedPublishedPage?: Maybe;
+ /** SEO information of the page. Contains title and description used in meta tags. */
+ seo?: Maybe;
+ sidebarItems: Array;
+ slug: Scalars['String']['output'];
+ status: DocumentationGuideItemStatus;
+ /** URL of the published guide. */
+ url?: Maybe;
+ versionId?: Maybe;
+};
+
+
+export type DocumentationGuidePageArgs = {
+ id?: InputMaybe;
+ path?: InputMaybe;
+};
+
+
+export type DocumentationGuidePublishedPageArgs = {
+ id?: InputMaybe;
+ path?: InputMaybe;
+};
+
+
+export type DocumentationGuideRedirectedPublishedPageArgs = {
+ id?: InputMaybe;
+ path?: InputMaybe;
+};
+
+export type DocumentationGuideItem = DocumentationApiReference | DocumentationGuide;
+
+export enum DocumentationGuideItemStatus {
+ Deleted = 'DELETED',
+ Published = 'PUBLISHED',
+ Unpublished = 'UNPUBLISHED'
+}
+
+export type DocumentationLink = IDocumentationSidebarItem & {
+ __typename?: 'DocumentationLink';
+ createdAt: Scalars['DateTime']['output'];
+ id: Scalars['ID']['output'];
+ label: Scalars['String']['output'];
+ status: DocumentationSidebarItemStatus;
+ updatedAt?: Maybe;
+ url: Scalars['String']['output'];
+ visibility: DocumentationSidebarItemVisibility;
+};
+
+export enum DocumentationMemberRole {
+ Admin = 'ADMIN',
+ Owner = 'OWNER'
+}
+
+/** A column for the navigation. Used in the footer */
+export type DocumentationNavbarColumn = Node & {
+ __typename?: 'DocumentationNavbarColumn';
+ /** The date the column was created. */
+ createdAt: Scalars['DateTime']['output'];
+ /** The ID of the column. */
+ id: Scalars['ID']['output'];
+ /** The navigation items in the column. */
+ items: Array;
+ /** The label of the column. */
+ label: Scalars['String']['output'];
+ /** The date the column was last updated. */
+ updatedAt?: Maybe;
+};
+
+export type DocumentationNavbarItem = DocumentationNavbarItemGuide | DocumentationNavbarItemLink;
+
+/** A navigation item pointing to a guide. */
+export type DocumentationNavbarItemGuide = Node & {
+ __typename?: 'DocumentationNavbarItemGuide';
+ /** The date the item was created. */
+ createdAt: Scalars['DateTime']['output'];
+ /** The guide the item points to. */
+ guide: DocumentationGuideItem;
+ /** The ID of the item. */
+ id: Scalars['ID']['output'];
+ /** The label of the item. */
+ label: Scalars['String']['output'];
+ /** The date the item was last updated. */
+ updatedAt?: Maybe;
+};
+
+/** A navigation item pointing to an external URL. */
+export type DocumentationNavbarItemLink = Node & {
+ __typename?: 'DocumentationNavbarItemLink';
+ /** The date the item was created. */
+ createdAt: Scalars['DateTime']['output'];
+ /** The ID of the item. */
+ id: Scalars['ID']['output'];
+ /** The label of the item. */
+ label: Scalars['String']['output'];
+ /** Indicates if the link should open in a new tab. */
+ openInNewTab: Scalars['Boolean']['output'];
+ /** The date the item was last updated. */
+ updatedAt?: Maybe;
+ /** The URL the item points to. */
+ url: Scalars['String']['output'];
+};
+
+export type DocumentationPage = {
+ __typename?: 'DocumentationPage';
+ content: DocumentationPageContent;
+ createdAt: Scalars['DateTime']['output'];
+ description?: Maybe;
+ draft: DocumentationPageDraft;
+ guideSlug: Scalars['String']['output'];
+ id: Scalars['ID']['output'];
+ /** OG meta-data of the page. Contains image url used in open graph meta tags. */
+ ogMetaData?: Maybe;
+ path: Scalars['String']['output'];
+ /** SEO information of the page. Contains title and description used in meta tags. */
+ seo?: Maybe;
+ status: DocumentationSidebarItemStatus;
+ title: Scalars['String']['output'];
+ updatedAt?: Maybe;
+ /** URL of the published page. */
+ url?: Maybe;
+ visibility: DocumentationSidebarItemVisibility;
+};
+
+export type DocumentationPageContent = {
+ __typename?: 'DocumentationPageContent';
+ mdx: Scalars['String']['output'];
+};
+
+export type DocumentationPageDraft = {
+ __typename?: 'DocumentationPageDraft';
+ content: DocumentationPageContent;
+ description?: Maybe;
+ title: Scalars['String']['output'];
+};
+
+export type DocumentationProject = Node & {
+ __typename?: 'DocumentationProject';
+ ai?: Maybe;
+ analytics: DocumentationProjectAnalytics;
+ appearance: DocumentationProjectAppearance;
+ createdAt: Scalars['DateTime']['output'];
+ defaultGuide?: Maybe;
+ description?: Maybe;
+ domain?: Maybe;
+ /** Object containing information about beta features enabled for the documentation project. */
+ features: DocumentationProjectFeatures;
+ guide?: Maybe;
+ guides: Array;
+ id: Scalars['ID']['output'];
+ integrations?: Maybe;
+ links: DocumentationProjectLinks;
+ /** @deprecated Use membersV2 */
+ members: Array;
+ membersV2: DocumentationProjectMemberConnection;
+ name: Scalars['String']['output'];
+ /** The navigation configuration for the documentation project. */
+ navigation: DocumentationProjectNavigation;
+ /** The Owner of the documentation project. */
+ owner: User;
+ /** Details of publication invites. Returns null if publication is not a team publication. */
+ pendingInvites: DocumentationProjectPendingInviteConnection;
+ publishedGuide?: Maybe;
+ publishedGuides: Array;
+ /** A user search to find users with a specific status */
+ searchUsers: DocumentationProjectSearchUserConnection;
+ settings: DocumentationProjectSettings;
+ subscription?: Maybe;
+ updatedAt?: Maybe;
+ /** URL of the documentation project. */
+ url: Scalars['String']['output'];
+};
+
+
+export type DocumentationProjectGuideArgs = {
+ id?: InputMaybe;
+ slug?: InputMaybe;
+};
+
+
+export type DocumentationProjectMembersV2Args = {
+ filter?: InputMaybe;
+ page: Scalars['Int']['input'];
+ pageSize: Scalars['Int']['input'];
+};
+
+
+export type DocumentationProjectPendingInvitesArgs = {
+ page: Scalars['Int']['input'];
+ pageSize: Scalars['Int']['input'];
+};
+
+
+export type DocumentationProjectPublishedGuideArgs = {
+ id?: InputMaybe;
+ slug?: InputMaybe;
+};
+
+
+export type DocumentationProjectSearchUsersArgs = {
+ input: DocumentationProjectSearchUsersInput;
+};
+
+export type DocumentationProjectAiPreference = {
+ __typename?: 'DocumentationProjectAIPreference';
+ /** The prompts for the documentation project. These prompts are shown to the user when AI Search chatbot is opened. */
+ prompts: Array;
+ /** The settings for the AI feature. */
+ settings: DocumentationProjectAiSettings;
+};
+
+export type DocumentationProjectAiPrompt = {
+ __typename?: 'DocumentationProjectAIPrompt';
+ /** The date the prompt was created. */
+ createdAt: Scalars['DateTime']['output'];
+ /** The ID of the prompt. */
+ id: Scalars['ID']['output'];
+ /** The prompt text. */
+ prompt: Scalars['String']['output'];
+};
+
+export type DocumentationProjectAiSettings = {
+ __typename?: 'DocumentationProjectAISettings';
+ /** A flag to indicate if the AI search feature is enabled. */
+ isSearchEnabled: Scalars['Boolean']['output'];
+};
+
+export type DocumentationProjectAnalytics = {
+ __typename?: 'DocumentationProjectAnalytics';
+ views?: Maybe;
+ visitors: ProjectVisitorsConnection;
+};
+
+
+export type DocumentationProjectAnalyticsViewsArgs = {
+ after?: InputMaybe;
+ filter?: InputMaybe;
+ first: Scalars['Int']['input'];
+ groupBy?: InputMaybe;
+ options?: InputMaybe;
+ sortBy?: InputMaybe;
+};
+
+
+export type DocumentationProjectAnalyticsVisitorsArgs = {
+ after?: InputMaybe;
+ filter?: InputMaybe;
+ first: Scalars['Int']['input'];
+ groupBy?: InputMaybe;
+ options?: InputMaybe;
+};
+
+export type DocumentationProjectAppearance = {
+ __typename?: 'DocumentationProjectAppearance';
+ defaultDocsTheme: DefaultDocsTheme;
+ favIconUrl?: Maybe;
+ getStarted?: Maybe;
+ logoDarkThemeUrl?: Maybe;
+ logoUrl?: Maybe;
+ primaryColor?: Maybe;
+};
+
+export type DocumentationProjectAppearanceInput = {
+ defaultDocsTheme?: InputMaybe;
+ favIconUrl?: InputMaybe;
+ getStarted?: InputMaybe;
+ logoDarkThemeUrl?: InputMaybe;
+ logoUrl?: InputMaybe;
+ primaryColor?: InputMaybe;
+};
+
+export type DocumentationProjectCustomDomain = {
+ __typename?: 'DocumentationProjectCustomDomain';
+ domain: Scalars['String']['output'];
+ status: CustomDomainStatus;
+ verifiedAt?: Maybe;
+ wwwDomain?: Maybe;
+};
+
+export type DocumentationProjectCustomWwwDomain = {
+ __typename?: 'DocumentationProjectCustomWwwDomain';
+ status: CustomDomainStatus;
+ verifiedAt?: Maybe;
+};
+
+export type DocumentationProjectDomainSettings = {
+ __typename?: 'DocumentationProjectDomainSettings';
+ customDomain?: Maybe;
+ hashnodeSubDomain: Scalars['String']['output'];
+};
+
+/** Contains the documentation project's beta features. */
+export type DocumentationProjectFeatures = {
+ __typename?: 'DocumentationProjectFeatures';
+ /** Collaboration feature for the docs project which enables collaborative editing in the page editor. */
+ collaboration: CollaborationFeature;
+};
+
+export type DocumentationProjectGetStarted = {
+ __typename?: 'DocumentationProjectGetStarted';
+ label: Scalars['String']['output'];
+ url: Scalars['URL']['output'];
+};
+
+export type DocumentationProjectGetStartedInput = {
+ label?: InputMaybe;
+ url?: InputMaybe;
+};
+
+export type DocumentationProjectIntegrations = {
+ __typename?: 'DocumentationProjectIntegrations';
+ /** FB Pixel ID for integration with Facebook Pixel. */
+ fbPixelID?: Maybe;
+ /** Google Tag Manager ID for integration with Google Tag Manager. */
+ gTagManagerID?: Maybe;
+ /** Google Analytics Tracking ID for integration with Google Analytics. */
+ gaTrackingID?: Maybe;
+ /** Hotjar Site ID for integration with Hotjar. */
+ hotjarSiteID?: Maybe;
+ /** Intercom ID for integration with Intercom */
+ intercomID?: Maybe;
+ /** The meta tags associated with the documentation project. */
+ metaTags?: Maybe;
+};
+
+export type DocumentationProjectIntegrationsInput = {
+ fbPixelID?: InputMaybe;
+ gTagManagerID?: InputMaybe;
+ gaTrackingID?: InputMaybe;
+ hotjarSiteID?: InputMaybe;
+ intercomID?: InputMaybe;
+ metaTags?: InputMaybe;
+};
+
+/** Contains the pending invite information. */
+export type DocumentationProjectInvite = Node & {
+ __typename?: 'DocumentationProjectInvite';
+ /** The ID of the pending invite. */
+ id: Scalars['ID']['output'];
+ /** The role assigned to the user in the publication. */
+ role: DocumentationMemberRole;
+ /** Invited Hashnode user, returns null if the user is not a Hashnode user. */
+ user: User;
+};
+
+export type DocumentationProjectLinks = {
+ __typename?: 'DocumentationProjectLinks';
+ /** Daily.dev URL of the documentation project. */
+ dailydev?: Maybe;
+ /** GitHub URL of the documentation project. */
+ github?: Maybe;
+ /** The GitHub repository of the documentation project. */
+ githubRepository?: Maybe;
+ /** Hashnode profile of author of the documentation project. */
+ hashnode?: Maybe;
+ /** Instagram URL of the documentation project. */
+ instagram?: Maybe;
+ /** LinkedIn URL of the documentation project. */
+ linkedin?: Maybe;
+ /** Mastodon URL of the documentation project. */
+ mastodon?: Maybe;
+ /** Twitter URL of the documentation project. */
+ twitter?: Maybe;
+ /** Website URL of the documentation project. */
+ website?: Maybe;
+ /** YouTube URL of the documentation project. */
+ youtube?: Maybe;
+};
+
+export type DocumentationProjectLinksInput = {
+ dailydev?: InputMaybe;
+ github?: InputMaybe;
+ githubRepository?: InputMaybe