forked from sashaastiadi/www_mycelium_net
Compare commits
3 Commits
developmen
...
02da6bb5ed
| Author | SHA1 | Date | |
|---|---|---|---|
| 02da6bb5ed | |||
| d344652a2f | |||
| 4d89745a57 |
@@ -1,9 +1,12 @@
|
|||||||
|
|
||||||
/** @type {import('next').NextConfig} */
|
/** @type {import('next').NextConfig} */
|
||||||
const nextConfig = {
|
const nextConfig = {
|
||||||
output: 'export',
|
output: 'export',
|
||||||
|
trailingSlash: true,
|
||||||
images: {
|
images: {
|
||||||
unoptimized: true,
|
unoptimized: true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = nextConfig
|
module.exports = nextConfig
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
1
out/404/index.html
Normal file
1
out/404/index.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
out/_next/static/chunks/184-d56c7ceab3510cb8.js
Normal file
1
out/_next/static/chunks/184-d56c7ceab3510cb8.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
|||||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{7499:function(e,n,_){Promise.resolve().then(_.t.bind(_,7856,23)),Promise.resolve().then(_.t.bind(_,1983,23))},1983:function(){},7856:function(e){e.exports={style:{fontFamily:"'__Inter_f367f3', '__Inter_Fallback_f367f3'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}}},function(e){e.O(0,[348,971,23,744],function(){return e(e.s=7499)}),_N_E=e.O()}]);
|
|
||||||
1
out/_next/static/chunks/app/layout-7fe298ab6783ed17.js
Normal file
1
out/_next/static/chunks/app/layout-7fe298ab6783ed17.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
out/_next/static/chunks/main-e75e1c8aa841404e.js
Normal file
1
out/_next/static/chunks/main-e75e1c8aa841404e.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
3
out/_next/static/css/188b5c5417cfb897.css
Normal file
3
out/_next/static/css/188b5c5417cfb897.css
Normal file
File diff suppressed because one or more lines are too long
1
out/_next/static/media/logomark.48d31787.svg
Normal file
1
out/_next/static/media/logomark.48d31787.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 110 KiB |
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 107 KiB |
File diff suppressed because one or more lines are too long
1
out/download/index.html
Normal file
1
out/download/index.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
out/favicon.ico
BIN
out/favicon.ico
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
20
package-lock.json
generated
20
package-lock.json
generated
@@ -14,11 +14,12 @@
|
|||||||
"@types/node": "^20.10.8",
|
"@types/node": "^20.10.8",
|
||||||
"@types/react": "^18.2.47",
|
"@types/react": "^18.2.47",
|
||||||
"@types/react-dom": "^18.2.18",
|
"@types/react-dom": "^18.2.18",
|
||||||
"clsx": "^2.1.0",
|
"clsx": "^2.1.1",
|
||||||
"framer-motion": "^10.15.0",
|
"framer-motion": "^10.15.0",
|
||||||
"next": "^14.0.4",
|
"next": "^14.0.4",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
|
"tailwind-merge": "^3.3.1",
|
||||||
"tailwindcss": "^4.1.7",
|
"tailwindcss": "^4.1.7",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"use-debounce": "^10.0.0"
|
"use-debounce": "^10.0.0"
|
||||||
@@ -1881,9 +1882,10 @@
|
|||||||
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
|
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
|
||||||
},
|
},
|
||||||
"node_modules/clsx": {
|
"node_modules/clsx": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
|
||||||
"integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==",
|
"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
@@ -4942,6 +4944,16 @@
|
|||||||
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
|
||||||
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
|
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
|
||||||
},
|
},
|
||||||
|
"node_modules/tailwind-merge": {
|
||||||
|
"version": "3.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz",
|
||||||
|
"integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==",
|
||||||
|
"license": "MIT",
|
||||||
|
"funding": {
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/dcastil"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/tailwindcss": {
|
"node_modules/tailwindcss": {
|
||||||
"version": "4.1.7",
|
"version": "4.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.7.tgz",
|
||||||
|
|||||||
@@ -16,11 +16,12 @@
|
|||||||
"@types/node": "^20.10.8",
|
"@types/node": "^20.10.8",
|
||||||
"@types/react": "^18.2.47",
|
"@types/react": "^18.2.47",
|
||||||
"@types/react-dom": "^18.2.18",
|
"@types/react-dom": "^18.2.18",
|
||||||
"clsx": "^2.1.0",
|
"clsx": "^2.1.1",
|
||||||
"framer-motion": "^10.15.0",
|
"framer-motion": "^10.15.0",
|
||||||
"next": "^14.0.4",
|
"next": "^14.0.4",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
|
"tailwind-merge": "^3.3.1",
|
||||||
"tailwindcss": "^4.1.7",
|
"tailwindcss": "^4.1.7",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"use-debounce": "^10.0.0"
|
"use-debounce": "^10.0.0"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { type Metadata } from 'next'
|
import { type Metadata } from 'next'
|
||||||
import { Inter } from 'next/font/google'
|
import { Inter } from 'next/font/google'
|
||||||
|
import Script from 'next/script'
|
||||||
import clsx from 'clsx'
|
import clsx from 'clsx'
|
||||||
|
|
||||||
import '@/styles/tailwind.css'
|
import '@/styles/tailwind.css'
|
||||||
@@ -29,7 +30,28 @@ export default function RootLayout({
|
|||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<html lang="en" className={clsx('bg-gray-50 antialiased', inter.variable)}>
|
<html lang="en" className={clsx('bg-gray-50 antialiased', inter.variable)}>
|
||||||
<body>{children}</body>
|
<body>
|
||||||
|
{children}
|
||||||
|
|
||||||
|
{/* Crisp Chat */}
|
||||||
|
<Script
|
||||||
|
id="crisp-init"
|
||||||
|
strategy="afterInteractive"
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: `
|
||||||
|
window.$crisp = [];
|
||||||
|
window.CRISP_WEBSITE_ID = "1a5a5241-91cb-4a41-8323-5ba5ec574da0";
|
||||||
|
(function () {
|
||||||
|
d = document;
|
||||||
|
s = d.createElement("script");
|
||||||
|
s.src = "https://client.crisp.chat/l.js";
|
||||||
|
s.async = 1;
|
||||||
|
d.getElementsByTagName("head")[0].appendChild(s);
|
||||||
|
})();
|
||||||
|
`,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
68
src/components/Texts.tsx
Normal file
68
src/components/Texts.tsx
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
'use client'
|
||||||
|
|
||||||
|
import React from 'react'
|
||||||
|
import { cn } from '@/lib/utils'
|
||||||
|
|
||||||
|
const colorVariants = {
|
||||||
|
primary: 'text-gray-900',
|
||||||
|
secondary: 'text-gray-600',
|
||||||
|
light: 'text-gray-50',
|
||||||
|
} as const
|
||||||
|
|
||||||
|
type TextOwnProps = {
|
||||||
|
color?: keyof typeof colorVariants
|
||||||
|
className?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Polymorphic helpers
|
||||||
|
type PolymorphicProps<E extends React.ElementType, P> = P & {
|
||||||
|
as?: E
|
||||||
|
} & Omit<React.ComponentPropsWithoutRef<E>, keyof P | 'as'>
|
||||||
|
|
||||||
|
const createTextComponent = <DefaultElement extends React.ElementType>(
|
||||||
|
defaultElement: DefaultElement,
|
||||||
|
defaultClassName: string
|
||||||
|
) => {
|
||||||
|
type Props<E extends React.ElementType = DefaultElement> = PolymorphicProps<
|
||||||
|
E,
|
||||||
|
TextOwnProps
|
||||||
|
>
|
||||||
|
|
||||||
|
function Text<E extends React.ElementType = DefaultElement>({
|
||||||
|
as,
|
||||||
|
color = 'primary',
|
||||||
|
className,
|
||||||
|
children,
|
||||||
|
...props
|
||||||
|
}: Props<E>) {
|
||||||
|
const Tag = (as || defaultElement) as React.ElementType
|
||||||
|
return (
|
||||||
|
<Tag
|
||||||
|
className={cn(defaultClassName, colorVariants[color], className)}
|
||||||
|
{...(props as object)}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</Tag>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
;(Text as any).displayName = `Text(${
|
||||||
|
typeof defaultElement === 'string' ? defaultElement : 'Component'
|
||||||
|
})`
|
||||||
|
return Text
|
||||||
|
}
|
||||||
|
|
||||||
|
// Exports based on your tailwind.css and the example
|
||||||
|
export const H1 = createTextComponent(
|
||||||
|
'h1',
|
||||||
|
'text-5xl lg:text-8xl font-medium tracking-tight'
|
||||||
|
)
|
||||||
|
export const H2 = createTextComponent('h2', 'text-4xl lg:text-6xl font-medium')
|
||||||
|
export const H3 = createTextComponent('h3', 'text-3xl lg:text-5xl font-medium')
|
||||||
|
export const H4 = createTextComponent('h4', 'text-2xl lg:text-4xl font-semibold')
|
||||||
|
export const P = createTextComponent(
|
||||||
|
'p',
|
||||||
|
'text-base lg:text-lg leading-relaxed'
|
||||||
|
)
|
||||||
|
export const Small = createTextComponent('small', 'text-sm font-medium')
|
||||||
|
export const Subtle = createTextComponent('p', 'text-sm text-gray-500')
|
||||||
6
src/lib/utils.ts
Normal file
6
src/lib/utils.ts
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import { type ClassValue, clsx } from 'clsx'
|
||||||
|
import { twMerge } from 'tailwind-merge'
|
||||||
|
|
||||||
|
export function cn(...inputs: ClassValue[]) {
|
||||||
|
return twMerge(clsx(inputs))
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user