Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
1c34d6e
update blogs
recursivezero Mar 8, 2026
a41900d
update theme icon issue; privacy added
recursivezero Mar 29, 2026
d64dddb
WIP: initial setup
iamabdullah73524 Apr 23, 2026
9aaa2d1
updated Home and about pages
iamabdullah73524 Apr 28, 2026
5c93d1d
fix : build error resolve (env + astro)
iamabdullah73524 Apr 28, 2026
aaa0f6b
Completed responsive dark mode redesign
iamabdullah73524 May 7, 2026
2577e2e
updated UI improvements
iamabdullah73524 May 7, 2026
57a50a2
Improve UI, theme toggle, work section and blog updates
iamabdullah73524 May 8, 2026
e277adb
Add blog tags and improve blog navigation
iamabdullah73524 May 12, 2026
9121227
feat : update header font style
iamabdullah73524 May 15, 2026
3c5182f
improve blog UI and add hashtags
iamabdullah73524 May 19, 2026
d1e4356
fix contact page theme and improve legal page UI
iamabdullah73524 May 21, 2026
fed4cd6
Update header logo and improve legal pages
iamabdullah73524 May 21, 2026
e5f247f
added font
recursivezero May 21, 2026
40f4999
Update header logo
iamabdullah73524 May 21, 2026
133093a
remove console logs from blog section
iamabdullah73524 May 21, 2026
c862ecc
Updated Ui and work page behavior
iamabdullah73524 May 22, 2026
11c9a0f
Updated footer, contact section, career UI and work cards
iamabdullah73524 May 23, 2026
016ef03
Refractor work page using map for blog cards
iamabdullah73524 May 23, 2026
4870a9f
format few files
recursivezero May 25, 2026
d31f1c2
update blogs
recursivezero Mar 8, 2026
84cd764
update theme icon issue; privacy added
recursivezero Mar 29, 2026
58935d4
Remove unused abcdkbd image
iamabdullah73524 May 26, 2026
95c2506
Use Object destructing in BlogCard
iamabdullah73524 May 26, 2026
f5328ac
Simplify Blogcard link
iamabdullah73524 May 26, 2026
0945851
Improve about page design and fix theme persistence
iamabdullah73524 May 26, 2026
c42f323
Improve format
iamabdullah73524 May 26, 2026
8b41d50
Merge branch 'main' into feature/TZD-260005
iamabdullah73524 May 26, 2026
10b9a58
feat: improve header,footer, work section and responsiveness
iamabdullah73524 May 27, 2026
31efd70
Merge branch 'feature/TZD-260005' of https://github.com/recursivezero…
iamabdullah73524 May 27, 2026
0795975
add Tech Taboo project and fix mobile navbar
iamabdullah73524 May 27, 2026
aaf01b6
update astro version
recursivezero May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
178 changes: 88 additions & 90 deletions .astro/content.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
declare module 'astro:content' {
interface Render {
'.mdx': Promise<{
Content: import('astro').MarkdownInstance<{}>['Content'];
Content: import('astro').MDXContent;
headings: import('astro').MarkdownHeading[];
remarkPluginFrontmatter: Record<string, any>;
components: import('astro').MDXInstance<{}>['components'];
Expand All @@ -26,75 +26,50 @@ declare module 'astro:content' {
[key: string]: unknown;
};
}
}

declare module 'astro:content' {
type Flatten<T> = T extends { [K: string]: infer U } ? U : never;

export type CollectionKey = keyof AnyEntryMap;
export type CollectionEntry<C extends CollectionKey> = Flatten<AnyEntryMap[C]>;

export type ContentCollectionKey = keyof ContentEntryMap;
export type DataCollectionKey = keyof DataEntryMap;
export type CollectionKey = keyof DataEntryMap;
export type CollectionEntry<C extends CollectionKey> = Flatten<DataEntryMap[C]>;

type AllValuesOf<T> = T extends any ? T[keyof T] : never;
type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf<
ContentEntryMap[C]
>['slug'];

/** @deprecated Use `getEntry` instead. */
export function getEntryBySlug<
C extends keyof ContentEntryMap,
E extends ValidContentEntrySlug<C> | (string & {}),
>(
collection: C,
// Note that this has to accept a regular string too, for SSR
entrySlug: E,
): E extends ValidContentEntrySlug<C>
? Promise<CollectionEntry<C>>
: Promise<CollectionEntry<C> | undefined>;

/** @deprecated Use `getEntry` instead. */
export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>(
collection: C,
entryId: E,
): Promise<CollectionEntry<C>>;
export type ReferenceDataEntry<
C extends CollectionKey,
E extends keyof DataEntryMap[C] = string,
> = {
collection: C;
id: E;
};

export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>(
export type ReferenceLiveEntry<C extends keyof LiveContentConfig['collections']> = {
collection: C;
id: string;
};

export function getCollection<C extends keyof DataEntryMap, E extends CollectionEntry<C>>(
collection: C,
filter?: (entry: CollectionEntry<C>) => entry is E,
): Promise<E[]>;
export function getCollection<C extends keyof AnyEntryMap>(
export function getCollection<C extends keyof DataEntryMap>(
collection: C,
filter?: (entry: CollectionEntry<C>) => unknown,
): Promise<CollectionEntry<C>[]>;

export function getEntry<
C extends keyof ContentEntryMap,
E extends ValidContentEntrySlug<C> | (string & {}),
>(entry: {
collection: C;
slug: E;
}): E extends ValidContentEntrySlug<C>
? Promise<CollectionEntry<C>>
: Promise<CollectionEntry<C> | undefined>;
export function getLiveCollection<C extends keyof LiveContentConfig['collections']>(
collection: C,
filter?: LiveLoaderCollectionFilterType<C>,
): Promise<
import('astro').LiveDataCollectionResult<LiveLoaderDataType<C>, LiveLoaderErrorType<C>>
>;

export function getEntry<
C extends keyof DataEntryMap,
E extends keyof DataEntryMap[C] | (string & {}),
>(entry: {
collection: C;
id: E;
}): E extends keyof DataEntryMap[C]
? Promise<DataEntryMap[C][E]>
: Promise<CollectionEntry<C> | undefined>;
export function getEntry<
C extends keyof ContentEntryMap,
E extends ValidContentEntrySlug<C> | (string & {}),
>(
collection: C,
slug: E,
): E extends ValidContentEntrySlug<C>
? Promise<CollectionEntry<C>>
entry: ReferenceDataEntry<C, E>,
): E extends keyof DataEntryMap[C]
? Promise<DataEntryMap[C][E]>
: Promise<CollectionEntry<C> | undefined>;
export function getEntry<
C extends keyof DataEntryMap,
Expand All @@ -107,54 +82,53 @@ declare module 'astro:content' {
? Promise<DataEntryMap[C][E]> | undefined
: Promise<DataEntryMap[C][E]>
: Promise<CollectionEntry<C> | undefined>;
export function getLiveEntry<C extends keyof LiveContentConfig['collections']>(
collection: C,
filter: string | LiveLoaderEntryFilterType<C>,
): Promise<import('astro').LiveDataEntryResult<LiveLoaderDataType<C>, LiveLoaderErrorType<C>>>;

/** Resolve an array of entry references from the same collection */
export function getEntries<C extends keyof ContentEntryMap>(
entries: {
collection: C;
slug: ValidContentEntrySlug<C>;
}[],
): Promise<CollectionEntry<C>[]>;
export function getEntries<C extends keyof DataEntryMap>(
entries: {
collection: C;
id: keyof DataEntryMap[C];
}[],
entries: ReferenceDataEntry<C, keyof DataEntryMap[C]>[],
): Promise<CollectionEntry<C>[]>;

export function render<C extends keyof AnyEntryMap>(
entry: AnyEntryMap[C][string],
export function render<C extends keyof DataEntryMap>(
entry: DataEntryMap[C][string],
): Promise<RenderResult>;

export function reference<C extends keyof AnyEntryMap>(
export function reference<
C extends
| keyof DataEntryMap
// Allow generic `string` to avoid excessive type errors in the config
// if `dev` is not running to update as you edit.
// Invalid collection names will be caught at build time.
| (string & {}),
>(
collection: C,
): import('astro/zod').ZodEffects<
): import('astro/zod').ZodPipe<
import('astro/zod').ZodString,
C extends keyof ContentEntryMap
? {
collection: C;
slug: ValidContentEntrySlug<C>;
}
: {
collection: C;
id: keyof DataEntryMap[C];
}
import('astro/zod').ZodTransform<
C extends keyof DataEntryMap
? {
collection: C;
id: string;
}
: never,
string
>
>;
// Allow generic `string` to avoid excessive type errors in the config
// if `dev` is not running to update as you edit.
// Invalid collection names will be caught at build time.
export function reference<C extends string>(
collection: C,
): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>;

type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
type InferEntrySchema<C extends keyof AnyEntryMap> = import('astro/zod').infer<
type InferEntrySchema<C extends keyof DataEntryMap> = import('astro/zod').infer<
ReturnTypeOrOriginal<Required<ContentConfig['collections'][C]>['schema']>
>;

type ContentEntryMap = {

};
type ExtractLoaderConfig<T> = T extends { loader: infer L } ? L : never;
type InferLoaderSchema<
C extends keyof DataEntryMap,
L = ExtractLoaderConfig<ContentConfig['collections'][C]>,
> = L extends { schema: import('astro/zod').ZodSchema }
? import('astro/zod').infer<L['schema']>
: any;

type DataEntryMap = {
"articles": Record<string, {
Expand All @@ -167,9 +141,7 @@ declare module 'astro:content' {
}>;
"blog": Record<string, {
id: string;
render(): Render[".md"];
slug: string;
body: string;
body?: string;
collection: "blog";
data: InferEntrySchema<"blog">;
rendered?: RenderedContent;
Expand All @@ -178,7 +150,33 @@ declare module 'astro:content' {

};

type AnyEntryMap = ContentEntryMap & DataEntryMap;
type ExtractLoaderTypes<T> = T extends import('astro/loaders').LiveLoader<
infer TData,
infer TEntryFilter,
infer TCollectionFilter,
infer TError
>
? { data: TData; entryFilter: TEntryFilter; collectionFilter: TCollectionFilter; error: TError }
: { data: never; entryFilter: never; collectionFilter: never; error: never };
type ExtractEntryFilterType<T> = ExtractLoaderTypes<T>['entryFilter'];
type ExtractCollectionFilterType<T> = ExtractLoaderTypes<T>['collectionFilter'];
type ExtractErrorType<T> = ExtractLoaderTypes<T>['error'];
type ExtractDataType<T> = ExtractLoaderTypes<T>['data'];

type LiveLoaderDataType<C extends keyof LiveContentConfig['collections']> =
LiveContentConfig['collections'][C]['schema'] extends undefined
? ExtractDataType<LiveContentConfig['collections'][C]['loader']>
: import('astro/zod').infer<
Exclude<LiveContentConfig['collections'][C]['schema'], undefined>
>;
type LiveLoaderEntryFilterType<C extends keyof LiveContentConfig['collections']> =
ExtractEntryFilterType<LiveContentConfig['collections'][C]['loader']>;
type LiveLoaderCollectionFilterType<C extends keyof LiveContentConfig['collections']> =
ExtractCollectionFilterType<LiveContentConfig['collections'][C]['loader']>;
type LiveLoaderErrorType<C extends keyof LiveContentConfig['collections']> = ExtractErrorType<
LiveContentConfig['collections'][C]['loader']
>;

export type ContentConfig = typeof import("../src/content.config.js");
export type LiveContentConfig = never;
}
2 changes: 1 addition & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
legacy-peer-deps=false
legacy-peer-deps=true
save-exact=true
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ astro boilerplate

- Update team, career and blog

## [1.2.0] - 2026-05-28

- Redesign website; added font
- update Astro version

### [Unreleased]

Here we write upgrading notes for brands. It's a team effort to make them as straightforward as possible.
3 changes: 0 additions & 3 deletions astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ export default defineConfig({
devToolbar: {
enabled: false
},
experimental: {
svg: true
},
image: {
service: passthroughImageService()
},
Expand Down
2 changes: 2 additions & 0 deletions domain.code-workspace
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@
},
"zenMode.centerLayout": false,
"cSpell.words": [
"Boisu",
"Poorna",
"Socie",
"withastro"
Expand All @@ -196,5 +197,6 @@
"titleBar.inactiveForeground": "#e7e7e799",
"tab.activeBorder": "#040043"
},
"folder-color.pathColors": []
}
}
Loading
Loading