git.iko.soy/rowtype-yoga/purescript-yoga-heroui3
on main help sign in
commit90bbc30cec60aab30d73711e2028fbd6bc592abd authorMark <mark.eibes@gmail.com> dateSun 31 May 2026, 17:29 (4 months ago)
26 files changed+3104
.github/workflows/ci.yml+34 .gitignore+3 .psc-ide-port+1 README.md+1 bun.lock+567 heroui-styles.css+3 package.json+25 spago.lock+1589 spago.yaml+55 src/HeroUI/Avatar.purs+63 src/HeroUI/Badge.purs+86 src/HeroUI/Button.purs+119 src/HeroUI/Chip.purs+54 src/HeroUI/Internal.js+13 src/HeroUI/Internal.purs+70 src/HeroUI/Kbd.purs+104 src/HeroUI/Link.purs+42 src/HeroUI/Raw.js+58 src/HeroUI/Raw.purs+40 src/HeroUI/Separator.purs+40 src/HeroUI/Skeleton.purs+31 src/HeroUI/Spinner.purs+53 src/HeroUI/Types.purs+42 vite.config.js+5 yoga-stories-head.js+1 yoga-stories.json+5
.github/workflows/ci.ymlnew file+34
@@ -0,0 +1,34 @@
1+name: CI
2+
3+on:
4+ push:
5+ branches: [main]
6+ pull_request:
7+
8+jobs:
9+ build-and-test:
10+ runs-on: ubuntu-latest
11+ steps:
12+ - uses: actions/checkout@v4
13+
14+ - uses: oven-sh/setup-bun@v2
15+ with:
16+ bun-version: latest
17+
18+ - uses: purescript-contrib/setup-purescript@main
19+ with:
20+ purescript: "0.15.15"
21+ purs-tidy: "latest"
22+ spago: "unstable"
23+
24+ - name: Install JS dependencies
25+ run: bun install --frozen-lockfile
26+
27+ - name: Check formatting (purs-tidy)
28+ run: purs-tidy check src test
29+
30+ - name: Build
31+ run: spago build
32+
33+ - name: Test
34+ run: spago test
.gitignorenew file+3
@@ -0,0 +1,3 @@
1+node_modules/
2+output/
3+.spago/
.psc-ide-portnew file+1
@@ -0,0 +1 @@
1+15099
README.mdnew file+1
@@ -0,0 +1 @@
1+PureScript bindings for [HeroUI v3](https://heroui.com).
bun.locknew file+567
@@ -0,0 +1,567 @@
1+{
2+ "lockfileVersion": 1,
3+ "workspaces": {
4+ "": {
5+ "name": "purescript-yoga-heroui3",
6+ "dependencies": {
7+ "@heroui/react": "^3.1.0",
8+ "@heroui/styles": "^3.1.0",
9+ "yoga-stories": "0.1.5",
10+ },
11+ "devDependencies": {
12+ "@tailwindcss/vite": "^4.1.18",
13+ "@testing-library/react": "^16",
14+ "@testing-library/user-event": "^14.6.1",
15+ "global-jsdom": "^29.0.0",
16+ "jsdom": "^25",
17+ "react": "19",
18+ "react-dom": "19",
19+ "tailwindcss": "^4.1.18",
20+ },
21+ "peerDependencies": {
22+ "react": ">=19",
23+ "react-dom": ">=19",
24+ "tailwindcss": ">=4",
25+ },
26+ },
27+ },
28+ "packages": {
29+ "@adobe/react-spectrum": ["@adobe/react-spectrum@3.47.1", "", { "dependencies": { "@internationalized/date": "^3.12.2", "@react-types/shared": "^3.35.0", "@spectrum-icons/ui": "^3.7.1", "@spectrum-icons/workflow": "^4.3.1", "@swc/helpers": "^0.5.0", "client-only": "^0.0.1", "clsx": "^2.0.0", "react-aria": "3.49.0", "react-aria-components": "1.18.0", "react-stately": "3.47.0", "react-transition-group": "^4.4.5", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-mijNyd8XmA6KoBMbqKc4Rp+S2voKdZkPydJFjQbG0SkOjOKcgqVpJdKGsKdLMZBn9Jk5SgEuklyrhc7Uvot2tA=="],
30+
31+ "@adobe/react-spectrum-ui": ["@adobe/react-spectrum-ui@1.2.1", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "sha512-wcrbEE2O/9WnEn6avBnaVRRx88S5PLFsPLr4wffzlbMfXeQsy+RMQwaJd3cbzrn18/j04Isit7f7Emfn0dhrJA=="],
32+
33+ "@adobe/react-spectrum-workflow": ["@adobe/react-spectrum-workflow@2.3.5", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "sha512-b53VIPwPWKb/T5gzE3qs+QlGP5gVrw/LnWV3xMksDU+CRl3rzOKUwxIGiZO8ICyYh1WiyqY4myGlPU/nAynBUg=="],
34+
35+ "@asamuzakjp/css-color": ["@asamuzakjp/css-color@3.2.0", "", { "dependencies": { "@csstools/css-calc": "^2.1.3", "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" } }, "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw=="],
36+
37+ "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="],
38+
39+ "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="],
40+
41+ "@babel/runtime": ["@babel/runtime@7.29.7", "", {}, "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw=="],
42+
43+ "@codemirror/autocomplete": ["@codemirror/autocomplete@6.20.2", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.17.0", "@lezer/common": "^1.0.0" } }, "sha512-G5FPkgIiLjOgZMjqVjvuKQ1rGPtHogLldJr33eFJdVLtmwY+giGrlv/ewljLz6b9BSQLkjxuwBc6g6omDM+YxQ=="],
44+
45+ "@codemirror/commands": ["@codemirror/commands@6.10.3", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.6.0", "@codemirror/view": "^6.27.0", "@lezer/common": "^1.1.0" } }, "sha512-JFRiqhKu+bvSkDLI+rUhJwSxQxYb759W5GBezE8Uc8mHLqC9aV/9aTC7yJSqCtB3F00pylrLCwnyS91Ap5ej4Q=="],
46+
47+ "@codemirror/language": ["@codemirror/language@6.12.3", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.23.0", "@lezer/common": "^1.5.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0", "style-mod": "^4.0.0" } }, "sha512-QwCZW6Tt1siP37Jet9Tb02Zs81TQt6qQrZR2H+eGMcFsL1zMrk2/b9CLC7/9ieP1fjIUMgviLWMmgiHoJrj+ZA=="],
48+
49+ "@codemirror/legacy-modes": ["@codemirror/legacy-modes@6.5.3", "", { "dependencies": { "@codemirror/language": "^6.0.0" } }, "sha512-xCsmIzH78MyWkib9jlPaaun57XNkfbMIhagfaZVd0iLTqlpw3jXaIcbZm72MTmmn64eTZpBVNjbyYh+QXnxRsg=="],
50+
51+ "@codemirror/lint": ["@codemirror/lint@6.9.6", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.42.0", "crelt": "^1.0.5" } }, "sha512-6Kp7r6XfCi/D/5sdXieMfg9pJU1bUEx96WITuLU6ESaKizCz0QHFMjY/TaFSbigDdEAIgi93itLBIUETP4oK+A=="],
52+
53+ "@codemirror/search": ["@codemirror/search@6.7.0", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.37.0", "crelt": "^1.0.5" } }, "sha512-ZvGm99wc/s2cITtMT15LFdn8aH/aS+V+DqyGq/N5ZlV5vWtH+nILvC2nw0zX7ByNoHHDZ2IxxdW38O0tc5nVHg=="],
54+
55+ "@codemirror/state": ["@codemirror/state@6.6.0", "", { "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } }, "sha512-4nbvra5R5EtiCzr9BTHiTLc+MLXK2QGiAVYMyi8PkQd3SR+6ixar/Q/01Fa21TBIDOZXgeWV4WppsQolSreAPQ=="],
56+
57+ "@codemirror/theme-one-dark": ["@codemirror/theme-one-dark@6.1.3", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", "@lezer/highlight": "^1.0.0" } }, "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA=="],
58+
59+ "@codemirror/view": ["@codemirror/view@6.43.0", "", { "dependencies": { "@codemirror/state": "^6.6.0", "crelt": "^1.0.6", "style-mod": "^4.1.0", "w3c-keyname": "^2.2.4" } }, "sha512-V7ZCLQO3Jus9hzh2jVCCPW3mO4IBMr43O37PqSUYautJSnnJF41YlgLw21x0fLJTYvJ+Vkm6Gp+qKGH9pltgXA=="],
60+
61+ "@csstools/color-helpers": ["@csstools/color-helpers@5.1.0", "", {}, "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA=="],
62+
63+ "@csstools/css-calc": ["@csstools/css-calc@2.1.4", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ=="],
64+
65+ "@csstools/css-color-parser": ["@csstools/css-color-parser@3.1.0", "", { "dependencies": { "@csstools/color-helpers": "^5.1.0", "@csstools/css-calc": "^2.1.4" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA=="],
66+
67+ "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.5", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="],
68+
69+ "@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.4", "", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="],
70+
71+ "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.7", "", { "os": "aix", "cpu": "ppc64" }, "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg=="],
72+
73+ "@esbuild/android-arm": ["@esbuild/android-arm@0.27.7", "", { "os": "android", "cpu": "arm" }, "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ=="],
74+
75+ "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.7", "", { "os": "android", "cpu": "arm64" }, "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ=="],
76+
77+ "@esbuild/android-x64": ["@esbuild/android-x64@0.27.7", "", { "os": "android", "cpu": "x64" }, "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg=="],
78+
79+ "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw=="],
80+
81+ "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ=="],
82+
83+ "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.7", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w=="],
84+
85+ "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.7", "", { "os": "freebsd", "cpu": "x64" }, "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ=="],
86+
87+ "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.7", "", { "os": "linux", "cpu": "arm" }, "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA=="],
88+
89+ "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A=="],
90+
91+ "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.7", "", { "os": "linux", "cpu": "ia32" }, "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg=="],
92+
93+ "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q=="],
94+
95+ "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw=="],
96+
97+ "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.7", "", { "os": "linux", "cpu": "ppc64" }, "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ=="],
98+
99+ "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.7", "", { "os": "linux", "cpu": "none" }, "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ=="],
100+
101+ "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.7", "", { "os": "linux", "cpu": "s390x" }, "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw=="],
102+
103+ "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.7", "", { "os": "linux", "cpu": "x64" }, "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA=="],
104+
105+ "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w=="],
106+
107+ "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.7", "", { "os": "none", "cpu": "x64" }, "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw=="],
108+
109+ "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.7", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A=="],
110+
111+ "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.7", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg=="],
112+
113+ "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.7", "", { "os": "none", "cpu": "arm64" }, "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw=="],
114+
115+ "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.7", "", { "os": "sunos", "cpu": "x64" }, "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA=="],
116+
117+ "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA=="],
118+
119+ "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.7", "", { "os": "win32", "cpu": "ia32" }, "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw=="],
120+
121+ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.7", "", { "os": "win32", "cpu": "x64" }, "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg=="],
122+
123+ "@formatjs/ecma402-abstract": ["@formatjs/ecma402-abstract@2.3.6", "", { "dependencies": { "@formatjs/fast-memoize": "2.2.7", "@formatjs/intl-localematcher": "0.6.2", "decimal.js": "^10.4.3", "tslib": "^2.8.0" } }, "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw=="],
124+
125+ "@formatjs/fast-memoize": ["@formatjs/fast-memoize@2.2.7", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ=="],
126+
127+ "@formatjs/icu-messageformat-parser": ["@formatjs/icu-messageformat-parser@2.11.4", "", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.6", "@formatjs/icu-skeleton-parser": "1.8.16", "tslib": "^2.8.0" } }, "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw=="],
128+
129+ "@formatjs/icu-skeleton-parser": ["@formatjs/icu-skeleton-parser@1.8.16", "", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.6", "tslib": "^2.8.0" } }, "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ=="],
130+
131+ "@formatjs/intl-localematcher": ["@formatjs/intl-localematcher@0.6.2", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA=="],
132+
133+ "@heroui/react": ["@heroui/react@3.1.0", "", { "dependencies": { "@heroui/styles": "3.1.0", "@radix-ui/react-avatar": "1.1.11", "@react-aria/i18n": "3.13.0", "@react-aria/ssr": "3.10.0", "@react-aria/utils": "3.34.0", "@react-stately/utils": "3.12.0", "@react-types/color": "3.2.0", "@react-types/shared": "3.34.0", "input-otp": "1.4.2", "react-aria-components": "1.17.0", "tailwind-merge": "3.4.0", "tailwind-variants": "3.2.2" }, "peerDependencies": { "react": ">=19.0.0", "react-dom": ">=19.0.0", "tailwindcss": ">=4.0.0" } }, "sha512-q+K3Kz5h2ceOEMPuNORLGX1Pqh4McN30y31eykzZZjLbmta4nwi4sDMVAv7/w8QWnWVDOucusXz5x9s5N656nA=="],
134+
135+ "@heroui/styles": ["@heroui/styles@3.1.0", "", { "dependencies": { "tailwind-variants": "3.2.2", "tw-animate-css": "1.4.0" }, "peerDependencies": { "tailwindcss": ">=4.0.0" } }, "sha512-euZtlV5hk9qOWhkSbTaJIrdnm0bGxvu1FEN6nnLGt7PM7AdL40z4C3ZYQ+cW+ObSsqsWHzQRsuhmLHVt1uTS4w=="],
136+
137+ "@internationalized/date": ["@internationalized/date@3.12.2", "", { "dependencies": { "@swc/helpers": "^0.5.0" } }, "sha512-FY1Y+H64NDs+HAF6omlnWxm3mEpfgaCSWtL5l551ZZfImA+kGjPFgrnJrGjH6lfmLL0g8Z/mBu1R3kufeCp6Jw=="],
138+
139+ "@internationalized/message": ["@internationalized/message@3.1.10", "", { "dependencies": { "@swc/helpers": "^0.5.0", "intl-messageformat": "^10.1.0" } }, "sha512-nc0Or6EdWHqZRcsXb6P9hBIpLsfSl/ILh0rk5h/OVBpzmhdExXtPy2cQtWsq8XKRBpRHwDNnAHt4OpolcB7dog=="],
140+
141+ "@internationalized/number": ["@internationalized/number@3.6.7", "", { "dependencies": { "@swc/helpers": "^0.5.0" } }, "sha512-3ji1fcrT+FPAK86UqEhB/psHixYo6niWPJtt7+qRaYFynt/BaJG8GhAPimtWUpEiVSTq8ZM8L5psMxGquiB/Vg=="],
142+
143+ "@internationalized/string": ["@internationalized/string@3.2.9", "", { "dependencies": { "@swc/helpers": "^0.5.0" } }, "sha512-kzP/M/mbQxODlmOt4bIQZ2SBVUWUSqMLXooXixnX7noche8WHaQcA+nwFN1K2KCF/cp+LDUhcJsCicwkvhD1pg=="],
144+
145+ "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
146+
147+ "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="],
148+
149+ "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
150+
151+ "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
152+
153+ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
154+
155+ "@lezer/common": ["@lezer/common@1.5.2", "", {}, "sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ=="],
156+
157+ "@lezer/highlight": ["@lezer/highlight@1.2.3", "", { "dependencies": { "@lezer/common": "^1.3.0" } }, "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g=="],
158+
159+ "@lezer/lr": ["@lezer/lr@1.4.10", "", { "dependencies": { "@lezer/common": "^1.0.0" } }, "sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A=="],
160+
161+ "@marijn/find-cluster-break": ["@marijn/find-cluster-break@1.0.2", "", {}, "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g=="],
162+
163+ "@radix-ui/react-avatar": ["@radix-ui/react-avatar@1.1.11", "", { "dependencies": { "@radix-ui/react-context": "1.1.3", "@radix-ui/react-primitive": "2.1.4", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-is-hydrated": "0.1.0", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q=="],
164+
165+ "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg=="],
166+
167+ "@radix-ui/react-context": ["@radix-ui/react-context@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw=="],
168+
169+ "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.4", "", { "dependencies": { "@radix-ui/react-slot": "1.2.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg=="],
170+
171+ "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.4", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA=="],
172+
173+ "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="],
174+
175+ "@radix-ui/react-use-is-hydrated": ["@radix-ui/react-use-is-hydrated@0.1.0", "", { "dependencies": { "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA=="],
176+
177+ "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="],
178+
179+ "@react-aria/color": ["@react-aria/color@3.2.1", "", { "dependencies": { "@swc/helpers": "^0.5.0", "react-aria": "^3.48.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-v/pZh1yBNeayQ5Kio0xRIX0gBf6uu+KjCRW4QSydTyRpmhvk6sMzHT9i9/vIMdaDHaYHBXlXF+Tp/mvS9CG4Zw=="],
180+
181+ "@react-aria/i18n": ["@react-aria/i18n@3.13.0", "", { "dependencies": { "@internationalized/date": "^3.12.1", "@internationalized/message": "^3.1.9", "@internationalized/string": "^3.2.8", "@swc/helpers": "^0.5.0", "react-aria": "3.48.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-APjw4EwmvlnIyDxixSWfjHvOFFkW2rVTyKZ4l9FV0v7hOerh+FWLE6mF1XnnX3pgz3yARkKWwhSR9xYcRK6tpg=="],
182+
183+ "@react-aria/ssr": ["@react-aria/ssr@3.10.0", "", { "dependencies": { "@swc/helpers": "^0.5.0", "react-aria": "3.48.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-mnelvACtfNWWKFCT1YHebxJRmfBmmANGwHQhCFPByMVTx1L8RumcaLxChYkE87g2KPuP5xX2il/oRn1DytW+qQ=="],
184+
185+ "@react-aria/utils": ["@react-aria/utils@3.34.0", "", { "dependencies": { "@swc/helpers": "^0.5.0", "react-aria": "3.48.0", "react-stately": "3.46.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-ZM1ZXIqpwGTJjjL6o3JhlZkEaBpQdxuOCqLEvwEwooaj5GsYI3E9UfOl5vy3UW6bYiEEWl9pNBntrb9CR9kItQ=="],
186+
187+ "@react-spectrum/color": ["@react-spectrum/color@3.2.1", "", { "dependencies": { "@adobe/react-spectrum": "^3.47.0", "@swc/helpers": "^0.5.0", "react-stately": "^3.46.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-FbB+GaVufsN+obNJmUAe8XGZTeJjEWvEf/k/7nxDxoDCBdg/o6eEPONAZyID5Dj1f8BZKNym8VURxDZx7IIyuQ=="],
188+
189+ "@react-spectrum/provider": ["@react-spectrum/provider@3.11.1", "", { "dependencies": { "@adobe/react-spectrum": "^3.47.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-TsoNdVdmlQ7L+75ILq5Yb3+wp/I1AtIeat0o+Y+ZBxP+TtWpwT1ZtCB5l3cplFVzHzOpZlzO0VaDrDP9ElGYDw=="],
190+
191+ "@react-stately/color": ["@react-stately/color@3.10.1", "", { "dependencies": { "@swc/helpers": "^0.5.0", "react-stately": "^3.46.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-v4YlLa/oRQpPa/M9Yq1e0Bl8Z7xzGZdNDAIbfIMZuiJtacaOKriPW+AOgjjT/Ab0fNX2YDbwIYvkiMOJBnTi5A=="],
192+
193+ "@react-stately/utils": ["@react-stately/utils@3.12.0", "", { "dependencies": { "@swc/helpers": "^0.5.0", "react-stately": "3.46.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-7q+iHz9cENvro1dVKgdTxNh1i1mtWuLUI6UHp10TAgpxM9DyRDvmuN35zLXYCmMDgx3WLY2xkwqoez8xd+CdxQ=="],
194+
195+ "@react-types/color": ["@react-types/color@3.2.0", "", { "dependencies": { "@react-aria/color": "^3.2.0", "@react-spectrum/color": "^3.2.0", "@react-stately/color": "^3.10.0" }, "peerDependencies": { "@react-spectrum/provider": "^3.0.0", "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-beV3vz80nzZ1EuYUM7296Kyi3AHcMrbQw0qub/9yzHWVTKKc5sy/e4dCMKcWL/ArkeAyc7jDOiui190RQ4l0Fw=="],
196+
197+ "@react-types/shared": ["@react-types/shared@3.34.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-gp6xo/s2lX54AlTjOiqwDnxA7UW79BNvI9dB9pr3LZTzRKCd1ZA+ZbgKw/ReIiWuvvVw/8QFJpnqeeFyLocMcQ=="],
198+
199+ "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.60.4", "", { "os": "android", "cpu": "arm" }, "sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ=="],
200+
201+ "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.60.4", "", { "os": "android", "cpu": "arm64" }, "sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw=="],
202+
203+ "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.60.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA=="],
204+
205+ "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.60.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg=="],
206+
207+ "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.60.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g=="],
208+
209+ "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.60.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw=="],
210+
211+ "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.60.4", "", { "os": "linux", "cpu": "arm" }, "sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA=="],
212+
213+ "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.60.4", "", { "os": "linux", "cpu": "arm" }, "sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w=="],
214+
215+ "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.60.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg=="],
216+
217+ "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.60.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A=="],
218+
219+ "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.60.4", "", { "os": "linux", "cpu": "none" }, "sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ=="],
220+
221+ "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.60.4", "", { "os": "linux", "cpu": "none" }, "sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw=="],
222+
223+ "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.60.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg=="],
224+
225+ "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.60.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A=="],
226+
227+ "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.60.4", "", { "os": "linux", "cpu": "none" }, "sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA=="],
228+
229+ "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.60.4", "", { "os": "linux", "cpu": "none" }, "sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw=="],
230+
231+ "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.60.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ=="],
232+
233+ "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.60.4", "", { "os": "linux", "cpu": "x64" }, "sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ=="],
234+
235+ "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.60.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg=="],
236+
237+ "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.60.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA=="],
238+
239+ "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.60.4", "", { "os": "none", "cpu": "arm64" }, "sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg=="],
240+
241+ "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.60.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw=="],
242+
243+ "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.60.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA=="],
244+
245+ "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.60.4", "", { "os": "win32", "cpu": "x64" }, "sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw=="],
246+
247+ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.60.4", "", { "os": "win32", "cpu": "x64" }, "sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw=="],
248+
249+ "@spectrum-icons/ui": ["@spectrum-icons/ui@3.7.1", "", { "dependencies": { "@adobe/react-spectrum-ui": "1.2.1", "@babel/runtime": "^7.24.4", "@swc/helpers": "^0.5.0" }, "peerDependencies": { "@adobe/react-spectrum": "^3.47.0", "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-veQymocUYo5OciXQajSailOdbWe+k6+2ehfF8D4d0V923D4xOUadtT253xXZ5vEQjPat6Kyp2WDKeQNjd7kL1w=="],
250+
251+ "@spectrum-icons/workflow": ["@spectrum-icons/workflow@4.3.1", "", { "dependencies": { "@adobe/react-spectrum-workflow": "2.3.5", "@swc/helpers": "^0.5.0" }, "peerDependencies": { "@adobe/react-spectrum": "^3.47.0", "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-kDF+/EbFVyLGytotqqdYt4uSij4j/PQmDQO5km/C6DyzKjyuic3FnSBFinR+mA6oFv1OjMcLvrrDBqK3wbqRlA=="],
252+
253+ "@swc/helpers": ["@swc/helpers@0.5.23", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw=="],
254+
255+ "@tailwindcss/node": ["@tailwindcss/node@4.3.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.21.0", "jiti": "^2.6.1", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.0" } }, "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g=="],
256+
257+ "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.0", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.0", "@tailwindcss/oxide-darwin-arm64": "4.3.0", "@tailwindcss/oxide-darwin-x64": "4.3.0", "@tailwindcss/oxide-freebsd-x64": "4.3.0", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0", "@tailwindcss/oxide-linux-arm64-musl": "4.3.0", "@tailwindcss/oxide-linux-x64-gnu": "4.3.0", "@tailwindcss/oxide-linux-x64-musl": "4.3.0", "@tailwindcss/oxide-wasm32-wasi": "4.3.0", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0", "@tailwindcss/oxide-win32-x64-msvc": "4.3.0" } }, "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg=="],
258+
259+ "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.0", "", { "os": "android", "cpu": "arm64" }, "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng=="],
260+
261+ "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ=="],
262+
263+ "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA=="],
264+
265+ "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ=="],
266+
267+ "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0", "", { "os": "linux", "cpu": "arm" }, "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA=="],
268+
269+ "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg=="],
270+
271+ "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ=="],
272+
273+ "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ=="],
274+
275+ "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg=="],
276+
277+ "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.0", "", { "dependencies": { "@emnapi/core": "^1.10.0", "@emnapi/runtime": "^1.10.0", "@emnapi/wasi-threads": "^1.2.1", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA=="],
278+
279+ "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ=="],
280+
281+ "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA=="],
282+
283+ "@tailwindcss/vite": ["@tailwindcss/vite@4.3.0", "", { "dependencies": { "@tailwindcss/node": "4.3.0", "@tailwindcss/oxide": "4.3.0", "tailwindcss": "4.3.0" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw=="],
284+
285+ "@testing-library/dom": ["@testing-library/dom@10.4.1", "", { "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", "aria-query": "5.3.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "picocolors": "1.1.1", "pretty-format": "^27.0.2" } }, "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg=="],
286+
287+ "@testing-library/react": ["@testing-library/react@16.3.2", "", { "dependencies": { "@babel/runtime": "^7.12.5" }, "peerDependencies": { "@testing-library/dom": "^10.0.0", "@types/react": "^18.0.0 || ^19.0.0", "@types/react-dom": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g=="],
288+
289+ "@testing-library/user-event": ["@testing-library/user-event@14.6.1", "", { "peerDependencies": { "@testing-library/dom": ">=7.21.4" } }, "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw=="],
290+
291+ "@types/aria-query": ["@types/aria-query@5.0.4", "", {}, "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw=="],
292+
293+ "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
294+
295+ "@uiw/codemirror-extensions-basic-setup": ["@uiw/codemirror-extensions-basic-setup@4.25.10", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/commands": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/lint": "^6.0.0", "@codemirror/search": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0" } }, "sha512-P3vytLlpE62KYSWrMUnwDCv2lvaQDuDZzyj03mHntuHo5bSl34fRZpjTY3kQTPGuXHxkGSYpoPFFj+hMTqaaMQ=="],
296+
297+ "@uiw/codemirror-theme-tokyo-night": ["@uiw/codemirror-theme-tokyo-night@4.25.10", "", { "dependencies": { "@uiw/codemirror-themes": "4.25.10" } }, "sha512-nbW1szmpdlGdm9Nf03j0IU+Ecd2h/qp3vkPiHMcfEHOl3KEPPqek5UhTfpemQgdSTmohGQcY1NfUlysXsQ5y7A=="],
298+
299+ "@uiw/codemirror-themes": ["@uiw/codemirror-themes@4.25.10", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0" } }, "sha512-Fqiz1HIuDlDftcL+/O53V333UOH6MqQ84VbiQB5egn6u+uDwAqACp1FrdAoi4wgpR3b3TGW4Gr0wIYcrJSSz1A=="],
300+
301+ "@uiw/react-codemirror": ["@uiw/react-codemirror@4.25.10", "", { "dependencies": { "@babel/runtime": "^7.18.6", "@codemirror/commands": "^6.1.0", "@codemirror/state": "^6.1.1", "@codemirror/theme-one-dark": "^6.0.0", "@uiw/codemirror-extensions-basic-setup": "4.25.10", "codemirror": "^6.0.0" }, "peerDependencies": { "@codemirror/view": ">=6.0.0", "react": ">=17.0.0", "react-dom": ">=17.0.0" } }, "sha512-DzgSMwM5qzB7v1FIb4gEeriYt67iiay756/HIOM9mAbeOVK0MO7rqefHf0O5c0269pJKMW7AH9FjclExD23V9w=="],
302+
303+ "agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="],
304+
305+ "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
306+
307+ "ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="],
308+
309+ "aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="],
310+
311+ "aria-query": ["aria-query@5.3.0", "", { "dependencies": { "dequal": "^2.0.3" } }, "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A=="],
312+
313+ "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
314+
315+ "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
316+
317+ "client-only": ["client-only@0.0.1", "", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="],
318+
319+ "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
320+
321+ "codemirror": ["codemirror@6.0.2", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/commands": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/lint": "^6.0.0", "@codemirror/search": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0" } }, "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw=="],
322+
323+ "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
324+
325+ "crelt": ["crelt@1.0.6", "", {}, "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="],
326+
327+ "cssstyle": ["cssstyle@4.6.0", "", { "dependencies": { "@asamuzakjp/css-color": "^3.2.0", "rrweb-cssom": "^0.8.0" } }, "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg=="],
328+
329+ "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="],
330+
331+ "data-urls": ["data-urls@5.0.0", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="],
332+
333+ "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
334+
335+ "decimal.js": ["decimal.js@10.6.0", "", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="],
336+
337+ "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="],
338+
339+ "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="],
340+
341+ "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
342+
343+ "dom-accessibility-api": ["dom-accessibility-api@0.5.16", "", {}, "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg=="],
344+
345+ "dom-helpers": ["dom-helpers@5.2.1", "", { "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA=="],
346+
347+ "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
348+
349+ "enhanced-resolve": ["enhanced-resolve@5.22.1", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww=="],
350+
351+ "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="],
352+
353+ "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
354+
355+ "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
356+
357+ "es-object-atoms": ["es-object-atoms@1.1.2", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw=="],
358+
359+ "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
360+
361+ "esbuild": ["esbuild@0.27.7", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.7", "@esbuild/android-arm": "0.27.7", "@esbuild/android-arm64": "0.27.7", "@esbuild/android-x64": "0.27.7", "@esbuild/darwin-arm64": "0.27.7", "@esbuild/darwin-x64": "0.27.7", "@esbuild/freebsd-arm64": "0.27.7", "@esbuild/freebsd-x64": "0.27.7", "@esbuild/linux-arm": "0.27.7", "@esbuild/linux-arm64": "0.27.7", "@esbuild/linux-ia32": "0.27.7", "@esbuild/linux-loong64": "0.27.7", "@esbuild/linux-mips64el": "0.27.7", "@esbuild/linux-ppc64": "0.27.7", "@esbuild/linux-riscv64": "0.27.7", "@esbuild/linux-s390x": "0.27.7", "@esbuild/linux-x64": "0.27.7", "@esbuild/netbsd-arm64": "0.27.7", "@esbuild/netbsd-x64": "0.27.7", "@esbuild/openbsd-arm64": "0.27.7", "@esbuild/openbsd-x64": "0.27.7", "@esbuild/openharmony-arm64": "0.27.7", "@esbuild/sunos-x64": "0.27.7", "@esbuild/win32-arm64": "0.27.7", "@esbuild/win32-ia32": "0.27.7", "@esbuild/win32-x64": "0.27.7" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w=="],
362+
363+ "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
364+
365+ "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="],
366+
367+ "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
368+
369+ "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
370+
371+ "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
372+
373+ "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
374+
375+ "global-jsdom": ["global-jsdom@29.0.0", "", { "peerDependencies": { "jsdom": ">=29 <30" } }, "sha512-S9Wl+EHDfkO8DYleqMYzf14hKfwIysEN/FvoVRdPif3uUGUlmiHs/gj1PVKXhmJ20DwUVACtdxxhNYYvvn9K7A=="],
376+
377+ "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
378+
379+ "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
380+
381+ "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
382+
383+ "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
384+
385+ "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="],
386+
387+ "html-encoding-sniffer": ["html-encoding-sniffer@4.0.0", "", { "dependencies": { "whatwg-encoding": "^3.1.1" } }, "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="],
388+
389+ "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="],
390+
391+ "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="],
392+
393+ "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
394+
395+ "input-otp": ["input-otp@1.4.2", "", { "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA=="],
396+
397+ "intl-messageformat": ["intl-messageformat@10.7.18", "", { "dependencies": { "@formatjs/ecma402-abstract": "2.3.6", "@formatjs/fast-memoize": "2.2.7", "@formatjs/icu-messageformat-parser": "2.11.4", "tslib": "^2.8.0" } }, "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g=="],
398+
399+ "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="],
400+
401+ "jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="],
402+
403+ "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
404+
405+ "jsdom": ["jsdom@25.0.1", "", { "dependencies": { "cssstyle": "^4.1.0", "data-urls": "^5.0.0", "decimal.js": "^10.4.3", "form-data": "^4.0.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.5", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.12", "parse5": "^7.1.2", "rrweb-cssom": "^0.7.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.0.0", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^2.11.2" }, "optionalPeers": ["canvas"] }, "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw=="],
406+
407+ "lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="],
408+
409+ "lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="],
410+
411+ "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="],
412+
413+ "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="],
414+
415+ "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="],
416+
417+ "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="],
418+
419+ "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="],
420+
421+ "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="],
422+
423+ "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="],
424+
425+ "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="],
426+
427+ "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="],
428+
429+ "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="],
430+
431+ "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="],
432+
433+ "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
434+
435+ "lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="],
436+
437+ "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
438+
439+ "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
440+
441+ "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
442+
443+ "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
444+
445+ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
446+
447+ "nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="],
448+
449+ "nwsapi": ["nwsapi@2.2.23", "", {}, "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ=="],
450+
451+ "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
452+
453+ "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="],
454+
455+ "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
456+
457+ "picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="],
458+
459+ "postcss": ["postcss@8.5.15", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A=="],
460+
461+ "pretty-format": ["pretty-format@27.5.1", "", { "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" } }, "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ=="],
462+
463+ "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="],
464+
465+ "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
466+
467+ "react": ["react@19.2.6", "", {}, "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q=="],
468+
469+ "react-aria": ["react-aria@3.48.0", "", { "dependencies": { "@internationalized/date": "^3.12.1", "@internationalized/number": "^3.6.6", "@internationalized/string": "^3.2.8", "@react-types/shared": "^3.34.0", "@swc/helpers": "^0.5.0", "aria-hidden": "^1.2.3", "clsx": "^2.0.0", "react-stately": "3.46.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-jQjd4rBEIMqecBaAKYJbVGK6EqIHLa5znVQ7jwFyK5vCyljoj6KhgtiahmcIPsG5vG5vEDLw+ba+bEWn6A2P4w=="],
470+
471+ "react-aria-components": ["react-aria-components@1.17.0", "", { "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", "@swc/helpers": "^0.5.0", "client-only": "^0.0.1", "react-aria": "3.48.0", "react-stately": "3.46.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-0EyisMgvsFJ2aML3crDYv2tW5vT2Ryf8PGzY/g63JjDdCbLshlwazhS8JNtPF1vkTkungJJ6sVJbKyX+YKSoFA=="],
472+
473+ "react-dom": ["react-dom@19.2.6", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.6" } }, "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g=="],
474+
475+ "react-is": ["react-is@17.0.2", "", {}, "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="],
476+
477+ "react-stately": ["react-stately@3.46.0", "", { "dependencies": { "@internationalized/date": "^3.12.1", "@internationalized/number": "^3.6.6", "@internationalized/string": "^3.2.8", "@react-types/shared": "^3.34.0", "@swc/helpers": "^0.5.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-OdxhWvHgs2L4OJGIs7hnuTr5WjjMM6enhNEAMRqiekhF8+ITvA2LRwNftOZwcogaoCslGYq5S2VQTQwnm0GbCA=="],
478+
479+ "react-transition-group": ["react-transition-group@4.4.5", "", { "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", "prop-types": "^15.6.2" }, "peerDependencies": { "react": ">=16.6.0", "react-dom": ">=16.6.0" } }, "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g=="],
480+
481+ "rollup": ["rollup@4.60.4", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.4", "@rollup/rollup-android-arm64": "4.60.4", "@rollup/rollup-darwin-arm64": "4.60.4", "@rollup/rollup-darwin-x64": "4.60.4", "@rollup/rollup-freebsd-arm64": "4.60.4", "@rollup/rollup-freebsd-x64": "4.60.4", "@rollup/rollup-linux-arm-gnueabihf": "4.60.4", "@rollup/rollup-linux-arm-musleabihf": "4.60.4", "@rollup/rollup-linux-arm64-gnu": "4.60.4", "@rollup/rollup-linux-arm64-musl": "4.60.4", "@rollup/rollup-linux-loong64-gnu": "4.60.4", "@rollup/rollup-linux-loong64-musl": "4.60.4", "@rollup/rollup-linux-ppc64-gnu": "4.60.4", "@rollup/rollup-linux-ppc64-musl": "4.60.4", "@rollup/rollup-linux-riscv64-gnu": "4.60.4", "@rollup/rollup-linux-riscv64-musl": "4.60.4", "@rollup/rollup-linux-s390x-gnu": "4.60.4", "@rollup/rollup-linux-x64-gnu": "4.60.4", "@rollup/rollup-linux-x64-musl": "4.60.4", "@rollup/rollup-openbsd-x64": "4.60.4", "@rollup/rollup-openharmony-arm64": "4.60.4", "@rollup/rollup-win32-arm64-msvc": "4.60.4", "@rollup/rollup-win32-ia32-msvc": "4.60.4", "@rollup/rollup-win32-x64-gnu": "4.60.4", "@rollup/rollup-win32-x64-msvc": "4.60.4", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g=="],
482+
483+ "rrweb-cssom": ["rrweb-cssom@0.7.1", "", {}, "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg=="],
484+
485+ "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
486+
487+ "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="],
488+
489+ "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="],
490+
491+ "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
492+
493+ "style-mod": ["style-mod@4.1.3", "", {}, "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ=="],
494+
495+ "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="],
496+
497+ "tailwind-merge": ["tailwind-merge@3.4.0", "", {}, "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g=="],
498+
499+ "tailwind-variants": ["tailwind-variants@3.2.2", "", { "peerDependencies": { "tailwind-merge": ">=3.0.0", "tailwindcss": "*" }, "optionalPeers": ["tailwind-merge"] }, "sha512-Mi4kHeMTLvKlM98XPnK+7HoBPmf4gygdFmqQPaDivc3DpYS6aIY6KiG/PgThrGvii5YZJqRsPz0aPyhoFzmZgg=="],
500+
501+ "tailwindcss": ["tailwindcss@4.3.0", "", {}, "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q=="],
502+
503+ "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="],
504+
505+ "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="],
506+
507+ "tldts": ["tldts@6.1.86", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="],
508+
509+ "tldts-core": ["tldts-core@6.1.86", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="],
510+
511+ "tough-cookie": ["tough-cookie@5.1.2", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="],
512+
513+ "tr46": ["tr46@5.1.1", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw=="],
514+
515+ "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
516+
517+ "tw-animate-css": ["tw-animate-css@1.4.0", "", {}, "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ=="],
518+
519+ "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="],
520+
521+ "vite": ["vite@7.3.3", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA=="],
522+
523+ "w3c-keyname": ["w3c-keyname@2.2.8", "", {}, "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="],
524+
525+ "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="],
526+
527+ "webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="],
528+
529+ "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="],
530+
531+ "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="],
532+
533+ "whatwg-url": ["whatwg-url@14.2.0", "", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="],
534+
535+ "ws": ["ws@8.21.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g=="],
536+
537+ "xml-name-validator": ["xml-name-validator@5.0.0", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="],
538+
539+ "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="],
540+
541+ "yoga-stories": ["yoga-stories@0.1.5", "", { "dependencies": { "@codemirror/language": "^6.12.1", "@codemirror/legacy-modes": "^6.5.2", "@uiw/codemirror-theme-tokyo-night": "^4.25.4", "@uiw/react-codemirror": "^4.25.4", "vite": "^7.3.1" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" }, "bin": { "yoga-stories": "bin/cli.js" } }, "sha512-XeXNxbUVwcsmGRm3NZ/SBqSxmKl+vb06MI2fDUsB69dXKt2nVtOsd5qiLRQd73dOp1y9ub/LjuwAUsnNQdLHbA=="],
542+
543+ "@adobe/react-spectrum/@react-types/shared": ["@react-types/shared@3.35.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-iNWvuzEwANttpQpdlu8nPBtdHb0mcCMj1ZTH//iRB5E/14IAnyRlR25rxH7pNLyzHINsPGEKnWvpwDMCT6vziQ=="],
544+
545+ "@adobe/react-spectrum/react-aria": ["react-aria@3.49.0", "", { "dependencies": { "@internationalized/date": "^3.12.2", "@internationalized/number": "^3.6.7", "@internationalized/string": "^3.2.9", "@react-types/shared": "^3.35.0", "@swc/helpers": "^0.5.0", "aria-hidden": "^1.2.3", "clsx": "^2.0.0", "react-stately": "3.47.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-4+oK9FwJQWYhyA5zLfj/feOGY0zZbkE1muoF4gyxMroHVypjcYaRSTlJwvxph2zIlxt757KX6xIK2wJ5Aw1Kog=="],
546+
547+ "@adobe/react-spectrum/react-aria-components": ["react-aria-components@1.18.0", "", { "dependencies": { "@internationalized/date": "^3.12.2", "@react-types/shared": "^3.35.0", "@swc/helpers": "^0.5.0", "client-only": "^0.0.1", "react-aria": "3.49.0", "react-stately": "3.47.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-FhRQjuDkH4WhgFv+O2sYTzK3JzdZTGpBeaqfRlfTo+DcSZzD8elJEkytHe7SDpcexVKeire8NVd7OruZHfCVoA=="],
548+
549+ "@adobe/react-spectrum/react-stately": ["react-stately@3.47.0", "", { "dependencies": { "@internationalized/date": "^3.12.2", "@internationalized/number": "^3.6.7", "@internationalized/string": "^3.2.9", "@react-types/shared": "^3.35.0", "@swc/helpers": "^0.5.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "sha512-H3ar+SOWP920EbVg7qWfP3fZjZiwhlEJAEJQqjt+w8oKijCwFgr0+R4941PIHscOXRNRvEOjvWilitImC0DdBg=="],
550+
551+ "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="],
552+
553+ "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="],
554+
555+ "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="],
556+
557+ "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="],
558+
559+ "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="],
560+
561+ "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
562+
563+ "cssstyle/rrweb-cssom": ["rrweb-cssom@0.8.0", "", {}, "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="],
564+
565+ "prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="],
566+ }
567+}
heroui-styles.cssnew file+3
@@ -0,0 +1,3 @@
1+@import "tailwindcss";
2+@import "@heroui/styles";
3+@custom-variant dark (&:is(.dark *));
package.jsonnew file+25
@@ -0,0 +1,25 @@
1+{
2+ "name": "purescript-yoga-heroui3",
3+ "type": "module",
4+ "version": "0.1.0",
5+ "dependencies": {
6+ "@heroui/react": "^3.1.0",
7+ "@heroui/styles": "^3.1.0",
8+ "yoga-stories": "0.1.5"
9+ },
10+ "peerDependencies": {
11+ "react": ">=19",
12+ "react-dom": ">=19",
13+ "tailwindcss": ">=4"
14+ },
15+ "devDependencies": {
16+ "@tailwindcss/vite": "^4.1.18",
17+ "@testing-library/react": "^16",
18+ "@testing-library/user-event": "^14.6.1",
19+ "global-jsdom": "^29.0.0",
20+ "jsdom": "^25",
21+ "react": "19",
22+ "react-dom": "19",
23+ "tailwindcss": "^4.1.18"
24+ }
25+}
spago.locknew file+1589
@@ -0,0 +1,1589 @@
1+{
2+ "workspace": {
3+ "packages": {
4+ "yoga-heroui3": {
5+ "path": "./",
6+ "core": {
7+ "dependencies": [
8+ {
9+ "effect": ">=4.0.0 <5.0.0"
10+ },
11+ {
12+ "foreign": ">=7.0.0 <8.0.0"
13+ },
14+ {
15+ "functions": ">=6.0.0 <7.0.0"
16+ },
17+ {
18+ "maybe": ">=6.0.0 <7.0.0"
19+ },
20+ {
21+ "nullable": ">=6.0.0 <7.0.0"
22+ },
23+ {
24+ "prelude": ">=6.0.2 <7.0.0"
25+ },
26+ {
27+ "react-basic": ">=17.0.0 <18.0.0"
28+ },
29+ {
30+ "react-basic-hooks": ">=8.2.0 <9.0.0"
31+ },
32+ {
33+ "typelevel-prelude": ">=7.0.0 <8.0.0"
34+ },
35+ {
36+ "unsafe-coerce": ">=6.0.0 <7.0.0"
37+ },
38+ {
39+ "yoga-react-dom": ">=1.0.3 <2.0.0"
40+ }
41+ ]
42+ },
43+ "test": {
44+ "dependencies": [
45+ "aff",
46+ "aff-promise",
47+ "arrays",
48+ "console",
49+ "effect",
50+ "exceptions",
51+ "foreign",
52+ "js-promise",
53+ "js-promise-aff",
54+ "maybe",
55+ "newtype",
56+ "prelude",
57+ "react-basic-dom",
58+ "react-basic-hooks",
59+ "react-testing-library",
60+ "record",
61+ "spec",
62+ "strings",
63+ "transformers",
64+ "tuples",
65+ "unsafe-coerce",
66+ "web-events",
67+ "web-html",
68+ "yoga-json",
69+ "yoga-react",
70+ "yoga-stories"
71+ ]
72+ }
73+ }
74+ },
75+ "extra_packages": {
76+ "react-testing-library": {
77+ "git": "https://github.com/i-am-the-slime/purescript-react-testing-library.git",
78+ "ref": "fd679db77337485058907ba5c6cbac3b478de342"
79+ }
80+ }
81+ },
82+ "packages": {
83+ "aff": {
84+ "type": "registry",
85+ "version": "8.0.0",
86+ "integrity": "sha256-9BRIrSdRoYybfiUmBqgKJ66cPqxYHb277bVWQMn/9sg=",
87+ "dependencies": [
88+ "control",
89+ "datetime",
90+ "effect",
91+ "either",
92+ "exceptions",
93+ "functions",
94+ "newtype",
95+ "parallel",
96+ "partial",
97+ "prelude",
98+ "st",
99+ "tailrec",
100+ "transformers",
101+ "unsafe-coerce"
102+ ]
103+ },
104+ "aff-promise": {
105+ "type": "registry",
106+ "version": "4.0.0",
107+ "integrity": "sha256-Jgp3y+NWuuAmwz2V3LlWoX+AvxqfVglY77N5zTw8xnI=",
108+ "dependencies": [
109+ "aff",
110+ "control",
111+ "effect",
112+ "either",
113+ "exceptions",
114+ "foreign",
115+ "prelude",
116+ "transformers"
117+ ]
118+ },
119+ "ansi": {
120+ "type": "registry",
121+ "version": "7.0.0",
122+ "integrity": "sha256-tOUaXJFzPSfBVAqLI8hc+Tz2M1rg16cXqyHaK/3SmFg=",
123+ "dependencies": [
124+ "foldable-traversable",
125+ "lists",
126+ "prelude"
127+ ]
128+ },
129+ "arraybuffer-types": {
130+ "type": "registry",
131+ "version": "3.0.2",
132+ "integrity": "sha256-p05cJnSkyeoB7VHzMyc2Eb1RwUaB7Nl0sQSqEGNEUD8=",
133+ "dependencies": []
134+ },
135+ "arrays": {
136+ "type": "registry",
137+ "version": "7.3.0",
138+ "integrity": "sha256-GD4z7LCi9wzi7FCQqbWhvs8paoUK9NO+HwgXZ+KP8Rk=",
139+ "dependencies": [
140+ "bifunctors",
141+ "control",
142+ "foldable-traversable",
143+ "functions",
144+ "maybe",
145+ "nonempty",
146+ "partial",
147+ "prelude",
148+ "safe-coerce",
149+ "st",
150+ "tailrec",
151+ "tuples",
152+ "unfoldable",
153+ "unsafe-coerce"
154+ ]
155+ },
156+ "avar": {
157+ "type": "registry",
158+ "version": "5.0.1",
159+ "integrity": "sha256-8V4SxF4TIWZ9Ik1P4lPzIRUAZeFBe8w5WA2VcCEKsIk=",
160+ "dependencies": [
161+ "aff",
162+ "effect",
163+ "either",
164+ "exceptions",
165+ "functions",
166+ "maybe",
167+ "prelude"
168+ ]
169+ },
170+ "bifunctors": {
171+ "type": "registry",
172+ "version": "6.1.0",
173+ "integrity": "sha256-CvZRb8uI75eKIqiYntR+k05Wk6tKlMS5w8sCA2AFna0=",
174+ "dependencies": [
175+ "const",
176+ "either",
177+ "newtype",
178+ "prelude",
179+ "tuples"
180+ ]
181+ },
182+ "catenable-lists": {
183+ "type": "registry",
184+ "version": "7.0.0",
185+ "integrity": "sha256-7+i/MHBLIRh604iCNT4ENWRWE/wuHIotER4kpdX9Ve0=",
186+ "dependencies": [
187+ "control",
188+ "foldable-traversable",
189+ "lists",
190+ "maybe",
191+ "prelude",
192+ "tuples",
193+ "unfoldable"
194+ ]
195+ },
196+ "console": {
197+ "type": "registry",
198+ "version": "6.1.0",
199+ "integrity": "sha256-3T5PPz1mATZmV0C4GzkCkpLlCa5xG7u8ZNgnLrrrI1Q=",
200+ "dependencies": [
201+ "effect",
202+ "prelude"
203+ ]
204+ },
205+ "const": {
206+ "type": "registry",
207+ "version": "6.0.0",
208+ "integrity": "sha256-S+m0lQsxnji0z1XRUmkn+3RFuWJ5CXWuIr1u3i8Bfoc=",
209+ "dependencies": [
210+ "invariant",
211+ "newtype",
212+ "prelude"
213+ ]
214+ },
215+ "contravariant": {
216+ "type": "registry",
217+ "version": "6.0.0",
218+ "integrity": "sha256-nuckEWqL80NaPmR/l9AUyrfycNh18XcvlZV9PAamwqc=",
219+ "dependencies": [
220+ "const",
221+ "either",
222+ "newtype",
223+ "prelude",
224+ "tuples"
225+ ]
226+ },
227+ "control": {
228+ "type": "registry",
229+ "version": "6.0.0",
230+ "integrity": "sha256-0vxyYh5FL+ilxgLo954w1LqCUC0RSIivNNlb9CaNUQg=",
231+ "dependencies": [
232+ "newtype",
233+ "prelude"
234+ ]
235+ },
236+ "datetime": {
237+ "type": "registry",
238+ "version": "6.1.0",
239+ "integrity": "sha256-tbv6eDXy6QOD7YSknxYSbsDF32OC2JrNbSBpzMs7Doc=",
240+ "dependencies": [
241+ "bifunctors",
242+ "control",
243+ "either",
244+ "enums",
245+ "foldable-traversable",
246+ "functions",
247+ "gen",
248+ "integers",
249+ "lists",
250+ "maybe",
251+ "newtype",
252+ "numbers",
253+ "ordered-collections",
254+ "partial",
255+ "prelude",
256+ "tuples"
257+ ]
258+ },
259+ "distributive": {
260+ "type": "registry",
261+ "version": "6.0.0",
262+ "integrity": "sha256-netyJK4B32PDYHD0tF2AenKgo3urzbI770ycM0pArAo=",
263+ "dependencies": [
264+ "identity",
265+ "newtype",
266+ "prelude",
267+ "tuples",
268+ "type-equality"
269+ ]
270+ },
271+ "effect": {
272+ "type": "registry",
273+ "version": "4.0.0",
274+ "integrity": "sha256-DdqU3bncRTjgMVPPRlAuGHVeajSPEcRaRhNuio7if6s=",
275+ "dependencies": [
276+ "prelude"
277+ ]
278+ },
279+ "either": {
280+ "type": "registry",
281+ "version": "6.1.0",
282+ "integrity": "sha256-tBHx3PgtH4GZOApZCDkcM7szRTYJinrUrVGWazQCUUg=",
283+ "dependencies": [
284+ "control",
285+ "invariant",
286+ "maybe",
287+ "prelude"
288+ ]
289+ },
290+ "enums": {
291+ "type": "registry",
292+ "version": "6.0.1",
293+ "integrity": "sha256-sdZOmLX5+5pASGpvVyT0vSD5BBYQjZiayjV5XiPutso=",
294+ "dependencies": [
295+ "control",
296+ "either",
297+ "gen",
298+ "maybe",
299+ "newtype",
300+ "nonempty",
301+ "partial",
302+ "prelude",
303+ "tuples",
304+ "unfoldable"
305+ ]
306+ },
307+ "exceptions": {
308+ "type": "registry",
309+ "version": "6.1.0",
310+ "integrity": "sha256-nRrr+N0wk0TUFOWLR7e1n1oxcXo/X345bQUtoY9lW6A=",
311+ "dependencies": [
312+ "effect",
313+ "either",
314+ "maybe",
315+ "prelude"
316+ ]
317+ },
318+ "exists": {
319+ "type": "registry",
320+ "version": "6.0.0",
321+ "integrity": "sha256-vtLbrWNaI+pzx/2fw2AQnCovoLtcosClIhjO26QKkh8=",
322+ "dependencies": [
323+ "unsafe-coerce"
324+ ]
325+ },
326+ "exitcodes": {
327+ "type": "registry",
328+ "version": "4.0.0",
329+ "integrity": "sha256-xBl4aFSEQ05Owp1ZvO6OxxvLK3LVzU35RSbj79SsePQ=",
330+ "dependencies": [
331+ "enums",
332+ "maybe",
333+ "prelude"
334+ ]
335+ },
336+ "foldable-traversable": {
337+ "type": "registry",
338+ "version": "6.0.0",
339+ "integrity": "sha256-NGGWyCio/xjce6fPP7y3wwg7CheqllID6aJudDxbWhA=",
340+ "dependencies": [
341+ "bifunctors",
342+ "const",
343+ "control",
344+ "either",
345+ "functors",
346+ "identity",
347+ "maybe",
348+ "newtype",
349+ "orders",
350+ "prelude",
351+ "tuples"
352+ ]
353+ },
354+ "foreign": {
355+ "type": "registry",
356+ "version": "7.0.0",
357+ "integrity": "sha256-jiDRMVQfovGsbbA/FzbzYf6iWk9i2b5gNrIjz+gFfsI=",
358+ "dependencies": [
359+ "either",
360+ "functions",
361+ "integers",
362+ "lists",
363+ "maybe",
364+ "prelude",
365+ "strings",
366+ "transformers",
367+ "unsafe-coerce"
368+ ]
369+ },
370+ "foreign-object": {
371+ "type": "registry",
372+ "version": "4.1.0",
373+ "integrity": "sha256-x/Q7r80z/vmHRKvPwhYmHP/DnJciPtsyGfRTMzayKIU=",
374+ "dependencies": [
375+ "arrays",
376+ "foldable-traversable",
377+ "functions",
378+ "gen",
379+ "lists",
380+ "maybe",
381+ "prelude",
382+ "st",
383+ "tailrec",
384+ "tuples",
385+ "typelevel-prelude",
386+ "unfoldable",
387+ "unsafe-coerce"
388+ ]
389+ },
390+ "forgetmenot": {
391+ "type": "registry",
392+ "version": "0.1.0",
393+ "integrity": "sha256-YYLWpHQwJ1zKmPxLo7sZOk+kYuKOpOpRhdz9vwI/p7Q=",
394+ "dependencies": []
395+ },
396+ "fork": {
397+ "type": "registry",
398+ "version": "6.0.0",
399+ "integrity": "sha256-0keBVeZZg1eCZEy/En1CohVW829gQUqKtqBNIRa93/A=",
400+ "dependencies": [
401+ "aff",
402+ "prelude",
403+ "transformers"
404+ ]
405+ },
406+ "free": {
407+ "type": "registry",
408+ "version": "7.1.0",
409+ "integrity": "sha256-tUBInfUpRQEw4u94GWcYW7EYdmSdDHSRn88a+C0eltU=",
410+ "dependencies": [
411+ "catenable-lists",
412+ "control",
413+ "distributive",
414+ "either",
415+ "exists",
416+ "foldable-traversable",
417+ "invariant",
418+ "lazy",
419+ "maybe",
420+ "prelude",
421+ "tailrec",
422+ "transformers",
423+ "tuples",
424+ "unsafe-coerce"
425+ ]
426+ },
427+ "functions": {
428+ "type": "registry",
429+ "version": "6.0.0",
430+ "integrity": "sha256-0jgtOr+SFO4UScKc40oA/9Vdcf2rLn3h3vZlY0KfqVo=",
431+ "dependencies": [
432+ "prelude"
433+ ]
434+ },
435+ "functors": {
436+ "type": "registry",
437+ "version": "5.0.0",
438+ "integrity": "sha256-W1o/4wcp6S3chodYL8uixlXK2mfr1L+SzM1R+whqUco=",
439+ "dependencies": [
440+ "bifunctors",
441+ "const",
442+ "contravariant",
443+ "control",
444+ "distributive",
445+ "either",
446+ "invariant",
447+ "maybe",
448+ "newtype",
449+ "prelude",
450+ "profunctor",
451+ "tuples",
452+ "unsafe-coerce"
453+ ]
454+ },
455+ "gen": {
456+ "type": "registry",
457+ "version": "4.0.0",
458+ "integrity": "sha256-kyOateeOtQa07vfTMYeSuCKdelgKE1R65fwKkZ10wsY=",
459+ "dependencies": [
460+ "either",
461+ "foldable-traversable",
462+ "identity",
463+ "maybe",
464+ "newtype",
465+ "nonempty",
466+ "prelude",
467+ "tailrec",
468+ "tuples",
469+ "unfoldable"
470+ ]
471+ },
472+ "identity": {
473+ "type": "registry",
474+ "version": "6.0.0",
475+ "integrity": "sha256-RY/iXPpxpqvKHYfJeFVNI1J06kohB9rbtWYuha8t0LE=",
476+ "dependencies": [
477+ "control",
478+ "invariant",
479+ "newtype",
480+ "prelude"
481+ ]
482+ },
483+ "indexed-monad": {
484+ "type": "registry",
485+ "version": "3.0.0",
486+ "integrity": "sha256-84PslUkPKyrFUGeq981auE+zODsQO/g8rnqwgcN0zQM=",
487+ "dependencies": [
488+ "newtype",
489+ "prelude"
490+ ]
491+ },
492+ "integers": {
493+ "type": "registry",
494+ "version": "6.0.0",
495+ "integrity": "sha256-Y8yozC1uHRLcruobEyv5/bMKzE1BoKJ/olHv6o+bgm8=",
496+ "dependencies": [
497+ "maybe",
498+ "numbers",
499+ "prelude"
500+ ]
501+ },
502+ "invariant": {
503+ "type": "registry",
504+ "version": "6.0.0",
505+ "integrity": "sha256-HyoT1I5qIHRq8RSZji6zZDvqnpVjLw748utrKwZtqsw=",
506+ "dependencies": [
507+ "control",
508+ "prelude"
509+ ]
510+ },
511+ "js-bigints": {
512+ "type": "registry",
513+ "version": "2.2.1",
514+ "integrity": "sha256-r1rE6Olv5b3JrP32lY2uKJ+eBRTsrVnC983K8VWwqe4=",
515+ "dependencies": [
516+ "integers",
517+ "maybe",
518+ "prelude"
519+ ]
520+ },
521+ "js-date": {
522+ "type": "registry",
523+ "version": "8.0.0",
524+ "integrity": "sha256-DNQrp4xYc8o80jtxo0aOkUeXGi6h0Xidkk2ZQ8Y4l5Y=",
525+ "dependencies": [
526+ "datetime",
527+ "effect",
528+ "enums",
529+ "foreign",
530+ "functions",
531+ "integers",
532+ "maybe",
533+ "prelude"
534+ ]
535+ },
536+ "js-promise": {
537+ "type": "registry",
538+ "version": "1.0.0",
539+ "integrity": "sha256-u+6+ofIwT5XhT2fbMu4dShwkyWGfPRt9642Cnzw/Wvk=",
540+ "dependencies": [
541+ "effect",
542+ "exceptions",
543+ "foldable-traversable",
544+ "functions",
545+ "maybe",
546+ "newtype",
547+ "prelude"
548+ ]
549+ },
550+ "js-promise-aff": {
551+ "type": "registry",
552+ "version": "1.0.0",
553+ "integrity": "sha256-gEKAdNnTWjXS+tTp/AhYl/ezloKfuoQFcBKrdOx2USo=",
554+ "dependencies": [
555+ "aff",
556+ "control",
557+ "effect",
558+ "either",
559+ "exceptions",
560+ "foreign",
561+ "js-promise",
562+ "maybe",
563+ "prelude",
564+ "transformers"
565+ ]
566+ },
567+ "lazy": {
568+ "type": "registry",
569+ "version": "6.0.0",
570+ "integrity": "sha256-MHRC+1Pc+AjortBp4b/e1e6KpEpsDwaJBNBB7TOL+1I=",
571+ "dependencies": [
572+ "control",
573+ "foldable-traversable",
574+ "invariant",
575+ "prelude"
576+ ]
577+ },
578+ "lists": {
579+ "type": "registry",
580+ "version": "7.0.0",
581+ "integrity": "sha256-/mGd7wLoU+wsTcqii7SSUByxsvwvjnu2PjwAD47yYb4=",
582+ "dependencies": [
583+ "bifunctors",
584+ "control",
585+ "foldable-traversable",
586+ "lazy",
587+ "maybe",
588+ "newtype",
589+ "nonempty",
590+ "partial",
591+ "prelude",
592+ "tailrec",
593+ "tuples",
594+ "unfoldable"
595+ ]
596+ },
597+ "literals": {
598+ "type": "registry",
599+ "version": "1.0.2",
600+ "integrity": "sha256-ZkGRFD6gb8etYvyMYpX1Z7lx1Tql7R1VGnD1Dzinup8=",
601+ "dependencies": [
602+ "integers",
603+ "maybe",
604+ "numbers",
605+ "partial",
606+ "prelude",
607+ "typelevel-prelude",
608+ "unsafe-coerce"
609+ ]
610+ },
611+ "maybe": {
612+ "type": "registry",
613+ "version": "6.0.0",
614+ "integrity": "sha256-8X6XEgtZ5lqfkEuc1hWOofnL6mwhk8gSJTxwvbR/SbY=",
615+ "dependencies": [
616+ "control",
617+ "invariant",
618+ "newtype",
619+ "prelude"
620+ ]
621+ },
622+ "media-types": {
623+ "type": "registry",
624+ "version": "6.0.0",
625+ "integrity": "sha256-3Wyq+vfqJFTmy1k6DGVnXStxtZxgK631wusDPzlFVxg=",
626+ "dependencies": [
627+ "newtype",
628+ "prelude"
629+ ]
630+ },
631+ "mmorph": {
632+ "type": "registry",
633+ "version": "7.0.0",
634+ "integrity": "sha256-Cfltaq+tfYjuSoSBN/b8cSQZbvZTqIRs6ebQewbIkGs=",
635+ "dependencies": [
636+ "bifunctors",
637+ "either",
638+ "free",
639+ "functors",
640+ "identity",
641+ "maybe",
642+ "newtype",
643+ "prelude",
644+ "transformers",
645+ "tuples"
646+ ]
647+ },
648+ "newtype": {
649+ "type": "registry",
650+ "version": "5.0.0",
651+ "integrity": "sha256-dt6w0cty4OS+Pjt9fsh3iU6ottqSU83mdAZkaEEvo6c=",
652+ "dependencies": [
653+ "prelude",
654+ "safe-coerce"
655+ ]
656+ },
657+ "node-buffer": {
658+ "type": "registry",
659+ "version": "9.0.0",
660+ "integrity": "sha256-RdQjilmEHqsT4fwpCr8Mavw8KTafYrS3ZM6zeAAVAl8=",
661+ "dependencies": [
662+ "arraybuffer-types",
663+ "effect",
664+ "functions",
665+ "maybe",
666+ "nullable",
667+ "partial",
668+ "prelude",
669+ "st",
670+ "unsafe-coerce"
671+ ]
672+ },
673+ "node-event-emitter": {
674+ "type": "registry",
675+ "version": "3.0.0",
676+ "integrity": "sha256-wodx71NxJBPXOaawFn01V1ByYB2vT+I3RuV2giOVKMg=",
677+ "dependencies": [
678+ "effect",
679+ "either",
680+ "functions",
681+ "maybe",
682+ "nullable",
683+ "prelude",
684+ "unsafe-coerce"
685+ ]
686+ },
687+ "node-fs": {
688+ "type": "registry",
689+ "version": "9.2.0",
690+ "integrity": "sha256-fxioTSm9y47WuYs9F/7nxCh/RVDCl3Kr3Hg779J4SJA=",
691+ "dependencies": [
692+ "aff",
693+ "datetime",
694+ "effect",
695+ "either",
696+ "enums",
697+ "exceptions",
698+ "functions",
699+ "integers",
700+ "js-date",
701+ "maybe",
702+ "node-buffer",
703+ "node-path",
704+ "node-streams",
705+ "nullable",
706+ "partial",
707+ "prelude",
708+ "strings"
709+ ]
710+ },
711+ "node-path": {
712+ "type": "registry",
713+ "version": "5.0.1",
714+ "integrity": "sha256-j7n/SmpVz0FOMJl4XZop3ofJ+MeIPkMNqUEUKHEL6Us=",
715+ "dependencies": [
716+ "effect"
717+ ]
718+ },
719+ "node-process": {
720+ "type": "registry",
721+ "version": "11.2.0",
722+ "integrity": "sha256-onzKeNmaeYfN3HSDPqSFTrrP2Yl9tnVsfKKhnf2plxM=",
723+ "dependencies": [
724+ "effect",
725+ "exceptions",
726+ "foreign",
727+ "foreign-object",
728+ "maybe",
729+ "node-event-emitter",
730+ "node-streams",
731+ "nullable",
732+ "posix-types",
733+ "prelude",
734+ "strings"
735+ ]
736+ },
737+ "node-streams": {
738+ "type": "registry",
739+ "version": "9.0.1",
740+ "integrity": "sha256-yuVGm/R/tBr4Nphi+a1a984Z0fkmN9Q5wWtSmbmJTpA=",
741+ "dependencies": [
742+ "aff",
743+ "arrays",
744+ "effect",
745+ "either",
746+ "exceptions",
747+ "maybe",
748+ "node-buffer",
749+ "node-event-emitter",
750+ "nullable",
751+ "prelude",
752+ "refs",
753+ "st",
754+ "tailrec",
755+ "unsafe-coerce"
756+ ]
757+ },
758+ "nonempty": {
759+ "type": "registry",
760+ "version": "7.0.0",
761+ "integrity": "sha256-Ctkq8/+KiGqCE53Y/LvibA/coy7ev9HtRZU+GYS7yfQ=",
762+ "dependencies": [
763+ "control",
764+ "foldable-traversable",
765+ "maybe",
766+ "prelude",
767+ "tuples",
768+ "unfoldable"
769+ ]
770+ },
771+ "now": {
772+ "type": "registry",
773+ "version": "6.0.0",
774+ "integrity": "sha256-mTyG4s8tps3XIf0jjV/lME2/QlwMzrQly2wqfSSUM3o=",
775+ "dependencies": [
776+ "datetime",
777+ "effect",
778+ "prelude"
779+ ]
780+ },
781+ "nullable": {
782+ "type": "registry",
783+ "version": "6.0.0",
784+ "integrity": "sha256-CDAZk+L9Sc0GCFTkE8n+qdp4Ys8avvnkU+m2hVALt7M=",
785+ "dependencies": [
786+ "functions",
787+ "maybe",
788+ "prelude"
789+ ]
790+ },
791+ "numbers": {
792+ "type": "registry",
793+ "version": "9.0.1",
794+ "integrity": "sha256-ZydYckgwRAnRaFC7pu6fADhzdwX+UqHZrfJyet64zls=",
795+ "dependencies": [
796+ "functions",
797+ "maybe",
798+ "prelude"
799+ ]
800+ },
801+ "open-memoize": {
802+ "type": "registry",
803+ "version": "6.2.0",
804+ "integrity": "sha256-yJLuVYX8FocHIJ+6q7efH/Pj4S+e1Y57DZ5Dn7qf4ww=",
805+ "dependencies": [
806+ "either",
807+ "integers",
808+ "lazy",
809+ "lists",
810+ "maybe",
811+ "partial",
812+ "prelude",
813+ "strings",
814+ "tuples"
815+ ]
816+ },
817+ "optparse": {
818+ "type": "registry",
819+ "version": "5.0.1",
820+ "integrity": "sha256-2btDjHPRR0uujUQJuZAN9AzvVoXe7yG6IwnY5evERhQ=",
821+ "dependencies": [
822+ "arrays",
823+ "bifunctors",
824+ "control",
825+ "effect",
826+ "either",
827+ "enums",
828+ "exists",
829+ "exitcodes",
830+ "foldable-traversable",
831+ "free",
832+ "integers",
833+ "lazy",
834+ "lists",
835+ "maybe",
836+ "newtype",
837+ "node-buffer",
838+ "node-process",
839+ "node-streams",
840+ "nonempty",
841+ "numbers",
842+ "open-memoize",
843+ "partial",
844+ "prelude",
845+ "strings",
846+ "tailrec",
847+ "transformers",
848+ "tuples"
849+ ]
850+ },
851+ "ordered-collections": {
852+ "type": "registry",
853+ "version": "3.2.0",
854+ "integrity": "sha256-NaEXc2cz/7lJfxPWEja4XlZbGxuRqJwFKQJjsJf51kQ=",
855+ "dependencies": [
856+ "arrays",
857+ "control",
858+ "foldable-traversable",
859+ "functions",
860+ "gen",
861+ "lists",
862+ "maybe",
863+ "newtype",
864+ "partial",
865+ "prelude",
866+ "safe-coerce",
867+ "tailrec",
868+ "tuples",
869+ "unfoldable"
870+ ]
871+ },
872+ "orders": {
873+ "type": "registry",
874+ "version": "6.0.0",
875+ "integrity": "sha256-nSMxZK7wxyDULkjZqvMyB71mVo6b0AyLLHosDVbv1XM=",
876+ "dependencies": [
877+ "newtype",
878+ "prelude"
879+ ]
880+ },
881+ "parallel": {
882+ "type": "registry",
883+ "version": "7.0.0",
884+ "integrity": "sha256-bAGpVhrFz2IyHkA4MR7+tE/19FZ7dzYBdYPgK5svkqw=",
885+ "dependencies": [
886+ "control",
887+ "effect",
888+ "either",
889+ "foldable-traversable",
890+ "functors",
891+ "maybe",
892+ "newtype",
893+ "prelude",
894+ "profunctor",
895+ "refs",
896+ "transformers"
897+ ]
898+ },
899+ "partial": {
900+ "type": "registry",
901+ "version": "4.0.0",
902+ "integrity": "sha256-mdrlJBAgFMh79hNRW39uv7c+BwnnaOrAMmdh7+VhEhs=",
903+ "dependencies": []
904+ },
905+ "pipes": {
906+ "type": "registry",
907+ "version": "8.0.0",
908+ "integrity": "sha256-dtUNpG8BGVr7pu6mQZyAnUAftUHgNS7f0QH3Kw5UTpQ=",
909+ "dependencies": [
910+ "aff",
911+ "control",
912+ "effect",
913+ "either",
914+ "foldable-traversable",
915+ "identity",
916+ "lists",
917+ "maybe",
918+ "mmorph",
919+ "newtype",
920+ "prelude",
921+ "tailrec",
922+ "transformers",
923+ "tuples"
924+ ]
925+ },
926+ "posix-types": {
927+ "type": "registry",
928+ "version": "6.0.0",
929+ "integrity": "sha256-Je5jG439F/SFO/IvVevZnWVxDIonrehlKuJkefP2lHE=",
930+ "dependencies": [
931+ "maybe",
932+ "newtype",
933+ "prelude"
934+ ]
935+ },
936+ "prelude": {
937+ "type": "registry",
938+ "version": "6.0.2",
939+ "integrity": "sha256-IqykrDRquGUD/LRSad7y75hZv3bUsGQ4knc8tdez8Qw=",
940+ "dependencies": []
941+ },
942+ "profunctor": {
943+ "type": "registry",
944+ "version": "6.0.1",
945+ "integrity": "sha256-Ow0mJC+PIIRq/a3mzCWY5vxuTgR/e+Ee68+mWeSRnWY=",
946+ "dependencies": [
947+ "control",
948+ "distributive",
949+ "either",
950+ "exists",
951+ "invariant",
952+ "newtype",
953+ "prelude",
954+ "tuples"
955+ ]
956+ },
957+ "react-basic": {
958+ "type": "registry",
959+ "version": "17.0.0",
960+ "integrity": "sha256-RZA6jqfbrFHLXYD1ARlnfHp2YkT9IjUTkUwsk7Rqn8s=",
961+ "dependencies": [
962+ "effect",
963+ "prelude",
964+ "record"
965+ ]
966+ },
967+ "react-basic-dom": {
968+ "type": "registry",
969+ "version": "6.1.0",
970+ "integrity": "sha256-115TUcOMwrz8aAgM3rjE5OPBBj9gRK8UzgTC21AqqN4=",
971+ "dependencies": [
972+ "arrays",
973+ "effect",
974+ "foldable-traversable",
975+ "foreign-object",
976+ "maybe",
977+ "nullable",
978+ "prelude",
979+ "react-basic",
980+ "record",
981+ "unsafe-coerce",
982+ "web-dom",
983+ "web-events",
984+ "web-file",
985+ "web-html"
986+ ]
987+ },
988+ "react-basic-hooks": {
989+ "type": "registry",
990+ "version": "8.2.0",
991+ "integrity": "sha256-WkJa82jXYBNZYHFGzuITOHl03B6mZTJXgNIVo91oORY=",
992+ "dependencies": [
993+ "aff",
994+ "aff-promise",
995+ "bifunctors",
996+ "console",
997+ "control",
998+ "datetime",
999+ "effect",
1000+ "either",
1001+ "exceptions",
1002+ "foldable-traversable",
1003+ "functions",
1004+ "indexed-monad",
1005+ "integers",
1006+ "maybe",
1007+ "newtype",
1008+ "now",
1009+ "nullable",
1010+ "ordered-collections",
1011+ "prelude",
1012+ "react-basic",
1013+ "refs",
1014+ "tuples",
1015+ "type-equality",
1016+ "unsafe-coerce",
1017+ "unsafe-reference",
1018+ "web-html"
1019+ ]
1020+ },
1021+ "react-testing-library": {
1022+ "type": "git",
1023+ "url": "https://github.com/i-am-the-slime/purescript-react-testing-library.git",
1024+ "rev": "fd679db77337485058907ba5c6cbac3b478de342",
1025+ "dependencies": [
1026+ "aff",
1027+ "aff-promise",
1028+ "control",
1029+ "effect",
1030+ "exceptions",
1031+ "foldable-traversable",
1032+ "foreign",
1033+ "functions",
1034+ "identity",
1035+ "maybe",
1036+ "prelude",
1037+ "react-basic",
1038+ "spec",
1039+ "strings",
1040+ "transformers",
1041+ "unsafe-coerce",
1042+ "web-dom",
1043+ "web-events",
1044+ "web-html"
1045+ ]
1046+ },
1047+ "record": {
1048+ "type": "registry",
1049+ "version": "4.0.0",
1050+ "integrity": "sha256-WQ8fqp4X1wTA70J4qUcPW4Z7DCwx6e5KJnT/EuTdWSc=",
1051+ "dependencies": [
1052+ "functions",
1053+ "prelude",
1054+ "unsafe-coerce"
1055+ ]
1056+ },
1057+ "refs": {
1058+ "type": "registry",
1059+ "version": "6.0.0",
1060+ "integrity": "sha256-KKD5G9dR2SauuDGULUJsxjqDOEi1Jqm+2Sq5U2mY8YU=",
1061+ "dependencies": [
1062+ "effect",
1063+ "prelude"
1064+ ]
1065+ },
1066+ "safe-coerce": {
1067+ "type": "registry",
1068+ "version": "2.0.0",
1069+ "integrity": "sha256-EJrxtKt5xC7TYjBZrSBO/J7Aw3DmtilYjt4olpAXWVc=",
1070+ "dependencies": [
1071+ "unsafe-coerce"
1072+ ]
1073+ },
1074+ "spec": {
1075+ "type": "registry",
1076+ "version": "8.1.2",
1077+ "integrity": "sha256-klPPJ6lBQI1CGOAdLJ+ZoGRt8XZippkTKjn53BrSkL0=",
1078+ "dependencies": [
1079+ "aff",
1080+ "ansi",
1081+ "arrays",
1082+ "avar",
1083+ "bifunctors",
1084+ "control",
1085+ "datetime",
1086+ "effect",
1087+ "either",
1088+ "exceptions",
1089+ "foldable-traversable",
1090+ "fork",
1091+ "identity",
1092+ "integers",
1093+ "lists",
1094+ "maybe",
1095+ "newtype",
1096+ "now",
1097+ "ordered-collections",
1098+ "parallel",
1099+ "pipes",
1100+ "prelude",
1101+ "refs",
1102+ "strings",
1103+ "tailrec",
1104+ "transformers",
1105+ "tuples"
1106+ ]
1107+ },
1108+ "st": {
1109+ "type": "registry",
1110+ "version": "6.2.0",
1111+ "integrity": "sha256-WI4MEkkwUd4pnwZQ3G8VKWgX5t1RSNJludm5e9boaRo=",
1112+ "dependencies": [
1113+ "effect",
1114+ "partial",
1115+ "prelude",
1116+ "tailrec",
1117+ "unsafe-coerce"
1118+ ]
1119+ },
1120+ "strings": {
1121+ "type": "registry",
1122+ "version": "6.0.1",
1123+ "integrity": "sha256-FNto2hoNW5Da6W6crIk77YXMagBvOGHZE1kO7eZ1vLM=",
1124+ "dependencies": [
1125+ "arrays",
1126+ "control",
1127+ "either",
1128+ "enums",
1129+ "foldable-traversable",
1130+ "gen",
1131+ "integers",
1132+ "maybe",
1133+ "newtype",
1134+ "nonempty",
1135+ "partial",
1136+ "prelude",
1137+ "tailrec",
1138+ "tuples",
1139+ "unfoldable",
1140+ "unsafe-coerce"
1141+ ]
1142+ },
1143+ "tailrec": {
1144+ "type": "registry",
1145+ "version": "6.1.0",
1146+ "integrity": "sha256-xrorCfP0xV1wubs27idQCHQqdvSUuqmmL/am7Ji1wVU=",
1147+ "dependencies": [
1148+ "bifunctors",
1149+ "effect",
1150+ "either",
1151+ "identity",
1152+ "maybe",
1153+ "partial",
1154+ "prelude",
1155+ "refs"
1156+ ]
1157+ },
1158+ "transformers": {
1159+ "type": "registry",
1160+ "version": "6.1.0",
1161+ "integrity": "sha256-QJmgNT/y7ljPHSsXaW4zxF/982BFiQ90KNL1g/NtEOQ=",
1162+ "dependencies": [
1163+ "control",
1164+ "distributive",
1165+ "effect",
1166+ "either",
1167+ "exceptions",
1168+ "foldable-traversable",
1169+ "identity",
1170+ "lazy",
1171+ "maybe",
1172+ "newtype",
1173+ "prelude",
1174+ "st",
1175+ "tailrec",
1176+ "tuples",
1177+ "unfoldable"
1178+ ]
1179+ },
1180+ "tuples": {
1181+ "type": "registry",
1182+ "version": "7.0.0",
1183+ "integrity": "sha256-BKy7EfK8S1KeTCwyWqyW1wwcpSAQuh3IsczSVgS6fzY=",
1184+ "dependencies": [
1185+ "control",
1186+ "invariant",
1187+ "prelude"
1188+ ]
1189+ },
1190+ "type-equality": {
1191+ "type": "registry",
1192+ "version": "4.0.1",
1193+ "integrity": "sha256-BBqYOSnAKmayRvR5mtZoCf4SlYs2ipatD/+5nQx73aw=",
1194+ "dependencies": []
1195+ },
1196+ "typelevel-prelude": {
1197+ "type": "registry",
1198+ "version": "7.0.0",
1199+ "integrity": "sha256-+pHi14/40mTj/+lmCWqL0T7iXIXD1+NSg/KItyyoB0A=",
1200+ "dependencies": [
1201+ "prelude",
1202+ "type-equality"
1203+ ]
1204+ },
1205+ "undefined-is-not-a-problem": {
1206+ "type": "registry",
1207+ "version": "1.1.0",
1208+ "integrity": "sha256-0YkVzpcKi40T43go7/f8uLVIYgir6lGzOytL6LPfiog=",
1209+ "dependencies": [
1210+ "effect",
1211+ "either",
1212+ "foreign",
1213+ "maybe",
1214+ "newtype",
1215+ "prelude",
1216+ "tuples",
1217+ "type-equality",
1218+ "unsafe-coerce"
1219+ ]
1220+ },
1221+ "unfoldable": {
1222+ "type": "registry",
1223+ "version": "6.0.0",
1224+ "integrity": "sha256-BK/6By1sKp/ztk+9CF3q43SV0QDTLVdsGqFerKHSmbg=",
1225+ "dependencies": [
1226+ "foldable-traversable",
1227+ "maybe",
1228+ "partial",
1229+ "prelude",
1230+ "tuples"
1231+ ]
1232+ },
1233+ "unsafe-coerce": {
1234+ "type": "registry",
1235+ "version": "6.0.0",
1236+ "integrity": "sha256-0L1QsaY20OILjfU5TV72d3U/tSjhmL9hJ32WMp857Lk=",
1237+ "dependencies": []
1238+ },
1239+ "unsafe-reference": {
1240+ "type": "registry",
1241+ "version": "5.0.0",
1242+ "integrity": "sha256-ttSJTQUnK8AK2eGOsfRxLUJEDPL6pnmExjbiOqfwC6I=",
1243+ "dependencies": [
1244+ "prelude"
1245+ ]
1246+ },
1247+ "untagged-union": {
1248+ "type": "registry",
1249+ "version": "1.0.0",
1250+ "integrity": "sha256-MQvpb13TZEBoi9n/AoQ7ugniSQqbN6XQmAjii9pqJRk=",
1251+ "dependencies": [
1252+ "either",
1253+ "foreign",
1254+ "foreign-object",
1255+ "literals",
1256+ "maybe",
1257+ "newtype",
1258+ "prelude",
1259+ "tuples",
1260+ "unsafe-coerce"
1261+ ]
1262+ },
1263+ "variant": {
1264+ "type": "registry",
1265+ "version": "8.0.0",
1266+ "integrity": "sha256-Ydrgl8liWEwYQOWW76PdZtg3vxKpoKgsnmFyTLgZkoU=",
1267+ "dependencies": [
1268+ "control",
1269+ "enums",
1270+ "foldable-traversable",
1271+ "lists",
1272+ "maybe",
1273+ "partial",
1274+ "prelude",
1275+ "type-equality",
1276+ "unsafe-coerce"
1277+ ]
1278+ },
1279+ "web-dom": {
1280+ "type": "registry",
1281+ "version": "6.0.0",
1282+ "integrity": "sha256-rVeqkxChkjqisDvOujy9BMEgGqJkwX3t6g21bXfiG5o=",
1283+ "dependencies": [
1284+ "effect",
1285+ "enums",
1286+ "maybe",
1287+ "newtype",
1288+ "nullable",
1289+ "prelude",
1290+ "unsafe-coerce",
1291+ "web-events"
1292+ ]
1293+ },
1294+ "web-events": {
1295+ "type": "registry",
1296+ "version": "4.0.0",
1297+ "integrity": "sha256-wZNeldG0OU+8qGycUJ9e6vxf1/GC4Ep4OlRMhvjs9LA=",
1298+ "dependencies": [
1299+ "datetime",
1300+ "effect",
1301+ "enums",
1302+ "foreign",
1303+ "functions",
1304+ "maybe",
1305+ "newtype",
1306+ "nullable",
1307+ "prelude",
1308+ "unsafe-coerce"
1309+ ]
1310+ },
1311+ "web-file": {
1312+ "type": "registry",
1313+ "version": "4.0.0",
1314+ "integrity": "sha256-txsdkeWBKU/+5v9m5c6kysgJQSDyV1r7MHaeT4STpjQ=",
1315+ "dependencies": [
1316+ "datetime",
1317+ "effect",
1318+ "enums",
1319+ "foreign",
1320+ "integers",
1321+ "maybe",
1322+ "media-types",
1323+ "nullable",
1324+ "numbers",
1325+ "partial",
1326+ "prelude",
1327+ "tuples",
1328+ "unfoldable",
1329+ "unsafe-coerce",
1330+ "web-events"
1331+ ]
1332+ },
1333+ "web-html": {
1334+ "type": "registry",
1335+ "version": "4.1.1",
1336+ "integrity": "sha256-yOuZJGUxFrivHKpo/jKuKzFZaq6PPPE64ftSysXFssk=",
1337+ "dependencies": [
1338+ "effect",
1339+ "enums",
1340+ "foreign",
1341+ "functions",
1342+ "js-date",
1343+ "maybe",
1344+ "media-types",
1345+ "newtype",
1346+ "nullable",
1347+ "prelude",
1348+ "unsafe-coerce",
1349+ "web-dom",
1350+ "web-events",
1351+ "web-file",
1352+ "web-storage"
1353+ ]
1354+ },
1355+ "web-storage": {
1356+ "type": "registry",
1357+ "version": "5.0.0",
1358+ "integrity": "sha256-YJfos55oeKtBStNfoWfeflSy8j+4IDym5eaZtIY7YM4=",
1359+ "dependencies": [
1360+ "effect",
1361+ "maybe",
1362+ "nullable",
1363+ "prelude",
1364+ "unsafe-coerce",
1365+ "web-events"
1366+ ]
1367+ },
1368+ "web-touchevents": {
1369+ "type": "registry",
1370+ "version": "4.0.0",
1371+ "integrity": "sha256-H02c53BJlHDlAgogj/x8bM7PagJjhMMrMPYy9I7Rf0s=",
1372+ "dependencies": [
1373+ "functions",
1374+ "maybe",
1375+ "nullable",
1376+ "prelude",
1377+ "unsafe-coerce",
1378+ "web-events",
1379+ "web-uievents"
1380+ ]
1381+ },
1382+ "web-uievents": {
1383+ "type": "registry",
1384+ "version": "5.0.0",
1385+ "integrity": "sha256-yh9uVLIGu8wE1+jwLehtfsRfR1eyiShhIMMhBPqKybE=",
1386+ "dependencies": [
1387+ "effect",
1388+ "enums",
1389+ "maybe",
1390+ "nullable",
1391+ "prelude",
1392+ "unsafe-coerce",
1393+ "web-events",
1394+ "web-html"
1395+ ]
1396+ },
1397+ "yoga-fastify": {
1398+ "type": "registry",
1399+ "version": "0.3.0",
1400+ "integrity": "sha256-nQZq9ZSVFPSXFzLtC32iz4RRT0JgigFLKlAe1PGB+Lo=",
1401+ "dependencies": [
1402+ "aff",
1403+ "arrays",
1404+ "bifunctors",
1405+ "effect",
1406+ "either",
1407+ "foldable-traversable",
1408+ "foreign",
1409+ "foreign-object",
1410+ "js-promise",
1411+ "js-promise-aff",
1412+ "maybe",
1413+ "newtype",
1414+ "nullable",
1415+ "prelude",
1416+ "record",
1417+ "strings",
1418+ "unsafe-coerce",
1419+ "variant",
1420+ "yoga-http-api",
1421+ "yoga-json"
1422+ ]
1423+ },
1424+ "yoga-http-api": {
1425+ "type": "registry",
1426+ "version": "0.1.6",
1427+ "integrity": "sha256-wI2aiM7S99gq7pPCBI8ijemMNV5vqjToLHVLr9nCtog=",
1428+ "dependencies": [
1429+ "aff",
1430+ "arrays",
1431+ "either",
1432+ "foldable-traversable",
1433+ "foreign",
1434+ "foreign-object",
1435+ "identity",
1436+ "integers",
1437+ "maybe",
1438+ "newtype",
1439+ "prelude",
1440+ "record",
1441+ "strings",
1442+ "tuples",
1443+ "undefined-is-not-a-problem",
1444+ "unsafe-coerce",
1445+ "variant",
1446+ "yoga-json",
1447+ "yoga-options"
1448+ ]
1449+ },
1450+ "yoga-json": {
1451+ "type": "registry",
1452+ "version": "5.2.1",
1453+ "integrity": "sha256-12I7qIf27oKV/D/YRcHtGpN8n7GQ0Bm3uzvI4ZjOQrs=",
1454+ "dependencies": [
1455+ "arrays",
1456+ "bifunctors",
1457+ "control",
1458+ "datetime",
1459+ "effect",
1460+ "either",
1461+ "exceptions",
1462+ "foldable-traversable",
1463+ "foreign",
1464+ "foreign-object",
1465+ "free",
1466+ "identity",
1467+ "integers",
1468+ "js-bigints",
1469+ "js-date",
1470+ "lists",
1471+ "maybe",
1472+ "newtype",
1473+ "nullable",
1474+ "numbers",
1475+ "ordered-collections",
1476+ "partial",
1477+ "prelude",
1478+ "record",
1479+ "safe-coerce",
1480+ "strings",
1481+ "transformers",
1482+ "tuples",
1483+ "typelevel-prelude",
1484+ "unsafe-coerce",
1485+ "variant",
1486+ "yoga-tree"
1487+ ]
1488+ },
1489+ "yoga-options": {
1490+ "type": "registry",
1491+ "version": "0.1.1",
1492+ "integrity": "sha256-INtZKI2rw7KcDikzmyXlglsEujSMqHT5jz3ho9dVYC8=",
1493+ "dependencies": [
1494+ "identity",
1495+ "literals",
1496+ "unsafe-coerce",
1497+ "untagged-union"
1498+ ]
1499+ },
1500+ "yoga-react": {
1501+ "type": "registry",
1502+ "version": "1.0.2",
1503+ "integrity": "sha256-kqAn/KnPB76cTjMTeCdc77HA5LiinJy2HxFUTb4ffec=",
1504+ "dependencies": [
1505+ "effect",
1506+ "prelude",
1507+ "react-basic",
1508+ "react-basic-hooks"
1509+ ]
1510+ },
1511+ "yoga-react-dom": {
1512+ "type": "registry",
1513+ "version": "1.0.3",
1514+ "integrity": "sha256-OY4SLzEX5l3y1hM9CGYLTXSBHmUdnQTU8SHjBWHVMDI=",
1515+ "dependencies": [
1516+ "datetime",
1517+ "effect",
1518+ "forgetmenot",
1519+ "functions",
1520+ "nullable",
1521+ "prelude",
1522+ "react-basic",
1523+ "react-basic-hooks",
1524+ "record",
1525+ "type-equality",
1526+ "typelevel-prelude",
1527+ "unsafe-coerce",
1528+ "web-dom",
1529+ "web-events",
1530+ "web-html",
1531+ "web-touchevents"
1532+ ]
1533+ },
1534+ "yoga-stories": {
1535+ "type": "registry",
1536+ "version": "0.1.0",
1537+ "integrity": "sha256-8T+wUThPhXYH2MgSoe1/JjEmUnABk2A012wHliNLLcE=",
1538+ "dependencies": [
1539+ "aff",
1540+ "arrays",
1541+ "console",
1542+ "control",
1543+ "effect",
1544+ "either",
1545+ "exceptions",
1546+ "foldable-traversable",
1547+ "foreign",
1548+ "foreign-object",
1549+ "js-promise",
1550+ "js-promise-aff",
1551+ "maybe",
1552+ "newtype",
1553+ "node-buffer",
1554+ "node-fs",
1555+ "node-path",
1556+ "nullable",
1557+ "optparse",
1558+ "prelude",
1559+ "react-basic",
1560+ "react-basic-dom",
1561+ "react-basic-hooks",
1562+ "record",
1563+ "strings",
1564+ "tuples",
1565+ "web-dom",
1566+ "web-events",
1567+ "web-html",
1568+ "yoga-fastify",
1569+ "yoga-json",
1570+ "yoga-react",
1571+ "yoga-react-dom"
1572+ ]
1573+ },
1574+ "yoga-tree": {
1575+ "type": "registry",
1576+ "version": "1.0.0",
1577+ "integrity": "sha256-s8rIVEQkRi1VrMc92T9ceXcY0X6r5A4QqT6f7GgmDQI=",
1578+ "dependencies": [
1579+ "arrays",
1580+ "control",
1581+ "foldable-traversable",
1582+ "free",
1583+ "maybe",
1584+ "prelude",
1585+ "tailrec"
1586+ ]
1587+ }
1588+ }
1589+}
spago.yamlnew file+55
@@ -0,0 +1,55 @@
1+workspace:
2+ extraPackages:
3+ react-testing-library:
4+ git: https://github.com/i-am-the-slime/purescript-react-testing-library.git
5+ ref: fd679db77337485058907ba5c6cbac3b478de342
6+
7+package:
8+ name: yoga-heroui3
9+ publish:
10+ version: 3.0.0
11+ license: WTFPL
12+ location:
13+ githubOwner: rowtype-yoga
14+ githubRepo: purescript-yoga-heroui3
15+ dependencies:
16+ - effect: ">=4.0.0 <5.0.0"
17+ - foreign: ">=7.0.0 <8.0.0"
18+ - functions: ">=6.0.0 <7.0.0"
19+ - maybe: ">=6.0.0 <7.0.0"
20+ - nullable: ">=6.0.0 <7.0.0"
21+ - prelude: ">=6.0.2 <7.0.0"
22+ - react-basic: ">=17.0.0 <18.0.0"
23+ - react-basic-hooks: ">=8.2.0 <9.0.0"
24+ - typelevel-prelude: ">=7.0.0 <8.0.0"
25+ - unsafe-coerce: ">=6.0.0 <7.0.0"
26+ - yoga-react-dom: ">=1.0.3 <2.0.0"
27+ test:
28+ main: Test.Main
29+ dependencies:
30+ - yoga-stories
31+ - yoga-react
32+ - react-basic-dom
33+ - react-basic-hooks
34+ - arrays
35+ - maybe
36+ - tuples
37+ - yoga-json
38+ - web-html
39+ - web-events
40+ - record
41+ - newtype
42+ - strings
43+ - aff
44+ - js-promise
45+ - js-promise-aff
46+ - unsafe-coerce
47+ - console
48+ - react-testing-library
49+ - spec
50+ - transformers
51+ - effect
52+ - foreign
53+ - prelude
54+ - exceptions
55+ - aff-promise
src/HeroUI/Avatar.pursnew file+63
@@ -0,0 +1,63 @@
1+module HeroUI.Avatar where
2+
3+import Prelude
4+
5+import React.Basic (JSX)
6+import Yoga.React.DOM.Internal (class IsJSX)
7+import Data.Function.Uncurried (runFn4)
8+import HeroUI.Types (Color, Size, colorToString, sizeToString)
9+import HeroUI.Internal (class CoerceHeroProps, createElementTransformImpl)
10+import HeroUI.Raw as Raw
11+
12+data Variant = Default | Soft
13+
14+derive instance Eq Variant
15+derive instance Ord Variant
16+
17+variantToString :: Variant -> String
18+variantToString = case _ of
19+ Default -> "default"
20+ Soft -> "soft"
21+
22+type AvatarProps r =
23+ ( color :: Color
24+ , size :: Size
25+ , variant :: Variant
26+ , className :: String
27+ | r
28+ )
29+
30+avatarTransforms
31+ :: { color :: Color -> String, size :: Size -> String, variant :: Variant -> String }
32+avatarTransforms = { color: colorToString, size: sizeToString, variant: variantToString }
33+
34+avatar
35+ :: forall givenProps nonDataProps kids
36+ . IsJSX kids
37+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | AvatarProps () }
38+ => { | givenProps }
39+ -> kids
40+ -> JSX
41+avatar props kids = runFn4 createElementTransformImpl avatarTransforms Raw.avatar props kids
42+
43+type AvatarImageProps r = (src :: String, alt :: String, className :: String | r)
44+
45+avatarImage
46+ :: forall givenProps nonDataProps kids
47+ . IsJSX kids
48+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | AvatarImageProps () }
49+ => { | givenProps }
50+ -> kids
51+ -> JSX
52+avatarImage props kids = runFn4 createElementTransformImpl {} Raw.avatarImage props kids
53+
54+type AvatarFallbackProps r = (color :: Color, className :: String | r)
55+
56+avatarFallback
57+ :: forall givenProps nonDataProps kids
58+ . IsJSX kids
59+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | AvatarFallbackProps () }
60+ => { | givenProps }
61+ -> kids
62+ -> JSX
63+avatarFallback props kids = runFn4 createElementTransformImpl { color: colorToString } Raw.avatarFallback props kids
src/HeroUI/Badge.pursnew file+86
@@ -0,0 +1,86 @@
1+module HeroUI.Badge where
2+
3+import Prelude
4+
5+import React.Basic (JSX)
6+import Yoga.React.DOM.Internal (class IsJSX)
7+import Data.Function.Uncurried (runFn4)
8+import HeroUI.Types (Color, Size, colorToString, sizeToString)
9+import HeroUI.Internal (class CoerceHeroProps, createElementTransformImpl)
10+import HeroUI.Raw as Raw
11+
12+data Variant = Primary | Secondary | Soft
13+
14+derive instance Eq Variant
15+derive instance Ord Variant
16+
17+variantToString :: Variant -> String
18+variantToString = case _ of
19+ Primary -> "primary"
20+ Secondary -> "secondary"
21+ Soft -> "soft"
22+
23+data Placement = TopRight | TopLeft | BottomRight | BottomLeft
24+
25+derive instance Eq Placement
26+derive instance Ord Placement
27+
28+placementToString :: Placement -> String
29+placementToString = case _ of
30+ TopRight -> "top-right"
31+ TopLeft -> "top-left"
32+ BottomRight -> "bottom-right"
33+ BottomLeft -> "bottom-left"
34+
35+type BadgeProps r =
36+ ( color :: Color
37+ , size :: Size
38+ , variant :: Variant
39+ , placement :: Placement
40+ , className :: String
41+ | r
42+ )
43+
44+badgeTransforms
45+ :: { color :: Color -> String
46+ , size :: Size -> String
47+ , variant :: Variant -> String
48+ , placement :: Placement -> String
49+ }
50+badgeTransforms =
51+ { color: colorToString
52+ , size: sizeToString
53+ , variant: variantToString
54+ , placement: placementToString
55+ }
56+
57+badge
58+ :: forall givenProps nonDataProps kids
59+ . IsJSX kids
60+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | BadgeProps () }
61+ => { | givenProps }
62+ -> kids
63+ -> JSX
64+badge props kids = runFn4 createElementTransformImpl badgeTransforms Raw.badge props kids
65+
66+type BadgeLabelProps r = (className :: String | r)
67+
68+badgeLabel
69+ :: forall givenProps nonDataProps kids
70+ . IsJSX kids
71+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | BadgeLabelProps () }
72+ => { | givenProps }
73+ -> kids
74+ -> JSX
75+badgeLabel props kids = runFn4 createElementTransformImpl {} Raw.badgeLabel props kids
76+
77+type BadgeAnchorProps r = (className :: String | r)
78+
79+badgeAnchor
80+ :: forall givenProps nonDataProps kids
81+ . IsJSX kids
82+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | BadgeAnchorProps () }
83+ => { | givenProps }
84+ -> kids
85+ -> JSX
86+badgeAnchor props kids = runFn4 createElementTransformImpl {} Raw.badgeAnchor props kids
src/HeroUI/Button.pursnew file+119
@@ -0,0 +1,119 @@
1+module HeroUI.Button where
2+
3+import Prelude
4+
5+import React.Basic (JSX)
6+import React.Basic.Events (EventHandler)
7+import Yoga.React.DOM.Internal (class IsJSX)
8+import Data.Function.Uncurried (runFn4)
9+import Effect.Uncurried (EffectFn1)
10+import HeroUI.Types (Size, sizeToString)
11+import HeroUI.Internal (class CoerceHeroProps, createElementTransformImpl)
12+import HeroUI.Raw as Raw
13+
14+-- | HeroUI v3 merges v2's `color` + `variant` into a single `variant`.
15+data Variant
16+ = Primary
17+ | Secondary
18+ | Tertiary
19+ | Ghost
20+ | Outline
21+ | Danger
22+ | DangerSoft
23+
24+derive instance Eq Variant
25+derive instance Ord Variant
26+
27+variantToString :: Variant -> String
28+variantToString = case _ of
29+ Primary -> "primary"
30+ Secondary -> "secondary"
31+ Tertiary -> "tertiary"
32+ Ghost -> "ghost"
33+ Outline -> "outline"
34+ Danger -> "danger"
35+ DangerSoft -> "danger-soft"
36+
37+data ButtonType = ButtonTypeButton | ButtonTypeSubmit | ButtonTypeReset
38+
39+derive instance Eq ButtonType
40+derive instance Ord ButtonType
41+
42+buttonTypeToString :: ButtonType -> String
43+buttonTypeToString = case _ of
44+ ButtonTypeButton -> "button"
45+ ButtonTypeSubmit -> "submit"
46+ ButtonTypeReset -> "reset"
47+
48+type ButtonProps r =
49+ ( variant :: Variant
50+ , size :: Size
51+ , type :: ButtonType
52+ , fullWidth :: Boolean
53+ , isIconOnly :: Boolean
54+ , isDisabled :: Boolean
55+ , isPending :: Boolean
56+ , autoFocus :: Boolean
57+ , form :: String
58+ , name :: String
59+ , value :: String
60+ , className :: String
61+ , onPress :: EventHandler
62+ , onPressStart :: EventHandler
63+ , onPressEnd :: EventHandler
64+ , onPressChange :: EffectFn1 Boolean Unit
65+ , onPressUp :: EventHandler
66+ , onFocus :: EventHandler
67+ , onBlur :: EventHandler
68+ , onKeyDown :: EventHandler
69+ , onKeyUp :: EventHandler
70+ | r
71+ )
72+
73+buttonTransforms
74+ :: { variant :: Variant -> String
75+ , size :: Size -> String
76+ , type :: ButtonType -> String
77+ }
78+buttonTransforms =
79+ { variant: variantToString
80+ , size: sizeToString
81+ , type: buttonTypeToString
82+ }
83+
84+button
85+ :: forall givenProps nonDataProps kids
86+ . IsJSX kids
87+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | ButtonProps () }
88+ => { | givenProps }
89+ -> kids
90+ -> JSX
91+button props kids = runFn4 createElementTransformImpl buttonTransforms Raw.button props kids
92+
93+type ButtonGroupProps r =
94+ ( variant :: Variant
95+ , size :: Size
96+ , orientation :: String
97+ , isDisabled :: Boolean
98+ , fullWidth :: Boolean
99+ , className :: String
100+ | r
101+ )
102+
103+buttonGroupTransforms
104+ :: { variant :: Variant -> String
105+ , size :: Size -> String
106+ }
107+buttonGroupTransforms =
108+ { variant: variantToString
109+ , size: sizeToString
110+ }
111+
112+buttonGroup
113+ :: forall givenProps nonDataProps kids
114+ . IsJSX kids
115+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | ButtonGroupProps () }
116+ => { | givenProps }
117+ -> kids
118+ -> JSX
119+buttonGroup props kids = runFn4 createElementTransformImpl buttonGroupTransforms Raw.buttonGroup props kids
src/HeroUI/Chip.pursnew file+54
@@ -0,0 +1,54 @@
1+module HeroUI.Chip where
2+
3+import Prelude
4+
5+import React.Basic (JSX)
6+import Yoga.React.DOM.Internal (class IsJSX)
7+import Data.Function.Uncurried (runFn4)
8+import HeroUI.Types (Color, Size, colorToString, sizeToString)
9+import HeroUI.Internal (class CoerceHeroProps, createElementTransformImpl)
10+import HeroUI.Raw as Raw
11+
12+data Variant = Primary | Secondary | Tertiary | Soft
13+
14+derive instance Eq Variant
15+derive instance Ord Variant
16+
17+variantToString :: Variant -> String
18+variantToString = case _ of
19+ Primary -> "primary"
20+ Secondary -> "secondary"
21+ Tertiary -> "tertiary"
22+ Soft -> "soft"
23+
24+type ChipProps r =
25+ ( color :: Color
26+ , size :: Size
27+ , variant :: Variant
28+ , className :: String
29+ | r
30+ )
31+
32+chipTransforms
33+ :: { color :: Color -> String, size :: Size -> String, variant :: Variant -> String }
34+chipTransforms = { color: colorToString, size: sizeToString, variant: variantToString }
35+
36+chip
37+ :: forall givenProps nonDataProps kids
38+ . IsJSX kids
39+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | ChipProps () }
40+ => { | givenProps }
41+ -> kids
42+ -> JSX
43+chip props kids = runFn4 createElementTransformImpl chipTransforms Raw.chip props kids
44+
45+type ChipLabelProps r = (className :: String | r)
46+
47+chipLabel
48+ :: forall givenProps nonDataProps kids
49+ . IsJSX kids
50+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | ChipLabelProps () }
51+ => { | givenProps }
52+ -> kids
53+ -> JSX
54+chipLabel props kids = runFn4 createElementTransformImpl {} Raw.chipLabel props kids
src/HeroUI/Internal.jsnew file+13
@@ -0,0 +1,13 @@
1+import React from "react";
2+
3+export const createElementTransformImpl = (transforms, component, props, children) => {
4+ const transformed = { ...props };
5+ for (const key in transforms) {
6+ if (key in transformed) {
7+ transformed[key] = transforms[key](transformed[key]);
8+ }
9+ }
10+ if (typeof children === undefined || children == null || children.length === 0) return React.createElement(component, transformed);
11+ if (!Array.isArray(children)) return React.createElement(component, transformed, children);
12+ return React.createElement(component, transformed, ...children);
13+};
src/HeroUI/Internal.pursnew file+70
@@ -0,0 +1,70 @@
1+module HeroUI.Internal where
2+
3+import Data.Function.Uncurried (Fn4)
4+import Prim.Boolean (False, True)
5+import Prim.Row (class Union)
6+import Prim.RowList (class RowToList, RowList)
7+import React.Basic (JSX)
8+import Type.RowList (class ListToRow)
9+import Type.RowList as RL
10+import Unsafe.Coerce (unsafeCoerce)
11+import Yoga.React.DOM.Internal (class DoesStartWith)
12+
13+foreign import createElementTransformImpl
14+ :: forall transforms component props children
15+ . Fn4 transforms component props children JSX
16+
17+-- | Like `Yoga.React.DOM.Internal.CoerceReactProps`, but additionally
18+-- | accepts (and silently passes through) `aria-*` attributes. HeroUI's
19+-- | underlying components forward them to the DOM.
20+class CoerceHeroProps :: forall k. Type -> k -> Type -> Constraint
21+class CoerceHeroProps props strippedProps targetProps | props -> strippedProps
22+
23+instance
24+ ( WithoutPassthroughProps { | props } { | strippedProps }
25+ , Union strippedProps missing targetProps
26+ ) =>
27+ CoerceHeroProps { | props } { | strippedProps } { | targetProps }
28+
29+coerceHeroProps
30+ :: forall props strippedProps targetProps
31+ . CoerceHeroProps props strippedProps targetProps
32+ => props
33+ -> targetProps
34+coerceHeroProps = unsafeCoerce
35+
36+class WithoutPassthroughProps props without where
37+ unsafeHidePassthroughProps :: props -> without
38+
39+instance
40+ ( RowToList r rl
41+ , ListToRow strippedRL stripped
42+ , WithoutPassthroughRL rl strippedRL
43+ ) =>
44+ WithoutPassthroughProps (Record r) (Record stripped) where
45+ unsafeHidePassthroughProps = unsafeCoerce
46+
47+class WithoutPassthroughRL (from :: RowList Type) (to :: RowList Type) | from -> to
48+
49+class
50+ MaybeWithoutPassthroughRL (exclude :: Boolean) (propName :: Symbol) (propVal :: Type) (from :: RowList Type) (to :: RowList Type)
51+ | exclude propName propVal from -> to
52+
53+instance WithoutPassthroughRL RL.Nil RL.Nil
54+instance
55+ ( DoesStartWith "data-" propName isData
56+ , DoesStartWith "aria-" propName isAria
57+ , BoolOr isData isAria exclude
58+ , MaybeWithoutPassthroughRL exclude propName propVal from to
59+ ) =>
60+ WithoutPassthroughRL (RL.Cons propName propVal from) to
61+
62+instance (WithoutPassthroughRL from to) => MaybeWithoutPassthroughRL False propName propVal from (RL.Cons propName propVal to)
63+instance (WithoutPassthroughRL from to) => MaybeWithoutPassthroughRL True propName propVal from to
64+
65+class BoolOr (a :: Boolean) (b :: Boolean) (c :: Boolean) | a b -> c
66+
67+instance BoolOr True True True
68+instance BoolOr True False True
69+instance BoolOr False True True
70+instance BoolOr False False False
src/HeroUI/Kbd.pursnew file+104
@@ -0,0 +1,104 @@
1+module HeroUI.Kbd where
2+
3+import Prelude
4+
5+import React.Basic (JSX)
6+import Yoga.React.DOM.Internal (class IsJSX)
7+import Data.Function.Uncurried (runFn4)
8+import HeroUI.Internal (class CoerceHeroProps, createElementTransformImpl)
9+import HeroUI.Raw as Raw
10+
11+data Variant = Default | Light
12+
13+derive instance Eq Variant
14+derive instance Ord Variant
15+
16+variantToString :: Variant -> String
17+variantToString = case _ of
18+ Default -> "default"
19+ Light -> "light"
20+
21+data KbdKey
22+ = Command
23+ | Shift
24+ | Ctrl
25+ | Option
26+ | Enter
27+ | Delete
28+ | Escape
29+ | Tab
30+ | Capslock
31+ | Up
32+ | Right
33+ | Down
34+ | Left
35+ | PageUp
36+ | PageDown
37+ | Home
38+ | End
39+ | Help
40+ | Space
41+ | Fn
42+ | Win
43+ | Alt
44+
45+derive instance Eq KbdKey
46+derive instance Ord KbdKey
47+
48+kbdKeyToString :: KbdKey -> String
49+kbdKeyToString = case _ of
50+ Command -> "command"
51+ Shift -> "shift"
52+ Ctrl -> "ctrl"
53+ Option -> "option"
54+ Enter -> "enter"
55+ Delete -> "delete"
56+ Escape -> "escape"
57+ Tab -> "tab"
58+ Capslock -> "capslock"
59+ Up -> "up"
60+ Right -> "right"
61+ Down -> "down"
62+ Left -> "left"
63+ PageUp -> "pageup"
64+ PageDown -> "pagedown"
65+ Home -> "home"
66+ End -> "end"
67+ Help -> "help"
68+ Space -> "space"
69+ Fn -> "fn"
70+ Win -> "win"
71+ Alt -> "alt"
72+
73+type KbdProps r = (variant :: Variant, className :: String | r)
74+
75+kbd
76+ :: forall givenProps nonDataProps kids
77+ . IsJSX kids
78+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | KbdProps () }
79+ => { | givenProps }
80+ -> kids
81+ -> JSX
82+kbd props kids = runFn4 createElementTransformImpl { variant: variantToString } Raw.kbd props kids
83+
84+type KbdAbbrProps r = (keyValue :: KbdKey, className :: String | r)
85+
86+kbdAbbr
87+ :: forall givenProps nonDataProps kids
88+ . IsJSX kids
89+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | KbdAbbrProps () }
90+ => { | givenProps }
91+ -> kids
92+ -> JSX
93+kbdAbbr props kids = runFn4 createElementTransformImpl { keyValue: kbdKeyToString } Raw.kbdAbbr props kids
94+
95+type KbdContentProps r = (className :: String | r)
96+
97+kbdContent
98+ :: forall givenProps nonDataProps kids
99+ . IsJSX kids
100+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | KbdContentProps () }
101+ => { | givenProps }
102+ -> kids
103+ -> JSX
104+kbdContent props kids = runFn4 createElementTransformImpl {} Raw.kbdContent props kids
src/HeroUI/Link.pursnew file+42
@@ -0,0 +1,42 @@
1+module HeroUI.Link where
2+
3+import React.Basic (JSX)
4+import React.Basic.Events (EventHandler)
5+import Yoga.React.DOM.Internal (class IsJSX)
6+import Data.Function.Uncurried (runFn4)
7+import HeroUI.Internal (class CoerceHeroProps, createElementTransformImpl)
8+import HeroUI.Raw as Raw
9+
10+type LinkProps r =
11+ ( href :: String
12+ , target :: String
13+ , rel :: String
14+ , download :: Boolean
15+ , isDisabled :: Boolean
16+ , autoFocus :: Boolean
17+ , className :: String
18+ , onPress :: EventHandler
19+ , onFocus :: EventHandler
20+ , onBlur :: EventHandler
21+ | r
22+ )
23+
24+link
25+ :: forall givenProps nonDataProps kids
26+ . IsJSX kids
27+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | LinkProps () }
28+ => { | givenProps }
29+ -> kids
30+ -> JSX
31+link props kids = runFn4 createElementTransformImpl {} Raw.link props kids
32+
33+type LinkIconProps r = (className :: String | r)
34+
35+linkIcon
36+ :: forall givenProps nonDataProps kids
37+ . IsJSX kids
38+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | LinkIconProps () }
39+ => { | givenProps }
40+ -> kids
41+ -> JSX
42+linkIcon props kids = runFn4 createElementTransformImpl {} Raw.linkIcon props kids
src/HeroUI/Raw.jsnew file+58
@@ -0,0 +1,58 @@
1+import {
2+ ButtonRoot,
3+ ButtonGroupRoot,
4+ ButtonGroupSeparator,
5+ SpinnerRoot,
6+ ChipRoot,
7+ ChipLabel,
8+ KbdRoot,
9+ KbdAbbr,
10+ KbdContent,
11+ LinkRoot,
12+ LinkIcon,
13+ AvatarRoot,
14+ AvatarImage,
15+ AvatarFallback,
16+ BadgeRoot,
17+ BadgeLabel,
18+ BadgeAnchor,
19+ SkeletonRoot,
20+ SeparatorRoot,
21+} from "@heroui/react";
22+
23+// Button
24+export const button = ButtonRoot;
25+export const buttonGroup = ButtonGroupRoot;
26+export const buttonGroupSeparator = ButtonGroupSeparator;
27+
28+// Spinner
29+export const spinner = SpinnerRoot;
30+
31+// Chip
32+export const chip = ChipRoot;
33+export const chipLabel = ChipLabel;
34+
35+// Kbd
36+export const kbd = KbdRoot;
37+export const kbdAbbr = KbdAbbr;
38+export const kbdContent = KbdContent;
39+
40+// Link
41+export const link = LinkRoot;
42+export const linkIcon = LinkIcon;
43+
44+// Avatar
45+export const avatar = AvatarRoot;
46+export const avatarImage = AvatarImage;
47+export const avatarFallback = AvatarFallback;
48+
49+// Badge
50+export const badge = BadgeRoot;
51+export const badgeLabel = BadgeLabel;
52+export const badgeAnchor = BadgeAnchor;
53+
54+// Skeleton
55+export const skeleton = SkeletonRoot;
56+
57+// Separator
58+export const separator = SeparatorRoot;
src/HeroUI/Raw.pursnew file+40
@@ -0,0 +1,40 @@
1+module HeroUI.Raw where
2+
3+import React.Basic (ReactComponent)
4+
5+-- Button
6+foreign import button :: forall r. ReactComponent { | r }
7+foreign import buttonGroup :: forall r. ReactComponent { | r }
8+foreign import buttonGroupSeparator :: forall r. ReactComponent { | r }
9+
10+-- Spinner
11+foreign import spinner :: forall r. ReactComponent { | r }
12+
13+-- Chip
14+foreign import chip :: forall r. ReactComponent { | r }
15+foreign import chipLabel :: forall r. ReactComponent { | r }
16+
17+-- Kbd
18+foreign import kbd :: forall r. ReactComponent { | r }
19+foreign import kbdAbbr :: forall r. ReactComponent { | r }
20+foreign import kbdContent :: forall r. ReactComponent { | r }
21+
22+-- Link
23+foreign import link :: forall r. ReactComponent { | r }
24+foreign import linkIcon :: forall r. ReactComponent { | r }
25+
26+-- Avatar
27+foreign import avatar :: forall r. ReactComponent { | r }
28+foreign import avatarImage :: forall r. ReactComponent { | r }
29+foreign import avatarFallback :: forall r. ReactComponent { | r }
30+
31+-- Badge
32+foreign import badge :: forall r. ReactComponent { | r }
33+foreign import badgeLabel :: forall r. ReactComponent { | r }
34+foreign import badgeAnchor :: forall r. ReactComponent { | r }
35+
36+-- Skeleton
37+foreign import skeleton :: forall r. ReactComponent { | r }
38+
39+-- Separator
40+foreign import separator :: forall r. ReactComponent { | r }
src/HeroUI/Separator.pursnew file+40
@@ -0,0 +1,40 @@
1+module HeroUI.Separator where
2+
3+import Prelude
4+
5+import React.Basic (JSX)
6+import Yoga.React.DOM.Internal (class IsJSX)
7+import Data.Function.Uncurried (runFn4)
8+import HeroUI.Types (Orientation, orientationToString)
9+import HeroUI.Internal (class CoerceHeroProps, createElementTransformImpl)
10+import HeroUI.Raw as Raw
11+
12+data Variant = Default | Secondary | Tertiary
13+
14+derive instance Eq Variant
15+derive instance Ord Variant
16+
17+variantToString :: Variant -> String
18+variantToString = case _ of
19+ Default -> "default"
20+ Secondary -> "secondary"
21+ Tertiary -> "tertiary"
22+
23+type SeparatorProps r =
24+ ( orientation :: Orientation
25+ , variant :: Variant
26+ , className :: String
27+ | r
28+ )
29+
30+separatorTransforms :: { orientation :: Orientation -> String, variant :: Variant -> String }
31+separatorTransforms = { orientation: orientationToString, variant: variantToString }
32+
33+separator
34+ :: forall givenProps nonDataProps kids
35+ . IsJSX kids
36+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | SeparatorProps () }
37+ => { | givenProps }
38+ -> kids
39+ -> JSX
40+separator props kids = runFn4 createElementTransformImpl separatorTransforms Raw.separator props kids
src/HeroUI/Skeleton.pursnew file+31
@@ -0,0 +1,31 @@
1+module HeroUI.Skeleton where
2+
3+import Prelude
4+
5+import React.Basic (JSX)
6+import Yoga.React.DOM.Internal (class IsJSX)
7+import Data.Function.Uncurried (runFn4)
8+import HeroUI.Internal (class CoerceHeroProps, createElementTransformImpl)
9+import HeroUI.Raw as Raw
10+
11+data AnimationType = None | Pulse | Shimmer
12+
13+derive instance Eq AnimationType
14+derive instance Ord AnimationType
15+
16+animationTypeToString :: AnimationType -> String
17+animationTypeToString = case _ of
18+ None -> "none"
19+ Pulse -> "pulse"
20+ Shimmer -> "shimmer"
21+
22+type SkeletonProps r = (animationType :: AnimationType, className :: String | r)
23+
24+skeleton
25+ :: forall givenProps nonDataProps kids
26+ . IsJSX kids
27+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | SkeletonProps () }
28+ => { | givenProps }
29+ -> kids
30+ -> JSX
31+skeleton props kids = runFn4 createElementTransformImpl { animationType: animationTypeToString } Raw.skeleton props kids
src/HeroUI/Spinner.pursnew file+53
@@ -0,0 +1,53 @@
1+module HeroUI.Spinner where
2+
3+import Prelude
4+
5+import React.Basic (JSX)
6+import Yoga.React.DOM.Internal (class IsJSX)
7+import Data.Function.Uncurried (runFn4)
8+import HeroUI.Internal (class CoerceHeroProps, createElementTransformImpl)
9+import HeroUI.Raw as Raw
10+
11+data Color = Accent | Current | Success | Warning | Danger
12+
13+derive instance Eq Color
14+derive instance Ord Color
15+
16+colorToString :: Color -> String
17+colorToString = case _ of
18+ Accent -> "accent"
19+ Current -> "current"
20+ Success -> "success"
21+ Warning -> "warning"
22+ Danger -> "danger"
23+
24+data Size = Sm | Md | Lg | Xl
25+
26+derive instance Eq Size
27+derive instance Ord Size
28+
29+sizeToString :: Size -> String
30+sizeToString = case _ of
31+ Sm -> "sm"
32+ Md -> "md"
33+ Lg -> "lg"
34+ Xl -> "xl"
35+
36+type SpinnerProps r =
37+ ( color :: Color
38+ , size :: Size
39+ , className :: String
40+ | r
41+ )
42+
43+spinnerTransforms :: { color :: Color -> String, size :: Size -> String }
44+spinnerTransforms = { color: colorToString, size: sizeToString }
45+
46+spinner
47+ :: forall givenProps nonDataProps kids
48+ . IsJSX kids
49+ => CoerceHeroProps { | givenProps } { | nonDataProps } { | SpinnerProps () }
50+ => { | givenProps }
51+ -> kids
52+ -> JSX
53+spinner props kids = runFn4 createElementTransformImpl spinnerTransforms Raw.spinner props kids
src/HeroUI/Types.pursnew file+42
@@ -0,0 +1,42 @@
1+module HeroUI.Types where
2+
3+import Prelude
4+
5+-- | The semantic colour palette shared by HeroUI v3 components that expose a
6+-- | `color` prop (Chip, Avatar, Badge, ...). Components whose colour set
7+-- | differs (e.g. Spinner adds `current`) declare their own enum.
8+data Color = Default | Accent | Success | Warning | Danger
9+
10+derive instance Eq Color
11+derive instance Ord Color
12+
13+colorToString :: Color -> String
14+colorToString = case _ of
15+ Default -> "default"
16+ Accent -> "accent"
17+ Success -> "success"
18+ Warning -> "warning"
19+ Danger -> "danger"
20+
21+-- | The `sm | md | lg` size scale shared by most components. Components with a
22+-- | wider scale (e.g. Spinner adds `xl`) declare their own enum.
23+data Size = Sm | Md | Lg
24+
25+derive instance Eq Size
26+derive instance Ord Size
27+
28+sizeToString :: Size -> String
29+sizeToString = case _ of
30+ Sm -> "sm"
31+ Md -> "md"
32+ Lg -> "lg"
33+
34+data Orientation = Horizontal | Vertical
35+
36+derive instance Eq Orientation
37+derive instance Ord Orientation
38+
39+orientationToString :: Orientation -> String
40+orientationToString = case _ of
41+ Horizontal -> "horizontal"
42+ Vertical -> "vertical"
vite.config.jsnew file+5
@@ -0,0 +1,5 @@
1+import tailwindcss from "@tailwindcss/vite";
2+
3+export default {
4+ plugins: [tailwindcss()],
5+};
yoga-stories-head.jsnew file+1
@@ -0,0 +1 @@
1+import "./heroui-styles.css"
yoga-stories.jsonnew file+5
@@ -0,0 +1,5 @@
1+{
2+ "outputDir": "./output",
3+ "include": ["HeroUI.**.Stories"],
4+ "exclude": []
5+}