@jakubmazanec/carson-templates 6.0.0-unstable.f12d7dc8 → 6.0.0

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.
Files changed (25) hide show
  1. package/README.md +1 -1
  2. package/build/constants.js +12 -18
  3. package/build/constants.js.map +2 -2
  4. package/package.json +20 -20
  5. package/source/constants.ts +12 -18
  6. package/templates/projects/react-library/.storybook/main.ts.ejs +1 -5
  7. package/templates/projects/react-library/.storybook/tailwind.css.ensure.ejs +1 -3
  8. package/templates/projects/react-library/package.json.ejs +3 -9
  9. package/templates/projects/react-library/vite.config.ts.ejs +2 -0
  10. package/templates/projects/remix-app/Dockerfile.ejs +5 -5
  11. package/templates/projects/remix-app/package.json.ejs +1 -1
  12. package/templates/projects/remix-app/source/tailwind.css.ensure.ejs +12 -0
  13. package/templates/projects/remix-app/tsconfig.json.ejs +1 -1
  14. package/templates/projects/remix-app/vite.config.ts.ejs +2 -1
  15. package/templates/workspace/.github/workflows/check-pull-request.yaml.ejs +3 -3
  16. package/templates/workspace/.github/workflows/release-pull-request.yaml.ejs +7 -7
  17. package/templates/workspace/.github/workflows/release.yaml.ejs +20 -20
  18. package/templates/workspace/turbo.json.ejs +1 -1
  19. package/templates/projects/react-library/.storybook/tailwindConfig.ts.ensure.ejs +0 -20
  20. package/templates/projects/react-library/postcss.config.cjs.ejs +0 -18
  21. package/templates/projects/react-library/tailwind.config.ts.ejs +0 -13
  22. package/templates/projects/remix-app/postcss.config.cjs.ejs +0 -18
  23. package/templates/projects/remix-app/source/tailwind.css.create.ejs +0 -7
  24. package/templates/projects/remix-app/source/tailwindConfig.ts.create.ejs +0 -13
  25. package/templates/projects/remix-app/tailwind.config.ts.ejs +0 -13
package/README.md CHANGED
@@ -18,7 +18,7 @@ npm install @jakubmazanec/carson-templates
18
18
 
19
19
  #### Prerequisites
20
20
 
21
- - Node.js 22 or later
21
+ - Node.js 24 or later
22
22
  <!-- prerequisites -->
23
23
 
24
24
  ## Usage
@@ -111,35 +111,27 @@ export const DEPENDENCY_VERSIONS = {
111
111
  [CHANGELOG_PACKAGE_NAME]: "^2.0.0",
112
112
  [LINTER_CONFIG_PACKAGE_NAME]: "^4.0.0",
113
113
  "@changesets/cli": "^2.0.0",
114
- "@chromatic-com/storybook": "^3.0.0",
114
+ "@chromatic-com/storybook": "^4.0.0",
115
115
  "@react-router/dev": "^7.0.0",
116
116
  "@react-router/fs-routes": "^7.0.0",
117
117
  "@react-router/node": "^7.0.0",
118
118
  "@react-router/serve": "^7.0.0",
119
- "@storybook/addon-controls": "^8.0.0",
120
- "@storybook/addon-essentials": "^8.0.0",
121
- "@storybook/addon-interactions": "^8.0.0",
122
- "@storybook/addon-links": "^8.0.0",
123
- "@storybook/blocks": "^8.0.0",
124
- "@storybook/preview-api": "^8.0.0",
125
- "@storybook/react": "^8.0.0",
126
- "@storybook/react-vite": "^8.0.0",
127
- "@storybook/test": "^8.0.0",
119
+ "@storybook/addon-links": "^9.0.0",
120
+ "@storybook/addon-docs": "^9.0.0",
121
+ "@storybook/react-vite": "^9.0.0",
128
122
  "@testing-library/jest-dom": "^6.0.0",
129
123
  "@testing-library/react": "^16.0.0",
130
124
  "@types/lodash": "^4.0.0",
131
- "@types/node": "^22.0.0",
132
125
  "@types/react": "^19.0.0",
133
126
  "@types/react-dom": "^19.0.0",
134
127
  "@vitest/coverage-v8": "^3.0.0",
135
- autoprefixer: "^10.0.0",
136
- chromatic: "^11.0.0",
128
+ chromatic: "^13.0.0",
137
129
  concurrently: "^9.0.0",
138
130
  "cross-env": "^7.0.0",
139
131
  "del-cli": "^6.0.0",
140
132
  esbuild: "^0.24.0",
141
133
  eslint: "^9.0.0",
142
- "happy-dom": "^16.0.0",
134
+ "happy-dom": "^18.0.0",
143
135
  isbot: "^5.0.0",
144
136
  lodash: "^4.0.0",
145
137
  "patch-package": "^8.0.0",
@@ -149,16 +141,18 @@ export const DEPENDENCY_VERSIONS = {
149
141
  react: "^19.0.0",
150
142
  "react-dom": "^19.0.0",
151
143
  "react-router": "^7.0.0",
152
- storybook: "^8.0.0",
153
- tailwindcss: "^3.0.0",
144
+ storybook: "^9.0.0",
145
+ tailwindcss: "^4.0.0",
146
+ "@tailwindcss/vite": "^4.0.0",
154
147
  turbo: "^2.0.0",
155
148
  typedoc: "^0.28.0",
156
149
  "typedoc-plugin-markdown": "^4.0.0",
157
150
  typescript: "^5.0.0",
158
151
  vite: "^6.0.0",
159
152
  vitest: "^3.0.0",
160
- node: "^22.13.0",
161
- npm: "^10.9.0",
153
+ node: "^24.1.0",
154
+ "@types/node": "^22.0.0",
155
+ npm: "^11.3.0",
162
156
  gel: "^6.7.0"
163
157
  };
164
158
  export const BUILD_TO_ESM_COMMAND = `esbuild "${SOURCE_DIRECTORY}/**/*" --platform=node --target=node${semver.major(semver.minVersion(DEPENDENCY_VERSIONS.node))}.${semver.minor(semver.minVersion(DEPENDENCY_VERSIONS.node))} --outdir=${BUILD_DIRECTORY} --sourcemap`;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../source/constants.ts"],
4
- "sourcesContent": ["import fs from 'node:fs';\nimport {createRequire} from 'node:module';\nimport semver from 'semver';\n\nexport const AUTHOR = 'Jakub Mazanec <jakub@mazanec.dev>';\n\nexport const BUILD_DIRECTORY = 'build';\nexport const STORYBOOK_BUILD_DIRECTORY = 'storybook-static';\nexport const SOURCE_DIRECTORY = 'source';\n\nexport const APP_PORT = 5000;\n\nexport const CARSON_PACKAGE_NAME = '@jakubmazanec/carson';\nexport const TEMPLATE_PACKAGE_NAME = '@jakubmazanec/carson-templates';\nexport const LINTER_CONFIG_PACKAGE_NAME = '@jakubmazanec/eslint-config';\nexport const CHANGELOG_PACKAGE_NAME = '@jakubmazanec/changesets-changelog';\n\nexport const MAIN_BRANCH_NAMES = new Set(['main', 'master']);\nexport const DEVELOPMENT_BRANCH_NAMES = new Set(['dev', 'develop', 'development']);\n\nexport const LINT_IGNORES = [\n '.cache/**',\n '.turbo/**',\n 'bin/**',\n 'coverage/**',\n 'node_modules/**',\n 'public/**',\n '**/*.d.ts',\n '**/*.json',\n '**/*.md',\n '**/*.mdx',\n `${BUILD_DIRECTORY}/**`,\n].sort();\n\nexport const FORMAT_IGNORE_PATTERNS = [\n '.cache/',\n '.turbo/',\n 'coverage/',\n 'node_modules/',\n 'public/',\n 'npm-shrinkwrap.json',\n 'package-lock.json',\n 'CHANGELOG.md',\n 'LICENSE.md',\n `${BUILD_DIRECTORY}/`,\n].sort();\n\nexport const ECMASCRIPT_VERSION = 2024;\n\nexport const TSCONFIG_COMPILER_OPTIONS = {\n allowSyntheticDefaultImports: true,\n composite: true,\n exactOptionalPropertyTypes: true,\n forceConsistentCasingInFileNames: true,\n isolatedModules: true,\n jsx: 'react-jsx',\n lib: ['dom', 'dom.iterable', `es${ECMASCRIPT_VERSION}`],\n module: 'node16',\n moduleResolution: 'node16',\n noEmitOnError: true,\n noImplicitOverride: true,\n noImplicitReturns: true,\n noUncheckedIndexedAccess: true,\n skipLibCheck: true,\n strict: true,\n target: `es${ECMASCRIPT_VERSION}`,\n};\n\nexport const PRETTIER_OPTIONS = {\n arrowParens: 'always',\n bracketSameLine: false,\n bracketSpacing: false,\n embeddedLanguageFormatting: 'auto',\n experimentalTernaries: true,\n htmlWhitespaceSensitivity: 'css',\n jsxSingleQuote: false,\n printWidth: 100,\n proseWrap: 'always',\n quoteProps: 'as-needed',\n requirePragma: false,\n semi: true,\n singleQuote: true,\n trailingComma: 'all',\n // TODO: remove when this is fixed: https://github.com/prettier/prettier/issues/15956\n overrides: [\n {\n files: ['tsconfig.json'],\n options: {\n trailingComma: 'none',\n },\n },\n ],\n};\n\nexport const TYPEDOC_CONFIG = {\n plugin: 'typedoc-plugin-markdown',\n entryPoints: [`./${SOURCE_DIRECTORY}/main.ts`],\n out: 'docs',\n readme: 'none',\n githubPages: false,\n hideBreadcrumbs: true,\n};\n\n// dependencies\nlet require = createRequire(import.meta.url);\nlet carsonPackageVersion =\n semver\n .minVersion(\n (\n JSON.parse(\n fs.readFileSync(require.resolve(`${TEMPLATE_PACKAGE_NAME}/package.json`), {\n encoding: 'utf8',\n }),\n ) as {peerDependencies: Record<string, string>}\n ).peerDependencies[CARSON_PACKAGE_NAME] ?? '^1.0.0',\n )\n ?.format() ?? '1.0.0';\nlet isCarsonPackageVersionPrerelease = !!semver.prerelease(carsonPackageVersion)?.length;\nlet templatesPackageVersion = (\n JSON.parse(\n fs.readFileSync(require.resolve(`${TEMPLATE_PACKAGE_NAME}/package.json`), {\n encoding: 'utf8',\n }),\n ) as {version: string}\n).version;\nlet isTemplatesPackageVersionPrerelease = !!semver.prerelease(templatesPackageVersion)?.length;\n\nexport const DEPENDENCY_VERSIONS: Record<string, string> = {\n [CARSON_PACKAGE_NAME]:\n isCarsonPackageVersionPrerelease ? carsonPackageVersion : `^${carsonPackageVersion}`,\n [TEMPLATE_PACKAGE_NAME]:\n isTemplatesPackageVersionPrerelease ? templatesPackageVersion : `^${templatesPackageVersion}`,\n [CHANGELOG_PACKAGE_NAME]: '^2.0.0',\n [LINTER_CONFIG_PACKAGE_NAME]: '^4.0.0',\n\n '@changesets/cli': '^2.0.0',\n '@chromatic-com/storybook': '^3.0.0',\n '@react-router/dev': '^7.0.0',\n '@react-router/fs-routes': '^7.0.0',\n '@react-router/node': '^7.0.0',\n '@react-router/serve': '^7.0.0',\n '@storybook/addon-controls': '^8.0.0',\n '@storybook/addon-essentials': '^8.0.0',\n '@storybook/addon-interactions': '^8.0.0',\n '@storybook/addon-links': '^8.0.0',\n '@storybook/blocks': '^8.0.0',\n '@storybook/preview-api': '^8.0.0',\n '@storybook/react': '^8.0.0',\n '@storybook/react-vite': '^8.0.0',\n '@storybook/test': '^8.0.0',\n '@testing-library/jest-dom': '^6.0.0',\n '@testing-library/react': '^16.0.0',\n '@types/lodash': '^4.0.0',\n '@types/node': '^22.0.0',\n '@types/react': '^19.0.0',\n '@types/react-dom': '^19.0.0',\n '@vitest/coverage-v8': '^3.0.0',\n autoprefixer: '^10.0.0',\n chromatic: '^11.0.0',\n concurrently: '^9.0.0',\n 'cross-env': '^7.0.0',\n 'del-cli': '^6.0.0',\n esbuild: '^0.24.0',\n eslint: '^9.0.0',\n 'happy-dom': '^16.0.0',\n isbot: '^5.0.0',\n lodash: '^4.0.0',\n 'patch-package': '^8.0.0',\n prettier: '^3.0.0',\n 'prettier-plugin-packagejson': '^2.0.0',\n 'prettier-plugin-tailwindcss': '^0.6.0',\n react: '^19.0.0',\n 'react-dom': '^19.0.0',\n 'react-router': '^7.0.0',\n storybook: '^8.0.0',\n tailwindcss: '^3.0.0',\n turbo: '^2.0.0',\n typedoc: '^0.28.0',\n 'typedoc-plugin-markdown': '^4.0.0',\n typescript: '^5.0.0',\n vite: '^6.0.0',\n vitest: '^3.0.0',\n\n node: '^22.13.0',\n npm: '^10.9.0',\n\n gel: '^6.7.0',\n};\n\n// commands\nexport const BUILD_TO_ESM_COMMAND = `esbuild \"${SOURCE_DIRECTORY}/**/*\" --platform=node --target=node${semver.major(semver.minVersion(DEPENDENCY_VERSIONS.node!)!)}.${semver.minor(semver.minVersion(DEPENDENCY_VERSIONS.node!)!)} --outdir=${BUILD_DIRECTORY} --sourcemap`;\nexport const BUILD_TO_CJS_COMMAND = `esbuild \"${SOURCE_DIRECTORY}/**/*\" --platform=node --target=node${semver.major(semver.minVersion(DEPENDENCY_VERSIONS.node!)!)}.${semver.minor(semver.minVersion(DEPENDENCY_VERSIONS.node!)!)} --format=cjs --outdir=${BUILD_DIRECTORY} --sourcemap`;\nexport const FORMAT_COMMAND = 'prettier . --write --ignore-unknown';\nexport const TEST_COMMAND = 'vitest run --coverage --passWithNoTests';\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import fs from 'node:fs';\nimport {createRequire} from 'node:module';\nimport semver from 'semver';\n\nexport const AUTHOR = 'Jakub Mazanec <jakub@mazanec.dev>';\n\nexport const BUILD_DIRECTORY = 'build';\nexport const STORYBOOK_BUILD_DIRECTORY = 'storybook-static';\nexport const SOURCE_DIRECTORY = 'source';\n\nexport const APP_PORT = 5000;\n\nexport const CARSON_PACKAGE_NAME = '@jakubmazanec/carson';\nexport const TEMPLATE_PACKAGE_NAME = '@jakubmazanec/carson-templates';\nexport const LINTER_CONFIG_PACKAGE_NAME = '@jakubmazanec/eslint-config';\nexport const CHANGELOG_PACKAGE_NAME = '@jakubmazanec/changesets-changelog';\n\nexport const MAIN_BRANCH_NAMES = new Set(['main', 'master']);\nexport const DEVELOPMENT_BRANCH_NAMES = new Set(['dev', 'develop', 'development']);\n\nexport const LINT_IGNORES = [\n '.cache/**',\n '.turbo/**',\n 'bin/**',\n 'coverage/**',\n 'node_modules/**',\n 'public/**',\n '**/*.d.ts',\n '**/*.json',\n '**/*.md',\n '**/*.mdx',\n `${BUILD_DIRECTORY}/**`,\n].sort();\n\nexport const FORMAT_IGNORE_PATTERNS = [\n '.cache/',\n '.turbo/',\n 'coverage/',\n 'node_modules/',\n 'public/',\n 'npm-shrinkwrap.json',\n 'package-lock.json',\n 'CHANGELOG.md',\n 'LICENSE.md',\n `${BUILD_DIRECTORY}/`,\n].sort();\n\nexport const ECMASCRIPT_VERSION = 2024;\n\nexport const TSCONFIG_COMPILER_OPTIONS = {\n allowSyntheticDefaultImports: true,\n composite: true,\n exactOptionalPropertyTypes: true,\n forceConsistentCasingInFileNames: true,\n isolatedModules: true,\n jsx: 'react-jsx',\n lib: ['dom', 'dom.iterable', `es${ECMASCRIPT_VERSION}`],\n module: 'node16',\n moduleResolution: 'node16',\n noEmitOnError: true,\n noImplicitOverride: true,\n noImplicitReturns: true,\n noUncheckedIndexedAccess: true,\n skipLibCheck: true,\n strict: true,\n target: `es${ECMASCRIPT_VERSION}`,\n};\n\nexport const PRETTIER_OPTIONS = {\n arrowParens: 'always',\n bracketSameLine: false,\n bracketSpacing: false,\n embeddedLanguageFormatting: 'auto',\n experimentalTernaries: true,\n htmlWhitespaceSensitivity: 'css',\n jsxSingleQuote: false,\n printWidth: 100,\n proseWrap: 'always',\n quoteProps: 'as-needed',\n requirePragma: false,\n semi: true,\n singleQuote: true,\n trailingComma: 'all',\n // TODO: remove when this is fixed: https://github.com/prettier/prettier/issues/15956\n overrides: [\n {\n files: ['tsconfig.json'],\n options: {\n trailingComma: 'none',\n },\n },\n ],\n};\n\nexport const TYPEDOC_CONFIG = {\n plugin: 'typedoc-plugin-markdown',\n entryPoints: [`./${SOURCE_DIRECTORY}/main.ts`],\n out: 'docs',\n readme: 'none',\n githubPages: false,\n hideBreadcrumbs: true,\n};\n\n// dependencies\nlet require = createRequire(import.meta.url);\nlet carsonPackageVersion =\n semver\n .minVersion(\n (\n JSON.parse(\n fs.readFileSync(require.resolve(`${TEMPLATE_PACKAGE_NAME}/package.json`), {\n encoding: 'utf8',\n }),\n ) as {peerDependencies: Record<string, string>}\n ).peerDependencies[CARSON_PACKAGE_NAME] ?? '^1.0.0',\n )\n ?.format() ?? '1.0.0';\nlet isCarsonPackageVersionPrerelease = !!semver.prerelease(carsonPackageVersion)?.length;\nlet templatesPackageVersion = (\n JSON.parse(\n fs.readFileSync(require.resolve(`${TEMPLATE_PACKAGE_NAME}/package.json`), {\n encoding: 'utf8',\n }),\n ) as {version: string}\n).version;\nlet isTemplatesPackageVersionPrerelease = !!semver.prerelease(templatesPackageVersion)?.length;\n\nexport const DEPENDENCY_VERSIONS: Record<string, string> = {\n [CARSON_PACKAGE_NAME]:\n isCarsonPackageVersionPrerelease ? carsonPackageVersion : `^${carsonPackageVersion}`,\n [TEMPLATE_PACKAGE_NAME]:\n isTemplatesPackageVersionPrerelease ? templatesPackageVersion : `^${templatesPackageVersion}`,\n [CHANGELOG_PACKAGE_NAME]: '^2.0.0',\n [LINTER_CONFIG_PACKAGE_NAME]: '^4.0.0',\n\n '@changesets/cli': '^2.0.0',\n '@chromatic-com/storybook': '^4.0.0',\n '@react-router/dev': '^7.0.0',\n '@react-router/fs-routes': '^7.0.0',\n '@react-router/node': '^7.0.0',\n '@react-router/serve': '^7.0.0',\n '@storybook/addon-links': '^9.0.0',\n '@storybook/addon-docs': '^9.0.0',\n '@storybook/react-vite': '^9.0.0',\n '@testing-library/jest-dom': '^6.0.0',\n '@testing-library/react': '^16.0.0',\n '@types/lodash': '^4.0.0',\n '@types/react': '^19.0.0',\n '@types/react-dom': '^19.0.0',\n '@vitest/coverage-v8': '^3.0.0',\n chromatic: '^13.0.0',\n concurrently: '^9.0.0',\n 'cross-env': '^7.0.0',\n 'del-cli': '^6.0.0',\n esbuild: '^0.24.0',\n eslint: '^9.0.0',\n 'happy-dom': '^18.0.0',\n isbot: '^5.0.0',\n lodash: '^4.0.0',\n 'patch-package': '^8.0.0',\n prettier: '^3.0.0',\n 'prettier-plugin-packagejson': '^2.0.0',\n 'prettier-plugin-tailwindcss': '^0.6.0',\n react: '^19.0.0',\n 'react-dom': '^19.0.0',\n 'react-router': '^7.0.0',\n storybook: '^9.0.0',\n tailwindcss: '^4.0.0',\n '@tailwindcss/vite': '^4.0.0',\n turbo: '^2.0.0',\n typedoc: '^0.28.0',\n 'typedoc-plugin-markdown': '^4.0.0',\n typescript: '^5.0.0',\n vite: '^6.0.0',\n vitest: '^3.0.0',\n\n node: '^24.1.0',\n '@types/node': '^22.0.0',\n npm: '^11.3.0',\n\n gel: '^6.7.0',\n};\n\n// commands\nexport const BUILD_TO_ESM_COMMAND = `esbuild \"${SOURCE_DIRECTORY}/**/*\" --platform=node --target=node${semver.major(semver.minVersion(DEPENDENCY_VERSIONS.node!)!)}.${semver.minor(semver.minVersion(DEPENDENCY_VERSIONS.node!)!)} --outdir=${BUILD_DIRECTORY} --sourcemap`;\nexport const BUILD_TO_CJS_COMMAND = `esbuild \"${SOURCE_DIRECTORY}/**/*\" --platform=node --target=node${semver.major(semver.minVersion(DEPENDENCY_VERSIONS.node!)!)}.${semver.minor(semver.minVersion(DEPENDENCY_VERSIONS.node!)!)} --format=cjs --outdir=${BUILD_DIRECTORY} --sourcemap`;\nexport const FORMAT_COMMAND = 'prettier . --write --ignore-unknown';\nexport const TEST_COMMAND = 'vitest run --coverage --passWithNoTests';\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakubmazanec/carson-templates",
3
- "version": "6.0.0-unstable.f12d7dc8",
3
+ "version": "6.0.0",
4
4
  "description": "Collection of Carson templates.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,7 @@
21
21
  "templates"
22
22
  ],
23
23
  "scripts": {
24
- "build": "del-cli build tsconfig.tsbuildinfo && esbuild \"source/**/*\" --platform=node --target=node22.13 --outdir=build --sourcemap && tsc",
24
+ "build": "del-cli build tsconfig.tsbuildinfo && esbuild \"source/**/*\" --platform=node --target=node24.1 --outdir=build --sourcemap && tsc",
25
25
  "clean": "del-cli coverage build *.tsbuildinfo",
26
26
  "document": "del-cli docs && typedoc --options typedoc.config.cjs",
27
27
  "format": "prettier . --write --ignore-unknown",
@@ -31,36 +31,36 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "lodash": "^4.17.21",
34
- "semver": "^7.7.0"
34
+ "semver": "^7.7.2"
35
35
  },
36
36
  "devDependencies": {
37
- "@jakubmazanec/carson": "2.0.3-unstable.f12d7dc8",
37
+ "@jakubmazanec/carson": "^3.0.0",
38
38
  "@jakubmazanec/eslint-config": "^4.1.0",
39
- "@jakubmazanec/fs-utils": "0.2.12-unstable.f12d7dc8",
39
+ "@jakubmazanec/fs-utils": "^0.2.0",
40
40
  "@types/fs-extra": "^11.0.4",
41
- "@types/lodash": "^4.17.15",
42
- "@types/node": "^22.10.7",
41
+ "@types/lodash": "^4.17.18",
42
+ "@types/node": "^22.15.21",
43
43
  "@types/zen-observable": "^0.8.7",
44
- "@vitest/coverage-v8": "^3.0.4",
44
+ "@vitest/coverage-v8": "^3.2.4",
45
45
  "del-cli": "^6.0.0",
46
- "esbuild": "^0.24.2",
47
- "eslint": "^9.19.0",
48
- "execa": "^9.5.2",
46
+ "esbuild": "^0.25.5",
47
+ "eslint": "^9.29.0",
48
+ "execa": "^9.6.0",
49
49
  "fast-glob": "^3.3.3",
50
50
  "fs-extra": "^11.3.0",
51
- "prettier": "^3.4.2",
52
- "prettier-plugin-packagejson": "^2.5.8",
53
- "typedoc": "^0.28.4",
54
- "typedoc-plugin-markdown": "^4.6.3",
55
- "typescript": "^5.7.3",
56
- "vitest": "^3.0.4",
51
+ "prettier": "^3.6.0",
52
+ "prettier-plugin-packagejson": "^2.5.15",
53
+ "typedoc": "^0.28.5",
54
+ "typedoc-plugin-markdown": "^4.7.0",
55
+ "typescript": "^5.8.3",
56
+ "vitest": "^3.2.4",
57
57
  "zen-observable": "^0.10.0"
58
58
  },
59
59
  "peerDependencies": {
60
- "@jakubmazanec/carson": "2.0.3-unstable.f12d7dc8"
60
+ "@jakubmazanec/carson": "^3.0.0"
61
61
  },
62
- "packageManager": "npm@10.9.0",
62
+ "packageManager": "npm@11.3.0",
63
63
  "engines": {
64
- "node": "^22.13.0"
64
+ "node": "^24.1.0"
65
65
  }
66
66
  }
@@ -134,35 +134,27 @@ export const DEPENDENCY_VERSIONS: Record<string, string> = {
134
134
  [LINTER_CONFIG_PACKAGE_NAME]: '^4.0.0',
135
135
 
136
136
  '@changesets/cli': '^2.0.0',
137
- '@chromatic-com/storybook': '^3.0.0',
137
+ '@chromatic-com/storybook': '^4.0.0',
138
138
  '@react-router/dev': '^7.0.0',
139
139
  '@react-router/fs-routes': '^7.0.0',
140
140
  '@react-router/node': '^7.0.0',
141
141
  '@react-router/serve': '^7.0.0',
142
- '@storybook/addon-controls': '^8.0.0',
143
- '@storybook/addon-essentials': '^8.0.0',
144
- '@storybook/addon-interactions': '^8.0.0',
145
- '@storybook/addon-links': '^8.0.0',
146
- '@storybook/blocks': '^8.0.0',
147
- '@storybook/preview-api': '^8.0.0',
148
- '@storybook/react': '^8.0.0',
149
- '@storybook/react-vite': '^8.0.0',
150
- '@storybook/test': '^8.0.0',
142
+ '@storybook/addon-links': '^9.0.0',
143
+ '@storybook/addon-docs': '^9.0.0',
144
+ '@storybook/react-vite': '^9.0.0',
151
145
  '@testing-library/jest-dom': '^6.0.0',
152
146
  '@testing-library/react': '^16.0.0',
153
147
  '@types/lodash': '^4.0.0',
154
- '@types/node': '^22.0.0',
155
148
  '@types/react': '^19.0.0',
156
149
  '@types/react-dom': '^19.0.0',
157
150
  '@vitest/coverage-v8': '^3.0.0',
158
- autoprefixer: '^10.0.0',
159
- chromatic: '^11.0.0',
151
+ chromatic: '^13.0.0',
160
152
  concurrently: '^9.0.0',
161
153
  'cross-env': '^7.0.0',
162
154
  'del-cli': '^6.0.0',
163
155
  esbuild: '^0.24.0',
164
156
  eslint: '^9.0.0',
165
- 'happy-dom': '^16.0.0',
157
+ 'happy-dom': '^18.0.0',
166
158
  isbot: '^5.0.0',
167
159
  lodash: '^4.0.0',
168
160
  'patch-package': '^8.0.0',
@@ -172,8 +164,9 @@ export const DEPENDENCY_VERSIONS: Record<string, string> = {
172
164
  react: '^19.0.0',
173
165
  'react-dom': '^19.0.0',
174
166
  'react-router': '^7.0.0',
175
- storybook: '^8.0.0',
176
- tailwindcss: '^3.0.0',
167
+ storybook: '^9.0.0',
168
+ tailwindcss: '^4.0.0',
169
+ '@tailwindcss/vite': '^4.0.0',
177
170
  turbo: '^2.0.0',
178
171
  typedoc: '^0.28.0',
179
172
  'typedoc-plugin-markdown': '^4.0.0',
@@ -181,8 +174,9 @@ export const DEPENDENCY_VERSIONS: Record<string, string> = {
181
174
  vite: '^6.0.0',
182
175
  vitest: '^3.0.0',
183
176
 
184
- node: '^22.13.0',
185
- npm: '^10.9.0',
177
+ node: '^24.1.0',
178
+ '@types/node': '^22.0.0',
179
+ npm: '^11.3.0',
186
180
 
187
181
  gel: '^6.7.0',
188
182
  };
@@ -18,17 +18,13 @@ const config: StorybookConfig = _.merge(
18
18
  stories: ['../stories/**/*.mdx', '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
19
19
  addons: [
20
20
  '@chromatic-com/storybook',
21
- '@storybook/addon-essentials',
22
- '@storybook/addon-interactions',
21
+ '@storybook/addon-docs',
23
22
  '@storybook/addon-links',
24
23
  ],
25
24
  framework: {
26
25
  name: '@storybook/react-vite',
27
26
  options: {},
28
27
  },
29
- docs: {
30
- autodocs: 'tag',
31
- },
32
28
  } satisfies StorybookConfig,
33
29
  <%- JSON.stringify(project.config.overrides?.storybookConfig ?? {}, null, 2) %>,
34
30
  );
@@ -9,6 +9,4 @@ strategy: ensure
9
9
  * Run `npx carson update workspace` to regenerate.
10
10
  */
11
11
 
12
- @tailwind base;
13
- @tailwind components;
14
- @tailwind utilities;
12
+ @import "tailwindcss";
@@ -14,15 +14,10 @@ files.sort();
14
14
  let developmentDependencies = [
15
15
  LINTER_CONFIG_PACKAGE_NAME,
16
16
  '@chromatic-com/storybook',
17
- '@storybook/addon-control',
18
- '@storybook/addon-essentials',
19
- '@storybook/addon-interactions',
17
+ '@storybook/addon-docs',
20
18
  '@storybook/addon-links',
21
- '@storybook/blocks',
22
- '@storybook/preview-api',
23
- '@storybook/react',
24
19
  '@storybook/react-vite',
25
- '@storybook/test',
20
+ '@tailwindcss/vite',
26
21
  '@testing-library/jest-dom',
27
22
  '@testing-library/react',
28
23
  '@types/lodash',
@@ -30,7 +25,6 @@ let developmentDependencies = [
30
25
  '@types/react',
31
26
  '@types/react-dom',
32
27
  '@vitest/coverage-v8',
33
- 'autoprefixer',
34
28
  'chromatic',
35
29
  'concurrently',
36
30
  'del-cli',
@@ -67,7 +61,7 @@ let packageJson = lodash.merge(
67
61
  scripts: {
68
62
  build: `del-cli ${BUILD_DIRECTORY} tsconfig.tsbuildinfo && ${BUILD_TO_ESM_COMMAND} --loader:.woff2=copy && tsc && storybook build`,
69
63
  clean: `del-cli coverage ${BUILD_DIRECTORY} *.tsbuildinfo`,
70
- develop: `concurrently "${BUILD_TO_ESM_COMMAND} --watch" "tsc --watch" "storybook dev -p 6006 --no-open"`,
64
+ develop: `concurrently "${BUILD_TO_ESM_COMMAND} --loader:.woff2=copy --watch" "tsc --watch" "storybook dev -p 6006 --no-open"`,
71
65
  document: 'del-cli docs && typedoc --options typedoc.config.cjs',
72
66
  format: FORMAT_COMMAND,
73
67
  lint: 'eslint .',
@@ -10,6 +10,7 @@ strategy: overwrite
10
10
  * Run `npx carson update workspace` to regenerate.
11
11
  */
12
12
 
13
+ import tailwindcss from '@tailwindcss/vite';
13
14
  import _ from 'lodash';
14
15
  import {defineConfig} from 'vitest/config';
15
16
 
@@ -23,6 +24,7 @@ export default defineConfig(
23
24
  include: ['<%- SOURCE_DIRECTORY %>/**'],
24
25
  },
25
26
  },
27
+ plugins: [tailwindcss()],
26
28
  },
27
29
  <%- JSON.stringify(project.config.overrides?.viteConfig ?? {}, null, 2) %>,
28
30
  ),
@@ -52,10 +52,10 @@ ENV VITE_APP_URL=$VITE_APP_URL
52
52
 
53
53
  if (project.config.deployment?.dbInstance) {
54
54
  -%>
55
- ARG EDGEDB_INSTANCE
56
- ENV EDGEDB_INSTANCE=$EDGEDB_INSTANCE
57
- ARG EDGEDB_BRANCH
58
- ENV EDGEDB_BRANCH=$EDGEDB_BRANCH
55
+ ARG GEL_INSTANCE
56
+ ENV GEL_INSTANCE=$GEL_INSTANCE
57
+ ARG GEL_BRANCH
58
+ ENV GEL_BRANCH=$GEL_BRANCH
59
59
  <%
60
60
  }
61
61
  -%>
@@ -77,7 +77,7 @@ COPY --link . .
77
77
  <%
78
78
  if (project.config.deployment?.dbInstance) {
79
79
  -%>
80
- RUN --mount=type=secret,id=EDGEDB_SECRET_KEY EDGEDB_SECRET_KEY="$(cat /run/secrets/EDGEDB_SECRET_KEY)" npm run build
80
+ RUN --mount=type=secret,id=GEL_SECRET_KEY GEL_SECRET_KEY="$(cat /run/secrets/GEL_SECRET_KEY)" npm run build
81
81
  <%
82
82
  } else {
83
83
  -%>
@@ -17,6 +17,7 @@ let dependencies = [
17
17
  let developmentDependencies = [
18
18
  LINTER_CONFIG_PACKAGE_NAME,
19
19
  '@react-router/dev',
20
+ '@tailwindcss/vite',
20
21
  '@testing-library/jest-dom',
21
22
  '@testing-library/react',
22
23
  '@types/lodash',
@@ -24,7 +25,6 @@ let developmentDependencies = [
24
25
  '@types/react',
25
26
  '@types/react-dom',
26
27
  '@vitest/coverage-v8',
27
- 'autoprefixer',
28
28
  'del-cli',
29
29
  'eslint',
30
30
  'happy-dom',
@@ -0,0 +1,12 @@
1
+ ---
2
+ to: 'source/tailwind.css'
3
+ strategy: ensure
4
+ ---
5
+ /**
6
+ * This file was autogenerated by Carson.
7
+ * If you edit it, your changes will be preserved. If you delete this file, it will be regenerated.
8
+ *
9
+ * Run `npx carson update workspace` to regenerate.
10
+ */
11
+
12
+ @import "tailwindcss";
@@ -21,7 +21,7 @@ let tsconfig = lodash.merge(
21
21
  project.config.overrides?.tsconfig ?? {},
22
22
  );
23
23
 
24
- // TODO: when EdgeDB client supports `exactOptionalPropertyTypes: true`, remove this line
24
+ // TODO: when Gel client supports `exactOptionalPropertyTypes: true`, remove this line
25
25
  if (project.config.deployment?.dbInstance) {
26
26
  tsconfig.compilerOptions.exactOptionalPropertyTypes = false;
27
27
  }
@@ -11,6 +11,7 @@ strategy: overwrite
11
11
  */
12
12
 
13
13
  import {reactRouter} from '@react-router/dev/vite';
14
+ import tailwindcss from '@tailwindcss/vite';
14
15
  import _ from 'lodash';
15
16
  import {defineConfig} from 'vitest/config';
16
17
 
@@ -21,7 +22,7 @@ export default defineConfig(
21
22
  port: <%- JSON.stringify(APP_PORT) %>,
22
23
  strictPort: true,
23
24
  },
24
- plugins: [!process.env.VITEST && reactRouter()],
25
+ plugins: [tailwindcss(), !process.env.VITEST && reactRouter()],
25
26
  test: {
26
27
  environment: 'happy-dom',
27
28
  setupFiles: ['tests/setup.ts'],
@@ -100,9 +100,9 @@ for (let project of workspace.projects) {
100
100
  run: |
101
101
  npm run test -- --filter=<%- project.name %>
102
102
  env:
103
- EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
104
- EDGEDB_BRANCH: <%- workspace.packageJson.name %>-${{ github.head_ref }}
105
- EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
103
+ GEL_INSTANCE: <%- project.config.deployment.dbInstance %>
104
+ GEL_BRANCH: <%- workspace.packageJson.name %>-${{ github.head_ref }}
105
+ GEL_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_GEL_TOKEN }}
106
106
  <%
107
107
  }
108
108
  }
@@ -119,9 +119,9 @@ for (let project of workspace.projects) {
119
119
  run: |
120
120
  npm run test -- --filter=<%- project.name %>
121
121
  env:
122
- EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
123
- EDGEDB_BRANCH: <%- workspace.packageJson.name %>-${{ github.head_ref }}
124
- EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
122
+ GEL_INSTANCE: <%- project.config.deployment.dbInstance %>
123
+ GEL_BRANCH: <%- workspace.packageJson.name %>-${{ github.head_ref }}
124
+ GEL_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_GEL_TOKEN }}
125
125
  <%
126
126
  }
127
127
  }
@@ -171,12 +171,12 @@ for (let project of workspace.projects) {
171
171
 
172
172
  - name: Deploy <%- project.name %>
173
173
  run: |
174
- npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
174
+ npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "GEL_INSTANCE=$GEL_INSTANCE" --build-arg "GEL_BRANCH=$GEL_BRANCH" --build-secret "GEL_SECRET_KEY=$GEL_SECRET_KEY"
175
175
  env:
176
176
  VITE_APP_URL: <%- getAppUrl(project, 'unstable') %>
177
- EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
178
- EDGEDB_BRANCH: <%- workspace.packageJson.name %>-${{ github.head_ref }}
179
- EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
177
+ GEL_INSTANCE: <%- project.config.deployment.dbInstance %>
178
+ GEL_BRANCH: <%- workspace.packageJson.name %>-${{ github.head_ref }}
179
+ GEL_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_GEL_TOKEN }}
180
180
  FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
181
181
  FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
182
182
  <%
@@ -113,9 +113,9 @@ for (let project of workspace.projects) {
113
113
  run: |
114
114
  gel migrate --schema-dir <%- project.relativePath %>/dbschema
115
115
  env:
116
- EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
117
- EDGEDB_BRANCH: ${{ github.ref_name }}
118
- EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
116
+ GEL_INSTANCE: <%- project.config.deployment.dbInstance %>
117
+ GEL_BRANCH: ${{ github.ref_name }}
118
+ GEL_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_GEL_TOKEN }}
119
119
  <%
120
120
  }
121
121
  }
@@ -133,9 +133,9 @@ for (let project of workspace.projects) {
133
133
  run: |
134
134
  npm run test -- --filter=<%- project.name %>
135
135
  env:
136
- EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
137
- EDGEDB_BRANCH: ${{ github.ref_name }}
138
- EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
136
+ GEL_INSTANCE: <%- project.config.deployment.dbInstance %>
137
+ GEL_BRANCH: ${{ github.ref_name }}
138
+ GEL_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_GEL_TOKEN }}
139
139
  <%
140
140
  }
141
141
  }
@@ -233,12 +233,12 @@ for (let project of workspace.projects) {
233
233
 
234
234
  - name: Deploy "<%- project.name %>"
235
235
  run: |
236
- npm run deploy --workspace <%- project.name %> -- --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
236
+ npm run deploy --workspace <%- project.name %> -- --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "GEL_INSTANCE=$GEL_INSTANCE" --build-arg "GEL_BRANCH=$GEL_BRANCH" --build-secret "GEL_SECRET_KEY=$GEL_SECRET_KEY"
237
237
  env:
238
238
  VITE_APP_URL: <%- getAppUrl(project) %>
239
- EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
240
- EDGEDB_BRANCH: ${{ github.ref_name }}
241
- EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
239
+ GEL_INSTANCE: <%- project.config.deployment.dbInstance %>
240
+ GEL_BRANCH: ${{ github.ref_name }}
241
+ GEL_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_GEL_TOKEN }}
242
242
  FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
243
243
  FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
244
244
  <%
@@ -335,9 +335,9 @@ for (let project of workspace.projects) {
335
335
  run: |
336
336
  gel migrate --schema-dir <%- project.relativePath %>/dbschema
337
337
  env:
338
- EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
339
- EDGEDB_BRANCH: ${{ github.ref_name }}
340
- EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
338
+ GEL_INSTANCE: <%- project.config.deployment.dbInstance %>
339
+ GEL_BRANCH: ${{ github.ref_name }}
340
+ GEL_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_GEL_TOKEN }}
341
341
  <%
342
342
  }
343
343
  }
@@ -355,9 +355,9 @@ for (let project of workspace.projects) {
355
355
  run: |
356
356
  npm run test -- --filter=<%- project.name %>
357
357
  env:
358
- EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
359
- EDGEDB_BRANCH: ${{ github.ref_name }}
360
- EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
358
+ GEL_INSTANCE: <%- project.config.deployment.dbInstance %>
359
+ GEL_BRANCH: ${{ github.ref_name }}
360
+ GEL_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_GEL_TOKEN }}
361
361
  <%
362
362
  }
363
363
  }
@@ -417,12 +417,12 @@ for (let project of workspace.projects) {
417
417
 
418
418
  - name: Deploy "<%- project.name %>"
419
419
  run: |
420
- npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
420
+ npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "GEL_INSTANCE=$GEL_INSTANCE" --build-arg "GEL_BRANCH=$GEL_BRANCH" --build-secret "GEL_SECRET_KEY=$GEL_SECRET_KEY"
421
421
  env:
422
422
  VITE_APP_URL: <%- getAppUrl(project, 'next') %>
423
- EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
424
- EDGEDB_BRANCH: ${{ github.ref_name }}
425
- EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
423
+ GEL_INSTANCE: <%- project.config.deployment.dbInstance %>
424
+ GEL_BRANCH: ${{ github.ref_name }}
425
+ GEL_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_GEL_TOKEN }}
426
426
  FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
427
427
  FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
428
428
  <%
@@ -57,7 +57,7 @@ if (workspace.projects.some((project) => project.config.deployment?.appName)) {
57
57
  }
58
58
 
59
59
  if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
60
- turboConfig.globalEnv.push('EDGEDB_INSTANCE', 'EDGEDB_BRANCH', 'EDGEDB_SECRET_KEY');
60
+ turboConfig.globalEnv.push('GEL_INSTANCE', 'GEL_BRANCH', 'GEL_SECRET_KEY');
61
61
  }
62
62
 
63
63
  if (workspace.projects.find((project) => project.name === LINTER_CONFIG_PACKAGE_NAME)) {
@@ -1,20 +0,0 @@
1
- ---
2
- to: '.storybook/tailwindConfig.ts'
3
- strategy: ensure
4
- ---
5
- /**
6
- * This file was autogenerated by Carson.
7
- * If you edit it, your changes will be preserved. If you delete this file, it will be regenerated.
8
- *
9
- * Run `npx carson update workspace` to regenerate.
10
- */
11
-
12
- import {type Config} from 'tailwindcss';
13
-
14
- export const tailwindConfig = {
15
- content: ['./{.storybook,source,stories}/**/*.{js,jsx,ts,tsx,mdx}'],
16
- theme: {
17
- extend: {},
18
- },
19
- plugins: [],
20
- } satisfies Config;
@@ -1,18 +0,0 @@
1
- ---
2
- to: 'postcss.config.cjs'
3
- strategy: overwrite
4
- ---
5
- /**
6
- * DO NOT EDIT!
7
- * This file was autogenerated by Carson.
8
- * Changes may cause incorrect behavior and will be lost when the file is regenerated.
9
- *
10
- * Run `npx carson update workspace` to regenerate.
11
- */
12
-
13
- module.exports = {
14
- plugins: {
15
- tailwindcss: {},
16
- autoprefixer: {},
17
- },
18
- };
@@ -1,13 +0,0 @@
1
- ---
2
- to: 'tailwind.config.ts'
3
- strategy: overwrite
4
- ---
5
- /**
6
- * DO NOT EDIT!
7
- * This file was autogenerated by Carson.
8
- * Changes may cause incorrect behavior and will be lost when the file is regenerated.
9
- *
10
- * Run `npx carson update workspace` to regenerate.
11
- */
12
-
13
- export {tailwindConfig as default} from './.storybook/tailwindConfig.js';
@@ -1,18 +0,0 @@
1
- ---
2
- to: 'postcss.config.cjs'
3
- strategy: overwrite
4
- ---
5
- /**
6
- * DO NOT EDIT!
7
- * This file was autogenerated by Carson.
8
- * Changes may cause incorrect behavior and will be lost when the file is regenerated.
9
- *
10
- * Run `npx carson update workspace` to regenerate.
11
- */
12
-
13
- module.exports = {
14
- plugins: {
15
- tailwindcss: {},
16
- autoprefixer: {},
17
- },
18
- };
@@ -1,7 +0,0 @@
1
- ---
2
- to: 'source/tailwind.css'
3
- strategy: create
4
- ---
5
- @tailwind base;
6
- @tailwind components;
7
- @tailwind utilities;
@@ -1,13 +0,0 @@
1
- ---
2
- to: 'source/tailwindConfig.ts'
3
- strategy: create
4
- ---
5
- import {type Config} from 'tailwindcss';
6
-
7
- export const tailwindConfig = {
8
- content: [<%- JSON.stringify(`./${SOURCE_DIRECTORY}/**/*.{js,jsx,ts,tsx}`) %>],
9
- theme: {
10
- extend: {},
11
- },
12
- plugins: [],
13
- } satisfies Config;
@@ -1,13 +0,0 @@
1
- ---
2
- to: 'tailwind.config.ts'
3
- strategy: overwrite
4
- ---
5
- /**
6
- * DO NOT EDIT!
7
- * This file was autogenerated by Carson.
8
- * Changes may cause incorrect behavior and will be lost when the file is regenerated.
9
- *
10
- * Run `npx carson update workspace` to regenerate.
11
- */
12
-
13
- export {tailwindConfig as default} from <%- JSON.stringify(`./${SOURCE_DIRECTORY}/tailwindConfig.js`) %>;