diff --git a/.eslintrc.js b/.eslintrc.js index d8858f34..e4354d8b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -17,7 +17,6 @@ module.exports = { "plugin:import/typescript", "plugin:jsx-a11y/recommended", "plugin:prettier/recommended", - "eslint-config-turbo", ], plugins: [ "@typescript-eslint/eslint-plugin", diff --git a/.gitignore b/.gitignore index 064af033..be05a207 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,9 @@ yarn-error.log* .DS_Store *.pem +#bundle +stats.html + ## Panda styled-system-studio diff --git a/apps/wow-docs/app/page.tsx b/apps/wow-docs/app/page.tsx index 41023bfb..6c4546bc 100644 --- a/apps/wow-docs/app/page.tsx +++ b/apps/wow-docs/app/page.tsx @@ -10,6 +10,7 @@ const Home = () => { + diff --git a/apps/wow-docs/panda.config.ts b/apps/wow-docs/panda.config.ts index 1c5b7473..63e6dc3f 100644 --- a/apps/wow-docs/panda.config.ts +++ b/apps/wow-docs/panda.config.ts @@ -1,5 +1,6 @@ import { defineConfig } from "@pandacss/dev"; import { semanticTokens, textStyles, tokens } from "theme"; + import { removeUnusedCssVars, removeUnusedKeyframes } from "theme/utils"; export default defineConfig({ diff --git a/apps/wow-docs/styled-system/tokens/index.js b/apps/wow-docs/styled-system/tokens/index.js index 94ca0846..a27fa6d8 100644 --- a/apps/wow-docs/styled-system/tokens/index.js +++ b/apps/wow-docs/styled-system/tokens/index.js @@ -412,7 +412,7 @@ const tokens = { variable: "var(--colors-outline)", }, "colors.textBlack": { - value: "#000000", + value: "#121212", variable: "var(--colors-text-black)", }, "colors.textWhite": { diff --git a/package.json b/package.json index 33b5a7c8..87f54ebb 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,7 @@ "rollup-jest": "^3.1.0", "rollup-plugin-peer-deps-external": "^2.2.4", "rollup-plugin-preserve-directives": "^0.4.0", + "rollup-plugin-visualizer": "^5.12.0", "shared-config": "workspace:^", "theme": "workspace:^", "ts-jest": "^29.1.2", diff --git a/packages/scripts/generateTokenList.ts b/packages/scripts/generateTokenList.ts new file mode 100644 index 00000000..59806f1f --- /dev/null +++ b/packages/scripts/generateTokenList.ts @@ -0,0 +1,43 @@ +import { promises as fs } from "fs"; + +const TOKEN_DIR = "../wow-tokens/src/color.ts"; +const outputFile = "../theme/src/config/colorTokenList.ts"; + +const extractTokenName = async (filePath: string): Promise => { + try { + const data = await fs.readFile(filePath, "utf-8"); + const regex = /export const (\w+) =/g; + const matches = data.match(regex); + + if (!matches) { + throw new Error("Token file does not found"); + } + + const tokenNames = matches.map((match) => { + let tokenName = match.replace(/export const (\w+) =/, "$1").trim(); + + tokenName = tokenName.replace(/([a-zA-Z])([0-9])/g, "$1.$2"); + + return tokenName; + }); + + return tokenNames; + } catch (error) { + console.error("Error extracting or saving variable names:", error); + return []; + } +}; + +const generateColorTokenFiles = async (tokenNames: string[]) => { + const colorTokenContent = `export const colorTokenList = ${JSON.stringify(tokenNames, null, 2)}`; + await fs.writeFile(outputFile, colorTokenContent, "utf-8"); +}; + +(async () => { + try { + const tokenNames = await extractTokenName(TOKEN_DIR); + await generateColorTokenFiles(tokenNames); + } catch (error) { + console.log("Error generating TokenList:", error); + } +})(); diff --git a/packages/theme/package.json b/packages/theme/package.json index c9be351f..0c8c9fc9 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -6,7 +6,8 @@ "exports": { ".": "./src/tokens/index.ts", "./utils": "./src/utils/index.ts", - "./types": "./src/types/index.ts" + "./types": "./src/types/index.ts", + "./config": "./src/config/index.ts" }, "devDependencies": { "@pandacss/dev": "^0.39.0" diff --git a/packages/theme/src/config/colorTokenList.ts b/packages/theme/src/config/colorTokenList.ts new file mode 100644 index 00000000..4d7b12dd --- /dev/null +++ b/packages/theme/src/config/colorTokenList.ts @@ -0,0 +1,108 @@ +export const colorTokenList = [ + "blue.50", + "blue.100", + "blue.150", + "blue.200", + "blue.300", + "blue.400", + "blue.500", + "blue.600", + "blue.700", + "blue.800", + "blue.850", + "blue.900", + "blue.950", + "yellow.50", + "yellow.100", + "yellow.150", + "yellow.200", + "yellow.300", + "yellow.400", + "yellow.500", + "yellow.600", + "yellow.700", + "yellow.800", + "yellow.850", + "yellow.900", + "yellow.950", + "green.50", + "green.100", + "green.150", + "green.200", + "green.300", + "green.400", + "green.500", + "green.600", + "green.700", + "green.800", + "green.850", + "green.900", + "green.950", + "red.50", + "red.100", + "red.150", + "red.200", + "red.300", + "red.400", + "red.500", + "red.600", + "red.700", + "red.800", + "red.850", + "red.900", + "red.950", + "mono.50", + "mono.100", + "mono.150", + "mono.200", + "mono.300", + "mono.400", + "mono.500", + "mono.600", + "mono.700", + "mono.800", + "mono.850", + "mono.900", + "mono.950", + "white", + "black", + "whiteOpacity.20", + "whiteOpacity.40", + "whiteOpacity.60", + "whiteOpacity.80", + "blackOpacity.20", + "blackOpacity.40", + "blackOpacity.60", + "blackOpacity.80", + "primary", + "success", + "error", + "backgroundNormal", + "backgroundAlternative", + "backgroundDimmer", + "sub", + "outline", + "textBlack", + "textWhite", + "darkDisabled", + "lightDisabled", + "blueHover", + "monoHover", + "elevatedHover", + "bluePressed", + "blueBackgroundPressed", + "monoBackgroundPressed", + "shadowSmall", + "shadowMedium", + "blueShadow", + "discord", + "github", + "blueGradientDark", + "blueGradientLight", + "redGradientDark", + "redGradientLight", + "greenGradientDark", + "greenGradientLight", + "yellowGradientDark", + "yellowGradientLight", +]; diff --git a/packages/theme/src/config/index.ts b/packages/theme/src/config/index.ts new file mode 100644 index 00000000..12bde6eb --- /dev/null +++ b/packages/theme/src/config/index.ts @@ -0,0 +1 @@ +export * from "./colorTokenList.ts"; diff --git a/packages/wow-icons/src/component/RightArrow.tsx b/packages/wow-icons/src/component/RightArrow.tsx new file mode 100644 index 00000000..bade4e0a --- /dev/null +++ b/packages/wow-icons/src/component/RightArrow.tsx @@ -0,0 +1,42 @@ +import { forwardRef } from "react"; +import { color } from "wowds-tokens"; + +import type { IconProps } from "@/types/Icon.ts"; + +const RightArrow = forwardRef( + ( + { + className, + width = "20", + height = "21", + viewBox = "0 0 20 21", + stroke = "white", + ...rest + }, + ref + ) => { + return ( + + + + ); + } +); + +RightArrow.displayName = "RightArrow"; +export default RightArrow; diff --git a/packages/wow-icons/src/component/index.ts b/packages/wow-icons/src/component/index.ts index 717f74ee..3080011f 100644 --- a/packages/wow-icons/src/component/index.ts +++ b/packages/wow-icons/src/component/index.ts @@ -1 +1,2 @@ export { default as Check } from "./Check.tsx"; +export { default as RightArrow } from "./RightArrow.tsx"; diff --git a/packages/wow-icons/src/svg/rightArrow.svg b/packages/wow-icons/src/svg/rightArrow.svg new file mode 100644 index 00000000..59985793 --- /dev/null +++ b/packages/wow-icons/src/svg/rightArrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/wow-tokens/package.json b/packages/wow-tokens/package.json index 97d5f099..0e8ecd60 100644 --- a/packages/wow-tokens/package.json +++ b/packages/wow-tokens/package.json @@ -26,7 +26,8 @@ } }, "scripts": { - "build": "rm -rf dist && rollup -c --bundleConfigAsCjs && tsc --emitDeclarationOnly" + "build": "pnpm generate:staticCSS && rm -rf dist && rollup -c --bundleConfigAsCjs && tsc --emitDeclarationOnly", + "generate:staticCSS": "tsx ../scripts/generateTokenList.ts" }, "keywords": [], "author": "gdsc-hongik", diff --git a/packages/wow-tokens/src/color.ts b/packages/wow-tokens/src/color.ts index dbe30d4e..bc62adf9 100644 --- a/packages/wow-tokens/src/color.ts +++ b/packages/wow-tokens/src/color.ts @@ -99,7 +99,7 @@ export const backgroundDimmer = blackOpacity80; export const sub = mono700; export const outline = mono400; -export const textBlack = black; +export const textBlack = mono950; export const textWhite = white; export const darkDisabled = mono400; diff --git a/packages/wow-ui/panda.config.ts b/packages/wow-ui/panda.config.ts index fb17f32f..10dc0afe 100644 --- a/packages/wow-ui/panda.config.ts +++ b/packages/wow-ui/panda.config.ts @@ -1,5 +1,6 @@ import { defineConfig, defineGlobalStyles } from "@pandacss/dev"; import { semanticTokens, textStyles, tokens, breakpoints } from "theme"; +import { colorTokenList } from "theme/config"; import { removeUnusedCssVars, removeUnusedKeyframes } from "theme/utils"; const globalCss = defineGlobalStyles({ @@ -10,6 +11,15 @@ const globalCss = defineGlobalStyles({ }); export default defineConfig({ + staticCss: { + css: [ + { + properties: { + color: colorTokenList, + }, + }, + ], + }, globalCss, preflight: true, minify: true, diff --git a/packages/wow-ui/rollup.config.js b/packages/wow-ui/rollup.config.js index 88b998ba..905d9cb6 100644 --- a/packages/wow-ui/rollup.config.js +++ b/packages/wow-ui/rollup.config.js @@ -10,6 +10,7 @@ import peerDepsExternal from "rollup-plugin-peer-deps-external"; import typescript from "@rollup/plugin-typescript"; import { fileURLToPath } from "url"; import preserveDirectives from "rollup-plugin-preserve-directives"; +import { visualizer } from "rollup-plugin-visualizer"; const extensions = [".tsx", ".ts", ".js", ".jsx"]; @@ -76,6 +77,7 @@ export default { terser(), json(), preserveDirectives.default(), + visualizer(), ], onwarn: (warning) => { if (warning.code !== "MODULE_LEVEL_DIRECTIVE") { diff --git a/packages/wow-ui/src/components/Box/Box.stories.ts b/packages/wow-ui/src/components/Box/Box.stories.ts deleted file mode 100644 index caae6d07..00000000 --- a/packages/wow-ui/src/components/Box/Box.stories.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { Meta, StoryObj } from "@storybook/react"; - -import Box from "@/components/Box"; - -const meta = { - title: "Example/Box", - component: Box, - tags: ["autodocs"], -} satisfies Meta; - -export default meta; - -type Story = StoryObj; - -export const Default: Story = { - args: { - children: "박스입니당.", - }, -}; diff --git a/packages/wow-ui/src/components/Box/Box.stories.tsx b/packages/wow-ui/src/components/Box/Box.stories.tsx new file mode 100644 index 00000000..e43a3357 --- /dev/null +++ b/packages/wow-ui/src/components/Box/Box.stories.tsx @@ -0,0 +1,227 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import { useState } from "react"; + +import Box from "@/components/Box"; + +const meta = { + title: "UI/Box", + component: Box, + parameters: { + componentSubtitle: "박스 컴포넌트", + a11y: { + config: { + rules: [{ id: "color-contrast", enabled: false }], + }, + }, + }, + tags: ["autodocs"], + argTypes: { + leftElement: { + description: "박스의 왼쪽에 넣을 리액트 요소를 입력합니다.", + table: { + type: { summary: "ReactNode" }, + defaultValue: { summary: "{}" }, + }, + control: false, + }, + variant: { + description: "박스의 타입을 설정합니다.", + mapping: ["text", "checkbox", "arrow"], + options: ["text", "checkbox", "arrow"], + control: { + type: "select", + labels: { + text: "text", + checkbox: "checkbox", + arrow: "arrow", + }, + }, + }, + text: { + description: "박스에 메인으로 표기할 텍스트를 입력합니다.", + table: { + type: { summary: "string" }, + defaultValue: { summary: "" }, + }, + control: { + type: "text", + }, + }, + textColor: { + description: "박스에 메인으로 표기할 텍스트의 색상을 변경합니다.", + table: { + type: { summary: "ColorToken" }, + defaultValue: { summary: "{}" }, + }, + control: false, + }, + subText: { + description: "박스에 서브로 표기할 텍스트를 입력합니다.", + table: { + type: { summary: "string" }, + defaultValue: { summary: "" }, + }, + control: { + type: "text", + }, + }, + subTextColor: { + description: "박스에 서브로 표기할 텍스트의 색상을 변경합니다.", + table: { + type: { summary: "ColorToken" }, + defaultValue: { summary: "{}" }, + }, + control: false, + }, + checked: { + description: "외부에서 제어할 활성 상태를 나타냅니다.", + table: { + type: { summary: "boolean" }, + defaultValue: { summary: "false" }, + }, + control: { + type: "boolean", + }, + }, + status: { + description: "박스의 상태를 설정합니다.", + mapping: ["default", "success", "error"], + options: ["default", "success", "error"], + control: { + type: "select", + labels: { + default: "default", + success: "success", + error: "error", + }, + }, + }, + onClick: { + description: "arrow 타입의 박스를 클릭했을 때 호출되는 함수입니다.", + table: { + type: { summary: "() => void" }, + }, + }, + onChange: { + description: "checkbox 타입의 박스를 클릭했을 대 호출하는 함수입니다.", + table: { + type: { summary: "() => void" }, + }, + }, + style: { + description: "박스의 커스텀 스타일을 설정합니다.", + table: { + type: { summary: "CSSProperties" }, + defaultValue: { summary: "{}" }, + }, + control: false, + }, + className: { + description: "박스에 전달하는 커스텀 클래스를 설정합니다.", + table: { + type: { summary: "string" }, + }, + control: { + type: "text", + }, + }, + }, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + variant: "text", + text: "Text", + subText: "Subtext", + }, +}; + +export const CheckBox: Story = { + args: { + text: "Text", + subText: "Subtext", + variant: "checkbox", + onChange: () => { + console.log("체크"); + }, + }, +}; + +export const ArrowBox: Story = { + args: { + text: "Text", + subText: "Subtext", + variant: "arrow", + onClick: () => { + console.log("클릭 이벤트 발생"); + }, + }, +}; + +export const LongBox: Story = { + args: { + text: "Q. 서류, 면접 전형이 있나요?", + subText: + "없습니다! 홍익대학교 학생이라면 누구나 본 사이트의 '지원하기'를 통해 가입할 수 있어요.", + }, +}; + +export const SuccessBox: Story = { + args: { + text: "Text", + subText: "Subtext", + variant: "checkbox", + onChange: () => { + console.log("체크"); + }, + }, +}; + +export const LeftElementBox: Story = { + args: { + text: "GDSC Hongik Discord", + subText: "디스코드 연동이 필요해요.", + textColor: "discord", + status: "error", + variant: "arrow", + onClick: () => { + console.log("클릭"); + }, + leftElement: ( + discord + ), + }, +}; + +const ControlledBox = () => { + const [checked, setChecked] = useState(false); + + const handleChange = () => { + setChecked((prev) => !prev); + }; + + return ( + + ); +}; + +export const ControlledState: Story = { + args: { + text: "CheckBox Test", + }, + render: () => , +}; diff --git a/packages/wow-ui/src/components/Box/index.tsx b/packages/wow-ui/src/components/Box/index.tsx index ee73a6bb..daace8cc 100644 --- a/packages/wow-ui/src/components/Box/index.tsx +++ b/packages/wow-ui/src/components/Box/index.tsx @@ -1,25 +1,156 @@ -import { css } from "@styled-system/css/css"; -import type { ReactNode } from "react"; +"use client"; +import { cva } from "@styled-system/css"; +import { Flex, styled } from "@styled-system/jsx"; +import type { ColorToken } from "@styled-system/tokens"; +import { RightArrow } from "wowds-icons"; -export interface ButtonProps { - children: ReactNode; +import Checkbox from "@/components/Checkbox"; +import { useCheckedState } from "@/hooks"; + +type BoxVariantType = "arrow" | "checkbox" | "text"; + +export interface BoxProps { + variant?: T; + onClick?: T extends "arrow" ? () => void : never; + onChange?: T extends "checkbox" ? () => void : never; + checked?: T extends "checkbox" ? boolean : never; + leftElement?: React.ReactNode; + text: string; + textColor?: ColorToken; + subText?: string; + subTextColor?: ColorToken; + status?: "default" | "success" | "error"; + style?: React.CSSProperties; + className?: string; } -const Box = ({ children }: ButtonProps) => { +/** + * @description 사용자에게 보여주어야 하는 정보를 담을 수 있는 Box 컴포넌트입니다. + * @param {ReactNode} [leftElement] Box 컴포넌트의 왼쪽에 들어갈 수 있는 요소입니다. (아이콘, 이미지 등) + * @param {boolean} [checked] Box 컴포넌트의 타입이 "checkbox"일때 전달할 수 있는 체크박스의 상태입니다. + * @param {string} [className] 체크박스에 전달하는 커스텀 클래스를 설정합니다. + * @param {string} [textColor] text의 색상을 변경할 수 있습니다. + * @param {"text" | "checkbox" | "arrow"} [variant] Box 컴포넌트의 타입을 설정합니다. + * @param {string} text Box 컴포넌트에 메인으로 표기할 텍스트를 입력합니다. + * @param {string} [subText] Box 컴포넌트에 작성할 추가 정보를 입력합니다. + * @param {string} [subTextColor] subtext의 색상을 변경할 수 있습니다. + * @param {"default" | "success" | "error"} [status] Box 컴포넌트를 통해 사용자의 상태를 반환합니다. + * @param {() => void} [onClick] Box 컴포넌트의 타입이 "arrow"일때 수행할 onClick 함수를 입력합니다. onClick 함수는 "text", "checkbox" type에서 사용할 수 없습니다. + * @param {() => void} [onChange] Box 컴포넌트의 타입이 "checkbox"일때 수행할 onChange 함수를 입력합니다. onChange 함수는 "text", "arrow" type에서 사용할 수 없습니다. + * @param {CSSProperties} [style] Box 컴포넌트에 적용할 수 있는 custom style + */ + +const Box = ({ + leftElement, + variant, + text, + textColor, + subText, + subTextColor, + status = "default", + onClick, + onChange, + style, + checked: checkedProp, + ...rest +}: BoxProps) => { + const { handleClick, checked } = useCheckedState({ + checked: checkedProp, + onChange, + }); + + const getStrokeColor = (status: "default" | "success" | "error") => { + switch (status) { + case "default": + return "outline"; + case "error": + return "error"; + default: + return "primary"; + } + }; + const handleArrowClick = () => { + if (variant === "arrow" && onClick) { + onClick(); + } + }; return ( - + + {leftElement} + + + {text} + + + {subText} + + + +
+ {variant === "checkbox" ? ( + + ) : variant === "arrow" ? ( + + ) : null} +
+ ); }; export default Box; + +const containerStyle = cva({ + base: { + paddingX: "xl", + paddingTop: "xl", + paddingBottom: "lg", + borderRadius: "md", + border: "1px solid", + width: "100%", + md: { + maxWidth: "40.75rem", + minWidth: "19.75rem", + }, + backgroundColor: "white", + }, + variants: { + status: { + default: { + borderColor: "outline", + }, + success: { + borderColor: "primary", + }, + error: { + borderColor: "error", + }, + }, + variant: { + arrow: { + cursor: "pointer", + }, + text: { + cursor: "default", + }, + checkbox: { + cursor: "default", + }, + }, + }, +}); diff --git a/packages/wow-ui/styled-system/tokens/index.js b/packages/wow-ui/styled-system/tokens/index.js index 13fd81a0..d87510cf 100644 --- a/packages/wow-ui/styled-system/tokens/index.js +++ b/packages/wow-ui/styled-system/tokens/index.js @@ -404,7 +404,7 @@ const tokens = { variable: "var(--colors-outline)", }, "colors.textBlack": { - value: "#000000", + value: "#121212", variable: "var(--colors-text-black)", }, "colors.textWhite": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e4a518c..6260ac4c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -162,6 +162,9 @@ importers: rollup-plugin-preserve-directives: specifier: ^0.4.0 version: 0.4.0(rollup@4.17.2) + rollup-plugin-visualizer: + specifier: ^5.12.0 + version: 5.12.0(rollup@4.17.2) shared-config: specifier: workspace:^ version: link:packages/shared-config @@ -182,7 +185,7 @@ importers: version: 4.11.0 turbo: specifier: latest - version: 1.13.3 + version: 2.0.4 typescript: specifier: ^5.3.3 version: 5.3.3 @@ -13904,6 +13907,23 @@ packages: rollup: 4.17.2 dev: true + /rollup-plugin-visualizer@5.12.0(rollup@4.17.2): + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + rollup: 4.17.2 + source-map: 0.7.4 + yargs: 17.7.2 + dev: true + /rollup@0.63.5: resolution: {integrity: sha512-dFf8LpUNzIj3oE0vCvobX6rqOzHzLBoblyFp+3znPbjiSmSvOoK2kMKx+Fv9jYduG1rvcCfCveSgEaQHjWRF6g==} hasBin: true @@ -15172,64 +15192,70 @@ packages: yargs: 17.7.2 dev: true - /turbo-darwin-64@1.13.3: - resolution: {integrity: sha512-glup8Qx1qEFB5jerAnXbS8WrL92OKyMmg5Hnd4PleLljAeYmx+cmmnsmLT7tpaVZIN58EAAwu8wHC6kIIqhbWA==} + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /turbo-darwin-64@2.0.4: + resolution: {integrity: sha512-x9mvmh4wudBstML8Z8IOmokLWglIhSfhQwnh2gBCSqabgVBKYvzl8Y+i+UCNPxheCGTgtsPepTcIaKBIyFIcvw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.13.3: - resolution: {integrity: sha512-/np2xD+f/+9qY8BVtuOQXRq5f9LehCFxamiQnwdqWm5iZmdjygC5T3uVSYuagVFsZKMvX3ycySwh8dylGTl6lg==} + /turbo-darwin-arm64@2.0.4: + resolution: {integrity: sha512-/B1Ih8zPRGVw5vw4SlclOf3C/woJ/2T6ieH6u54KT4wypoaVyaiyMqBcziIXycdObIYr7jQ+raHO7q3mhay9/A==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.13.3: - resolution: {integrity: sha512-G+HGrau54iAnbXLfl+N/PynqpDwi/uDzb6iM9hXEDG+yJnSJxaHMShhOkXYJPk9offm9prH33Khx2scXrYVW1g==} + /turbo-linux-64@2.0.4: + resolution: {integrity: sha512-6aG670e5zOWu6RczEYcB81nEl8EhiGJEvWhUrnAfNEUIMBEH1pR5SsMmG2ol5/m3PgiRM12r13dSqTxCLcHrVg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.13.3: - resolution: {integrity: sha512-qWwEl5VR02NqRyl68/3pwp3c/olZuSp+vwlwrunuoNTm6JXGLG5pTeme4zoHNnk0qn4cCX7DFrOboArlYxv0wQ==} + /turbo-linux-arm64@2.0.4: + resolution: {integrity: sha512-AXfVOjst+mCtPDFT4tCu08Qrfv12Nj7NDd33AjGwV79NYN1Y1rcFY59UQ4nO3ij3rbcvV71Xc+TZJ4csEvRCSg==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.13.3: - resolution: {integrity: sha512-Nudr4bRChfJzBPzEmpVV85VwUYRCGKecwkBFpbp2a4NtrJ3+UP1VZES653ckqCu2FRyRuS0n03v9euMbAvzH+Q==} + /turbo-windows-64@2.0.4: + resolution: {integrity: sha512-QOnUR9hKl0T5gq5h1fAhVEqBSjpcBi/BbaO71YGQNgsr6pAnCQdbG8/r3MYXet53efM0KTdOhieWeO3KLNKybA==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.13.3: - resolution: {integrity: sha512-ouJCgsVLd3icjRLmRvHQDDZnmGzT64GBupM1Y+TjtYn2LVaEBoV6hicFy8x5DUpnqdLy+YpCzRMkWlwhmkX7sQ==} + /turbo-windows-arm64@2.0.4: + resolution: {integrity: sha512-3v8WpdZy1AxZw0gha0q3caZmm+0gveBQ40OspD6mxDBIS+oBtO5CkxhIXkFJJW+jDKmDlM7wXDIGfMEq+QyNCQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.13.3: - resolution: {integrity: sha512-n17HJv4F4CpsYTvKzUJhLbyewbXjq1oLCi90i5tW1TiWDz16ML1eDG7wi5dHaKxzh5efIM56SITnuVbMq5dk4g==} + /turbo@2.0.4: + resolution: {integrity: sha512-Ilme/2Q5kYw0AeRr+aw3s02+WrEYaY7U8vPnqSZU/jaDG/qd6jHVN6nRWyd/9KXvJGYM69vE6JImoGoyNjLwaw==} hasBin: true optionalDependencies: - turbo-darwin-64: 1.13.3 - turbo-darwin-arm64: 1.13.3 - turbo-linux-64: 1.13.3 - turbo-linux-arm64: 1.13.3 - turbo-windows-64: 1.13.3 - turbo-windows-arm64: 1.13.3 + turbo-darwin-64: 2.0.4 + turbo-darwin-arm64: 2.0.4 + turbo-linux-64: 2.0.4 + turbo-linux-arm64: 2.0.4 + turbo-windows-64: 2.0.4 + turbo-windows-arm64: 2.0.4 dev: true /tween-functions@1.2.0: diff --git a/turbo.json b/turbo.json index fbe2d792..d9f73c29 100644 --- a/turbo.json +++ b/turbo.json @@ -1,7 +1,7 @@ { "$schema": "https://turbo.build/schema.json", "globalDependencies": ["**/.env.*local"], - "pipeline": { + "tasks": { "lint": { "dependsOn": ["^lint"] },