catastyle 0.1.2 → 0.1.4
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/README.md +7 -4
- package/dist/index.d.mts +28 -14
- package/dist/index.d.ts +28 -14
- package/dist/index.js +105 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +106 -21
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +4 -8
- package/scripts/templates/catastyle.config.ts.template +36 -0
- package/scripts/templates/logo.config.ts.template +0 -14
- package/scripts/templates/theme.config.ts.template +0 -34
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/fontSize.ts","../src/types/breakpoints.ts","../src/components/Button/styles.ts","../src/components/Button/Button.tsx","../src/components/Input/styles.ts","../src/components/Checkbox/styles.ts","../src/components/Text/styles.ts","../src/components/Text/Text.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Footer/styles.ts","../src/components/Footer/Footer.tsx","../src/components/Input/Input.tsx","../src/components/Label/styles.ts","../src/components/Label/Label.tsx","../src/components/Link/styles.ts","../src/components/Link/Link.tsx","../src/components/Logo/styles.ts","../src/utils/logoLoader.ts","../src/components/Logo/Logo.tsx","../src/styles/global.ts","../src/components/ThemeButton/styles.ts","../src/components/ThemeButton/ThemeButton.tsx","../src/themes/dark.ts","../src/themes/light.ts","../src/utils/themeLoader.ts","../src/components/Main/Main.tsx","../src/components/Title/styles.ts","../src/components/Title/Title.tsx"],"names":["styled","jsx","jsxs","RouterLink","path","ThemeButton","useTheme","useState"],"mappings":"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","file":"index.mjs","sourcesContent":["export type FontSize = 4 | 8 | 12 | 16 | 20 | 24 | 32 | 40\n\nexport type FontSizeType = {\n $lgFontSize?: FontSize\n $mdFontSize?: FontSize\n $smFontSize?: FontSize\n}\n\nexport const fontSizeToRem = (size: FontSize): string => {\n const remMap: Record<FontSize, string> = {\n 4: '0.25rem',\n 8: '0.5rem',\n 12: '0.75rem',\n 16: '1rem',\n 20: '1.25rem',\n 24: '1.5rem',\n 32: '2rem',\n 40: '2.5rem'\n }\n return remMap[size]\n}\n","export const BREAKPOINTS = {\n md: '1024px',\n sm: '768px'\n} as const\n\nexport const mdScreen = `@media (max-width: ${BREAKPOINTS.md})`\nexport const smScreen = `@media (max-width: ${BREAKPOINTS.sm})`\n\nexport type BreakpointType = {\n mdScreen?: boolean\n smScreen?: boolean\n}\n\nexport const applyBreakpointStyles = (\n baseStyles: string,\n mdStyles?: string,\n smStyles?: string\n) => `\n ${baseStyles}\n\n ${mdStyles ? `${mdScreen} { ${mdStyles} }` : ''}\n ${smStyles ? `${smScreen} { ${smStyles} }` : ''}\n`\n","import styled from 'styled-components'\nimport { fontSizeToRem, mdScreen, smScreen, type FontSize } from '@/types'\n\ntype ButtonStyle = {\n id?: string | undefined\n disabled?: boolean | undefined\n as?: React.ElementType | undefined\n type?: 'button' | 'submit' | 'reset' | undefined\n $lgWidth?: number | undefined\n $mdWidth?: number | undefined\n $smWidth?: number | undefined\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n}\n\nexport const ButtonStyled = styled.button<ButtonStyle>`\n width: ${(props) => props.$lgWidth || 100}%;\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n font-weight: 500;\n color: ${(props) => props.theme.bgColor};\n background-color: ${(props) => props.theme.primaryColor};\n padding: 12px 8px;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n transition: 0.2s ease;\n\n &:hover {\n color: ${(props) => props.theme.primaryColor};\n background-color: ${(props) => props.theme.secondaryColor};\n }\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 100}%;\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 100}%;\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import type { FontSizeType, WidthType } from '@/types'\nimport { ButtonStyled } from './styles'\n\nexport type ButtonType = {\n children: React.ReactNode\n id?: string\n onClick?: () => void\n disabled?: boolean\n as?: React.ElementType\n type?: 'button' | 'submit' | 'reset'\n} & WidthType &\n FontSizeType\n\nconst Button = ({\n children,\n onClick,\n disabled,\n $lgWidth,\n $mdWidth,\n $smWidth,\n $lgFontSize,\n $mdFontSize,\n $smFontSize,\n as,\n type,\n id\n}: ButtonType) => (\n <ButtonStyled\n onClick={onClick}\n disabled={disabled}\n $lgWidth={$lgWidth}\n $mdWidth={$mdWidth}\n $smWidth={$smWidth}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n as={as}\n type={type}\n id={id}\n >\n {children}\n </ButtonStyled>\n)\n\nexport default Button\n","import styled from 'styled-components'\nimport {\n mdScreen,\n smScreen,\n fontSizeToRem,\n type WidthType,\n type FontSize\n} from '@/types'\n\ntype InputWrapperProps = {\n display?: string | undefined\n} & WidthType\n\ntype InputStyle = {\n type?: string\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n}\n\nexport const InputWrapper = styled.div<InputWrapperProps>`\n position: relative;\n display: ${(props) => props.display || 'block'};\n width: ${(props) => props.$lgWidth || 100}%;\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 100}%;\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 100}%;\n }\n`\n\nexport const InputStyled = styled.input<InputStyle>`\n width: 100%;\n padding: 16px 8px;\n border-radius: 8px;\n border: 1px solid ${(props) => props.theme.tertiaryColor};\n background-color: transparent;\n color: ${(props) => props.theme.primaryColor};\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n\n &:focus {\n outline: none;\n box-shadow: 0 0 4px 2px ${(props) => props.theme.tertiaryColor};\n }\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n\nexport const EyeButton = styled.button<InputStyle>`\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${(props) => props.theme.primaryColor};\n transition: color 0.2s ease;\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n\n svg {\n width: 20px;\n height: 20px;\n }\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import styled from 'styled-components'\nimport { mdScreen, smScreen, type WidthType } from '@/types'\nimport { InputStyled } from '@/components/Input/styles'\n\ntype CheckLabelStyled = {\n display?: string | undefined\n} & WidthType\n\nexport const CheckLabel = styled.label<CheckLabelStyled>`\n width: ${(props) => props.$lgWidth || 100}%;\n display: flex;\n align-items: center;\n gap: 4px;\n cursor: pointer;\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 100}%;\n justify-content: center;\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 100}%;\n justify-content: center;\n }\n`\n\nexport const CheckInput = styled(InputStyled)<CheckLabelStyled>`\n width: ${(props) => props.$lgWidth || 5}%;\n height: 20px;\n margin: 0;\n cursor: pointer;\n box-shadow: none !important;\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 5}%;\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 5}%;\n }\n`\n","import styled from 'styled-components'\nimport { fontSizeToRem, mdScreen, smScreen, type FontSize } from '@/types'\n\ntype TextStyledProps = {\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n as?: 'p' | 'span'\n color?: 'primary' | 'secondary'\n}\n\nexport const TextStyled = styled.p<TextStyledProps>`\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n color: ${(props) =>\n props.color === 'primary'\n ? props.theme.primaryColor\n : props.theme.secondaryColor};\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import type { FontSizeType } from '@/types'\nimport { TextStyled } from './styles'\n\nexport type TextType = {\n as: 'p' | 'span'\n children: React.ReactNode\n color?: 'primary' | 'secondary'\n} & FontSizeType\n\nconst Text = ({\n as,\n children,\n color = 'primary',\n $lgFontSize,\n $mdFontSize,\n $smFontSize\n}: TextType) => (\n <TextStyled\n as={as}\n color={color}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </TextStyled>\n)\n\nexport default Text\n","import type { WidthType, FontSizeType } from '@/types'\nimport { CheckInput, CheckLabel } from './styles'\nimport Text from '@/components/Text/Text'\n\nexport type CheckboxType = {\n id: string\n name: string\n checked?: boolean\n $disabled?: boolean\n children: string\n display?: string\n onClick?: () => void\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n} & WidthType &\n FontSizeType\n\nconst Checkbox = ({\n id,\n name,\n checked,\n $disabled,\n children,\n display,\n $lgWidth,\n $mdWidth,\n $smWidth,\n $lgFontSize = 16,\n $mdFontSize = 16,\n $smFontSize = 16,\n onClick,\n onChange\n}: CheckboxType) => (\n <CheckLabel\n htmlFor={id}\n display={display}\n $lgWidth={$lgWidth}\n $mdWidth={$mdWidth}\n $smWidth={$smWidth}\n >\n <CheckInput\n type=\"checkbox\"\n id={id}\n name={name}\n checked={checked}\n disabled={$disabled}\n display={display}\n onClick={onClick}\n onChange={onChange}\n />\n <Text\n as=\"span\"\n color=\"primary\"\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </Text>\n </CheckLabel>\n)\n\nexport default Checkbox\n","import styled from 'styled-components'\n\nexport const FooterStyled = styled.footer`\n width: 100%;\n margin-top: 2%;\n padding: 1rem;\n color: #fff;\n text-align: center;\n`\n","import { FooterStyled } from './styles'\n\nconst Footer = ({ children }: { children: React.ReactNode }) => {\n return <FooterStyled>{children}</FooterStyled>\n}\n\nexport default Footer\n","import React, { useState } from 'react'\nimport { FaEye, FaEyeSlash } from 'react-icons/fa6'\nimport type { WidthType, FontSizeType } from '@/types'\nimport { EyeButton, InputStyled, InputWrapper } from './styles'\n\nexport type InputType = {\n type: string\n id: string\n name: string\n placeholder?: string\n value?: string\n display?: string\n $disabled?: boolean\n $required?: boolean\n onClick?: () => void\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n} & WidthType &\n FontSizeType\n\nconst Input = ({\n type,\n id,\n name,\n placeholder,\n display,\n $lgWidth,\n $mdWidth,\n $smWidth,\n $lgFontSize,\n $mdFontSize,\n $smFontSize,\n $disabled,\n $required,\n onClick,\n onChange\n}: InputType) => {\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <InputWrapper\n display={display}\n $lgWidth={$lgWidth}\n $mdWidth={$mdWidth}\n $smWidth={$smWidth}\n >\n <InputStyled\n type={type === 'password' ? (showPassword ? 'text' : 'password') : type}\n id={id}\n name={name}\n placeholder={placeholder}\n onClick={onClick}\n onChange={onChange}\n disabled={$disabled}\n required={$required}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n />\n {type === 'password' && (\n <EyeButton type=\"button\" onClick={() => setShowPassword(!showPassword)}>\n {showPassword ? <FaEye /> : <FaEyeSlash />}\n </EyeButton>\n )}\n </InputWrapper>\n )\n}\n\nexport default Input\n","import styled from 'styled-components'\nimport { mdScreen, smScreen, fontSizeToRem, type FontSize } from '@/types'\n\ntype LabelStyledProps = {\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n}\n\nexport const LabelStyled = styled.label<LabelStyledProps>`\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n font-weight: 500;\n color: ${(props) => props.theme.primaryColor};\n margin-bottom: 4px;\n display: block;\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import React from 'react'\nimport type { FontSizeType } from '@/types'\nimport { LabelStyled } from './styles'\n\nexport type LabelType = {\n htmlFor: string\n children: React.ReactNode\n color?: 'primary' | 'secondary'\n} & FontSizeType\n\nconst Label = ({\n htmlFor,\n children,\n $lgFontSize,\n $mdFontSize,\n $smFontSize\n}: LabelType) => (\n <LabelStyled\n htmlFor={htmlFor}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </LabelStyled>\n)\n\nexport default Label\n","import styled from 'styled-components'\nimport { fontSizeToRem, mdScreen, smScreen, type FontSize } from '@/types'\n\ntype LinkStyledProps = {\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n $target?: '_blank' | '_self'\n color?: 'primary' | 'secondary'\n}\n\nexport const LinkStyled = styled.a<LinkStyledProps>`\n color: ${(props) =>\n props.color === 'primary'\n ? props.theme.primaryColor\n : props.color === 'secondary'\n ? props.theme.secondaryColor\n : props.theme.linkColor};\n text-decoration: none;\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n font-weight: normal;\n background-image: linear-gradient(currentColor, currentColor);\n background-position: 0 100%;\n background-size: 0% 2px;\n background-repeat: no-repeat;\n transition:\n background-size 0.2s,\n background-position 0s 0.2s;\n\n &:hover {\n background-position: 100% 100%;\n background-size: 100% 2px;\n }\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import type { FontSizeType } from '@/types'\nimport { LinkStyled } from './styles'\nimport { Link as RouterLink } from 'react-router-dom'\n\nexport type LinkType = {\n href?: string\n to?: string\n children: React.ReactNode\n $target?: '_blank' | '_self'\n $isInternal?: boolean\n} & FontSizeType\n\nconst Link = ({\n href,\n to,\n children,\n $target,\n $isInternal = false,\n $lgFontSize,\n $mdFontSize,\n $smFontSize\n}: LinkType) => {\n if ($isInternal && to) {\n return (\n <RouterLink to={to} style={{ textDecoration: 'none', color: 'inherit' }}>\n <LinkStyled\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </LinkStyled>\n </RouterLink>\n )\n }\n\n return (\n <LinkStyled\n href={href}\n target={$target}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </LinkStyled>\n )\n}\n\nexport default Link\n","import styled from 'styled-components'\nimport type { WidthType } from '@/types'\nimport { mdScreen, smScreen } from '@/types'\n\nexport const LogoStyled = styled.div<WidthType>`\n width: ${(props) => props.$lgWidth || 100}%;\n & > img {\n width: 100%;\n height: auto;\n display: block;\n }\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 100}%;\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 100}%;\n }\n`\n","import LogoLightDefault from '@/assets/logos/light-theme.svg'\nimport LogoDarkDefault from '@/assets/logos/dark-theme.svg'\n\nfunction tryLoadUserLogoConfig(): {\n logoLight: string\n logoDark: string\n} | null {\n if (typeof window !== 'undefined' || typeof process === 'undefined') {\n return null\n }\n\n try {\n const path = require('path')\n const userProjectRoot = process.cwd()\n const configPath = path.join(\n userProjectRoot,\n 'src',\n 'catastyle',\n 'config',\n 'logo.config.ts'\n )\n\n try {\n const resolvedPath = require.resolve(configPath)\n delete require.cache[resolvedPath]\n const config = require(configPath)\n return {\n logoLight: config.logoLight,\n logoDark: config.logoDark\n }\n } catch {\n return null\n }\n } catch {\n return null\n }\n}\n\nexport function getLogoLight(): string {\n const userConfig = tryLoadUserLogoConfig()\n\n if (userConfig && userConfig.logoLight !== 'default') {\n return userConfig.logoLight\n }\n\n return LogoLightDefault\n}\n\nexport function getLogoDark(): string {\n const userConfig = tryLoadUserLogoConfig()\n\n if (userConfig && userConfig.logoDark !== 'default') {\n return userConfig.logoDark\n }\n\n return LogoDarkDefault\n}\n","import type { HTMLAttributes } from 'react'\nimport { LogoStyled } from './styles'\nimport type { WidthType } from '@/types'\nimport { useTheme } from 'styled-components'\nimport { getLogoLight, getLogoDark } from '@/utils/logoLoader'\n\ntype LogoProps = WidthType & HTMLAttributes<HTMLDivElement>\n\nconst Logo = (props: LogoProps) => {\n const theme = useTheme()\n const isDarkTheme = theme.bgColor === '#011F1F'\n\n return (\n <LogoStyled {...props}>\n <img src={isDarkTheme ? getLogoDark() : getLogoLight()} alt=\"Logo\" />\n </LogoStyled>\n )\n}\n\nexport default Logo\n","import styled, { createGlobalStyle } from 'styled-components'\n\nconst GlobalStyle = createGlobalStyle`\n*{\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n list-style: none;\n font-family: \"Inter\", sans-serif;\n}\n\nbody{\n background-color: ${(props) => props.theme.bgColor};\n color: ${(props) => props.theme.primaryColor};\n\n`\nexport default GlobalStyle\n\nexport const MainContainer = styled.main`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n overflow-y: scroll;\n &::-webkit-scrollbar {\n display: none;\n }\n`\n","import styled from 'styled-components'\nimport { ButtonStyled } from '@/components/Button/styles'\n\nexport const ThemeButton = styled(ButtonStyled)`\n position: fixed;\n width: 2.5rem;\n height: 2.5rem;\n top: 1.25rem;\n right: 1.25rem;\n z-index: 9999;\n border-radius: 50%;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n & > img {\n width: 100%;\n height: 100%;\n }\n &:hover {\n background-color: ${(props) => props.theme.tertiaryColor};\n box-shadow: 0 0 10px 0 ${(props) => props.theme.primaryColor};\n }\n`\n","import { ThemeButton as ThemeButtonStyled } from './styles'\nimport LogoLight from '@/assets/logos/light-theme.svg'\nimport LogoDark from '@/assets/logos/dark-theme.svg'\nimport { useTheme } from 'styled-components'\n\ntype ThemeButtonType = {\n onClick?: () => void\n}\n\nconst ThemeButton = ({ onClick }: ThemeButtonType) => {\n const theme = useTheme()\n return (\n <ThemeButtonStyled onClick={onClick}>\n <img\n src={theme.bgColor === '#011F1F' ? LogoLight : LogoDark}\n alt=\"Theme Button\"\n />\n </ThemeButtonStyled>\n )\n}\n\nexport default ThemeButton\n","import type { DefaultTheme } from 'styled-components/'\n\nconst DarkTheme: DefaultTheme = {\n primaryColor: '#EBFFEB',\n secondaryColor: '#538A53',\n tertiaryColor: '#669966',\n bgColor: '#011F1F',\n linkColor: '#33CC66'\n}\n\nexport default DarkTheme\n","import type { DefaultTheme } from 'styled-components/'\n\nconst LightTheme: DefaultTheme = {\n primaryColor: '#011F1F',\n secondaryColor: '#33CC66',\n tertiaryColor: '#538A53',\n bgColor: '#EBFFEB',\n linkColor: '#006633'\n}\n\nexport default LightTheme\n","import type { DefaultTheme } from 'styled-components'\nimport DarkThemeDefault from '@/themes/dark'\nimport LightThemeDefault from '@/themes/light'\nimport path from 'path'\n\nfunction tryLoadUserThemeConfig(): {\n darkTheme: DefaultTheme | null\n lightTheme: DefaultTheme | null\n} | null {\n if (typeof window !== 'undefined') {\n return null\n }\n\n try {\n const userProjectRoot = process.cwd()\n const configPath = path.join(\n userProjectRoot,\n 'src',\n 'catastyle',\n 'config',\n 'theme.config.ts'\n )\n\n try {\n const resolvedPath = require.resolve(configPath)\n delete require.cache[resolvedPath]\n const config = require(configPath)\n return {\n darkTheme: config.darkTheme ?? null,\n lightTheme: config.lightTheme ?? null\n }\n } catch {\n return null\n }\n } catch {\n return null\n }\n}\n\nexport function getDarkTheme(): DefaultTheme {\n const userConfig = tryLoadUserThemeConfig()\n return userConfig?.darkTheme ?? DarkThemeDefault\n}\n\nexport function getLightTheme(): DefaultTheme {\n const userConfig = tryLoadUserThemeConfig()\n return userConfig?.lightTheme ?? LightThemeDefault\n}\n","import GlobalStyle, { MainContainer } from '@/styles/global'\nimport { ThemeProvider } from 'styled-components'\nimport { useState } from 'react'\nimport ThemeButton from '@/components/ThemeButton/ThemeButton'\nimport { getDarkTheme, getLightTheme } from '@/utils/themeLoader'\n\nexport type MainType = {\n children: React.ReactNode\n}\nconst Main = ({ children }: MainType) => {\n const [darkTheme, setDarkTheme] = useState(false)\n function toggleTheme() {\n setDarkTheme(!darkTheme)\n }\n return (\n <ThemeProvider theme={darkTheme ? getDarkTheme() : getLightTheme()}>\n <GlobalStyle />\n <MainContainer>\n <ThemeButton onClick={toggleTheme} />\n {children}\n </MainContainer>\n </ThemeProvider>\n )\n}\n\nexport default Main\n","import styled from 'styled-components'\nimport { fontSizeToRem, mdScreen, smScreen, type FontSize } from '@/types'\n\ntype TitleStyledProps = {\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n color: 'primary' | 'secondary'\n}\n\nexport const TitleStyled = styled.h1<TitleStyledProps>`\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 32)};\n font-weight: 600;\n color: ${(props) =>\n props.color === 'primary'\n ? props.theme.primaryColor\n : props.theme.secondaryColor};\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 32)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 32\n )};\n }\n`\n","import type { FontSizeType } from '@/types'\nimport { TitleStyled } from './styles'\n\nexport type TitleType = {\n children: string\n color: 'primary' | 'secondary'\n} & FontSizeType\n\nconst Title = ({\n children,\n color,\n $lgFontSize,\n $mdFontSize,\n $smFontSize\n}: TitleType) => (\n <TitleStyled\n color={color}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </TitleStyled>\n)\n\nexport default Title\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/types/fontSize.ts","../src/types/breakpoints.ts","../src/components/Button/styles.ts","../src/components/Button/Button.tsx","../src/components/Input/styles.ts","../src/components/Checkbox/styles.ts","../src/components/Text/styles.ts","../src/components/Text/Text.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Footer/styles.ts","../src/components/Footer/Footer.tsx","../src/components/Input/Input.tsx","../src/components/Label/styles.ts","../src/components/Label/Label.tsx","../src/components/Link/styles.ts","../src/components/Link/Link.tsx","../src/components/Logo/styles.ts","../src/utils/logoLoader.ts","../src/components/Logo/Logo.tsx","../src/styles/global.ts","../src/components/ThemeButton/styles.ts","../src/components/ThemeButton/ThemeButton.tsx","../src/themes/dark.ts","../src/themes/light.ts","../src/utils/themeLoader.ts","../src/components/Main/Main.tsx","../src/components/Title/styles.ts","../src/components/Title/Title.tsx"],"names":["styled","jsx","jsxs","RouterLink","path","ThemeButton","position","useTheme","useState"],"mappings":"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","file":"index.mjs","sourcesContent":["export type FontSize = 4 | 8 | 12 | 16 | 20 | 24 | 32 | 40\n\nexport type FontSizeType = {\n $lgFontSize?: FontSize\n $mdFontSize?: FontSize\n $smFontSize?: FontSize\n}\n\nexport const fontSizeToRem = (size: FontSize): string => {\n const remMap: Record<FontSize, string> = {\n 4: '0.25rem',\n 8: '0.5rem',\n 12: '0.75rem',\n 16: '1rem',\n 20: '1.25rem',\n 24: '1.5rem',\n 32: '2rem',\n 40: '2.5rem'\n }\n return remMap[size]\n}\n","export const BREAKPOINTS = {\n md: '1024px',\n sm: '768px'\n} as const\n\nexport const mdScreen = `@media (max-width: ${BREAKPOINTS.md})`\nexport const smScreen = `@media (max-width: ${BREAKPOINTS.sm})`\n\nexport type BreakpointType = {\n mdScreen?: boolean\n smScreen?: boolean\n}\n\nexport const applyBreakpointStyles = (\n baseStyles: string,\n mdStyles?: string,\n smStyles?: string\n) => `\n ${baseStyles}\n\n ${mdStyles ? `${mdScreen} { ${mdStyles} }` : ''}\n ${smStyles ? `${smScreen} { ${smStyles} }` : ''}\n`\n","import styled from 'styled-components'\nimport { fontSizeToRem, mdScreen, smScreen, type FontSize } from '@/types'\n\ntype ButtonStyle = {\n id?: string | undefined\n disabled?: boolean | undefined\n as?: React.ElementType | undefined\n type?: 'button' | 'submit' | 'reset' | undefined\n $lgWidth?: number | undefined\n $mdWidth?: number | undefined\n $smWidth?: number | undefined\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n}\n\nexport const ButtonStyled = styled.button<ButtonStyle>`\n width: ${(props) => props.$lgWidth || 100}%;\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n font-weight: 500;\n color: ${(props) => props.theme.bgColor};\n background-color: ${(props) => props.theme.primaryColor};\n padding: 12px 8px;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n transition: 0.2s ease;\n\n &:hover {\n color: ${(props) => props.theme.primaryColor};\n background-color: ${(props) => props.theme.secondaryColor};\n }\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 100}%;\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 100}%;\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import type { FontSizeType, WidthType } from '@/types'\nimport { ButtonStyled } from './styles'\n\nexport type ButtonType = {\n children: React.ReactNode\n className?: string\n id?: string\n onClick?: () => void\n disabled?: boolean\n as?: React.ElementType\n type?: 'button' | 'submit' | 'reset'\n} & WidthType &\n FontSizeType\n\nconst Button = ({\n children,\n className,\n onClick,\n disabled,\n $lgWidth,\n $mdWidth,\n $smWidth,\n $lgFontSize,\n $mdFontSize,\n $smFontSize,\n as,\n type,\n id\n}: ButtonType) => (\n <ButtonStyled\n className={className}\n onClick={onClick}\n disabled={disabled}\n $lgWidth={$lgWidth}\n $mdWidth={$mdWidth}\n $smWidth={$smWidth}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n as={as}\n type={type}\n id={id}\n >\n {children}\n </ButtonStyled>\n)\n\nexport default Button\n","import styled from 'styled-components'\nimport {\n mdScreen,\n smScreen,\n fontSizeToRem,\n type WidthType,\n type FontSize\n} from '@/types'\n\ntype InputWrapperProps = {\n display?: string | undefined\n} & WidthType\n\ntype InputStyle = {\n type?: string\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n}\n\nexport const InputWrapper = styled.div<InputWrapperProps>`\n position: relative;\n display: ${(props) => props.display || 'block'};\n width: ${(props) => props.$lgWidth || 100}%;\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 100}%;\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 100}%;\n }\n`\n\nexport const InputStyled = styled.input<InputStyle>`\n width: 100%;\n padding: 16px 8px;\n border-radius: 8px;\n border: 1px solid ${(props) => props.theme.tertiaryColor};\n background-color: transparent;\n color: ${(props) => props.theme.primaryColor};\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n\n &:focus {\n outline: none;\n box-shadow: 0 0 4px 2px ${(props) => props.theme.tertiaryColor};\n }\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n\nexport const EyeButton = styled.button<InputStyle>`\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${(props) => props.theme.primaryColor};\n transition: color 0.2s ease;\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n\n svg {\n width: 20px;\n height: 20px;\n }\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import styled from 'styled-components'\nimport { mdScreen, smScreen, type WidthType } from '@/types'\nimport { InputStyled } from '@/components/Input/styles'\n\ntype CheckLabelStyled = {\n display?: string | undefined\n} & WidthType\n\nexport const CheckLabel = styled.label<CheckLabelStyled>`\n width: ${(props) => props.$lgWidth || 100}%;\n display: flex;\n align-items: center;\n gap: 4px;\n cursor: pointer;\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 100}%;\n justify-content: center;\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 100}%;\n justify-content: center;\n }\n`\n\nexport const CheckInput = styled(InputStyled)<CheckLabelStyled>`\n width: ${(props) => props.$lgWidth || 5}%;\n height: 20px;\n margin: 0;\n cursor: pointer;\n box-shadow: none !important;\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 5}%;\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 5}%;\n }\n`\n","import styled from 'styled-components'\nimport { fontSizeToRem, mdScreen, smScreen, type FontSize } from '@/types'\n\ntype TextStyledProps = {\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n as?: 'p' | 'span'\n color?: 'primary' | 'secondary'\n}\n\nexport const TextStyled = styled.p<TextStyledProps>`\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n color: ${(props) =>\n props.color === 'primary'\n ? props.theme.primaryColor\n : props.theme.secondaryColor};\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import type { FontSizeType } from '@/types'\nimport { TextStyled } from './styles'\n\nexport type TextType = {\n as: 'p' | 'span'\n children: React.ReactNode\n className?: string\n color?: 'primary' | 'secondary'\n} & FontSizeType\n\nconst Text = ({\n as,\n children,\n className,\n color = 'primary',\n $lgFontSize,\n $mdFontSize,\n $smFontSize\n}: TextType) => (\n <TextStyled\n as={as}\n className={className}\n color={color}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </TextStyled>\n)\n\nexport default Text\n","import type { WidthType, FontSizeType } from '@/types'\nimport { CheckInput, CheckLabel } from './styles'\nimport Text from '@/components/Text/Text'\n\nexport type CheckboxType = {\n id: string\n name: string\n checked?: boolean\n className?: string\n $disabled?: boolean\n children: string\n display?: string\n onClick?: () => void\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n} & WidthType &\n FontSizeType\n\nconst Checkbox = ({\n id,\n name,\n checked,\n className,\n $disabled,\n children,\n display,\n $lgWidth,\n $mdWidth,\n $smWidth,\n $lgFontSize = 16,\n $mdFontSize = 16,\n $smFontSize = 16,\n onClick,\n onChange\n}: CheckboxType) => (\n <CheckLabel\n className={className}\n htmlFor={id}\n display={display}\n $lgWidth={$lgWidth}\n $mdWidth={$mdWidth}\n $smWidth={$smWidth}\n >\n <CheckInput\n type=\"checkbox\"\n id={id}\n name={name}\n checked={checked}\n disabled={$disabled}\n display={display}\n onClick={onClick}\n onChange={onChange}\n />\n <Text\n as=\"span\"\n color=\"primary\"\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </Text>\n </CheckLabel>\n)\n\nexport default Checkbox\n","import styled from 'styled-components'\n\nexport const FooterStyled = styled.footer`\n width: 100%;\n margin-top: 2%;\n padding: 1rem;\n color: #fff;\n text-align: center;\n`\n","import { FooterStyled } from './styles'\ntype FooterType = {\n children: React.ReactNode\n className?: string\n}\nconst Footer = ({ children, className }: FooterType) => {\n return <FooterStyled className={className}>{children}</FooterStyled>\n}\n\nexport default Footer\n","import React, { useState } from 'react'\nimport { FaEye, FaEyeSlash } from 'react-icons/fa6'\nimport type { WidthType, FontSizeType } from '@/types'\nimport { EyeButton, InputStyled, InputWrapper } from './styles'\n\nexport type InputType = {\n type: string\n id: string\n name: string\n className?: string\n placeholder?: string\n value?: string\n display?: string\n $disabled?: boolean\n $required?: boolean\n onClick?: () => void\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n} & WidthType &\n FontSizeType\n\nconst Input = ({\n type,\n id,\n name,\n className,\n placeholder,\n display,\n $lgWidth,\n $mdWidth,\n $smWidth,\n $lgFontSize,\n $mdFontSize,\n $smFontSize,\n $disabled,\n $required,\n onClick,\n onChange\n}: InputType) => {\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <InputWrapper\n className={className}\n display={display}\n $lgWidth={$lgWidth}\n $mdWidth={$mdWidth}\n $smWidth={$smWidth}\n >\n <InputStyled\n type={type === 'password' ? (showPassword ? 'text' : 'password') : type}\n id={id}\n name={name}\n placeholder={placeholder}\n onClick={onClick}\n onChange={onChange}\n disabled={$disabled}\n required={$required}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n />\n {type === 'password' && (\n <EyeButton type=\"button\" onClick={() => setShowPassword(!showPassword)}>\n {showPassword ? <FaEye /> : <FaEyeSlash />}\n </EyeButton>\n )}\n </InputWrapper>\n )\n}\n\nexport default Input\n","import styled from 'styled-components'\nimport { mdScreen, smScreen, fontSizeToRem, type FontSize } from '@/types'\n\ntype LabelStyledProps = {\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n}\n\nexport const LabelStyled = styled.label<LabelStyledProps>`\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n font-weight: 500;\n color: ${(props) => props.theme.primaryColor};\n margin-bottom: 4px;\n display: block;\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import React from 'react'\nimport type { FontSizeType } from '@/types'\nimport { LabelStyled } from './styles'\n\nexport type LabelType = {\n htmlFor: string\n children: React.ReactNode\n className?: string\n color?: 'primary' | 'secondary'\n} & FontSizeType\n\nconst Label = ({\n htmlFor,\n children,\n className,\n $lgFontSize,\n $mdFontSize,\n $smFontSize\n}: LabelType) => (\n <LabelStyled\n className={className}\n htmlFor={htmlFor}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </LabelStyled>\n)\n\nexport default Label\n","import styled from 'styled-components'\nimport { fontSizeToRem, mdScreen, smScreen, type FontSize } from '@/types'\n\ntype LinkStyledProps = {\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n $target?: '_blank' | '_self'\n color?: 'primary' | 'secondary'\n}\n\nexport const LinkStyled = styled.a<LinkStyledProps>`\n color: ${(props) =>\n props.color === 'primary'\n ? props.theme.primaryColor\n : props.color === 'secondary'\n ? props.theme.secondaryColor\n : props.theme.linkColor};\n text-decoration: none;\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 16)};\n font-weight: normal;\n background-image: linear-gradient(currentColor, currentColor);\n background-position: 0 100%;\n background-size: 0% 2px;\n background-repeat: no-repeat;\n transition:\n background-size 0.2s,\n background-position 0s 0.2s;\n\n &:hover {\n background-position: 100% 100%;\n background-size: 100% 2px;\n }\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 16)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 16\n )};\n }\n`\n","import type { FontSizeType } from '@/types'\nimport { LinkStyled } from './styles'\nimport { Link as RouterLink } from 'react-router-dom'\n\nexport type LinkType = {\n href?: string\n to?: string\n children: React.ReactNode\n className?: string\n $target?: '_blank' | '_self'\n $isInternal?: boolean\n} & FontSizeType\n\nconst Link = ({\n href,\n to,\n children,\n className,\n $target,\n $isInternal = false,\n $lgFontSize,\n $mdFontSize,\n $smFontSize\n}: LinkType) => {\n if ($isInternal && to) {\n return (\n <RouterLink to={to} style={{ textDecoration: 'none', color: 'inherit' }}>\n <LinkStyled\n className={className}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </LinkStyled>\n </RouterLink>\n )\n }\n\n return (\n <LinkStyled\n className={className}\n href={href}\n target={$target}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </LinkStyled>\n )\n}\n\nexport default Link\n","import styled from 'styled-components'\nimport type { WidthType } from '@/types'\nimport { mdScreen, smScreen } from '@/types'\n\nexport const LogoStyled = styled.div<WidthType>`\n width: ${(props) => props.$lgWidth || 100}%;\n & > img {\n width: 100%;\n height: auto;\n display: block;\n }\n\n ${mdScreen} {\n width: ${(props) => props.$mdWidth || props.$lgWidth || 100}%;\n }\n\n ${smScreen} {\n width: ${(props) =>\n props.$smWidth || props.$mdWidth || props.$lgWidth || 100}%;\n }\n`\n","import LogoLightDefault from '@/assets/logos/light-theme.svg'\nimport LogoDarkDefault from '@/assets/logos/dark-theme.svg'\nimport IconLightDefault from '@/assets/icon/icon-light-theme.svg'\nimport IconDarkDefault from '@/assets/icon/icon-dark-theme.svg'\n\nfunction tryLoadUserLogoConfig(): {\n logoLight: string\n logoDark: string\n iconLight: string\n iconDark: string\n} | null {\n if (typeof window !== 'undefined' || typeof process === 'undefined') {\n return null\n }\n\n try {\n const path = require('path')\n const userProjectRoot = process.cwd()\n const configPath = path.join(\n userProjectRoot,\n 'src',\n 'catastyle',\n 'config',\n 'catastyle.config.ts'\n )\n\n try {\n const resolvedPath = require.resolve(configPath)\n delete require.cache[resolvedPath]\n const config = require(configPath)\n return {\n logoLight: config.logoLight,\n logoDark: config.logoDark,\n iconLight: config.iconLight,\n iconDark: config.iconDark\n }\n } catch {\n return null\n }\n } catch {\n return null\n }\n}\n\nexport function getLogoLight(): string {\n const userConfig = tryLoadUserLogoConfig()\n\n if (userConfig && userConfig.logoLight !== 'default') {\n return userConfig.logoLight\n }\n\n return LogoLightDefault\n}\n\nexport function getLogoDark(): string {\n const userConfig = tryLoadUserLogoConfig()\n\n if (userConfig && userConfig.logoDark !== 'default') {\n return userConfig.logoDark\n }\n\n return LogoDarkDefault\n}\nexport function getIconLight(): string {\n const userConfig = tryLoadUserLogoConfig()\n\n if (userConfig && userConfig.iconLight !== 'default') {\n return userConfig.iconLight\n }\n\n return IconLightDefault\n}\n\nexport function getIconDark(): string {\n const userConfig = tryLoadUserLogoConfig()\n\n if (userConfig && userConfig.iconDark !== 'default') {\n return userConfig.iconDark\n }\n\n return IconDarkDefault\n}\n","import { LogoStyled } from './styles'\nimport type { WidthType } from '@/types'\nimport { useTheme } from 'styled-components'\nimport { getLogoLight, getLogoDark } from '@/utils/logoLoader'\n\ntype LogoProps = {\n className?: string\n} & WidthType\n\nconst Logo = ({ className, $lgWidth, $mdWidth, $smWidth }: LogoProps) => {\n const theme = useTheme()\n const isDarkTheme = theme.bgColor === '#011F1F'\n\n return (\n <LogoStyled\n className={className}\n $lgWidth={$lgWidth}\n $mdWidth={$mdWidth}\n $smWidth={$smWidth}\n >\n <img src={isDarkTheme ? getLogoDark() : getLogoLight()} alt=\"Logo\" />\n </LogoStyled>\n )\n}\n\nexport default Logo\n","import styled, { createGlobalStyle } from 'styled-components'\n\nconst GlobalStyle = createGlobalStyle`\n*{\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n list-style: none;\n font-family: \"Inter\", sans-serif;\n}\n\nbody{\n background-color: ${(props) => props.theme.bgColor};\n color: ${(props) => props.theme.primaryColor};\n\n`\nexport default GlobalStyle\n\nexport const MainContainer = styled.main`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n overflow-y: scroll;\n &::-webkit-scrollbar {\n display: none;\n }\n`\n","import styled, { css } from 'styled-components'\nimport { ButtonStyled } from '@/components/Button/styles'\ntype Position = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'\ntype ButtonPosition = { $position?: Position }\nconst position = [\n {\n 'top-right': css`\n top: 1.25rem;\n right: 1.25rem;\n `\n },\n {\n 'top-left': css`\n top: 1.25rem;\n left: 1.25rem;\n `\n },\n {\n 'bottom-right': css`\n bottom: 1.25rem;\n right: 1.25rem;\n `\n },\n {\n 'bottom-left': css`\n bottom: 1.25rem;\n left: 1.25rem;\n `\n }\n]\nconst getPosition = (key: Position) =>\n (\n position.find((pos) => key in pos) as\n | Record<Position, ReturnType<typeof css>>\n | undefined\n )?.[key]\nexport const ThemeButton = styled(ButtonStyled)<ButtonPosition>`\n position: fixed;\n width: 3rem;\n height: 3rem;\n ${(props) => getPosition(props.$position ?? 'bottom-right')}\n z-index: 9999;\n border-radius: 50%;\n padding: 1%;\n display: flex;\n align-items: center;\n justify-content: center;\n & > img {\n width: 100%;\n height: 100%;\n }\n &:hover {\n background-color: ${(props) => props.theme.tertiaryColor};\n box-shadow: 0 0 10px 0 ${(props) => props.theme.primaryColor};\n }\n`\n","import { ThemeButton as ThemeButtonStyled } from './styles'\nimport { useTheme } from 'styled-components'\nimport { getIconDark, getIconLight } from '@/utils/logoLoader'\n\ntype ThemeButtonType = {\n className?: string\n onClick?: () => void\n position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'\n}\nconst ThemeButton = ({\n className,\n onClick,\n position = 'bottom-right'\n}: ThemeButtonType) => {\n const theme = useTheme()\n const isDarkTheme = theme.bgColor === '#011F1F'\n return (\n <ThemeButtonStyled\n className={className}\n onClick={onClick}\n $position={position}\n >\n <img\n src={isDarkTheme ? getIconLight() : getIconDark()}\n alt=\"Theme Button\"\n />\n </ThemeButtonStyled>\n )\n}\n\nexport default ThemeButton\n","import type { DefaultTheme } from 'styled-components/'\n\nconst DarkTheme: DefaultTheme = {\n primaryColor: '#EBFFEB',\n secondaryColor: '#538A53',\n tertiaryColor: '#669966',\n bgColor: '#011F1F',\n linkColor: '#33CC66'\n}\n\nexport default DarkTheme\n","import type { DefaultTheme } from 'styled-components/'\n\nconst LightTheme: DefaultTheme = {\n primaryColor: '#011F1F',\n secondaryColor: '#33CC66',\n tertiaryColor: '#538A53',\n bgColor: '#EBFFEB',\n linkColor: '#006633'\n}\n\nexport default LightTheme\n","import type { DefaultTheme } from 'styled-components'\nimport DarkThemeDefault from '@/themes/dark'\nimport LightThemeDefault from '@/themes/light'\nimport path from 'path'\n\nfunction tryLoadUserThemeConfig(): {\n darkTheme: DefaultTheme | null\n lightTheme: DefaultTheme | null\n} | null {\n if (typeof window !== 'undefined') {\n return null\n }\n\n try {\n const userProjectRoot = process.cwd()\n const configPath = path.join(\n userProjectRoot,\n 'src',\n 'catastyle',\n 'config',\n 'catastyle.config.ts'\n )\n\n try {\n const resolvedPath = require.resolve(configPath)\n delete require.cache[resolvedPath]\n const config = require(configPath)\n return {\n darkTheme: config.darkTheme ?? null,\n lightTheme: config.lightTheme ?? null\n }\n } catch {\n return null\n }\n } catch {\n return null\n }\n}\n\nexport function getDarkTheme(): DefaultTheme {\n const userConfig = tryLoadUserThemeConfig()\n return userConfig?.darkTheme ?? DarkThemeDefault\n}\n\nexport function getLightTheme(): DefaultTheme {\n const userConfig = tryLoadUserThemeConfig()\n return userConfig?.lightTheme ?? LightThemeDefault\n}\n","import GlobalStyle, { MainContainer } from '@/styles/global'\nimport { ThemeProvider } from 'styled-components'\nimport { useState } from 'react'\nimport ThemeButton from '@/components/ThemeButton/ThemeButton'\nimport { getDarkTheme, getLightTheme } from '@/utils/themeLoader'\n\nexport type MainType = {\n children: React.ReactNode\n className?: string\n}\nconst Main = ({ children, className }: MainType) => {\n const [darkTheme, setDarkTheme] = useState(false)\n function toggleTheme() {\n setDarkTheme(!darkTheme)\n }\n return (\n <ThemeProvider theme={darkTheme ? getDarkTheme() : getLightTheme()}>\n <GlobalStyle />\n <MainContainer className={className}>\n <ThemeButton onClick={toggleTheme} />\n {children}\n </MainContainer>\n </ThemeProvider>\n )\n}\n\nexport default Main\n","import styled from 'styled-components'\nimport { fontSizeToRem, mdScreen, smScreen, type FontSize } from '@/types'\n\ntype TitleStyledProps = {\n $lgFontSize?: FontSize | undefined\n $mdFontSize?: FontSize | undefined\n $smFontSize?: FontSize | undefined\n color: 'primary' | 'secondary'\n}\n\nexport const TitleStyled = styled.h1<TitleStyledProps>`\n font-size: ${(props) => fontSizeToRem(props.$lgFontSize || 32)};\n font-weight: 600;\n color: ${(props) =>\n props.color === 'primary'\n ? props.theme.primaryColor\n : props.theme.secondaryColor};\n\n ${mdScreen} {\n font-size: ${(props) =>\n fontSizeToRem(props.$mdFontSize || props.$lgFontSize || 32)};\n }\n\n ${smScreen} {\n font-size: ${(props) =>\n fontSizeToRem(\n props.$smFontSize || props.$mdFontSize || props.$lgFontSize || 32\n )};\n }\n`\n","import type { FontSizeType } from '@/types'\nimport { TitleStyled } from './styles'\n\nexport type TitleType = {\n children: string\n className?: string\n color: 'primary' | 'secondary'\n} & FontSizeType\n\nconst Title = ({\n children,\n className,\n color,\n $lgFontSize,\n $mdFontSize,\n $smFontSize\n}: TitleType) => (\n <TitleStyled\n className={className}\n color={color}\n $lgFontSize={$lgFontSize}\n $mdFontSize={$mdFontSize}\n $smFontSize={$smFontSize}\n >\n {children}\n </TitleStyled>\n)\n\nexport default Title\n"]}
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -5,11 +5,8 @@ const packageRoot = path.join(__dirname, '..')
|
|
|
5
5
|
const userProjectRoot = path.join(packageRoot, '..', '..')
|
|
6
6
|
|
|
7
7
|
const configTargetDir = path.join(userProjectRoot, 'src', 'catastyle', 'config')
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
const logoConfigFile = path.join(configTargetDir, 'logo.config.ts')
|
|
12
|
-
const themeConfigFile = path.join(configTargetDir, 'theme.config.ts')
|
|
8
|
+
const catastyleConfigTemplate = path.join(__dirname, 'templates', 'catastyle.config.ts.template')
|
|
9
|
+
const catastyleConfigFile = path.join(configTargetDir, 'catastyle.config.ts')
|
|
13
10
|
|
|
14
11
|
function createConfigFile(templatePath, targetPath, type) {
|
|
15
12
|
try {
|
|
@@ -42,8 +39,7 @@ function createConfigFile(templatePath, targetPath, type) {
|
|
|
42
39
|
|
|
43
40
|
console.log('📦 Catastyle: Setting up configuration files...')
|
|
44
41
|
|
|
45
|
-
createConfigFile(
|
|
46
|
-
createConfigFile(themeConfigTemplate, themeConfigFile, 'theme')
|
|
42
|
+
createConfigFile(catastyleConfigTemplate, catastyleConfigFile, 'catastyle')
|
|
47
43
|
|
|
48
44
|
console.log('✨ Catastyle setup complete!')
|
|
49
|
-
console.log('💡 You can now customize logos and
|
|
45
|
+
console.log('💡 You can now customize themes, logos and icons in src/catastyle/config/catastyle.config.ts')
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { DefaultTheme } from 'styled-components'
|
|
2
|
+
|
|
3
|
+
// TEMAS
|
|
4
|
+
// Para customizar os temas, descomente e configure os objetos abaixo.
|
|
5
|
+
// Se os valores estiverem como null, os temas padrão do Catastyle serão usados.
|
|
6
|
+
export const darkTheme: DefaultTheme | null = null
|
|
7
|
+
/*
|
|
8
|
+
export const darkTheme: DefaultTheme | null = {
|
|
9
|
+
primaryColor: '#EBFFEB',
|
|
10
|
+
secondaryColor: '#538A53',
|
|
11
|
+
tertiaryColor: '#669966',
|
|
12
|
+
bgColor: '#011F1F',
|
|
13
|
+
linkColor: '#33CC66'
|
|
14
|
+
}
|
|
15
|
+
*/
|
|
16
|
+
export const lightTheme: DefaultTheme | null = null
|
|
17
|
+
/*
|
|
18
|
+
export const lightTheme: DefaultTheme | null = {
|
|
19
|
+
primaryColor: '#011F1F',
|
|
20
|
+
secondaryColor: '#33CC66',
|
|
21
|
+
tertiaryColor: '#538A53',
|
|
22
|
+
bgColor: '#EBFFEB',
|
|
23
|
+
linkColor: '#006633'
|
|
24
|
+
}
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
// LOGOS
|
|
28
|
+
// Caminho para SVG customizado ou 'default' para usar os do Catastyle.
|
|
29
|
+
// Exemplo: '/src/assets/logo-light.svg'
|
|
30
|
+
export const logoLight: string = 'default'
|
|
31
|
+
export const logoDark: string = 'default'
|
|
32
|
+
|
|
33
|
+
// ÍCONES (ThemeButton)
|
|
34
|
+
// 'default' = ícones do pacote | caminho/URL = SVG customizado (ex.: mesmo do logo)
|
|
35
|
+
export const iconLight: string = 'default'
|
|
36
|
+
export const iconDark: string = 'default'
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuração de Logos do Catastyle
|
|
3
|
-
*
|
|
4
|
-
* Para customizar os logos, altere os valores abaixo para o caminho dos seus arquivos SVG.
|
|
5
|
-
* Se os valores estiverem como 'default', os logos padrão do Catastyle serão usados.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// Caminho para o logo do tema claro
|
|
9
|
-
// Exemplo: '/src/assets/logo-light.svg' ou 'default'
|
|
10
|
-
export const logoLight: string = 'default'
|
|
11
|
-
|
|
12
|
-
// Caminho para o logo do tema escuro
|
|
13
|
-
// Exemplo: '/src/assets/logo-dark.svg' ou 'default'
|
|
14
|
-
export const logoDark: string = 'default'
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { DefaultTheme } from 'styled-components'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Configuração de Temas do Catastyle
|
|
5
|
-
*
|
|
6
|
-
* Para customizar os temas, descomente e configure os objetos abaixo.
|
|
7
|
-
* Se os valores estiverem como null, os temas padrão do Catastyle serão usados.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
// Tema escuro customizado
|
|
11
|
-
// Descomente e configure as cores abaixo:
|
|
12
|
-
/*
|
|
13
|
-
export const darkTheme: DefaultTheme | null = {
|
|
14
|
-
primaryColor: '#EBFFEB',
|
|
15
|
-
secondaryColor: '#538A53',
|
|
16
|
-
tertiaryColor: '#669966',
|
|
17
|
-
bgColor: '#011F1F',
|
|
18
|
-
linkColor: '#33CC66'
|
|
19
|
-
}
|
|
20
|
-
*/
|
|
21
|
-
export const darkTheme: DefaultTheme | null = null
|
|
22
|
-
|
|
23
|
-
// Tema claro customizado
|
|
24
|
-
// Descomente e configure as cores abaixo:
|
|
25
|
-
/*
|
|
26
|
-
export const lightTheme: DefaultTheme | null = {
|
|
27
|
-
primaryColor: '#011F1F',
|
|
28
|
-
secondaryColor: '#33CC66',
|
|
29
|
-
tertiaryColor: '#538A53',
|
|
30
|
-
bgColor: '#EBFFEB',
|
|
31
|
-
linkColor: '#006633'
|
|
32
|
-
}
|
|
33
|
-
*/
|
|
34
|
-
export const lightTheme: DefaultTheme | null = null
|