kofi-stack-template-generator 2.1.41 → 2.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
|
|
2
|
-
> kofi-stack-template-generator@2.1.
|
|
2
|
+
> kofi-stack-template-generator@2.1.42 build /Users/theodenanyoh/Documents/Krumalabs/create-kofi-stack-v2/packages/template-generator
|
|
3
3
|
> pnpm run prebuild && tsup src/index.ts --format esm --dts
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> kofi-stack-template-generator@2.1.
|
|
6
|
+
> kofi-stack-template-generator@2.1.42 prebuild /Users/theodenanyoh/Documents/Krumalabs/create-kofi-stack-v2/packages/template-generator
|
|
7
7
|
> node scripts/generate-templates.js
|
|
8
8
|
|
|
9
9
|
Generating templates.generated.ts...
|
|
10
|
-
Generated templates.generated.ts with
|
|
10
|
+
Generated templates.generated.ts with 339 templates
|
|
11
11
|
CLI Building entry: src/index.ts
|
|
12
12
|
CLI Using tsconfig: tsconfig.json
|
|
13
13
|
CLI tsup v8.5.1
|
|
14
14
|
CLI Target: es2022
|
|
15
15
|
ESM Build start
|
|
16
16
|
ESM dist/index.js 2.28 MB
|
|
17
|
-
ESM ⚡️ Build success in
|
|
17
|
+
ESM ⚡️ Build success in 47ms
|
|
18
18
|
DTS Build start
|
|
19
|
-
DTS ⚡️ Build success in
|
|
19
|
+
DTS ⚡️ Build success in 467ms
|
|
20
20
|
DTS dist/index.d.ts 2.96 KB
|
package/dist/index.js
CHANGED
|
@@ -3804,6 +3804,7 @@ export const TrustColumns: Block = {
|
|
|
3804
3804
|
"marketing/payload/src/components/ui/pagination.tsx": 'import type { ButtonProps } from "@/components/ui/button"\n\nimport { buttonVariants } from "@/components/ui/button"\nimport { cn } from "@/utilities/ui"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react"\nimport type * as React from "react"\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<"nav">) => (\n <nav\n aria-label="pagination"\n className={cn("mx-auto flex w-full justify-center", className)}\n role="navigation"\n {...props}\n />\n)\n\nconst PaginationContent: React.FC<\n { ref?: React.Ref<HTMLUListElement> } & React.HTMLAttributes<HTMLUListElement>\n> = ({ className, ref, ...props }) => (\n <ul className={cn("flex flex-row items-center gap-1", className)} ref={ref} {...props} />\n)\n\nconst PaginationItem: React.FC<\n { ref?: React.Ref<HTMLLIElement> } & React.HTMLAttributes<HTMLLIElement>\n> = ({ className, ref, ...props }) => <li className={cn("", className)} ref={ref} {...props} />\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<ButtonProps, "size"> &\n React.ComponentProps<"button">\n\nconst PaginationLink = ({ className, isActive, size = "icon", ...props }: PaginationLinkProps) => (\n <button\n aria-current={isActive ? "page" : undefined}\n className={cn(\n buttonVariants({\n size,\n variant: isActive ? "outline" : "ghost",\n }),\n className,\n )}\n {...props}\n />\n)\n\nconst PaginationPrevious = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label="Go to previous page"\n className={cn("gap-1 pl-2.5", className)}\n size="default"\n {...props}\n >\n <ChevronLeft className="h-4 w-4" />\n <span>Previous</span>\n </PaginationLink>\n)\n\nconst PaginationNext = ({ className, ...props }: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label="Go to next page"\n className={cn("gap-1 pr-2.5", className)}\n size="default"\n {...props}\n >\n <span>Next</span>\n <ChevronRight className="h-4 w-4" />\n </PaginationLink>\n)\n\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<"span">) => (\n <span\n aria-hidden\n className={cn("flex h-9 w-9 items-center justify-center", className)}\n {...props}\n >\n <MoreHorizontal className="h-4 w-4" />\n <span className="sr-only">More pages</span>\n </span>\n)\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n',
|
|
3805
3805
|
"marketing/payload/src/components/ui/select.tsx": '"use client"\n\nimport { cn } from "@/utilities/ui"\nimport * as SelectPrimitive from "@radix-ui/react-select"\nimport { Check, ChevronDown, ChevronUp } from "lucide-react"\nimport type * as React from "react"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger: React.FC<\n { ref?: React.Ref<HTMLButtonElement> } & React.ComponentProps<typeof SelectPrimitive.Trigger>\n> = ({ children, className, ref, ...props }) => (\n <SelectPrimitive.Trigger\n className={cn(\n "flex h-10 w-full items-center justify-between rounded border border-input bg-background px-3 py-2 text-inherit ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className="h-4 w-4 opacity-50" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n)\n\nconst SelectScrollUpButton: React.FC<\n { ref?: React.Ref<HTMLDivElement> } & React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>\n> = ({ className, ref, ...props }) => (\n <SelectPrimitive.ScrollUpButton\n className={cn("flex cursor-default items-center justify-center py-1", className)}\n ref={ref}\n {...props}\n >\n <ChevronUp className="h-4 w-4" />\n </SelectPrimitive.ScrollUpButton>\n)\n\nconst SelectScrollDownButton: React.FC<\n { ref?: React.Ref<HTMLDivElement> } & React.ComponentProps<\n typeof SelectPrimitive.ScrollDownButton\n >\n> = ({ className, ref, ...props }) => (\n <SelectPrimitive.ScrollDownButton\n className={cn("flex cursor-default items-center justify-center py-1", className)}\n ref={ref}\n {...props}\n >\n <ChevronDown className="h-4 w-4" />\n </SelectPrimitive.ScrollDownButton>\n)\n\nconst SelectContent: React.FC<\n {\n ref?: React.Ref<HTMLDivElement>\n } & React.ComponentProps<typeof SelectPrimitive.Content>\n> = ({ children, className, position = "popper", ref, ...props }) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n "relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded border bg-card text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",\n position === "popper" &&\n "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",\n className,\n )}\n position={position}\n ref={ref}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n "p-1",\n position === "popper" &&\n "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n)\n\nconst SelectLabel: React.FC<\n { ref?: React.Ref<HTMLDivElement> } & React.ComponentProps<typeof SelectPrimitive.Label>\n> = ({ className, ref, ...props }) => (\n <SelectPrimitive.Label\n className={cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className)}\n ref={ref}\n {...props}\n />\n)\n\nconst SelectItem: React.FC<\n { ref?: React.Ref<HTMLDivElement>; value: string } & React.ComponentProps<\n typeof SelectPrimitive.Item\n >\n> = ({ children, className, ref, ...props }) => (\n <SelectPrimitive.Item\n className={cn(\n "relative flex w-full cursor-default select-none items-center rounded py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",\n className,\n )}\n ref={ref}\n {...props}\n >\n <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">\n <SelectPrimitive.ItemIndicator>\n <Check className="h-4 w-4" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n)\n\nconst SelectSeparator: React.FC<\n { ref?: React.Ref<HTMLDivElement> } & React.ComponentProps<typeof SelectPrimitive.Separator>\n> = ({ className, ref, ...props }) => (\n <SelectPrimitive.Separator\n className={cn("-mx-1 my-1 h-px bg-muted", className)}\n ref={ref}\n {...props}\n />\n)\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n',
|
|
3806
3806
|
"marketing/payload/src/components/ui/textarea.tsx": 'import { cn } from "@/utilities/ui"\nimport type * as React from "react"\n\nconst Textarea: React.FC<\n {\n ref?: React.Ref<HTMLTextAreaElement>\n } & React.TextareaHTMLAttributes<HTMLTextAreaElement>\n> = ({ className, ref, ...props }) => {\n return (\n <textarea\n className={cn(\n "flex min-h-[80px] w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n',
|
|
3807
|
+
"marketing/payload/src/cssVariables.ts": "export const cssVariables = {\n breakpoints: {\n xs: 400,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n },\n}\n",
|
|
3807
3808
|
"marketing/payload/src/endpoints/seed/contact-form.ts": `import type { RequiredDataFromCollectionSlug } from "payload"
|
|
3808
3809
|
|
|
3809
3810
|
export const contactForm: RequiredDataFromCollectionSlug<"forms"> = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kofi-stack-template-generator",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.42",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"typecheck": "tsc --noEmit"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"kofi-stack-types": "^2.1.
|
|
20
|
+
"kofi-stack-types": "^2.1.42",
|
|
21
21
|
"handlebars": "^4.7.8",
|
|
22
22
|
"memfs": "^4.9.0"
|
|
23
23
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Auto-generated file. Do not edit manually.
|
|
2
2
|
// Run 'pnpm prebuild' to regenerate.
|
|
3
|
-
// Generated: 2026-01-19T02:
|
|
4
|
-
// Template count:
|
|
3
|
+
// Generated: 2026-01-19T02:28:32.272Z
|
|
4
|
+
// Template count: 339
|
|
5
5
|
|
|
6
6
|
export const EMBEDDED_TEMPLATES: Record<string, string> = {
|
|
7
7
|
"admin/next.config.ts.hbs": "import type { NextConfig } from 'next'\n\nconst nextConfig: NextConfig = {\n transpilePackages: ['@repo/ui', '@repo/backend'],\n}\n\nexport default nextConfig\n",
|
|
@@ -208,6 +208,7 @@ export const EMBEDDED_TEMPLATES: Record<string, string> = {
|
|
|
208
208
|
"marketing/payload/src/components/ui/pagination.tsx": "import type { ButtonProps } from \"@/components/ui/button\"\n\nimport { buttonVariants } from \"@/components/ui/button\"\nimport { cn } from \"@/utilities/ui\"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\nimport type * as React from \"react\"\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n\t<nav\n\t\taria-label=\"pagination\"\n\t\tclassName={cn(\"mx-auto flex w-full justify-center\", className)}\n\t\trole=\"navigation\"\n\t\t{...props}\n\t/>\n)\n\nconst PaginationContent: React.FC<\n\t{ ref?: React.Ref<HTMLUListElement> } & React.HTMLAttributes<HTMLUListElement>\n> = ({ className, ref, ...props }) => (\n\t<ul className={cn(\"flex flex-row items-center gap-1\", className)} ref={ref} {...props} />\n)\n\nconst PaginationItem: React.FC<\n\t{ ref?: React.Ref<HTMLLIElement> } & React.HTMLAttributes<HTMLLIElement>\n> = ({ className, ref, ...props }) => <li className={cn(\"\", className)} ref={ref} {...props} />\n\ntype PaginationLinkProps = {\n\tisActive?: boolean\n} & Pick<ButtonProps, \"size\"> &\n\tReact.ComponentProps<\"button\">\n\nconst PaginationLink = ({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) => (\n\t<button\n\t\taria-current={isActive ? \"page\" : undefined}\n\t\tclassName={cn(\n\t\t\tbuttonVariants({\n\t\t\t\tsize,\n\t\t\t\tvariant: isActive ? \"outline\" : \"ghost\",\n\t\t\t}),\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n)\n\nconst PaginationPrevious = ({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n\t<PaginationLink\n\t\taria-label=\"Go to previous page\"\n\t\tclassName={cn(\"gap-1 pl-2.5\", className)}\n\t\tsize=\"default\"\n\t\t{...props}\n\t>\n\t\t<ChevronLeft className=\"h-4 w-4\" />\n\t\t<span>Previous</span>\n\t</PaginationLink>\n)\n\nconst PaginationNext = ({ className, ...props }: React.ComponentProps<typeof PaginationLink>) => (\n\t<PaginationLink\n\t\taria-label=\"Go to next page\"\n\t\tclassName={cn(\"gap-1 pr-2.5\", className)}\n\t\tsize=\"default\"\n\t\t{...props}\n\t>\n\t\t<span>Next</span>\n\t\t<ChevronRight className=\"h-4 w-4\" />\n\t</PaginationLink>\n)\n\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n\t<span\n\t\taria-hidden\n\t\tclassName={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n\t\t{...props}\n\t>\n\t\t<MoreHorizontal className=\"h-4 w-4\" />\n\t\t<span className=\"sr-only\">More pages</span>\n\t</span>\n)\n\nexport {\n\tPagination,\n\tPaginationContent,\n\tPaginationEllipsis,\n\tPaginationItem,\n\tPaginationLink,\n\tPaginationNext,\n\tPaginationPrevious,\n}\n",
|
|
209
209
|
"marketing/payload/src/components/ui/select.tsx": "\"use client\"\n\nimport { cn } from \"@/utilities/ui\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\nimport type * as React from \"react\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger: React.FC<\n\t{ ref?: React.Ref<HTMLButtonElement> } & React.ComponentProps<typeof SelectPrimitive.Trigger>\n> = ({ children, className, ref, ...props }) => (\n\t<SelectPrimitive.Trigger\n\t\tclassName={cn(\n\t\t\t\"flex h-10 w-full items-center justify-between rounded border border-input bg-background px-3 py-2 text-inherit ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n\t\t\tclassName,\n\t\t)}\n\t\tref={ref}\n\t\t{...props}\n\t>\n\t\t{children}\n\t\t<SelectPrimitive.Icon asChild>\n\t\t\t<ChevronDown className=\"h-4 w-4 opacity-50\" />\n\t\t</SelectPrimitive.Icon>\n\t</SelectPrimitive.Trigger>\n)\n\nconst SelectScrollUpButton: React.FC<\n\t{ ref?: React.Ref<HTMLDivElement> } & React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>\n> = ({ className, ref, ...props }) => (\n\t<SelectPrimitive.ScrollUpButton\n\t\tclassName={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n\t\tref={ref}\n\t\t{...props}\n\t>\n\t\t<ChevronUp className=\"h-4 w-4\" />\n\t</SelectPrimitive.ScrollUpButton>\n)\n\nconst SelectScrollDownButton: React.FC<\n\t{ ref?: React.Ref<HTMLDivElement> } & React.ComponentProps<\n\t\ttypeof SelectPrimitive.ScrollDownButton\n\t>\n> = ({ className, ref, ...props }) => (\n\t<SelectPrimitive.ScrollDownButton\n\t\tclassName={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n\t\tref={ref}\n\t\t{...props}\n\t>\n\t\t<ChevronDown className=\"h-4 w-4\" />\n\t</SelectPrimitive.ScrollDownButton>\n)\n\nconst SelectContent: React.FC<\n\t{\n\t\tref?: React.Ref<HTMLDivElement>\n\t} & React.ComponentProps<typeof SelectPrimitive.Content>\n> = ({ children, className, position = \"popper\", ref, ...props }) => (\n\t<SelectPrimitive.Portal>\n\t\t<SelectPrimitive.Content\n\t\t\tclassName={cn(\n\t\t\t\t\"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded border bg-card text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tposition={position}\n\t\t\tref={ref}\n\t\t\t{...props}\n\t\t>\n\t\t\t<SelectScrollUpButton />\n\t\t\t<SelectPrimitive.Viewport\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"p-1\",\n\t\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\t\"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</SelectPrimitive.Viewport>\n\t\t\t<SelectScrollDownButton />\n\t\t</SelectPrimitive.Content>\n\t</SelectPrimitive.Portal>\n)\n\nconst SelectLabel: React.FC<\n\t{ ref?: React.Ref<HTMLDivElement> } & React.ComponentProps<typeof SelectPrimitive.Label>\n> = ({ className, ref, ...props }) => (\n\t<SelectPrimitive.Label\n\t\tclassName={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n\t\tref={ref}\n\t\t{...props}\n\t/>\n)\n\nconst SelectItem: React.FC<\n\t{ ref?: React.Ref<HTMLDivElement>; value: string } & React.ComponentProps<\n\t\ttypeof SelectPrimitive.Item\n\t>\n> = ({ children, className, ref, ...props }) => (\n\t<SelectPrimitive.Item\n\t\tclassName={cn(\n\t\t\t\"relative flex w-full cursor-default select-none items-center rounded py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n\t\t\tclassName,\n\t\t)}\n\t\tref={ref}\n\t\t{...props}\n\t>\n\t\t<span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n\t\t\t<SelectPrimitive.ItemIndicator>\n\t\t\t\t<Check className=\"h-4 w-4\" />\n\t\t\t</SelectPrimitive.ItemIndicator>\n\t\t</span>\n\n\t\t<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n\t</SelectPrimitive.Item>\n)\n\nconst SelectSeparator: React.FC<\n\t{ ref?: React.Ref<HTMLDivElement> } & React.ComponentProps<typeof SelectPrimitive.Separator>\n> = ({ className, ref, ...props }) => (\n\t<SelectPrimitive.Separator\n\t\tclassName={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n\t\tref={ref}\n\t\t{...props}\n\t/>\n)\n\nexport {\n\tSelect,\n\tSelectContent,\n\tSelectGroup,\n\tSelectItem,\n\tSelectLabel,\n\tSelectScrollDownButton,\n\tSelectScrollUpButton,\n\tSelectSeparator,\n\tSelectTrigger,\n\tSelectValue,\n}\n",
|
|
210
210
|
"marketing/payload/src/components/ui/textarea.tsx": "import { cn } from \"@/utilities/ui\"\nimport type * as React from \"react\"\n\nconst Textarea: React.FC<\n\t{\n\t\tref?: React.Ref<HTMLTextAreaElement>\n\t} & React.TextareaHTMLAttributes<HTMLTextAreaElement>\n> = ({ className, ref, ...props }) => {\n\treturn (\n\t\t<textarea\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-h-[80px] w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tref={ref}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport { Textarea }\n",
|
|
211
|
+
"marketing/payload/src/cssVariables.ts": "export const cssVariables = {\n breakpoints: {\n xs: 400,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n },\n}\n",
|
|
211
212
|
"marketing/payload/src/endpoints/seed/contact-form.ts": "import type { RequiredDataFromCollectionSlug } from \"payload\"\n\nexport const contactForm: RequiredDataFromCollectionSlug<\"forms\"> = {\n\tconfirmationMessage: {\n\t\troot: {\n\t\t\ttype: \"root\",\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttype: \"heading\",\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\tdetail: 0,\n\t\t\t\t\t\t\tformat: 0,\n\t\t\t\t\t\t\tmode: \"normal\",\n\t\t\t\t\t\t\tstyle: \"\",\n\t\t\t\t\t\t\ttext: \"The contact form has been submitted successfully.\",\n\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdirection: \"ltr\",\n\t\t\t\t\tformat: \"\",\n\t\t\t\t\tindent: 0,\n\t\t\t\t\ttag: \"h2\",\n\t\t\t\t\tversion: 1,\n\t\t\t\t},\n\t\t\t],\n\t\t\tdirection: \"ltr\",\n\t\t\tformat: \"\",\n\t\t\tindent: 0,\n\t\t\tversion: 1,\n\t\t},\n\t},\n\tconfirmationType: \"message\",\n\tcreatedAt: \"2023-01-12T21:47:41.374Z\",\n\temails: [\n\t\t{\n\t\t\temailFrom: '\"Payload\" \\u003Cdemo@payloadcms.com\\u003E',\n\t\t\temailTo: \"{{email}}\",\n\t\t\tmessage: {\n\t\t\t\troot: {\n\t\t\t\t\ttype: \"root\",\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"paragraph\",\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\tdetail: 0,\n\t\t\t\t\t\t\t\t\tformat: 0,\n\t\t\t\t\t\t\t\t\tmode: \"normal\",\n\t\t\t\t\t\t\t\t\tstyle: \"\",\n\t\t\t\t\t\t\t\t\ttext: \"Your contact form submission was successfully received.\",\n\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tdirection: \"ltr\",\n\t\t\t\t\t\t\tformat: \"\",\n\t\t\t\t\t\t\tindent: 0,\n\t\t\t\t\t\t\ttextFormat: 0,\n\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdirection: \"ltr\",\n\t\t\t\t\tformat: \"\",\n\t\t\t\t\tindent: 0,\n\t\t\t\t\tversion: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t\tsubject: \"You've received a new message.\",\n\t\t},\n\t],\n\tfields: [\n\t\t{\n\t\t\tname: \"full-name\",\n\t\t\tblockName: \"full-name\",\n\t\t\tblockType: \"text\",\n\t\t\tlabel: \"Full Name\",\n\t\t\trequired: true,\n\t\t\twidth: 100,\n\t\t},\n\t\t{\n\t\t\tname: \"email\",\n\t\t\tblockName: \"email\",\n\t\t\tblockType: \"email\",\n\t\t\tlabel: \"Email\",\n\t\t\trequired: true,\n\t\t\twidth: 100,\n\t\t},\n\t\t{\n\t\t\tname: \"phone\",\n\t\t\tblockName: \"phone\",\n\t\t\tblockType: \"number\",\n\t\t\tlabel: \"Phone\",\n\t\t\trequired: false,\n\t\t\twidth: 100,\n\t\t},\n\t\t{\n\t\t\tname: \"message\",\n\t\t\tblockName: \"message\",\n\t\t\tblockType: \"textarea\",\n\t\t\tlabel: \"Message\",\n\t\t\trequired: true,\n\t\t\twidth: 100,\n\t\t},\n\t],\n\tredirect: undefined,\n\tsubmitButtonLabel: \"Submit\",\n\ttitle: \"Contact Form\",\n\tupdatedAt: \"2023-01-12T21:47:41.374Z\",\n}\n",
|
|
212
213
|
"marketing/payload/src/endpoints/seed/contact-page.ts": "import type { Form } from \"@/payload-types\"\nimport type { RequiredDataFromCollectionSlug } from \"payload\"\n\ntype ContactArgs = {\n\tcontactForm: Form\n}\n\nexport const contact: (args: ContactArgs) => RequiredDataFromCollectionSlug<\"pages\"> = ({\n\tcontactForm,\n}) => {\n\treturn {\n\t\tslug: \"contact\",\n\t\t_status: \"published\",\n\t\thero: {\n\t\t\ttype: \"none\",\n\t\t},\n\t\tlayout: [\n\t\t\t{\n\t\t\t\tblockType: \"formBlock\",\n\t\t\t\tenableIntro: true,\n\t\t\t\tform: contactForm,\n\t\t\t\tintroContent: {\n\t\t\t\t\troot: {\n\t\t\t\t\t\ttype: \"root\",\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: \"heading\",\n\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\t\tdetail: 0,\n\t\t\t\t\t\t\t\t\t\tformat: 0,\n\t\t\t\t\t\t\t\t\t\tmode: \"normal\",\n\t\t\t\t\t\t\t\t\t\tstyle: \"\",\n\t\t\t\t\t\t\t\t\t\ttext: \"Example contact form:\",\n\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tdirection: \"ltr\",\n\t\t\t\t\t\t\t\tformat: \"\",\n\t\t\t\t\t\t\t\tindent: 0,\n\t\t\t\t\t\t\t\ttag: \"h3\",\n\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tdirection: \"ltr\",\n\t\t\t\t\t\tformat: \"\",\n\t\t\t\t\t\tindent: 0,\n\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\ttitle: \"Contact\",\n\t}\n}\n",
|
|
213
214
|
"marketing/payload/src/endpoints/seed/directoryhub/about.ts": "import type { Form, Page } from \"@/payload-types\"\nimport { createParagraph } from \"./richtext-helper\"\n\ntype AboutArgs = {\n\tcontactForm: Form\n}\n\nexport const directoryHubAbout = ({ contactForm }: AboutArgs): Partial<Page> => {\n\treturn {\n\t\tslug: \"about\",\n\t\t_status: \"published\",\n\t\thero: {\n\t\t\ttype: \"lowImpact\",\n\t\t\trichText: {\n\t\t\t\troot: {\n\t\t\t\t\ttype: \"root\",\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"heading\",\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\tdetail: 0,\n\t\t\t\t\t\t\t\t\tformat: 0,\n\t\t\t\t\t\t\t\t\tmode: \"normal\",\n\t\t\t\t\t\t\t\t\tstyle: \"\",\n\t\t\t\t\t\t\t\t\ttext: \"We help entrepreneurs build directory businesses\",\n\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tdirection: \"ltr\" as const,\n\t\t\t\t\t\t\tformat: \"\" as const,\n\t\t\t\t\t\t\tindent: 0,\n\t\t\t\t\t\t\ttag: \"h1\",\n\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"paragraph\",\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\tdetail: 0,\n\t\t\t\t\t\t\t\t\tformat: 0,\n\t\t\t\t\t\t\t\t\tmode: \"normal\",\n\t\t\t\t\t\t\t\t\tstyle: \"\",\n\t\t\t\t\t\t\t\t\ttext: \"DirectoryHub makes it easy for anyone to launch, monetize, and grow niche directory websites — without writing code.\",\n\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tdirection: \"ltr\" as const,\n\t\t\t\t\t\t\tformat: \"\" as const,\n\t\t\t\t\t\t\tindent: 0,\n\t\t\t\t\t\t\ttextFormat: 0,\n\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdirection: \"ltr\" as const,\n\t\t\t\t\tformat: \"\" as const,\n\t\t\t\t\tindent: 0,\n\t\t\t\t\tversion: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tlayout: [\n\t\t\t// Mission Section\n\t\t\t{\n\t\t\t\tblockType: \"featureShowcase\",\n\t\t\t\tblockName: \"Our Mission\",\n\t\t\t\tlabel: \"Our Mission\",\n\t\t\t\theadline: \"Democratizing the directory business model\",\n\t\t\t\tdescription: createParagraph(\n\t\t\t\t\t\"Directory websites remain one of the most sustainable online business models, yet building one traditionally requires significant technical expertise. We believe anyone with niche knowledge should be able to turn that expertise into a profitable directory business. DirectoryHub handles the technical complexity so you can focus on what matters: curating great content and growing your community.\",\n\t\t\t\t),\n\t\t\t\tlink: {\n\t\t\t\t\ttype: \"custom\",\n\t\t\t\t\turl: \"/pricing\",\n\t\t\t\t\tlabel: \"View pricing\",\n\t\t\t\t\tappearance: \"default\",\n\t\t\t\t},\n\t\t\t\timagePosition: \"right\",\n\t\t\t\tfeatures: [\n\t\t\t\t\t{ text: \"No coding required\" },\n\t\t\t\t\t{ text: \"Built-in monetization\" },\n\t\t\t\t\t{ text: \"Enterprise-grade SEO\" },\n\t\t\t\t\t{ text: \"Scale as you grow\" },\n\t\t\t\t],\n\t\t\t},\n\t\t\t// Stats Banner\n\t\t\t{\n\t\t\t\tblockType: \"proofBanner\",\n\t\t\t\tblockName: \"Impact Stats\",\n\t\t\t\tstyle: \"withBackground\",\n\t\t\t\theadline: \"Trusted by directory builders worldwide\",\n\t\t\t\tsubtext:\n\t\t\t\t\t\"Join hundreds of entrepreneurs who have launched successful directories with DirectoryHub\",\n\t\t\t},\n\t\t\t// Values Grid\n\t\t\t{\n\t\t\t\tblockType: \"bentoFeatures\",\n\t\t\t\tblockName: \"Our Values\",\n\t\t\t\theading: \"What we stand for\",\n\t\t\t\tsubheading: \"The principles that guide everything we build\",\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\tstyle: \"gradient\",\n\t\t\t\t\t\ticon: \"zap\",\n\t\t\t\t\t\ttitle: \"Simplicity First\",\n\t\t\t\t\t\tdescription: createParagraph(\n\t\t\t\t\t\t\t\"We remove complexity so you can focus on building your business.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\tstyle: \"accent\",\n\t\t\t\t\t\ticon: \"rocket\",\n\t\t\t\t\t\ttitle: \"Built for Growth\",\n\t\t\t\t\t\tdescription: createParagraph(\n\t\t\t\t\t\t\t\"Every feature is designed to help you scale sustainably.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\tstyle: \"default\",\n\t\t\t\t\t\ticon: \"shield\",\n\t\t\t\t\t\ttitle: \"Transparency\",\n\t\t\t\t\t\tdescription: createParagraph(\n\t\t\t\t\t\t\t\"Clear pricing, no hidden fees, honest communication always.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\tstyle: \"primary\",\n\t\t\t\t\t\ticon: \"users\",\n\t\t\t\t\t\ttitle: \"Customer Success\",\n\t\t\t\t\t\tdescription: createParagraph(\"Your success is our success. We invest in your growth.\"),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\tstyle: \"default\",\n\t\t\t\t\t\ticon: \"globe\",\n\t\t\t\t\t\ttitle: \"Quality Matters\",\n\t\t\t\t\t\tdescription: createParagraph(\n\t\t\t\t\t\t\t\"We build tools that help you maintain high-quality directories.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\tstyle: \"default\",\n\t\t\t\t\t\ticon: \"settings\",\n\t\t\t\t\t\ttitle: \"Continuous Innovation\",\n\t\t\t\t\t\tdescription: createParagraph(\n\t\t\t\t\t\t\t\"We constantly improve our platform based on customer feedback.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t// Our Story\n\t\t\t{\n\t\t\t\tblockType: \"featureShowcase\",\n\t\t\t\tblockName: \"Our Story\",\n\t\t\t\tlabel: \"Our Story\",\n\t\t\t\theadline: \"From frustration to solution\",\n\t\t\t\tdescription: createParagraph(\n\t\t\t\t\t\"DirectoryHub was born when our founders tried to build a niche directory and discovered how much technical overhead was involved. After months of custom development for what seemed like a simple project, we realized there had to be a better way. We built DirectoryHub to be the platform we wished existed — one that handles all the technical complexity while giving directory builders complete control over their business.\",\n\t\t\t\t),\n\t\t\t\tlink: {\n\t\t\t\t\ttype: \"custom\",\n\t\t\t\t\turl: \"/sign-up\",\n\t\t\t\t\tlabel: \"Start building free\",\n\t\t\t\t\tappearance: \"default\",\n\t\t\t\t},\n\t\t\t\timagePosition: \"left\",\n\t\t\t\tfeatures: [\n\t\t\t\t\t{ text: \"Founded by directory builders\" },\n\t\t\t\t\t{ text: \"Bootstrapped and profitable\" },\n\t\t\t\t\t{ text: \"Customer-funded development\" },\n\t\t\t\t\t{ text: \"Global remote team\" },\n\t\t\t\t],\n\t\t\t},\n\t\t\t// Contact Section\n\t\t\t{\n\t\t\t\tblockType: \"content\",\n\t\t\t\tblockName: \"Contact Header\",\n\t\t\t\tcolumns: [\n\t\t\t\t\t{\n\t\t\t\t\t\trichText: {\n\t\t\t\t\t\t\troot: {\n\t\t\t\t\t\t\t\ttype: \"root\",\n\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"heading\",\n\t\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\t\t\t\tdetail: 0,\n\t\t\t\t\t\t\t\t\t\t\t\tformat: 0,\n\t\t\t\t\t\t\t\t\t\t\t\tmode: \"normal\",\n\t\t\t\t\t\t\t\t\t\t\t\tstyle: \"\",\n\t\t\t\t\t\t\t\t\t\t\t\ttext: \"Get in Touch\",\n\t\t\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tdirection: \"ltr\" as const,\n\t\t\t\t\t\t\t\t\t\tformat: \"\" as const,\n\t\t\t\t\t\t\t\t\t\tindent: 0,\n\t\t\t\t\t\t\t\t\t\ttag: \"h2\",\n\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"paragraph\",\n\t\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\t\t\t\t\tdetail: 0,\n\t\t\t\t\t\t\t\t\t\t\t\tformat: 0,\n\t\t\t\t\t\t\t\t\t\t\t\tmode: \"normal\",\n\t\t\t\t\t\t\t\t\t\t\t\tstyle: \"\",\n\t\t\t\t\t\t\t\t\t\t\t\ttext: \"Have questions about DirectoryHub? We'd love to hear from you. Send us a message and our team will respond within 24 hours.\",\n\t\t\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tdirection: \"ltr\" as const,\n\t\t\t\t\t\t\t\t\t\tformat: \"\" as const,\n\t\t\t\t\t\t\t\t\t\tindent: 0,\n\t\t\t\t\t\t\t\t\t\ttextFormat: 0,\n\t\t\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tdirection: \"ltr\" as const,\n\t\t\t\t\t\t\t\tformat: \"\" as const,\n\t\t\t\t\t\t\t\tindent: 0,\n\t\t\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsize: \"full\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t// Contact Form\n\t\t\t{\n\t\t\t\tblockType: \"formBlock\",\n\t\t\t\tblockName: \"Contact Form\",\n\t\t\t\tform: contactForm.id,\n\t\t\t\tenableIntro: false,\n\t\t\t},\n\t\t\t// Final CTA\n\t\t\t{\n\t\t\t\tblockType: \"proofBanner\",\n\t\t\t\tblockName: \"Footer CTA\",\n\t\t\t\tstyle: \"centered\",\n\t\t\t\theadline: \"Ready to build your directory?\",\n\t\t\t\tsubtext: \"Join hundreds of entrepreneurs building successful directory businesses.\",\n\t\t\t\tlinks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlink: {\n\t\t\t\t\t\t\ttype: \"custom\",\n\t\t\t\t\t\t\tappearance: \"default\",\n\t\t\t\t\t\t\tlabel: \"Start for free\",\n\t\t\t\t\t\t\turl: \"/sign-up\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlink: {\n\t\t\t\t\t\t\ttype: \"custom\",\n\t\t\t\t\t\t\tappearance: \"outline\",\n\t\t\t\t\t\t\tlabel: \"View pricing\",\n\t\t\t\t\t\t\turl: \"/pricing\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t\tmeta: {\n\t\t\tdescription:\n\t\t\t\t\"Learn about DirectoryHub — the platform that makes it easy to build, monetize, and grow directory websites. Founded by directory builders, for directory builders.\",\n\t\t\ttitle: \"About DirectoryHub — Our Mission & Story\",\n\t\t},\n\t\ttitle: \"About\",\n\t}\n}\n",
|