diff --git a/.prettierrc b/.prettierrc index d1c20d7..dcfbce0 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,8 +1,7 @@ { "trailingComma": "all", "tabWidth": 2, - "printWidth": 100, - "semi": false, + "printWidth": 90, "singleQuote": false, "useTabs": true, "arrowParens": "avoid", diff --git a/packages/kit/CHANGELOG.md b/packages/kit/CHANGELOG.md new file mode 100644 index 0000000..6b6fe66 --- /dev/null +++ b/packages/kit/CHANGELOG.md @@ -0,0 +1 @@ +# @your-repository-name/hello diff --git a/packages/kit/LICENSE b/packages/kit/LICENSE new file mode 100644 index 0000000..003a3b9 --- /dev/null +++ b/packages/kit/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 your-author-name + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/kit/README.md b/packages/kit/README.md new file mode 100644 index 0000000..1f71429 --- /dev/null +++ b/packages/kit/README.md @@ -0,0 +1,36 @@ + +

+ your-repository-name Hello +

+ +# Hello + +Example hello world package in the your-repository-name repository. + +## Installation + +```bash +npm install @your-repository-name/hello +# or +yarn add @your-repository-name/hello +# or +pnpm add @your-repository-name/hello +``` + +## How to use it + +```ts +import { createHello } from "@your-repository-name/hello" + +const [hello, setHello] = createHello() + +hello() // => "Hello World!" + +setHello("Solid") + +hello() // => "Hello Solid!" +``` + +## Changelog + +See [CHANGELOG.md](./CHANGELOG.md). diff --git a/packages/kit/jest.config.ssr.ts b/packages/kit/jest.config.ssr.ts new file mode 100644 index 0000000..256f148 --- /dev/null +++ b/packages/kit/jest.config.ssr.ts @@ -0,0 +1,2 @@ +import config from "../../configs/jest.config.ssr" +export default config diff --git a/packages/kit/jest.config.ts b/packages/kit/jest.config.ts new file mode 100644 index 0000000..7f8a846 --- /dev/null +++ b/packages/kit/jest.config.ts @@ -0,0 +1,2 @@ +import config from "../../configs/jest.config" +export default config diff --git a/packages/kit/package.json b/packages/kit/package.json new file mode 100644 index 0000000..a9c74a2 --- /dev/null +++ b/packages/kit/package.json @@ -0,0 +1,72 @@ +{ + "name": "@codeui/kit", + "version": "0.0.1", + "description": "Example hello world package in the your-repository-name repository.", + "license": "MIT", + "author": "your-author-name", + "contributors": [], + "homepage": "https://github.com/your-nickname/your-repository-name#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/your-nickname/your-repository-name.git" + }, + "bugs": { + "url": "https://github.com/your-nickname/your-repository-name/issues" + }, + "keywords": [ + "solid" + ], + "private": false, + "sideEffects": false, + "publishConfig": { + "access": "public" + }, + "files": [ + "dist" + ], + "type": "module", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "types": "dist/types/index.d.ts", + "exports": { + ".": { + "solid": "./dist/source/index.jsx", + "import": "./dist/esm/index.js", + "browser": { + "import": "./dist/esm/index.js", + "require": "./dist/cjs/index.js" + }, + "require": "./dist/cjs/index.js", + "node": "./dist/cjs/index.js" + } + }, + "scripts": { + "dev": "pnpm run build -w", + "build": "rollup -c ../../configs/rollup.config.ts", + "test": "pnpm run test:client && pnpm run test:ssr", + "test:client": "jest --config jest.config.ts", + "test:ssr": "jest --config jest.config.ssr.ts", + "typecheck": "tsc --noEmit" + }, + "devDependencies": { + "@testing-library/jest-dom": "^5.16.4", + "jest": "^28.1.3", + "jest-environment-jsdom": "^28.1.3", + "rollup": "^2.77.2", + "rollup-preset-solid": "^1.4.0", + "solid-js": "^1.4.8", + "solid-testing-library": "^0.3.0", + "ts-node": "^10.9.1", + "typescript": "^4.7.4" + }, + "peerDependencies": { + "solid-js": "^1.4.4" + }, + "packageManager": "pnpm@7.5.0", + "dependencies": { + "@kobalte/core": "^0.1.0", + "@vanilla-extract/css": "^1.9.2", + "@vanilla-extract/dynamic": "^2.0.3", + "@vanilla-extract/recipes": "^0.3.0" + } +} diff --git a/packages/kit/src/components/Button/Button.css.ts b/packages/kit/src/components/Button/Button.css.ts new file mode 100644 index 0000000..df55b63 --- /dev/null +++ b/packages/kit/src/components/Button/Button.css.ts @@ -0,0 +1,66 @@ +import { createTheme } from "@vanilla-extract/css"; +import { recipe, RecipeVariants } from "@vanilla-extract/recipes"; +import { themeTokens } from "../../foundation/themes.css"; + +export const [buttonTheme, buttonVars] = createTheme({ + buttonHeight: "", + fontSize: "", +}); + +export const enum ButtonSizes { + xs = "xs", + sm = "sm", + md = "md", + lg = "lg", + xl = "xl", +} + +export const button = recipe({ + base: [ + buttonTheme, + { + appearance: "none", + position: "relative", + display: "inline-flex", + justifyContent: "center", + alignItems: "center", + flexShrink: 0, + outline: "none", + userSelect: "none", + whiteSpace: "nowrap", + verticalAlign: "middle", + }, + ], + variants: { + size: { + [ButtonSizes.lg]: { + vars: { + [buttonVars.buttonHeight]: "48px", + [buttonVars.fontSize]: themeTokens.fontSize.lg, + }, + minWidth: "72px", + }, + [ButtonSizes.md]: { + vars: { + [buttonVars.buttonHeight]: "42px", + [buttonVars.fontSize]: themeTokens.fontSize.md, + }, + }, + [ButtonSizes.sm]: { + vars: { + [buttonVars.buttonHeight]: "36px", + [buttonVars.fontSize]: themeTokens.fontSize.sm, + }, + }, + [ButtonSizes.xs]: { + vars: { + [buttonVars.buttonHeight]: "30px", + [buttonVars.fontSize]: themeTokens.fontSize.xs, + }, + padding: `0 ${themeTokens.spacing["2"]}`, + }, + }, + }, +}); + +export type ButtonVariants = RecipeVariants; diff --git a/packages/kit/src/components/Button/Button.tsx b/packages/kit/src/components/Button/Button.tsx new file mode 100644 index 0000000..aa90c33 --- /dev/null +++ b/packages/kit/src/components/Button/Button.tsx @@ -0,0 +1,17 @@ +import { Button as KButton, ButtonOptions } from "@kobalte/core"; +import { ParentProps, splitProps } from "solid-js"; +import * as styles from "./Button.css"; + +export type ButtonProps = ButtonOptions & styles.ButtonVariants; + +export function Button(props: ParentProps) { + const [local, others] = splitProps(props, ["size"]); + return ( + + ); +} diff --git a/packages/kit/src/foundation/themes.css.ts b/packages/kit/src/foundation/themes.css.ts new file mode 100644 index 0000000..7de79d1 --- /dev/null +++ b/packages/kit/src/foundation/themes.css.ts @@ -0,0 +1,6 @@ +import { createTheme } from "@vanilla-extract/css"; +import { tokens } from "./tokens"; + +export const [theme, themeTokens] = createTheme({ + ...tokens, +}); diff --git a/packages/kit/src/foundation/tokens.ts b/packages/kit/src/foundation/tokens.ts new file mode 100644 index 0000000..d3cfa03 --- /dev/null +++ b/packages/kit/src/foundation/tokens.ts @@ -0,0 +1,51 @@ +export const tokens = { + fontSize: { + xs: `0.8rem`, + sm: `0.875rem`, + md: `1rem`, + lg: `1.25rem`, + xl: `1.5rem`, + }, + fontWeight: { + hairline: "100", + thin: "200", + light: "300", + normal: "400", + medium: "500", + semibold: "600", + bold: "700", + extrabold: "800", + black: "900", + }, + spacing: { + auto: "auto", + px: "1px", + 0: "0", + 1: "0.25rem", + 2: "0.5rem", + 3: "0.75rem", + 4: "1rem", + 5: "1.25rem", + 6: "1.5rem", + 8: "2rem", + 10: "2.5rem", + 12: "3rem", + 16: "4rem", + 20: "5rem", + 24: "6rem", + 32: "8rem", + 40: "10rem", + 48: "12rem", + 56: "14rem", + 64: "16rem", + }, + radii: { + none: "0", + sm: "0.125rem", + default: "0.25rem", + md: "0.375rem", + lg: "0.5rem", + xl: "1rem", + full: "9999px", + }, +} as const; diff --git a/packages/kit/src/index.tsx b/packages/kit/src/index.tsx new file mode 100644 index 0000000..24703a7 --- /dev/null +++ b/packages/kit/src/index.tsx @@ -0,0 +1,21 @@ +import { Accessor, Component, createComputed, createSignal } from "solid-js"; + +export function createHello(): [Accessor, (to: string) => void] { + const [hello, setHello] = createSignal("Hello World!"); + + return [hello, (to: string) => setHello(`Hello ${to}!`)]; +} + +export const Hello: Component<{ to?: string }> = props => { + const [hello, setHello] = createHello(); + + createComputed(() => { + if (typeof props.to === "string") setHello(props.to); + }); + + return
{hello()}
; +}; + +export { Button, type ButtonProps } from "./components/Button/Button"; +export { tokens } from "./foundation/tokens"; +export { theme, themeTokens } from "./foundation/themes.css"; diff --git a/packages/kit/test/index.ssr.test.tsx b/packages/kit/test/index.ssr.test.tsx new file mode 100644 index 0000000..f887bf6 --- /dev/null +++ b/packages/kit/test/index.ssr.test.tsx @@ -0,0 +1,29 @@ +import { isServer, renderToString } from "solid-js/web" +import { createHello, Hello } from "../src" + +describe("environment", () => { + it("runs on server", () => { + expect(typeof window).toBe("undefined") + expect(isServer).toBe(true) + }) +}) + +describe("createHello", () => { + it("Returns a Hello World signal", () => { + const [hello] = createHello() + expect(hello()).toBe("Hello World!") + }) + + it("Changes the hello target", () => { + const [hello, setHello] = createHello() + setHello("Solid") + expect(hello()).toBe("Hello Solid!") + }) +}) + +describe("Hello", () => { + it("renders a hello component", () => { + const string = renderToString(() => ) + expect(string).toBe('
Hello World!
') + }) +}) diff --git a/packages/kit/test/index.test.tsx b/packages/kit/test/index.test.tsx new file mode 100644 index 0000000..9c89b94 --- /dev/null +++ b/packages/kit/test/index.test.tsx @@ -0,0 +1,49 @@ +import { createRoot, createSignal } from "solid-js" +import { isServer } from "solid-js/web" +import { createHello, Hello } from "../src" +import { render } from "solid-testing-library" + +describe("environment", () => { + it("runs on server", () => { + expect(typeof window).toBe("object") + expect(isServer).toBe(false) + }) +}) + +describe("createHello", () => { + it("Returns a Hello World signal", () => + createRoot(dispose => { + const [hello] = createHello() + expect(hello()).toBe("Hello World!") + dispose() + })) + + it("Changes the hello target", () => + createRoot(dispose => { + const [hello, setHello] = createHello() + setHello("Solid") + expect(hello()).toBe("Hello Solid!") + dispose() + })) +}) + +describe("Hello", () => { + it("renders a hello component", () => { + const { container } = render(() => ) + expect(container.innerHTML).toBe("
Hello World!
") + }) + + it("changes the hello target", () => + createRoot(dispose => { + const [to, setTo] = createSignal("Solid") + const { container } = render(() => ) + expect(container.innerHTML).toBe("
Hello Solid!
") + setTo("Tests") + + // rendering is async + queueMicrotask(() => { + expect(container.innerHTML).toBe("
Hello Tests!
") + dispose() + }) + })) +}) diff --git a/packages/kit/tsconfig.json b/packages/kit/tsconfig.json new file mode 100644 index 0000000..aef5856 --- /dev/null +++ b/packages/kit/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src/**/*", "test/**/*"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9001b98..a242f2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -62,6 +62,37 @@ importers: ts-node: 10.9.1_nv75g3i7xuh23du6z7qul3uiqi typescript: 4.7.4 + packages/kit: + specifiers: + '@kobalte/core': ^0.1.0 + '@testing-library/jest-dom': ^5.16.4 + '@vanilla-extract/css': ^1.9.2 + '@vanilla-extract/dynamic': ^2.0.3 + '@vanilla-extract/recipes': ^0.3.0 + jest: ^28.1.3 + jest-environment-jsdom: ^28.1.3 + rollup: ^2.77.2 + rollup-preset-solid: ^1.4.0 + solid-js: ^1.4.8 + solid-testing-library: ^0.3.0 + ts-node: ^10.9.1 + typescript: ^4.7.4 + dependencies: + '@kobalte/core': 0.1.0_solid-js@1.6.8 + '@vanilla-extract/css': 1.9.2 + '@vanilla-extract/dynamic': 2.0.3 + '@vanilla-extract/recipes': 0.3.0_@vanilla-extract+css@1.9.2 + devDependencies: + '@testing-library/jest-dom': 5.16.4 + jest: 28.1.3_zfha7dvnw4nti6zkbsmhmn6xo4 + jest-environment-jsdom: 28.1.3 + rollup: 2.79.1 + rollup-preset-solid: 1.4.0 + solid-js: 1.6.8 + solid-testing-library: 0.3.0_solid-js@1.6.8 + ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq + typescript: 4.9.4 + playgrounds/sandbox: specifiers: '@your-repository-name/hello': ^0.0.1 @@ -1162,7 +1193,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-plugin-utils': 7.18.9 dev: true /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.18.6: @@ -1433,7 +1464,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-plugin-utils': 7.18.9 dev: true /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.18.6: @@ -2452,7 +2483,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 - dev: true /@babel/template/7.18.6: resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==} @@ -2746,6 +2776,10 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true + /@emotion/hash/0.9.0: + resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} + dev: false + /@esbuild/android-arm/0.15.18: resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} engines: {node: '>=12'} @@ -2764,10 +2798,32 @@ packages: dev: true optional: true + /@floating-ui/core/1.1.0: + resolution: {integrity: sha512-zbsLwtnHo84w1Kc8rScAo5GMk1GdecSlrflIbfnEBJwvTSj1SL6kkOYV+nHraMCPEy+RNZZUaZyL8JosDGCtGQ==} + dev: false + + /@floating-ui/dom/1.1.0: + resolution: {integrity: sha512-TSogMPVxbRe77QCj1dt8NmRiJasPvuc+eT5jnJ6YpLqgOD2zXc5UA3S1qwybN+GVCDNdKfpKy1oj8RpzLJvh6A==} + dependencies: + '@floating-ui/core': 1.1.0 + dev: false + /@gar/promisify/1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true + /@internationalized/number/3.1.2: + resolution: {integrity: sha512-Mbys8SGsn0ApXz3hJLNU+d95B8luoUbwnmCpBwl7d63UmYAlcT6TRDyvaS/vwdbElXLcsQJjQCu0gox2cv/Tig==} + dependencies: + '@swc/helpers': 0.4.14 + dev: false + + /@internationalized/string/3.0.1: + resolution: {integrity: sha512-2+rHfXZ56YgsC6i3fKvBue/xatnSm0Jv+C/x4+n3wg5xAcLh4LPW3GvZ/9ifxNAz9+IWplgZHa1FRIbSuUvNWg==} + dependencies: + '@swc/helpers': 0.4.14 + dev: false + /@istanbuljs/load-nyc-config/1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -3286,6 +3342,31 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@kobalte/core/0.1.0_solid-js@1.6.8: + resolution: {integrity: sha512-IYdL9RDexfV+x13RcwAxSyiL2GnEPDPygOWfN8wHcBla7DnUULwdNYUTmN6ABDq7XGP2Fuj5RGgoTkpJ1xoTgQ==} + peerDependencies: + solid-js: ^1.6.1 + dependencies: + '@floating-ui/dom': 1.1.0 + '@internationalized/number': 3.1.2 + '@internationalized/string': 3.0.1 + '@kobalte/utils': 0.1.0_solid-js@1.6.8 + solid-js: 1.6.8 + dev: false + + /@kobalte/utils/0.1.0_solid-js@1.6.8: + resolution: {integrity: sha512-3kMYChBPDGGPjtfJl47LjWl8Xz8gHANCnzLHnaXrIJENJcMFwpEApyBMTpO451xFZFwyBkDp++ledYql+OL9Dw==} + peerDependencies: + solid-js: ^1.6.1 + dependencies: + '@solid-primitives/event-listener': 2.2.4_solid-js@1.6.8 + '@solid-primitives/media': 2.0.4_solid-js@1.6.8 + '@solid-primitives/props': 3.0.1_solid-js@1.6.8 + '@solid-primitives/refs': 0.3.4_solid-js@1.6.8 + '@solid-primitives/utils': 4.0.0_solid-js@1.6.8 + solid-js: 1.6.8 + dev: false + /@manypkg/find-root/1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: @@ -3483,6 +3564,78 @@ packages: '@sinonjs/commons': 1.8.3 dev: true + /@solid-primitives/event-listener/2.2.4_solid-js@1.6.8: + resolution: {integrity: sha512-O/ppM0SpXWtNC7AHv1bQA9Dy6pj3NUM06MhSV9xwVv4N06PmlNYhGLDSPT1Esesm6b0fDgCXB5V+AgCSEzQd/w==} + peerDependencies: + solid-js: ^1.6.0 + dependencies: + '@solid-primitives/utils': 4.0.0_solid-js@1.6.8 + solid-js: 1.6.8 + dev: false + + /@solid-primitives/immutable/0.1.4_solid-js@1.6.8: + resolution: {integrity: sha512-9oLK8ihIjG5FZv74KoXXyKErxgGxGZsdevsIKB0ugTreBBmozHPcYTjoYFL/sHoqs2ZNMlmfNQ3kduvrvKG2RQ==} + peerDependencies: + solid-js: ^1.6.0 + dependencies: + '@solid-primitives/utils': 4.0.0_solid-js@1.6.8 + solid-js: 1.6.8 + dev: false + + /@solid-primitives/media/2.0.4_solid-js@1.6.8: + resolution: {integrity: sha512-MZkdUlV3qJQts4b7ZfAldbFGB1neH64rwHsnTmIeF2Zj8gWjYcYtJ36SwkRs3NjHQ53uQliZ+DtMXiCeapNw/g==} + peerDependencies: + solid-js: ^1.6.0 + dependencies: + '@solid-primitives/event-listener': 2.2.4_solid-js@1.6.8 + '@solid-primitives/rootless': 1.2.1_solid-js@1.6.8 + '@solid-primitives/utils': 4.0.0_solid-js@1.6.8 + solid-js: 1.6.8 + dev: false + + /@solid-primitives/props/3.0.1_solid-js@1.6.8: + resolution: {integrity: sha512-5v27ex4KxxnIbgze1lXPEXHO/ebbtEjL6idkhezH/7jHpjunl8PYabpDgoGO16tb8DawcZWOAXa7waWqWPAe/A==} + peerDependencies: + solid-js: ^1.6.0 + dependencies: + '@solid-primitives/utils': 4.0.0_solid-js@1.6.8 + solid-js: 1.6.8 + dev: false + + /@solid-primitives/refs/0.3.4_solid-js@1.6.8: + resolution: {integrity: sha512-XqX5PRCMnCOuLQqTsx3tRYs/oAyQsTXtmkB+tBlYoaqxLrJFBebPRVT/kFWN2Jxb6eZYAXDB5zZejS8nizsd8Q==} + peerDependencies: + solid-js: ^1.6.0 + dependencies: + '@solid-primitives/immutable': 0.1.4_solid-js@1.6.8 + '@solid-primitives/rootless': 1.2.1_solid-js@1.6.8 + '@solid-primitives/utils': 4.0.0_solid-js@1.6.8 + solid-js: 1.6.8 + dev: false + + /@solid-primitives/rootless/1.2.1_solid-js@1.6.8: + resolution: {integrity: sha512-8RpdyS1e58PQbDjgjpyCh+IGoX3QEs/2LauMfl94eXJ5d/o1y/c6P61z9XqQm+Bx1Otdgx4nbFCoF7HPqa0mwg==} + peerDependencies: + solid-js: ^1.6.0 + dependencies: + '@solid-primitives/utils': 4.0.0_solid-js@1.6.8 + solid-js: 1.6.8 + dev: false + + /@solid-primitives/utils/4.0.0_solid-js@1.6.8: + resolution: {integrity: sha512-fGsJy8Z8YiwogpiezD7TWjI62UCb0JAHJWdoXWGrggrn4bfToZotKkabiB0IVFMkWVE1ZcrkvZT3bkmqGnK0ng==} + peerDependencies: + solid-js: ^1.6.0 + dependencies: + solid-js: 1.6.8 + dev: false + + /@swc/helpers/0.4.14: + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} + dependencies: + tslib: 2.4.1 + dev: false + /@testing-library/dom/7.31.2: resolution: {integrity: sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==} engines: {node: '>=10'} @@ -3681,6 +3834,40 @@ packages: '@types/yargs-parser': 21.0.0 dev: true + /@vanilla-extract/css/1.9.2: + resolution: {integrity: sha512-CE5+R89LOl9XG5dRwEIvVyl/YcS2GkqjdE/XnGJ+p7Fp6Exu08fifv7tY87XxFeCIRAbc9psM+h4lF+wC3Y0fg==} + dependencies: + '@emotion/hash': 0.9.0 + '@vanilla-extract/private': 1.0.3 + ahocorasick: 1.0.2 + chalk: 4.1.2 + css-what: 5.1.0 + cssesc: 3.0.0 + csstype: 3.1.1 + deep-object-diff: 1.1.9 + deepmerge: 4.2.2 + media-query-parser: 2.0.2 + outdent: 0.8.0 + dev: false + + /@vanilla-extract/dynamic/2.0.3: + resolution: {integrity: sha512-Rglfw2gXAYiBzAQ4jgUG7rBgE2c88e/zcG27ZVoIqMHVq56wf2C1katGMm1yFMNBgzqM7oBNYzz4YOMzznydkg==} + dependencies: + '@vanilla-extract/private': 1.0.3 + dev: false + + /@vanilla-extract/private/1.0.3: + resolution: {integrity: sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==} + dev: false + + /@vanilla-extract/recipes/0.3.0_@vanilla-extract+css@1.9.2: + resolution: {integrity: sha512-7wXrgfq1oldKdBfCKen4XmSlDmQR+4o0CQ3WnnLfhQaEtI65xJ774yyQF6dD2CC+hHdW2LFKVXgH5NZRbMQ8Sg==} + peerDependencies: + '@vanilla-extract/css': ^1.0.0 + dependencies: + '@vanilla-extract/css': 1.9.2 + dev: false + /abab/2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true @@ -3751,6 +3938,10 @@ packages: indent-string: 4.0.0 dev: true + /ahocorasick/1.0.2: + resolution: {integrity: sha512-hCOfMzbFx5IDutmWLAt6MZwOUjIfSM9G9FyVxytmE4Rs/5YDPWQrD/+IR1w+FweD9H2oOZEnv36TmkjhNURBVA==} + dev: false + /ansi-colors/4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -3780,7 +3971,6 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - dev: true /ansi-styles/5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} @@ -4289,7 +4479,6 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true /char-regex/1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} @@ -4368,7 +4557,6 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - dev: true /color-name/1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} @@ -4376,7 +4564,6 @@ packages: /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true /color-support/1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} @@ -4455,6 +4642,11 @@ packages: which: 2.0.2 dev: true + /css-what/5.1.0: + resolution: {integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==} + engines: {node: '>= 6'} + dev: false + /css.escape/1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} dev: true @@ -4467,6 +4659,12 @@ packages: source-map-resolve: 0.6.0 dev: true + /cssesc/3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true @@ -4484,7 +4682,6 @@ packages: /csstype/3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} - dev: true /csv-generate/3.4.3: resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} @@ -4559,10 +4756,13 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true + /deep-object-diff/1.1.9: + resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} + dev: false + /deepmerge/4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} - dev: true /defaults/1.0.3: resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==} @@ -5507,7 +5707,6 @@ packages: /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dev: true /has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} @@ -6060,7 +6259,7 @@ packages: pretty-format: 28.1.3 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1_nv75g3i7xuh23du6z7qul3uiqi + ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq transitivePeerDependencies: - supports-color dev: true @@ -6999,6 +7198,12 @@ packages: engines: {node: '>=8'} dev: true + /media-query-parser/2.0.2: + resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} + dependencies: + '@babel/runtime': 7.20.7 + dev: false + /meow/6.1.1: resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} engines: {node: '>=8'} @@ -7402,6 +7607,10 @@ packages: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} dev: true + /outdent/0.8.0: + resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} + dev: false + /p-filter/2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -7780,7 +7989,6 @@ packages: /regenerator-runtime/0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: true /regenerator-runtime/0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} @@ -8110,7 +8318,6 @@ packages: resolution: {integrity: sha512-+X5rf4bL3Il/LI2pn6O2d63D/KyG8Shxj3DM6violSPOhRgm5ln37Pq6uVDAvJcmsObOBeGOjXAwZvqwyZjisg==} dependencies: csstype: 3.1.1 - dev: true /solid-refresh/0.4.1_solid-js@1.4.8: resolution: {integrity: sha512-v3tD/OXQcUyXLrWjPW1dXZyeWwP7/+GQNs8YTL09GBq+5FguA6IejJWUvJDrLIA4M0ho9/5zK2e9n+uy+4488g==} @@ -8144,6 +8351,16 @@ packages: solid-js: 1.4.8 dev: true + /solid-testing-library/0.3.0_solid-js@1.6.8: + resolution: {integrity: sha512-6NWVbySNVzyReBm2N6p3eF8bzxRZXHZTAmPix4vFWYol16QWVjNQsEUxvr+ZOutb0yuMZmNuGx3b6WIJYmjwMQ==} + engines: {node: '>= 14'} + peerDependencies: + solid-js: '>=1.0.0' + dependencies: + '@testing-library/dom': 7.31.2 + solid-js: 1.6.8 + dev: true + /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -8314,7 +8531,6 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - dev: true /supports-color/8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} @@ -8481,6 +8697,37 @@ packages: yargs-parser: 21.0.1 dev: true + /ts-node/10.9.1_awa2wsr5thmg3i7jqycphctjfq: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.11.18 + acorn: 8.7.1 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + /ts-node/10.9.1_nv75g3i7xuh23du6z7qul3uiqi: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -8516,6 +8763,10 @@ packages: resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} dev: true + /tslib/2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + dev: false + /tty-table/4.1.6: resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} engines: {node: '>=8.0.0'} @@ -8807,7 +9058,7 @@ packages: esbuild: 0.14.47 postcss: 8.4.14 resolve: 1.22.1 - rollup: 2.77.2 + rollup: 2.79.1 optionalDependencies: fsevents: 2.3.2 dev: true