diff --git a/apps/landing/devup.json b/apps/landing/devup.json index 3bba0fc7..3c94c0b2 100644 --- a/apps/landing/devup.json +++ b/apps/landing/devup.json @@ -35,7 +35,16 @@ "search": "#9C50FF", "kakaoButton": "#DE9800", "kakaoButtonHover": "#C98900", - "kakaoButtonActive": "#B77D00" + "kakaoButtonActive": "#B77D00", + "imageBorder": "#C8C7D1", + "imageDropdown": "#ECECEC", + "imagePlaceholder": "#999999", + "imageDate": "#C9C9C9", + "imageDateNone": "#F2F2F2", + "imageProgress": "#DADADA", + "imageMenuBg": "#FBFBFB", + "imageMenuSelect": "#EDECF7", + "starBg": "#F7F8FF" }, "dark": { "primary": "#6670F9", @@ -71,7 +80,16 @@ "search": "#6FA4FF", "kakaoButton": "#A3740D", "kakaoButtonHover": "#C98900", - "kakaoButtonActive": "#E09900" + "kakaoButtonActive": "#E09900", + "imageBorder": "#4D4C53", + "imageDropdown": "#3A3A3A", + "imagePlaceholder": "#4C4C4C", + "imageDate": "#636363", + "imageDateNone": "#343333", + "imageProgress": "#444444", + "imageMenuBg": "#262626", + "imageMenuSelect": "#3F3F3F", + "starBg": "#232323" } }, "typography": { diff --git a/apps/landing/public/components-og/bottom-sheet.webp b/apps/landing/public/components-og/bottom-sheet.webp new file mode 100644 index 00000000..f9f5b26e Binary files /dev/null and b/apps/landing/public/components-og/bottom-sheet.webp differ diff --git a/apps/landing/public/components-og/button.webp b/apps/landing/public/components-og/button.webp new file mode 100644 index 00000000..00914a56 Binary files /dev/null and b/apps/landing/public/components-og/button.webp differ diff --git a/apps/landing/public/components-og/checkbox.webp b/apps/landing/public/components-og/checkbox.webp new file mode 100644 index 00000000..a845996c Binary files /dev/null and b/apps/landing/public/components-og/checkbox.webp differ diff --git a/apps/landing/public/components-og/color-picker.webp b/apps/landing/public/components-og/color-picker.webp new file mode 100644 index 00000000..53d619da Binary files /dev/null and b/apps/landing/public/components-og/color-picker.webp differ diff --git a/apps/landing/public/components-og/confirm.webp b/apps/landing/public/components-og/confirm.webp new file mode 100644 index 00000000..1323b420 Binary files /dev/null and b/apps/landing/public/components-og/confirm.webp differ diff --git a/apps/landing/public/components-og/date-picker.webp b/apps/landing/public/components-og/date-picker.webp new file mode 100644 index 00000000..43675f91 Binary files /dev/null and b/apps/landing/public/components-og/date-picker.webp differ diff --git a/apps/landing/public/components-og/dropdown.webp b/apps/landing/public/components-og/dropdown.webp new file mode 100644 index 00000000..87d19b07 Binary files /dev/null and b/apps/landing/public/components-og/dropdown.webp differ diff --git a/apps/landing/public/components-og/footer.webp b/apps/landing/public/components-og/footer.webp new file mode 100644 index 00000000..1abfeb3a Binary files /dev/null and b/apps/landing/public/components-og/footer.webp differ diff --git a/apps/landing/public/components-og/header.webp b/apps/landing/public/components-og/header.webp new file mode 100644 index 00000000..12759712 Binary files /dev/null and b/apps/landing/public/components-og/header.webp differ diff --git a/apps/landing/public/components-og/label.webp b/apps/landing/public/components-og/label.webp new file mode 100644 index 00000000..f04c99dc Binary files /dev/null and b/apps/landing/public/components-og/label.webp differ diff --git a/apps/landing/public/components-og/menu.webp b/apps/landing/public/components-og/menu.webp new file mode 100644 index 00000000..739397e2 Binary files /dev/null and b/apps/landing/public/components-og/menu.webp differ diff --git a/apps/landing/public/components-og/pagination.webp b/apps/landing/public/components-og/pagination.webp new file mode 100644 index 00000000..0a7d7cf8 Binary files /dev/null and b/apps/landing/public/components-og/pagination.webp differ diff --git a/apps/landing/public/components-og/progress-bar.webp b/apps/landing/public/components-og/progress-bar.webp new file mode 100644 index 00000000..48200fae Binary files /dev/null and b/apps/landing/public/components-og/progress-bar.webp differ diff --git a/apps/landing/public/components-og/radio.webp b/apps/landing/public/components-og/radio.webp new file mode 100644 index 00000000..11b4690e Binary files /dev/null and b/apps/landing/public/components-og/radio.webp differ diff --git a/apps/landing/public/components-og/search.webp b/apps/landing/public/components-og/search.webp new file mode 100644 index 00000000..f50adf99 Binary files /dev/null and b/apps/landing/public/components-og/search.webp differ diff --git a/apps/landing/public/components-og/select.webp b/apps/landing/public/components-og/select.webp new file mode 100644 index 00000000..4099753c Binary files /dev/null and b/apps/landing/public/components-og/select.webp differ diff --git a/apps/landing/public/components-og/slider.webp b/apps/landing/public/components-og/slider.webp new file mode 100644 index 00000000..5dc12c50 Binary files /dev/null and b/apps/landing/public/components-og/slider.webp differ diff --git a/apps/landing/public/components-og/snackbar.webp b/apps/landing/public/components-og/snackbar.webp new file mode 100644 index 00000000..3408335f Binary files /dev/null and b/apps/landing/public/components-og/snackbar.webp differ diff --git a/apps/landing/public/components-og/stepper.webp b/apps/landing/public/components-og/stepper.webp new file mode 100644 index 00000000..49536397 Binary files /dev/null and b/apps/landing/public/components-og/stepper.webp differ diff --git a/apps/landing/public/components-og/tab.webp b/apps/landing/public/components-og/tab.webp new file mode 100644 index 00000000..90556a39 Binary files /dev/null and b/apps/landing/public/components-og/tab.webp differ diff --git a/apps/landing/public/components-og/text-area.webp b/apps/landing/public/components-og/text-area.webp new file mode 100644 index 00000000..361917aa Binary files /dev/null and b/apps/landing/public/components-og/text-area.webp differ diff --git a/apps/landing/public/components-og/text-box.webp b/apps/landing/public/components-og/text-box.webp new file mode 100644 index 00000000..6758717b Binary files /dev/null and b/apps/landing/public/components-og/text-box.webp differ diff --git a/apps/landing/public/components-og/theme-button.webp b/apps/landing/public/components-og/theme-button.webp new file mode 100644 index 00000000..94f94c9f Binary files /dev/null and b/apps/landing/public/components-og/theme-button.webp differ diff --git a/apps/landing/public/components-og/toggle.webp b/apps/landing/public/components-og/toggle.webp new file mode 100644 index 00000000..f8f2114d Binary files /dev/null and b/apps/landing/public/components-og/toggle.webp differ diff --git a/apps/landing/public/components-og/tooltip.webp b/apps/landing/public/components-og/tooltip.webp new file mode 100644 index 00000000..0ebf9457 Binary files /dev/null and b/apps/landing/public/components-og/tooltip.webp differ diff --git a/apps/landing/public/components-og/uploader.webp b/apps/landing/public/components-og/uploader.webp new file mode 100644 index 00000000..903792b8 Binary files /dev/null and b/apps/landing/public/components-og/uploader.webp differ diff --git a/apps/landing/public/icons/copied.svg b/apps/landing/public/icons/copied.svg new file mode 100644 index 00000000..8dec6e56 --- /dev/null +++ b/apps/landing/public/icons/copied.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/landing/public/icons/copy-code.svg b/apps/landing/public/icons/copy-code.svg new file mode 100644 index 00000000..0a38e8f4 --- /dev/null +++ b/apps/landing/public/icons/copy-code.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/landing/public/icons/solar_heart-bold.svg b/apps/landing/public/icons/solar_heart-bold.svg new file mode 100644 index 00000000..b1640b3c --- /dev/null +++ b/apps/landing/public/icons/solar_heart-bold.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/landing/public/icons/solar_star-bold.svg b/apps/landing/public/icons/solar_star-bold.svg new file mode 100644 index 00000000..17a4d806 --- /dev/null +++ b/apps/landing/public/icons/solar_star-bold.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/landing/script.js b/apps/landing/script.js index 4946fd3f..bfb9f169 100644 --- a/apps/landing/script.js +++ b/apps/landing/script.js @@ -5,16 +5,21 @@ const files = await glob('src/**/*.mdx') const q = [] for await (const file of files) { q.push( - readFile(file).then((content) => { + readFile(file, { + encoding: 'utf-8', + }).then((content) => { const titleIndex = content.toString().indexOf('#') + if (content.trim().length === 0 || titleIndex === -1) { + return null + } + const fileName = file.split(/[/\\]/).pop() + return { text: content.toString().substring(titleIndex), - title: /# (.*)/.exec(content.toString())[1], - url: - '/devup-ui/' + - file - .replace(/src[/\\]app[/\\]\(detail\)[/\\]/, '') - .replace('page.mdx', ''), + title: /(#)+ (.*)/.exec(content.toString())[1], + url: file + .replace(/src[/\\]app[/\\]\(detail\)[/\\]/, '') + .replace(fileName, ''), } }), ) diff --git a/apps/landing/src/app/(detail)/components/LeftMenu.tsx b/apps/landing/src/app/(detail)/components/LeftMenu.tsx index 80f58609..3439df29 100644 --- a/apps/landing/src/app/(detail)/components/LeftMenu.tsx +++ b/apps/landing/src/app/(detail)/components/LeftMenu.tsx @@ -9,16 +9,16 @@ export function LeftMenu() { Layout diff --git a/apps/landing/src/app/(detail)/components/MdxCard.tsx b/apps/landing/src/app/(detail)/components/MdxCard.tsx index df8b37dd..69315fe6 100644 --- a/apps/landing/src/app/(detail)/components/MdxCard.tsx +++ b/apps/landing/src/app/(detail)/components/MdxCard.tsx @@ -20,7 +20,7 @@ export default async function MdxCard({ const content = await readFile( join( process.cwd(), - 'src/app/(detail)/components', + 'src/app/(detail)/components/[component]', src ?? 'button/demo/Variants.tsx', ), { @@ -30,6 +30,10 @@ export default async function MdxCard({ // extract comment const comment = content.match(/\/\*\*[\s\S]*?\*\//)?.[0] const code = content.replace('\n' + comment!, '') + const normalizedCode = code + .split('\n') + .map((line) => line.replaceAll(' ', ' ')) + .join('\n') const normalizedComment = comment ?.replace(/\/\*\*|\*\//g, '') ?.replace(/^\s*\*\s*/gm, '') @@ -64,8 +68,8 @@ export default async function MdxCard({ {normalizedComment ?? ''} - - + + ) diff --git a/apps/landing/src/app/(detail)/components/MdxCardFooter.tsx b/apps/landing/src/app/(detail)/components/MdxCardFooter.tsx index 1d996336..dc93fcfa 100644 --- a/apps/landing/src/app/(detail)/components/MdxCardFooter.tsx +++ b/apps/landing/src/app/(detail)/components/MdxCardFooter.tsx @@ -1,16 +1,27 @@ 'use client' -import { Box, Center, Flex, Text, VStack } from '@devup-ui/react' +import { Box, Center, Flex, Image, Text, VStack } from '@devup-ui/react' import { useState } from 'react' import IconCode from '@/components/icons/IconCode' export default function MdxCardFooter({ + code, children, }: { + code: string children: React.ReactNode }) { const [isOpen, setIsOpen] = useState(false) + const [copied, setCopied] = useState(false) + + const handleCopy = () => { + navigator.clipboard + .writeText(code) + .then(() => setCopied(true)) + .catch(() => setCopied(false)) + } + return ( {isOpen && ( - - {children} - + <> + +
+ + + Copy + +
+
+ + {children} + + )}
) diff --git a/apps/landing/src/app/(detail)/components/button/IconDelete.tsx b/apps/landing/src/app/(detail)/components/[component]/IconDelete.tsx similarity index 100% rename from apps/landing/src/app/(detail)/components/button/IconDelete.tsx rename to apps/landing/src/app/(detail)/components/[component]/IconDelete.tsx diff --git a/apps/landing/src/app/(detail)/components/[component]/bottom-sheet/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/bottom-sheet/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/bottom-sheet/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/bottom-sheet/index.mdx b/apps/landing/src/app/(detail)/components/[component]/bottom-sheet/index.mdx new file mode 100644 index 00000000..3e5ee7d2 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/bottom-sheet/index.mdx @@ -0,0 +1 @@ +`Bottom Sheet` component displays content in a slide-up panel from the bottom of the screen. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/button/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/button/Api.mdx similarity index 100% rename from apps/landing/src/app/(detail)/components/button/Api.mdx rename to apps/landing/src/app/(detail)/components/[component]/button/Api.mdx diff --git a/apps/landing/src/app/(detail)/components/button/demo/Colors.tsx b/apps/landing/src/app/(detail)/components/[component]/button/demo/Colors.tsx similarity index 100% rename from apps/landing/src/app/(detail)/components/button/demo/Colors.tsx rename to apps/landing/src/app/(detail)/components/[component]/button/demo/Colors.tsx diff --git a/apps/landing/src/app/(detail)/components/button/demo/Danger.tsx b/apps/landing/src/app/(detail)/components/[component]/button/demo/Danger.tsx similarity index 100% rename from apps/landing/src/app/(detail)/components/button/demo/Danger.tsx rename to apps/landing/src/app/(detail)/components/[component]/button/demo/Danger.tsx diff --git a/apps/landing/src/app/(detail)/components/button/demo/Disabled.tsx b/apps/landing/src/app/(detail)/components/[component]/button/demo/Disabled.tsx similarity index 100% rename from apps/landing/src/app/(detail)/components/button/demo/Disabled.tsx rename to apps/landing/src/app/(detail)/components/[component]/button/demo/Disabled.tsx diff --git a/apps/landing/src/app/(detail)/components/button/demo/Icon.tsx b/apps/landing/src/app/(detail)/components/[component]/button/demo/Icon.tsx similarity index 98% rename from apps/landing/src/app/(detail)/components/button/demo/Icon.tsx rename to apps/landing/src/app/(detail)/components/[component]/button/demo/Icon.tsx index fcf54105..2e0c2c58 100644 --- a/apps/landing/src/app/(detail)/components/button/demo/Icon.tsx +++ b/apps/landing/src/app/(detail)/components/[component]/button/demo/Icon.tsx @@ -1,7 +1,7 @@ import { Button } from '@devup-ui/components' import { Box, css, Flex } from '@devup-ui/react' -import IconDelete from '../IconDelete' +import IconDelete from '../../IconDelete' /** * **Icon** diff --git a/apps/landing/src/app/(detail)/components/button/demo/Variants.tsx b/apps/landing/src/app/(detail)/components/[component]/button/demo/Variants.tsx similarity index 100% rename from apps/landing/src/app/(detail)/components/button/demo/Variants.tsx rename to apps/landing/src/app/(detail)/components/[component]/button/demo/Variants.tsx diff --git a/apps/landing/src/app/(detail)/components/button/Button.mdx b/apps/landing/src/app/(detail)/components/[component]/button/index.mdx similarity index 69% rename from apps/landing/src/app/(detail)/components/button/Button.mdx rename to apps/landing/src/app/(detail)/components/[component]/button/index.mdx index a466fe85..a2b2b98f 100644 --- a/apps/landing/src/app/(detail)/components/button/Button.mdx +++ b/apps/landing/src/app/(detail)/components/[component]/button/index.mdx @@ -1,5 +1 @@ -**Button** - -#### Button - `Button` component is used to handle user interactions. diff --git a/apps/landing/src/app/(detail)/components/[component]/checkbox/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/checkbox/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/checkbox/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/checkbox/index.mdx b/apps/landing/src/app/(detail)/components/[component]/checkbox/index.mdx new file mode 100644 index 00000000..58d4b2b1 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/checkbox/index.mdx @@ -0,0 +1 @@ +`Checkbox` component allows users to select multiple options. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/color-picker/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/color-picker/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/color-picker/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/color-picker/index.mdx b/apps/landing/src/app/(detail)/components/[component]/color-picker/index.mdx new file mode 100644 index 00000000..8f149a61 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/color-picker/index.mdx @@ -0,0 +1 @@ +`Color Picker` component allows users to select colors from a color palette. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/confirm/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/confirm/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/confirm/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/confirm/index.mdx b/apps/landing/src/app/(detail)/components/[component]/confirm/index.mdx new file mode 100644 index 00000000..124f7fae --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/confirm/index.mdx @@ -0,0 +1 @@ +`Confirm` component displays a confirmation dialog to users. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/date-picker/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/date-picker/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/date-picker/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/date-picker/index.mdx b/apps/landing/src/app/(detail)/components/[component]/date-picker/index.mdx new file mode 100644 index 00000000..08c07d5d --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/date-picker/index.mdx @@ -0,0 +1 @@ +`Date Picker` component allows users to select a date from a calendar interface. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/dropdown/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/dropdown/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/dropdown/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/dropdown/index.mdx b/apps/landing/src/app/(detail)/components/[component]/dropdown/index.mdx new file mode 100644 index 00000000..7ccdce4b --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/dropdown/index.mdx @@ -0,0 +1 @@ +`Dropdown` component displays a list of options that can be toggled. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/footer/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/footer/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/footer/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/footer/index.mdx b/apps/landing/src/app/(detail)/components/[component]/footer/index.mdx new file mode 100644 index 00000000..546e56d2 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/footer/index.mdx @@ -0,0 +1 @@ +`Footer` component displays the bottom section of a page. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/header/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/header/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/header/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/header/index.mdx b/apps/landing/src/app/(detail)/components/[component]/header/index.mdx new file mode 100644 index 00000000..ef274326 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/header/index.mdx @@ -0,0 +1 @@ +`Header` component displays the top navigation area of a page. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/input/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/input/Api.mdx new file mode 100644 index 00000000..38f68784 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/input/Api.mdx @@ -0,0 +1,13 @@ +###### API +`Input` props extends the input HTML attributes. + +
+| Property | Description | Type | Default | +| --- | --- | --- | --- | +| **variant** | The variant of the input | `'primary' \| 'default'` | `'default'` | +| **size** | The size of the input | `'sm' \| 'md' \| 'lg'` | `'md'` | +| **placeholder** | Placeholder text for the input | `string` | `undefined` | +| **type** | The type of input | `'text' \| 'password' \| 'email' \| 'number'` | `'text'` | +| **disabled** | Whether the input is disabled | `boolean` | `false` | +| **error** | Whether the input has an error state | `boolean` | `false` | +
\ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/input/index.mdx b/apps/landing/src/app/(detail)/components/[component]/input/index.mdx new file mode 100644 index 00000000..b2598a47 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/input/index.mdx @@ -0,0 +1 @@ +`Input` component is used to handle text input from users. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/label/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/label/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/label/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/label/index.mdx b/apps/landing/src/app/(detail)/components/[component]/label/index.mdx new file mode 100644 index 00000000..66ac34e6 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/label/index.mdx @@ -0,0 +1 @@ +`Label` component provides text labels for form elements. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/menu/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/menu/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/menu/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/menu/index.mdx b/apps/landing/src/app/(detail)/components/[component]/menu/index.mdx new file mode 100644 index 00000000..97dbf522 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/menu/index.mdx @@ -0,0 +1 @@ +`Menu` component displays a list of navigation options. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/page.tsx b/apps/landing/src/app/(detail)/components/[component]/page.tsx new file mode 100644 index 00000000..a0e41579 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/page.tsx @@ -0,0 +1,133 @@ +import { Box, Flex, Text, VStack } from '@devup-ui/react' + +import { CustomCode } from '@/components/mdx/components/CustomCode' +import { CustomH4 } from '@/components/mdx/components/CustomH4' +import { CustomH6 } from '@/components/mdx/components/CustomH6' +import { CustomParagraph } from '@/components/mdx/components/CustomParagraph' +import { CustomPre } from '@/components/mdx/components/CustomPre' +import { CustomStrong } from '@/components/mdx/components/CustomStrong' +import { getDemos } from '@/utils/get-demos' + +import MdxCard from '../MdxCard' + +export const generateMetadata = async ({ + params, +}: { + params: Promise<{ component: string }> +}) => { + const { component } = await params + const pascalWithSpace = component + .split('-') + .map((item) => item.charAt(0).toUpperCase() + item.slice(1)) + .join(' ') + return { + title: `Devup UI - ${pascalWithSpace}`, + description: `${pascalWithSpace} component`, + alternates: { + canonical: `/components/${component}`, + }, + openGraph: { + title: `Devup UI - ${pascalWithSpace}`, + description: `${pascalWithSpace} component`, + url: `/components/${component}`, + siteName: 'Devup UI', + images: [`/components-og/${component}.webp`], + }, + } +} + +export const generateStaticParams = async () => { + return [ + 'button', + 'input', + 'uploader', + 'toggle', + 'tooltip', + 'textarea', + 'textbox', + 'theme-button', + 'snackbar', + 'stepper', + 'tab', + 'search', + 'select', + 'slider', + 'pagination', + 'progress-bar', + 'radio', + 'header', + 'label', + 'menu', + 'dropdown', + 'footer', + 'color-picker', + 'confirm', + 'date-picker', + 'checkbox', + 'bottom-sheet', + ].map((component) => ({ component })) +} + +export default async function Page({ + params, +}: { + params: Promise<{ component: string }> +}) { + const { component } = await params + const c = await getDemos(component) + const m = Math.ceil(c.length / 2) + const { default: Index } = await import(`./${component}/index.mdx`) + const { default: Api } = await import(`./${component}/Api.mdx`) + const componentName = component + .split('-') + .map((item) => item.charAt(0).toUpperCase() + item.slice(1)) + .join(' ') + + return ( + + + {componentName} + + + {componentName} + + + + + Examples + + + + {c.slice(0, m).map(([Demo, src]) => ( + } src={src} /> + ))} + + + {c.slice(m).map(([Demo, src]) => ( + } src={src} /> + ))} + + + + + + + + ) +} diff --git a/apps/landing/src/app/(detail)/components/[component]/pagination/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/pagination/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/pagination/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/pagination/index.mdx b/apps/landing/src/app/(detail)/components/[component]/pagination/index.mdx new file mode 100644 index 00000000..cf69ad59 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/pagination/index.mdx @@ -0,0 +1 @@ +`Pagination` component allows users to navigate through multiple pages. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/progress-bar/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/progress-bar/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/progress-bar/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/progress-bar/index.mdx b/apps/landing/src/app/(detail)/components/[component]/progress-bar/index.mdx new file mode 100644 index 00000000..8ec889a6 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/progress-bar/index.mdx @@ -0,0 +1 @@ +`Progress Bar` component displays the progress of a task or operation. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/radio/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/radio/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/radio/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/radio/index.mdx b/apps/landing/src/app/(detail)/components/[component]/radio/index.mdx new file mode 100644 index 00000000..dbc0cef6 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/radio/index.mdx @@ -0,0 +1 @@ +`Radio` component allows users to select a single option from a group. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/search/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/search/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/search/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/search/index.mdx b/apps/landing/src/app/(detail)/components/[component]/search/index.mdx new file mode 100644 index 00000000..1f42be2d --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/search/index.mdx @@ -0,0 +1 @@ +`Search` component provides a search input with filtering capabilities. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/select/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/select/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/select/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/select/index.mdx b/apps/landing/src/app/(detail)/components/[component]/select/index.mdx new file mode 100644 index 00000000..c587b299 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/select/index.mdx @@ -0,0 +1 @@ +`Select` component allows users to choose from a list of options. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/slider/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/slider/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/slider/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/slider/index.mdx b/apps/landing/src/app/(detail)/components/[component]/slider/index.mdx new file mode 100644 index 00000000..789d8ff2 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/slider/index.mdx @@ -0,0 +1 @@ +`Slider` component allows users to select a value from a range. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/snackbar/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/snackbar/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/snackbar/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/snackbar/index.mdx b/apps/landing/src/app/(detail)/components/[component]/snackbar/index.mdx new file mode 100644 index 00000000..75cbc49a --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/snackbar/index.mdx @@ -0,0 +1 @@ +`Snackbar` component displays brief notifications to users. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/stepper/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/stepper/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/stepper/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/stepper/index.mdx b/apps/landing/src/app/(detail)/components/[component]/stepper/index.mdx new file mode 100644 index 00000000..9ac4a130 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/stepper/index.mdx @@ -0,0 +1 @@ +`Stepper` component guides users through a multi-step process. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/tab/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/tab/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/tab/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/tab/index.mdx b/apps/landing/src/app/(detail)/components/[component]/tab/index.mdx new file mode 100644 index 00000000..a86e5651 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/tab/index.mdx @@ -0,0 +1 @@ +`Tab` component organizes content into multiple views. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/textarea/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/textarea/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/textarea/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/textarea/index.mdx b/apps/landing/src/app/(detail)/components/[component]/textarea/index.mdx new file mode 100644 index 00000000..4572394f --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/textarea/index.mdx @@ -0,0 +1 @@ +`Textarea` component is used for multi-line text input. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/textbox/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/textbox/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/textbox/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/textbox/index.mdx b/apps/landing/src/app/(detail)/components/[component]/textbox/index.mdx new file mode 100644 index 00000000..c6db46d4 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/textbox/index.mdx @@ -0,0 +1 @@ +`Textbox` component is used for single-line text input. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/theme-button/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/theme-button/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/theme-button/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/theme-button/index.mdx b/apps/landing/src/app/(detail)/components/[component]/theme-button/index.mdx new file mode 100644 index 00000000..1cd8b259 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/theme-button/index.mdx @@ -0,0 +1 @@ +`Theme Button` component is used to switch between light and dark themes. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/toggle/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/toggle/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/toggle/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/toggle/index.mdx b/apps/landing/src/app/(detail)/components/[component]/toggle/index.mdx new file mode 100644 index 00000000..2f8973eb --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/toggle/index.mdx @@ -0,0 +1 @@ +`Toggle` component allows users to switch between two states. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/tooltip/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/tooltip/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/tooltip/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/tooltip/index.mdx b/apps/landing/src/app/(detail)/components/[component]/tooltip/index.mdx new file mode 100644 index 00000000..7e79a439 --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/tooltip/index.mdx @@ -0,0 +1 @@ +`Tooltip` component displays additional information on hover. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/uploader/Api.mdx b/apps/landing/src/app/(detail)/components/[component]/uploader/Api.mdx new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/uploader/Api.mdx @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/[component]/uploader/index.mdx b/apps/landing/src/app/(detail)/components/[component]/uploader/index.mdx new file mode 100644 index 00000000..150a3bad --- /dev/null +++ b/apps/landing/src/app/(detail)/components/[component]/uploader/index.mdx @@ -0,0 +1 @@ +`Uploader` component allows users to upload files. \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/bottom-sheet/page.mdx b/apps/landing/src/app/(detail)/components/bottom-sheet/page.mdx deleted file mode 100644 index 8e85ddc0..00000000 --- a/apps/landing/src/app/(detail)/components/bottom-sheet/page.mdx +++ /dev/null @@ -1 +0,0 @@ -# Bottom Sheet \ No newline at end of file diff --git a/apps/landing/src/app/(detail)/components/button/page.tsx b/apps/landing/src/app/(detail)/components/button/page.tsx deleted file mode 100644 index 2bf48220..00000000 --- a/apps/landing/src/app/(detail)/components/button/page.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { Box, Flex, Text, VStack } from '@devup-ui/react' - -import { CustomCode } from '@/components/mdx/components/CustomCode' -import { CustomH4 } from '@/components/mdx/components/CustomH4' -import { CustomH6 } from '@/components/mdx/components/CustomH6' -import { CustomParagraph } from '@/components/mdx/components/CustomParagraph' -import { CustomPre } from '@/components/mdx/components/CustomPre' -import { CustomStrong } from '@/components/mdx/components/CustomStrong' -import { getDemos } from '@/utils/get-demos' - -import MdxCard from '../MdxCard' -import Api from './Api.mdx' -import Button from './Button.mdx' - -export default async function Page() { - const c = await getDemos(__dirname.split(/[\\/]/).pop()!) - const m = Math.ceil(c.length / 2) - - return ( - -