From 13def89a906bf4c83d54a1c08d62daf21d707c36 Mon Sep 17 00:00:00 2001 From: Arno V Date: Thu, 20 Jun 2024 09:12:31 +0200 Subject: [PATCH] docs: add minimal example for implicit flow --- examples/implicit-flow/index.html | 19 ++ examples/implicit-flow/nodemon.json | 11 + examples/implicit-flow/package.json | 19 ++ examples/implicit-flow/postcss.config.js | 6 + examples/implicit-flow/rsbuild.config.ts | 48 ++++ examples/implicit-flow/src/index.css | 16 ++ examples/implicit-flow/src/index.tsx | 15 ++ examples/implicit-flow/src/main.tsx | 78 +++++++ examples/implicit-flow/src/vite-env.d.ts | 1 + examples/implicit-flow/tailwind.config.js | 7 + examples/implicit-flow/tsconfig.json | 25 +++ examples/implicit-flow/tsconfig.node.json | 11 + pnpm-lock.yaml | 255 ++++++++++++++++++++++ pnpm-workspace.yaml | 1 + 14 files changed, 512 insertions(+) create mode 100644 examples/implicit-flow/index.html create mode 100644 examples/implicit-flow/nodemon.json create mode 100644 examples/implicit-flow/package.json create mode 100644 examples/implicit-flow/postcss.config.js create mode 100644 examples/implicit-flow/rsbuild.config.ts create mode 100644 examples/implicit-flow/src/index.css create mode 100644 examples/implicit-flow/src/index.tsx create mode 100644 examples/implicit-flow/src/main.tsx create mode 100644 examples/implicit-flow/src/vite-env.d.ts create mode 100644 examples/implicit-flow/tailwind.config.js create mode 100644 examples/implicit-flow/tsconfig.json create mode 100644 examples/implicit-flow/tsconfig.node.json diff --git a/examples/implicit-flow/index.html b/examples/implicit-flow/index.html new file mode 100644 index 0000000..ce8b36c --- /dev/null +++ b/examples/implicit-flow/index.html @@ -0,0 +1,19 @@ + + + + + + + + Implicit Flow + + + + + + + +
+ + + diff --git a/examples/implicit-flow/nodemon.json b/examples/implicit-flow/nodemon.json new file mode 100644 index 0000000..aa14570 --- /dev/null +++ b/examples/implicit-flow/nodemon.json @@ -0,0 +1,11 @@ +{ + "watch": [ + "tailwind.config.js", + "src/**/*.*", + "../../packages/ui-components/src/**/*.*", + "../../packages/ui-components/lib/**/*.*", + "../../packages/ui-styles/src/**/*.*", + "../../packages/ui-form/src/**/*.*", + "../../packages/ui-icons/src/**/*.*" + ] +} diff --git a/examples/implicit-flow/package.json b/examples/implicit-flow/package.json new file mode 100644 index 0000000..5689255 --- /dev/null +++ b/examples/implicit-flow/package.json @@ -0,0 +1,19 @@ +{ + "name": "@versini/example-with-vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "clean": "rimraf dist", + "dev": "rsbuild dev", + "lint": "biome lint src" + }, + "dependencies": { + "@versini/auth-provider": "workspace:../../packages/auth-provider", + "@versini/ui-components": "5.19.5", + "@versini/ui-styles": "1.9.2", + "@versini/ui-system": "1.4.1", + "react": "18.3.1", + "react-dom": "18.3.1" + } +} diff --git a/examples/implicit-flow/postcss.config.js b/examples/implicit-flow/postcss.config.js new file mode 100644 index 0000000..7b75c83 --- /dev/null +++ b/examples/implicit-flow/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/examples/implicit-flow/rsbuild.config.ts b/examples/implicit-flow/rsbuild.config.ts new file mode 100644 index 0000000..b2f7d90 --- /dev/null +++ b/examples/implicit-flow/rsbuild.config.ts @@ -0,0 +1,48 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import fs from "fs-extra"; + +const packageJson = fs.readJSONSync("package.json"); + +const buildTime = new Date() + .toLocaleString("en-US", { + timeZone: "America/New_York", + timeZoneName: "short", + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + }) + .replace(/,/g, ""); + +export default defineConfig({ + source: { + entry: { + index: "./src/index.tsx", + }, + define: { + "import.meta.env.BUILDTIME": JSON.stringify(buildTime), + "import.meta.env.BUILDVERSION": JSON.stringify(packageJson.version), + }, + }, + output: { + polyfill: "off", + cleanDistPath: true, + distPath: { + root: "./dist", + }, + }, + html: { + template: "./index.html", + }, + server: { + host: "macmini.gizmette.local.com", + port: 5173, + https: { + key: process.env.SSL_KEY, + cert: process.env.SSL_CERT, + }, + }, + plugins: [pluginReact()], +}); diff --git a/examples/implicit-flow/src/index.css b/examples/implicit-flow/src/index.css new file mode 100644 index 0000000..2b89ab8 --- /dev/null +++ b/examples/implicit-flow/src/index.css @@ -0,0 +1,16 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@media (prefers-color-scheme: light) { + html, + body { + background-color: white; + } +} +@media (prefers-color-scheme: dark) { + html, + body { + background-color: rgb(100 116 139); + } +} diff --git a/examples/implicit-flow/src/index.tsx b/examples/implicit-flow/src/index.tsx new file mode 100644 index 0000000..cc90ec6 --- /dev/null +++ b/examples/implicit-flow/src/index.tsx @@ -0,0 +1,15 @@ +import "./index.css"; + +import React from "react"; +import ReactDOM from "react-dom/client"; + +import { AuthProvider } from "@versini/auth-provider"; +import { App } from "./main.tsx"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + , +); diff --git a/examples/implicit-flow/src/main.tsx b/examples/implicit-flow/src/main.tsx new file mode 100644 index 0000000..b383b8b --- /dev/null +++ b/examples/implicit-flow/src/main.tsx @@ -0,0 +1,78 @@ +import { useAuth } from "@versini/auth-provider"; +import { Button, Header, Main } from "@versini/ui-components"; +import { Flexgrid, FlexgridItem } from "@versini/ui-system"; +import * as React from "react"; + +export const App: React.FC = () => { + const { login, logout, isAuthenticated } = useAuth(); + + const handleValidLogin = async (e: { preventDefault: () => void }) => { + e.preventDefault(); + const response = await login( + process.env.PUBLIC_TEST_USER as string, + process.env.PUBLIC_TEST_USER_PASSWORD as string, + ); + if (!response) { + console.error(`==> [${Date.now()}] : `, "Login failed"); + } else { + console.info(`==> [${Date.now()}] : `, "Login successful"); + console.info(`==> [${Date.now()}] : `, response); + } + }; + + const handleInvalidLogin = async (e: { preventDefault: () => void }) => { + e.preventDefault(); + const response = await login( + process.env.PUBLIC_TEST_USER as string, + "invalid-password", + ); + if (!response) { + console.error(`==> [${Date.now()}] : `, "Login failed"); + } else { + console.info(`==> [${Date.now()}] : `, "Login successful"); + console.info(`==> [${Date.now()}] : `, response); + } + }; + + return ( +
+
+

Implicit Flow

+
+
+ + + + + + + + + + +

State

+
{JSON.stringify(useAuth(), null, 2)}
+
+
+ ); +}; diff --git a/examples/implicit-flow/src/vite-env.d.ts b/examples/implicit-flow/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/examples/implicit-flow/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/implicit-flow/tailwind.config.js b/examples/implicit-flow/tailwind.config.js new file mode 100644 index 0000000..7c21365 --- /dev/null +++ b/examples/implicit-flow/tailwind.config.js @@ -0,0 +1,7 @@ +/** @type {import('tailwindcss').Config} */ + +import { twPlugin } from "@versini/ui-styles"; + +export default twPlugin.merge({ + content: ["./src/**/*.{js,ts,jsx,tsx}"], +}); diff --git a/examples/implicit-flow/tsconfig.json b/examples/implicit-flow/tsconfig.json new file mode 100644 index 0000000..aca4895 --- /dev/null +++ b/examples/implicit-flow/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/examples/implicit-flow/tsconfig.node.json b/examples/implicit-flow/tsconfig.node.json new file mode 100644 index 0000000..1caabef --- /dev/null +++ b/examples/implicit-flow/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true + }, + "include": ["vite.config.ts"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0dfe1c..558acf7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,6 +18,27 @@ importers: specifier: 1.3.0 version: 1.3.0 + examples/implicit-flow: + dependencies: + '@versini/auth-provider': + specifier: workspace:../../packages/auth-provider + version: link:../../packages/auth-provider + '@versini/ui-components': + specifier: 5.19.5 + version: 5.19.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@versini/ui-styles': + specifier: 1.9.2 + version: 1.9.2 + '@versini/ui-system': + specifier: 1.4.1 + version: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: 18.3.1 + version: 18.3.1 + react-dom: + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + packages/auth-common: {} packages/auth-provider: @@ -469,6 +490,39 @@ packages: cpu: [x64] os: [win32] + '@floating-ui/core@1.6.2': + resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==} + + '@floating-ui/dom@1.6.5': + resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==} + + '@floating-ui/react-dom@2.1.0': + resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.13': + resolution: {integrity: sha512-kBa9wntpugzrZ8t/4yWelvSmEKZdeTXTJzrxqyrLmcU/n1SM4nvse8yQh2e1b37rJGvtu0EplV9+IkBrCJ1vkw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.14': + resolution: {integrity: sha512-I2EhfezC+H0WfkMEkCcF9+++PU1Wq08bDKhHHGIoBZVCciiftEQHgrSI4dTUTsa7446SiIVW0gWATliIlVNgfg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.16': + resolution: {integrity: sha512-HEf43zxZNAI/E781QIVpYSF3K2VH4TTYZpqecjdsFkjsaU1EbaWcM++kw0HXFffj7gDUcBFevX8s0rQGQpxkow==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.2': + resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} + '@hutson/parse-repository-url@3.0.2': resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} @@ -1047,6 +1101,11 @@ packages: '@swc/types@0.1.8': resolution: {integrity: sha512-RNFA3+7OJFNYY78x0FYwi1Ow+iF1eF5WvmfY1nXPOEH4R2p/D4Cr1vzje7dNAI2aLFqpv8Wyz4oKSWqIZArpQA==} + '@tailwindcss/typography@0.5.13': + resolution: {integrity: sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + '@testing-library/dom@10.1.0': resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} engines: {node: '>=18'} @@ -1227,12 +1286,57 @@ packages: '@versini/dev-dependencies-types@1.3.0': resolution: {integrity: sha512-q8QGvr7xyat3ZY+gmQHNiRxDh/r0sTPGPZmf2JsjYXtKgmSM6i8Ew2KexSgWFGM4w+4jQIHydLAn7Vr08kRczQ==} + '@versini/ui-components@5.19.5': + resolution: {integrity: sha512-oATeOqlnPdq5RRdch4Tq+iDvzVcEaeLWBfkzHWJB+gHScyfhVQAIzibZS1OM/6QyLsFIaEgzesaBvYRyES9PMA==} + peerDependencies: + react: ^18.3.1 + react-dom: ^18.3.1 + + '@versini/ui-hooks@2.2.1': + resolution: {integrity: sha512-Uz8qf9Yhre/xW33kQ3fIZj7H95NQZOhh2Ymyu0lHjuyJ2uzk8SSkUd9iWeaG6bc1QZd968UsHcIXhw0dbi5Hmg==} + peerDependencies: + react: ^18.3.1 + react-dom: ^18.3.1 + '@versini/ui-hooks@3.0.0': resolution: {integrity: sha512-/iaLQrehnZFwi/j7by4X3V4G0L9Tw+anlzQq10Bln1OAZP23XlA/GuLZYyvqY0gaMFL0TSNoT084bhEyn+LWbA==} peerDependencies: react: ^18.3.1 react-dom: ^18.3.1 + '@versini/ui-icons@1.8.2': + resolution: {integrity: sha512-aZ9Qj5DoB/UjrA8pE82sNmi0c7vhI5I98l9r8+lcDoG82NiEvqbp+IveJydr9Qc7DVDsddBigDTIZKTibs3Rcg==} + peerDependencies: + react: ^18.3.1 + react-dom: ^18.3.1 + + '@versini/ui-private@1.4.3': + resolution: {integrity: sha512-GDVqUvpbyf/LqQPsVXlZ1wEXoPTFMiVoFIX0nmrq4g3v2i9MpPZ26QD25sHX767L/TFc2bidOyKOX9O3ehIXSg==} + peerDependencies: + react: ^18.3.1 + react-dom: ^18.3.1 + + '@versini/ui-private@1.4.4': + resolution: {integrity: sha512-W/jayYzIN0BInGKJF/6hXTiJ6RRePGautUj5IdIXeKpp7KtOzWyqkX2uUx/S1+BW9aMxXaKfwHeIglvcVhw9Tw==} + peerDependencies: + react: ^18.3.1 + react-dom: ^18.3.1 + + '@versini/ui-private@1.4.5': + resolution: {integrity: sha512-VO2N1eI/YR6/pth7F5Ywn0Lw3nLQnCiJ83IUo1dn6qzzeMXtT467xKJZy+QCk9e2vHepLEzEKnLah86Y/LzNhQ==} + peerDependencies: + react: ^18.3.1 + react-dom: ^18.3.1 + + '@versini/ui-styles@1.9.2': + resolution: {integrity: sha512-rK+u+vD3SLxcdbxW/7h42P8hGUr1pKstUHrgRxofPBqquBxrJMARg4XBsab4YrF0tGBVUhxDEKbQIipphbDd0w==} + + '@versini/ui-system@1.4.1': + resolution: {integrity: sha512-LamTmzgsoFpqfxoYqK0D0GVkT5wmewwXgmp++9h3rRp6df2dcudS+4JPB1JwIcKqoocEUaBYd6wnRzhcPVHv3g==} + peerDependencies: + react: ^18.3.1 + react-dom: ^18.3.1 + '@vitejs/plugin-react-swc@3.7.0': resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} peerDependencies: @@ -1653,6 +1757,10 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + cmd-shim@6.0.1: resolution: {integrity: sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2843,6 +2951,9 @@ packages: lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} @@ -2855,6 +2966,12 @@ packages: lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} @@ -3505,6 +3622,10 @@ packages: peerDependencies: postcss: ^8.2.14 + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + postcss-selector-parser@6.1.0: resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} @@ -4094,6 +4215,9 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + tailwindcss@3.4.3: resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} engines: {node: '>=14.0.0'} @@ -4883,6 +5007,47 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true + '@floating-ui/core@1.6.2': + dependencies: + '@floating-ui/utils': 0.2.2 + + '@floating-ui/dom@1.6.5': + dependencies: + '@floating-ui/core': 1.6.2 + '@floating-ui/utils': 0.2.2 + + '@floating-ui/react-dom@2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.6.5 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/react@0.26.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.2.0 + + '@floating-ui/react@0.26.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.2.0 + + '@floating-ui/react@0.26.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.2.0 + + '@floating-ui/utils@0.2.2': {} + '@hutson/parse-repository-url@3.0.2': {} '@isaacs/cliui@8.0.2': @@ -5573,6 +5738,14 @@ snapshots: dependencies: '@swc/counter': 0.1.3 + '@tailwindcss/typography@0.5.13(tailwindcss@3.4.3)': + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.3 + '@testing-library/dom@10.1.0': dependencies: '@babel/code-frame': 7.24.7 @@ -5857,12 +6030,79 @@ snapshots: '@types/uuid': 9.0.8 '@types/yargs': 17.0.32 + '@versini/ui-components@5.19.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react': 0.26.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tailwindcss/typography': 0.5.13(tailwindcss@3.4.3) + '@versini/ui-hooks': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@versini/ui-icons': 1.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@versini/ui-private': 1.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tailwindcss: 3.4.3 + transitivePeerDependencies: + - ts-node + + '@versini/ui-hooks@2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@versini/ui-hooks@3.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) usehooks-ts: 3.1.0(react@18.3.1) + '@versini/ui-icons@1.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@versini/ui-private': 1.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@versini/ui-private@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react': 0.26.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@versini/ui-hooks': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@versini/ui-private@1.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react': 0.26.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@versini/ui-hooks': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@versini/ui-private@1.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react': 0.26.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@versini/ui-hooks': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@versini/ui-styles@1.9.2': + dependencies: + '@tailwindcss/typography': 0.5.13(tailwindcss@3.4.3) + culori: 4.0.1 + tailwindcss: 3.4.3 + transitivePeerDependencies: + - ts-node + + '@versini/ui-system@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@versini/ui-private': 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tailwindcss: 3.4.3 + transitivePeerDependencies: + - ts-node + '@vitejs/plugin-react-swc@3.7.0(@swc/helpers@0.5.3)(vite@5.2.12(@types/node@20.14.1))': dependencies: '@swc/core': 1.5.29(@swc/helpers@0.5.3) @@ -6364,6 +6604,8 @@ snapshots: clone@1.0.4: {} + clsx@2.1.1: {} + cmd-shim@6.0.1: {} color-convert@1.9.3: @@ -7763,6 +8005,8 @@ snapshots: lodash-es@4.17.21: {} + lodash.castarray@4.4.0: {} + lodash.debounce@4.0.8: {} lodash.get@4.4.2: {} @@ -7771,6 +8015,10 @@ snapshots: lodash.ismatch@4.4.0: {} + lodash.isplainobject@4.0.6: {} + + lodash.merge@4.6.2: {} + lodash.sortby@4.7.0: {} lodash@4.17.21: {} @@ -8533,6 +8781,11 @@ snapshots: postcss: 8.4.38 postcss-selector-parser: 6.1.0 + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-selector-parser@6.1.0: dependencies: cssesc: 3.0.0 @@ -9111,6 +9364,8 @@ snapshots: symbol-tree@3.2.4: {} + tabbable@6.2.0: {} + tailwindcss@3.4.3: dependencies: '@alloc/quick-lru': 5.2.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 924b55f..e535fd3 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,3 @@ packages: - packages/* + - examples/*