diff --git a/.commitlintrc.js b/.commitlintrc.js
deleted file mode 100644
index 7a620a5..0000000
--- a/.commitlintrc.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- extends: ['@kurocado-studio/styleguide/commitlint'],
-};
diff --git a/.eslintignore b/.eslintignore
index 1c14b34..3277e44 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,8 +1,4 @@
-.codesanbox
-.devcontainer
-codesanbox
-devcontainer
-dist
-node_modules
-vitest.config.ts
-
+node_modules/
+public/
+vite.config.ts
+app/glodal.d.ts
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
deleted file mode 100644
index 8f2bbcd..0000000
--- a/.eslintrc.cjs
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * This is intended to be a basic starting point for linting in your app.
- * It relies on recommended configs out of the box for simplicity, but you can
- * and should modify this configuration to best suit your team's needs.
- */
-
-/** @type {import('eslint').Linter.Config} */
-module.exports = {
- root: true,
- parserOptions: {
- ecmaVersion: "latest",
- sourceType: "module",
- ecmaFeatures: {
- jsx: true,
- },
- },
- env: {
- browser: true,
- commonjs: true,
- es6: true,
- },
-
- // Base config
- extends: ["eslint:recommended"],
-
- overrides: [
- // React
- {
- files: ["**/*.{js,jsx,ts,tsx}"],
- plugins: ["react", "jsx-a11y"],
- extends: [
- "plugin:react/recommended",
- "plugin:react/jsx-runtime",
- "plugin:react-hooks/recommended",
- "plugin:jsx-a11y/recommended",
- ],
- settings: {
- react: {
- version: "detect",
- },
- formComponents: ["Form"],
- linkComponents: [
- { name: "Link", linkAttribute: "to" },
- { name: "NavLink", linkAttribute: "to" },
- ],
- "import/resolver": {
- typescript: {},
- },
- },
- },
-
- // Typescript
- {
- files: ["**/*.{ts,tsx}"],
- plugins: ["@typescript-eslint", "import"],
- parser: "@typescript-eslint/parser",
- settings: {
- "import/internal-regex": "^~/",
- "import/resolver": {
- node: {
- extensions: [".ts", ".tsx"],
- },
- typescript: {
- alwaysTryTypes: true,
- },
- },
- },
- extends: [
- "plugin:@typescript-eslint/recommended",
- "plugin:import/recommended",
- "plugin:import/typescript",
- ],
- },
-
- // Node
- {
- files: [".eslintrc.js"],
- env: {
- node: true,
- },
- },
- ],
-};
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 8cf28bf..0000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-module.exports = {
- extends: [require.resolve('@kurocado-studio/styleguide/eslint/node')],
- parserOptions: {
- ecmaVersion: 2020,
- project: true,
- sourceType: 'module',
- tsconfigRootDir: __dirname,
- },
- env: {
- amd: true,
- node: true,
- },
- overrides: [
- {
- files: ['src/**/*.spec.ts'],
- rules: {
- '@typescript-eslint/no-unsafe-member-access': 'off',
- },
- },
- ],
-};
diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml
index fff33f8..d32b29b 100644
--- a/.idea/material_theme_project_new.xml
+++ b/.idea/material_theme_project_new.xml
@@ -3,8 +3,16 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.releaserc.js b/.releaserc.js
deleted file mode 100644
index 18c543e..0000000
--- a/.releaserc.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require.resolve('@kurocado-studio/styleguide/release/app');
diff --git a/README.md b/README.md
index da8d02a..93e1a06 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,8 @@ Now you'll need to pick a host to deploy it to.
### DIY
-If you're familiar with deploying node applications, the built-in Remix app server is production-ready.
+If you're familiar with deploying node applications, the built-in Remix app server is
+production-ready.
Make sure to deploy the output of `remix build`
diff --git a/app/entry.client.tsx b/app/entry.client.tsx
deleted file mode 100644
index 6129132..0000000
--- a/app/entry.client.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * By default, Remix will handle hydrating your app on the client for you.
- * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨
- * For more information, see https://remix.run/file-conventions/entry.client
- */
-
-import { RemixBrowser } from "@remix-run/react";
-import { startTransition, StrictMode } from "react";
-import { hydrateRoot } from "react-dom/client";
-
-startTransition(() => {
- hydrateRoot(
- document,
-
-
- ,
- );
-});
diff --git a/app/entry.server.tsx b/app/entry.server.tsx
deleted file mode 100644
index 0ffd6cd..0000000
--- a/app/entry.server.tsx
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * By default, Remix will handle generating the HTTP Response for you.
- * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨
- * For more information, see https://remix.run/file-conventions/entry.server
- */
-
-import { PassThrough } from "node:stream";
-
-import type { AppLoadContext, EntryContext } from "@remix-run/node";
-import { createReadableStreamFromReadable } from "@remix-run/node";
-import { RemixServer } from "@remix-run/react";
-import { isbot } from "isbot";
-import { renderToPipeableStream } from "react-dom/server";
-
-const ABORT_DELAY = 5_000;
-
-export default function handleRequest(
- request: Request,
- responseStatusCode: number,
- responseHeaders: Headers,
- remixContext: EntryContext,
- // This is ignored so we can keep it in the template for visibility. Feel
- // free to delete this parameter in your app if you're not using it!
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- loadContext: AppLoadContext,
-) {
- return isbot(request.headers.get("user-agent") || "")
- ? handleBotRequest(
- request,
- responseStatusCode,
- responseHeaders,
- remixContext,
- )
- : handleBrowserRequest(
- request,
- responseStatusCode,
- responseHeaders,
- remixContext,
- );
-}
-
-function handleBotRequest(
- request: Request,
- responseStatusCode: number,
- responseHeaders: Headers,
- remixContext: EntryContext,
-) {
- return new Promise((resolve, reject) => {
- let shellRendered = false;
- const { pipe, abort } = renderToPipeableStream(
- ,
- {
- onAllReady() {
- shellRendered = true;
- const body = new PassThrough();
- const stream = createReadableStreamFromReadable(body);
-
- responseHeaders.set("Content-Type", "text/html");
-
- resolve(
- new Response(stream, {
- headers: responseHeaders,
- status: responseStatusCode,
- }),
- );
-
- pipe(body);
- },
- onShellError(error: unknown) {
- reject(error);
- },
- onError(error: unknown) {
- responseStatusCode = 500;
- // Log streaming rendering errors from inside the shell. Don't log
- // errors encountered during initial shell rendering since they'll
- // reject and get logged in handleDocumentRequest.
- if (shellRendered) {
- console.error(error);
- }
- },
- },
- );
-
- setTimeout(abort, ABORT_DELAY);
- });
-}
-
-function handleBrowserRequest(
- request: Request,
- responseStatusCode: number,
- responseHeaders: Headers,
- remixContext: EntryContext,
-) {
- return new Promise((resolve, reject) => {
- let shellRendered = false;
- const { pipe, abort } = renderToPipeableStream(
- ,
- {
- onShellReady() {
- shellRendered = true;
- const body = new PassThrough();
- const stream = createReadableStreamFromReadable(body);
-
- responseHeaders.set("Content-Type", "text/html");
-
- resolve(
- new Response(stream, {
- headers: responseHeaders,
- status: responseStatusCode,
- }),
- );
-
- pipe(body);
- },
- onShellError(error: unknown) {
- reject(error);
- },
- onError(error: unknown) {
- responseStatusCode = 500;
- // Log streaming rendering errors from inside the shell. Don't log
- // errors encountered during initial shell rendering since they'll
- // reject and get logged in handleDocumentRequest.
- if (shellRendered) {
- console.error(error);
- }
- },
- },
- );
-
- setTimeout(abort, ABORT_DELAY);
- });
-}
diff --git a/app/root.tsx b/app/root.tsx
index b46b8fb..9687a4a 100644
--- a/app/root.tsx
+++ b/app/root.tsx
@@ -1,33 +1,63 @@
-import { cssBundleHref } from "@remix-run/css-bundle";
-import type { LinksFunction } from "@remix-run/node";
+/* eslint unicorn/filename-case: 0 */
+
+/* eslint import/no-default-export: 0 */
+import { LinksFunction } from '@remix-run/node';
import {
Links,
- LiveReload,
Meta,
Outlet,
Scripts,
ScrollRestoration,
-} from "@remix-run/react";
+} from '@remix-run/react';
+import React from 'react';
+
+import stylesheet from '~/tailwind.css?url';
export const links: LinksFunction = () => [
- ...(cssBundleHref ? [{ rel: "stylesheet", href: cssBundleHref }] : []),
+ { rel: 'stylesheet', href: stylesheet },
+ {
+ rel: 'icon',
+ type: 'image/png',
+ sizes: '32x32',
+ href: '/favicon-32x32.png',
+ },
+ {
+ rel: 'icon',
+ type: 'image/png',
+ sizes: '16x16',
+ href: '/favicon-16x16.png',
+ },
+ {
+ rel: 'icon',
+ type: 'image/x-icon',
+ href: '/favicon.ico',
+ },
];
-export default function App() {
+export function Layout({ children }: { children: React.ReactNode }) {
return (
-
+
-
-
+
+
+
+ Welcome to Remix
-
-
+
+ {children}
-
);
}
+
+export default function App() {
+ return ;
+}
diff --git a/app/routes/_index.tsx b/app/routes/_index.tsx
index 5347369..ba15143 100644
--- a/app/routes/_index.tsx
+++ b/app/routes/_index.tsx
@@ -1,37 +1,43 @@
-import type { MetaFunction } from "@remix-run/node";
+import type { MetaFunction } from '@remix-run/node';
export const meta: MetaFunction = () => {
return [
- { title: "New Remix App" },
- { name: "description", content: "Welcome to Remix!" },
+ { title: 'New Remix App' },
+ { name: 'description', content: 'Welcome to Remix!' },
];
};
export default function Index() {
return (
-
+
Welcome to Remix
-
15m Quickstart Blog Tutorial
-
Deep Dive Jokes App Tutorial
-
-
+
Remix Docs
diff --git a/fly.toml b/fly.toml
index 7f42193..904e72b 100644
--- a/fly.toml
+++ b/fly.toml
@@ -1,4 +1,4 @@
-# fly.toml app configuration file generated for styleguide-nests-template on 2024-10-21T16:51:22-05:00
+# fly.toml app configuration file generated for styleguide-remix-template-ancient-night-4492 on 2024-10-28T20:56:38-05:00
#
# See https://fly.io/docs/reference/configuration/ for information about how to use this file.
#
diff --git a/package.json b/package.json
index ab1d9ce..654d6af 100644
--- a/package.json
+++ b/package.json
@@ -2,6 +2,7 @@
"name": "@kurocado-studio/styleguide-remix-template",
"version": "0.0.0-semantically-released",
"private": true,
+ "type": "module",
"scripts": {
"build": "remix vite:build",
"commitlint": "pnpm exec commitlint --edit",
@@ -18,27 +19,33 @@
"typecheck": "tsc"
},
"dependencies": {
- "@remix-run/css-bundle": "^2.8.1",
- "@remix-run/node": "^2.8.1",
- "@remix-run/react": "^2.8.1",
- "@remix-run/serve": "^2.8.1",
+ "@remix-run/node": "^2.9.2",
+ "@remix-run/react": "^2.9.2",
+ "@remix-run/serve": "^2.9.2",
"isbot": "^5.1.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
+ "tailwind-merge": "^2.4.0",
+ "tailwindcss": "^3.3.2",
"vite": "^5.1.0",
"vite-tsconfig-paths": "^4.2.1"
},
"devDependencies": {
"@commitlint/cli": "^19.0.3",
"@commitlint/config-conventional": "^19.0.3",
- "@kurocado-studio/styleguide": "^1.2.0",
+ "@flydotio/dockerfile": "^0.5.9",
+ "@kurocado-studio/styleguide": "1.2.3-alpha.1",
"@remix-run/dev": "^2.8.1",
+ "@types/react-dom": "^18.3.1",
+ "autoprefixer": "^10.4.18",
"eslint": "^8.57.0",
"husky": "^9.0.11",
"lint-staged": "^15.2.10",
+ "postcss": "^8.4.35",
"prettier": "^3.3.3",
"semantic-release": "^23.0.2",
- "typescript": "^5.4.2"
+ "typescript": "^5.4.2",
+ "vite": "^5.1.0"
},
"engines": {
"node": ">=18.0.0"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1c6aec9..2d704bb 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,17 +8,14 @@ importers:
.:
dependencies:
- '@remix-run/css-bundle':
- specifier: ^2.8.1
- version: 2.13.1
'@remix-run/node':
- specifier: ^2.8.1
+ specifier: ^2.9.2
version: 2.13.1(typescript@5.6.3)
'@remix-run/react':
- specifier: ^2.8.1
+ specifier: ^2.9.2
version: 2.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
'@remix-run/serve':
- specifier: ^2.8.1
+ specifier: ^2.9.2
version: 2.13.1(typescript@5.6.3)
isbot:
specifier: ^5.1.1
@@ -29,6 +26,12 @@ importers:
react-dom:
specifier: ^18.2.0
version: 18.3.1(react@18.3.1)
+ tailwind-merge:
+ specifier: ^2.4.0
+ version: 2.5.4
+ tailwindcss:
+ specifier: ^3.3.2
+ version: 3.4.14
vite:
specifier: ^5.1.0
version: 5.4.10(@types/node@22.8.1)
@@ -42,12 +45,21 @@ importers:
'@commitlint/config-conventional':
specifier: ^19.0.3
version: 19.5.0
+ '@flydotio/dockerfile':
+ specifier: ^0.5.9
+ version: 0.5.9
'@kurocado-studio/styleguide':
- specifier: ^1.2.0
- version: 1.2.0(@commitlint/cli@19.5.0(@types/node@22.8.1)(typescript@5.6.3))(@commitlint/config-conventional@19.5.0)(@testing-library/jest-dom@6.6.2)(@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0))(@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@22.8.1)))(eslint@8.57.1)(husky@9.1.6)(prettier@3.3.3)(semantic-release@23.1.1(typescript@5.6.3))(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1))(vitest-axe@0.1.0(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1)))(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1))
+ specifier: 1.2.3-alpha.1
+ version: 1.2.3-alpha.1(@commitlint/cli@19.5.0(@types/node@22.8.1)(typescript@5.6.3))(@commitlint/config-conventional@19.5.0)(@testing-library/jest-dom@6.6.2)(@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0))(@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@22.8.1)))(eslint@8.57.1)(husky@9.1.6)(prettier@3.3.3)(semantic-release@23.1.1(typescript@5.6.3))(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1))(vitest-axe@0.1.0(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1)))(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1))
'@remix-run/dev':
specifier: ^2.8.1
version: 2.13.1(@remix-run/react@2.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.13.1(typescript@5.6.3))(@types/node@22.8.1)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1))
+ '@types/react-dom':
+ specifier: ^18.3.1
+ version: 18.3.1
+ autoprefixer:
+ specifier: ^10.4.18
+ version: 10.4.20(postcss@8.4.47)
eslint:
specifier: ^8.57.0
version: 8.57.1
@@ -57,6 +69,9 @@ importers:
lint-staged:
specifier: ^15.2.10
version: 15.2.10
+ postcss:
+ specifier: ^8.4.35
+ version: 8.4.47
prettier:
specifier: ^3.3.3
version: 3.3.3
@@ -72,6 +87,10 @@ packages:
'@adobe/css-tools@4.4.0':
resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==}
+ '@alloc/quick-lru@5.2.0':
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+ engines: {node: '>=10'}
+
'@ampproject/remapping@2.3.0':
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
@@ -629,6 +648,11 @@ packages:
resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@flydotio/dockerfile@0.5.9':
+ resolution: {integrity: sha512-ZPvMw9ABrE6W4nc92NL5Jy4XdAehldsU4LZ6pJP+H0sAqHqw3Bk9qKbMcjKJN1aM5AuKqfWm/I4ABGnkDjcqEw==}
+ engines: {node: '>=16.0.0'}
+ hasBin: true
+
'@humanwhocodes/config-array@0.13.0':
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
engines: {node: '>=10.10.0'}
@@ -683,8 +707,8 @@ packages:
'@jspm/core@2.1.0':
resolution: {integrity: sha512-3sRl+pkyFY/kLmHl0cgHiFp2xEqErA8N3ECjMs7serSUBmoJ70lBa0PG5t0IM6WJgdZNyyI0R8YFfi5wM8+mzg==}
- '@kurocado-studio/styleguide@1.2.0':
- resolution: {integrity: sha512-Hc+mPPPt3zoDewqJ43QLD4u6xNJSPIbS3/x4tJn/Dtxw9/aEwEom478+cN5wMgv2D7W7A9i/63rgpFLcvuwtNw==}
+ '@kurocado-studio/styleguide@1.2.3-alpha.1':
+ resolution: {integrity: sha512-8fi8UA1qTq5XSOs0v1ZBoxSog0KyHZ17x4cQahpLCiGQZBVWimaaoxn7ZckAYNjRCVQ9SKrIrKs+jk23ofez9Q==}
engines: {node: '>=20'}
peerDependencies:
'@commitlint/cli': ^19.0.3
@@ -907,10 +931,6 @@ packages:
resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==}
engines: {node: '>=12'}
- '@remix-run/css-bundle@2.13.1':
- resolution: {integrity: sha512-ukams+HcEaovitySAmH2Q8Gg8c6A3fKr5RJEpAn0NYk1Cc2t0fH05GVAGToOgtWeFeOUjREXAqk3+C76o0cHkg==}
- engines: {node: '>=18.0.0'}
-
'@remix-run/dev@2.13.1':
resolution: {integrity: sha512-7+06Dail6zMyRlRvgrZ4cmQjs2gUb+M24iP4jbmql+0B7VAAPwzCRU0x+BF5z8GSef13kDrH3iXv/BQ2O2yOgw==}
engines: {node: '>=18.0.0'}
@@ -1210,12 +1230,21 @@ packages:
'@types/babel__traverse@7.20.6':
resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
+ '@types/body-parser@1.19.5':
+ resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
'@types/conventional-commits-parser@5.0.0':
resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==}
'@types/cookie@0.6.0':
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
+ '@types/cookiejar@2.1.5':
+ resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==}
+
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
@@ -1225,9 +1254,18 @@ packages:
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ '@types/express-serve-static-core@4.19.6':
+ resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
+
+ '@types/express@4.17.21':
+ resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
+
'@types/hast@2.3.10':
resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==}
+ '@types/http-errors@2.0.4':
+ resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
+
'@types/istanbul-lib-coverage@2.0.6':
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
@@ -1261,9 +1299,18 @@ packages:
'@types/mdx@2.0.13':
resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==}
+ '@types/methods@1.1.4':
+ resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==}
+
+ '@types/mime@1.3.5':
+ resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
+
'@types/ms@0.7.34':
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
+ '@types/node@20.5.0':
+ resolution: {integrity: sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==}
+
'@types/node@22.8.1':
resolution: {integrity: sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==}
@@ -1273,15 +1320,36 @@ packages:
'@types/prop-types@15.7.13':
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
+ '@types/qs@6.9.16':
+ resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==}
+
+ '@types/range-parser@1.2.7':
+ resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
+
+ '@types/react-dom@18.3.1':
+ resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==}
+
'@types/react@18.3.12':
resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
'@types/semver@7.5.8':
resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
+ '@types/send@0.17.4':
+ resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
+
+ '@types/serve-static@1.15.7':
+ resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==}
+
'@types/stack-utils@2.0.3':
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
+ '@types/superagent@8.1.9':
+ resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==}
+
+ '@types/supertest@6.0.2':
+ resolution: {integrity: sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==}
+
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
@@ -1577,9 +1645,19 @@ packages:
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
hasBin: true
+ async@3.2.6:
+ resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
+
asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ autoprefixer@10.4.20:
+ resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+
available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
@@ -1691,6 +1769,10 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
+ camelcase-css@2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+
caniuse-lite@1.0.30001672:
resolution: {integrity: sha512-XhW1vRo1ob6aeK2w3rTohwTPBLse/rvjq+s3RTSBwnlZqoFFjx9cHsShJjAIbLsLjyoacaTxpLZy9v3gg6zypw==}
@@ -1835,6 +1917,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
compare-func@2.0.0:
resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
@@ -2079,6 +2165,9 @@ packages:
resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ didyoumean@1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+
diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2091,6 +2180,9 @@ packages:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
+ dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
doctrine@2.1.0:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'}
@@ -2125,6 +2217,11 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ ejs@3.1.10:
+ resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
electron-to-chromium@1.5.47:
resolution: {integrity: sha512-zS5Yer0MOYw4rtK2iq43cJagHZ8sXN0jDHDKzB+86gSBSAI4v07S97mcq+Gs2vclAxSh1j7vOAHxSVgduiiuVQ==}
@@ -2548,6 +2645,9 @@ packages:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
+ filelist@1.0.4:
+ resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
+
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -2606,6 +2706,9 @@ packages:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
+ fraction.js@4.3.7:
+ resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+
fresh@0.5.2:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
@@ -3194,6 +3297,11 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+ jake@10.9.2:
+ resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
java-properties@1.0.2:
resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==}
engines: {node: '>= 0.6.0'}
@@ -3327,6 +3435,10 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
+ lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+
lilconfig@3.1.2:
resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
engines: {node: '>=14'}
@@ -3668,6 +3780,10 @@ packages:
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+
minimatch@9.0.5:
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -3787,6 +3903,10 @@ packages:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
+ normalize-range@0.1.2:
+ resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
+ engines: {node: '>=0.10.0'}
+
normalize-url@8.0.1:
resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
engines: {node: '>=14.16'}
@@ -3900,6 +4020,10 @@ packages:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
object-inspect@1.13.2:
resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
engines: {node: '>= 0.4'}
@@ -4162,10 +4286,18 @@ packages:
engines: {node: '>=0.10'}
hasBin: true
+ pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
pify@3.0.0:
resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
engines: {node: '>=4'}
+ pirates@4.0.6:
+ resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
+ engines: {node: '>= 6'}
+
pkg-conf@2.1.0:
resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==}
engines: {node: '>=4'}
@@ -4187,6 +4319,18 @@ packages:
peerDependencies:
postcss: ^8.2.15
+ postcss-import@15.1.0:
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-js@4.0.1:
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+
postcss-load-config@4.0.2:
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
engines: {node: '>= 14'}
@@ -4228,6 +4372,12 @@ packages:
peerDependencies:
postcss: ^8.0.0
+ postcss-nested@6.2.0:
+ resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
postcss-selector-parser@6.1.2:
resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
engines: {node: '>=4'}
@@ -4385,6 +4535,9 @@ packages:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
+ read-cache@1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+
read-package-up@11.0.0:
resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==}
engines: {node: '>=18'}
@@ -4622,6 +4775,9 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
+ shell-quote@1.8.1:
+ resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
+
side-channel@1.0.6:
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
engines: {node: '>= 0.4'}
@@ -4831,6 +4987,11 @@ packages:
style-to-object@0.4.4:
resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
+ sucrase@3.35.0:
+ resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
super-regex@1.0.0:
resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==}
engines: {node: '>=18'}
@@ -4858,6 +5019,14 @@ packages:
resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
engines: {node: ^14.18.0 || >=16.0.0}
+ tailwind-merge@2.5.4:
+ resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==}
+
+ tailwindcss@3.4.14:
+ resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
@@ -4976,6 +5145,9 @@ packages:
peerDependencies:
typescript: '>=4.2.0'
+ ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+
tsconfck@3.1.4:
resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==}
engines: {node: ^18 || >=20}
@@ -5461,6 +5633,8 @@ snapshots:
'@adobe/css-tools@4.4.0': {}
+ '@alloc/quick-lru@5.2.0': {}
+
'@ampproject/remapping@2.3.0':
dependencies:
'@jridgewell/gen-mapping': 0.3.5
@@ -5504,7 +5678,7 @@ snapshots:
'@babel/generator@7.17.7':
dependencies:
- '@babel/types': 7.17.0
+ '@babel/types': 7.26.0
jsesc: 2.5.2
source-map: 0.5.7
@@ -6003,6 +6177,14 @@ snapshots:
'@eslint/js@8.57.1': {}
+ '@flydotio/dockerfile@0.5.9':
+ dependencies:
+ chalk: 5.3.0
+ diff: 5.2.0
+ ejs: 3.1.10
+ shell-quote: 1.8.1
+ yargs: 17.7.2
+
'@humanwhocodes/config-array@0.13.0':
dependencies:
'@humanwhocodes/object-schema': 2.0.3
@@ -6062,7 +6244,7 @@ snapshots:
'@jspm/core@2.1.0': {}
- '@kurocado-studio/styleguide@1.2.0(@commitlint/cli@19.5.0(@types/node@22.8.1)(typescript@5.6.3))(@commitlint/config-conventional@19.5.0)(@testing-library/jest-dom@6.6.2)(@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0))(@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@22.8.1)))(eslint@8.57.1)(husky@9.1.6)(prettier@3.3.3)(semantic-release@23.1.1(typescript@5.6.3))(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1))(vitest-axe@0.1.0(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1)))(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1))':
+ '@kurocado-studio/styleguide@1.2.3-alpha.1(@commitlint/cli@19.5.0(@types/node@22.8.1)(typescript@5.6.3))(@commitlint/config-conventional@19.5.0)(@testing-library/jest-dom@6.6.2)(@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0))(@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@22.8.1)))(eslint@8.57.1)(husky@9.1.6)(prettier@3.3.3)(semantic-release@23.1.1(typescript@5.6.3))(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1))(vitest-axe@0.1.0(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1)))(vitest@2.1.3(@types/node@22.8.1)(jsdom@25.0.1))':
dependencies:
'@babel/core': 7.26.0
'@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@8.57.1)
@@ -6072,13 +6254,18 @@ snapshots:
'@semantic-release/changelog': 6.0.3(semantic-release@23.1.1(typescript@5.6.3))
'@semantic-release/git': 10.0.1(semantic-release@23.1.1(typescript@5.6.3))
'@testing-library/jest-dom': 6.6.2
- '@testing-library/react': 16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@testing-library/react': 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0)
'@trivago/prettier-plugin-sort-imports': 4.3.0(prettier@3.3.3)
+ '@types/express': 4.17.21
'@types/jest': 29.5.14
'@types/jest-axe': 3.5.9
'@types/lodash-es': 4.17.12
+ '@types/mdx': 2.0.13
+ '@types/node': 20.5.0
'@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
+ '@types/supertest': 6.0.2
'@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)
'@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.3)
'@vitejs/plugin-react': 4.3.3(vite@5.4.10(@types/node@22.8.1))
@@ -6433,8 +6620,6 @@ snapshots:
'@pnpm/network.ca-file': 1.0.2
config-chain: 1.1.13
- '@remix-run/css-bundle@2.13.1': {}
-
'@remix-run/dev@2.13.1(@remix-run/react@2.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.13.1(typescript@5.6.3))(@types/node@22.8.1)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1))':
dependencies:
'@babel/core': 7.26.0
@@ -6802,7 +6987,7 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
- '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.26.0
'@testing-library/dom': 10.4.0
@@ -6810,6 +6995,7 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.12
+ '@types/react-dom': 18.3.1
'@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)':
dependencies:
@@ -6854,12 +7040,23 @@ snapshots:
dependencies:
'@babel/types': 7.26.0
+ '@types/body-parser@1.19.5':
+ dependencies:
+ '@types/connect': 3.4.38
+ '@types/node': 22.8.1
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 22.8.1
+
'@types/conventional-commits-parser@5.0.0':
dependencies:
'@types/node': 22.8.1
'@types/cookie@0.6.0': {}
+ '@types/cookiejar@2.1.5': {}
+
'@types/debug@4.1.12':
dependencies:
'@types/ms': 0.7.34
@@ -6870,10 +7067,26 @@ snapshots:
'@types/estree@1.0.6': {}
+ '@types/express-serve-static-core@4.19.6':
+ dependencies:
+ '@types/node': 22.8.1
+ '@types/qs': 6.9.16
+ '@types/range-parser': 1.2.7
+ '@types/send': 0.17.4
+
+ '@types/express@4.17.21':
+ dependencies:
+ '@types/body-parser': 1.19.5
+ '@types/express-serve-static-core': 4.19.6
+ '@types/qs': 6.9.16
+ '@types/serve-static': 1.15.7
+
'@types/hast@2.3.10':
dependencies:
'@types/unist': 2.0.11
+ '@types/http-errors@2.0.4': {}
+
'@types/istanbul-lib-coverage@2.0.6': {}
'@types/istanbul-lib-report@3.0.3':
@@ -6910,8 +7123,14 @@ snapshots:
'@types/mdx@2.0.13': {}
+ '@types/methods@1.1.4': {}
+
+ '@types/mime@1.3.5': {}
+
'@types/ms@0.7.34': {}
+ '@types/node@20.5.0': {}
+
'@types/node@22.8.1':
dependencies:
undici-types: 6.19.8
@@ -6920,6 +7139,14 @@ snapshots:
'@types/prop-types@15.7.13': {}
+ '@types/qs@6.9.16': {}
+
+ '@types/range-parser@1.2.7': {}
+
+ '@types/react-dom@18.3.1':
+ dependencies:
+ '@types/react': 18.3.12
+
'@types/react@18.3.12':
dependencies:
'@types/prop-types': 15.7.13
@@ -6927,8 +7154,31 @@ snapshots:
'@types/semver@7.5.8': {}
+ '@types/send@0.17.4':
+ dependencies:
+ '@types/mime': 1.3.5
+ '@types/node': 22.8.1
+
+ '@types/serve-static@1.15.7':
+ dependencies:
+ '@types/http-errors': 2.0.4
+ '@types/node': 22.8.1
+ '@types/send': 0.17.4
+
'@types/stack-utils@2.0.3': {}
+ '@types/superagent@8.1.9':
+ dependencies:
+ '@types/cookiejar': 2.1.5
+ '@types/methods': 1.1.4
+ '@types/node': 22.8.1
+ form-data: 4.0.1
+
+ '@types/supertest@6.0.2':
+ dependencies:
+ '@types/methods': 1.1.4
+ '@types/superagent': 8.1.9
+
'@types/unist@2.0.11': {}
'@types/yargs-parser@21.0.3': {}
@@ -7335,8 +7585,20 @@ snapshots:
astring@1.9.0: {}
+ async@3.2.6: {}
+
asynckit@0.4.0: {}
+ autoprefixer@10.4.20(postcss@8.4.47):
+ dependencies:
+ browserslist: 4.24.2
+ caniuse-lite: 1.0.30001672
+ fraction.js: 4.3.7
+ normalize-range: 0.1.2
+ picocolors: 1.1.1
+ postcss: 8.4.47
+ postcss-value-parser: 4.2.0
+
available-typed-arrays@1.0.7:
dependencies:
possible-typed-array-names: 1.0.0
@@ -7466,6 +7728,8 @@ snapshots:
callsites@3.1.0: {}
+ camelcase-css@2.0.1: {}
+
caniuse-lite@1.0.30001672: {}
ccount@2.0.1: {}
@@ -7609,6 +7873,8 @@ snapshots:
commander@12.1.0: {}
+ commander@4.1.1: {}
+
compare-func@2.0.0:
dependencies:
array-ify: 1.0.0
@@ -7816,6 +8082,8 @@ snapshots:
detect-newline@4.0.1: {}
+ didyoumean@1.2.2: {}
+
diff-sequences@29.6.3: {}
diff@5.2.0: {}
@@ -7824,6 +8092,8 @@ snapshots:
dependencies:
path-type: 4.0.0
+ dlv@1.1.3: {}
+
doctrine@2.1.0:
dependencies:
esutils: 2.0.3
@@ -7857,6 +8127,10 @@ snapshots:
ee-first@1.1.1: {}
+ ejs@3.1.10:
+ dependencies:
+ jake: 10.9.2
+
electron-to-chromium@1.5.47: {}
emoji-regex@10.4.0: {}
@@ -8505,6 +8779,10 @@ snapshots:
dependencies:
flat-cache: 3.2.0
+ filelist@1.0.4:
+ dependencies:
+ minimatch: 5.1.6
+
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -8575,6 +8853,8 @@ snapshots:
forwarded@0.2.0: {}
+ fraction.js@4.3.7: {}
+
fresh@0.5.2: {}
from2@2.3.0:
@@ -9154,6 +9434,13 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
+ jake@10.9.2:
+ dependencies:
+ async: 3.2.6
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
+
java-properties@1.0.2: {}
javascript-natural-sort@0.7.1: {}
@@ -9297,6 +9584,8 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
+ lilconfig@2.1.0: {}
+
lilconfig@3.1.2: {}
lines-and-columns@1.2.4: {}
@@ -9808,6 +10097,10 @@ snapshots:
dependencies:
brace-expansion: 1.1.11
+ minimatch@5.1.6:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@9.0.5:
dependencies:
brace-expansion: 2.0.1
@@ -9921,6 +10214,8 @@ snapshots:
normalize-path@3.0.0: {}
+ normalize-range@0.1.2: {}
+
normalize-url@8.0.1: {}
npm-install-checks@6.3.0:
@@ -9962,6 +10257,8 @@ snapshots:
object-assign@4.1.1: {}
+ object-hash@3.0.0: {}
+
object-inspect@1.13.2: {}
object-keys@1.1.1: {}
@@ -10213,8 +10510,12 @@ snapshots:
pidtree@0.6.0: {}
+ pify@2.3.0: {}
+
pify@3.0.0: {}
+ pirates@4.0.6: {}
+
pkg-conf@2.1.0:
dependencies:
find-up: 2.1.0
@@ -10234,6 +10535,18 @@ snapshots:
dependencies:
postcss: 8.4.47
+ postcss-import@15.1.0(postcss@8.4.47):
+ dependencies:
+ postcss: 8.4.47
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.8
+
+ postcss-js@4.0.1(postcss@8.4.47):
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.4.47
+
postcss-load-config@4.0.2(postcss@8.4.47):
dependencies:
lilconfig: 3.1.2
@@ -10274,6 +10587,11 @@ snapshots:
postcss-modules-values: 4.0.0(postcss@8.4.47)
string-hash: 1.1.3
+ postcss-nested@6.2.0(postcss@8.4.47):
+ dependencies:
+ postcss: 8.4.47
+ postcss-selector-parser: 6.1.2
+
postcss-selector-parser@6.1.2:
dependencies:
cssesc: 3.0.0
@@ -10425,6 +10743,10 @@ snapshots:
dependencies:
loose-envify: 1.4.0
+ read-cache@1.0.0:
+ dependencies:
+ pify: 2.3.0
+
read-package-up@11.0.0:
dependencies:
find-up-simple: 1.0.0
@@ -10776,6 +11098,8 @@ snapshots:
shebang-regex@3.0.0: {}
+ shell-quote@1.8.1: {}
+
side-channel@1.0.6:
dependencies:
call-bind: 1.0.7
@@ -10996,6 +11320,16 @@ snapshots:
dependencies:
inline-style-parser: 0.1.1
+ sucrase@3.35.0:
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.5
+ commander: 4.1.1
+ glob: 10.4.5
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.6
+ ts-interface-checker: 0.1.13
+
super-regex@1.0.0:
dependencies:
function-timeout: 1.0.2
@@ -11023,6 +11357,35 @@ snapshots:
'@pkgr/core': 0.1.1
tslib: 2.8.0
+ tailwind-merge@2.5.4: {}
+
+ tailwindcss@3.4.14:
+ dependencies:
+ '@alloc/quick-lru': 5.2.0
+ arg: 5.0.2
+ chokidar: 3.6.0
+ didyoumean: 1.2.2
+ dlv: 1.1.3
+ fast-glob: 3.3.2
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ jiti: 1.21.6
+ lilconfig: 2.1.0
+ micromatch: 4.0.8
+ normalize-path: 3.0.0
+ object-hash: 3.0.0
+ picocolors: 1.1.1
+ postcss: 8.4.47
+ postcss-import: 15.1.0(postcss@8.4.47)
+ postcss-js: 4.0.1(postcss@8.4.47)
+ postcss-load-config: 4.0.2(postcss@8.4.47)
+ postcss-nested: 6.2.0(postcss@8.4.47)
+ postcss-selector-parser: 6.1.2
+ resolve: 1.22.8
+ sucrase: 3.35.0
+ transitivePeerDependencies:
+ - ts-node
+
tapable@2.2.1: {}
tar-fs@2.1.1:
@@ -11133,6 +11496,8 @@ snapshots:
dependencies:
typescript: 5.6.3
+ ts-interface-checker@0.1.13: {}
+
tsconfck@3.1.4(typescript@5.6.3):
optionalDependencies:
typescript: 5.6.3
diff --git a/prettier.config.js b/prettier.config.js
deleted file mode 100644
index f540926..0000000
--- a/prettier.config.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require.resolve('@kurocado-studio/styleguide/prettier');
diff --git a/remix.config.js b/remix.config.js
deleted file mode 100644
index 7fac2d3..0000000
--- a/remix.config.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/** @type {import('@remix-run/dev').AppConfig} */
-export default {
- ignoredRouteFiles: ["**/.*"],
- // appDirectory: "app",
- // assetsBuildDirectory: "public/build",
- // publicPath: "/build/",
- // serverBuildPath: "build/index.js",
-};
diff --git a/remix.env.d.ts b/remix.env.d.ts
deleted file mode 100644
index dcf8c45..0000000
--- a/remix.env.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-///
-///
diff --git a/vitest.config.ts b/vitest.config.ts
deleted file mode 100644
index 33967e8..0000000
--- a/vitest.config.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import * as path from 'node:path';
-import swc from 'unplugin-swc';
-import { defineConfig } from 'vitest/config';
-
-export default defineConfig({
- test: {
- globals: true,
- root: './',
- },
- resolve: {
- alias: {
- '~': path.resolve(__dirname, './src'),
- },
- },
- plugins: [
- // This is required to build the test files with SWC
- swc.vite({
- // Explicitly set the module type to avoid inheriting this value from a `.swcrc` config file
- module: { type: 'es6' },
- }),
- ],
-});