From be6bc867fe5730b9954cce828a349cd1bfacbd88 Mon Sep 17 00:00:00 2001 From: Julien Nahum Date: Thu, 19 Oct 2023 10:46:04 +0200 Subject: [PATCH] WIP --- package-lock.json | 214 +++++++++--------- package.json | 2 +- resources/js/app.js | 2 +- resources/js/components/App.vue | 1 - resources/js/components/Modal.vue | 4 +- resources/js/components/forms/TextInput.vue | 108 ++++----- .../components/forms/components/InputHelp.vue | 21 ++ .../forms/components/InputLabel.vue | 22 ++ resources/js/components/forms/useFormInput.js | 74 ++++++ resources/js/pages/home.vue | 43 ++-- resources/js/pages/welcome.vue | 105 +++++---- resources/js/plugins/amplitude.js | 30 +-- resources/js/plugins/index.js | 16 +- resources/js/plugins/vue-plugins.js | 9 - resources/js/router/index.js | 2 +- vite.config.js | 3 +- 16 files changed, 394 insertions(+), 262 deletions(-) create mode 100644 resources/js/components/forms/components/InputHelp.vue create mode 100644 resources/js/components/forms/components/InputLabel.vue create mode 100644 resources/js/components/forms/useFormInput.js delete mode 100644 resources/js/plugins/vue-plugins.js diff --git a/package-lock.json b/package-lock.json index 808b933..9862954 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "vue-confetti": "^2.3.0", "vue-country-flag-next": "^2.3.2", "vue-i18n": "^8.25.0", - "vue-meta": "^2.4.0", + "vue-meta": "^3.0.0-alpha.2", "vue-notion": "^3.0.0-beta.1", "vue-router": "^4.2.5", "vue-signature-pad": "^2.0.5", @@ -2238,9 +2238,9 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -2314,14 +2314,14 @@ } }, "node_modules/@sentry-internal/tracing": { - "version": "7.74.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.74.0.tgz", - "integrity": "sha512-JK6IRGgdtZjswGfaGIHNWIThffhOHzVIIaGmglui+VFIzOsOqePjoxaDV0MEvzafxXZD7eWqGE5RGuZ0n6HFVg==", + "version": "7.74.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.74.1.tgz", + "integrity": "sha512-nNaiZreQxCitG2PzYPaC7XtyA9OMsETGYMKAtiK4p62/uTmeYbsBva9BoNx1XeiHRwbrVQYRMKQ9nV5e2jS4/A==", "dev": true, "dependencies": { - "@sentry/core": "7.74.0", - "@sentry/types": "7.74.0", - "@sentry/utils": "7.74.0", + "@sentry/core": "7.74.1", + "@sentry/types": "7.74.1", + "@sentry/utils": "7.74.1", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -2422,12 +2422,12 @@ } }, "node_modules/@sentry/core": { - "version": "7.74.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.74.0.tgz", - "integrity": "sha512-83NRuqn7nDZkSVBN5yJQqcpXDG4yMYiB7TkYUKrGTzBpRy6KUOrkCdybuKk0oraTIGiGSe5WEwCFySiNgR9FzA==", + "version": "7.74.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.74.1.tgz", + "integrity": "sha512-LvEhOSfdIvwkr+PdlrT/aA/iOLhkXrSkvjqAQyogE4ddCWeYfS0NoirxNt1EaxMBAWKhYZRqzkA7WA4LDLbzlA==", "dependencies": { - "@sentry/types": "7.74.0", - "@sentry/utils": "7.74.0", + "@sentry/types": "7.74.1", + "@sentry/utils": "7.74.1", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -2473,13 +2473,13 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@sentry/integrations": { - "version": "7.74.0", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.74.0.tgz", - "integrity": "sha512-O4UyxiV5wzXSDnEd9Z/SIt/5M12URWNtIJPPJjowlllzw8X9e3zBcnXmjMOLZ+mZWjQmRDjOoz3lPPQ17f7fvw==", + "version": "7.74.1", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.74.1.tgz", + "integrity": "sha512-Q7chPehHpHB4WOQ1J/X6NiN2ptiqJMmxtL+6wHumzIAyrjup3c9XekR83qEs8zpqYJAlb/4MUlwd9fPbkhGXnQ==", "dependencies": { - "@sentry/core": "7.74.0", - "@sentry/types": "7.74.0", - "@sentry/utils": "7.74.0", + "@sentry/core": "7.74.1", + "@sentry/types": "7.74.1", + "@sentry/utils": "7.74.1", "localforage": "^1.8.1", "tslib": "^2.4.1 || ^1.9.3" }, @@ -2514,15 +2514,15 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@sentry/node": { - "version": "7.74.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.74.0.tgz", - "integrity": "sha512-uBmW2/z0cz/WFIG74ZF7lSipO0XNzMf9yrdqnZXnGDYsUZE4I4QiqDN0hNi6fkTgf9MYRC8uFem2OkAvyPJ74Q==", + "version": "7.74.1", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.74.1.tgz", + "integrity": "sha512-aMUQ2LFZF64FBr+cgjAqjT4OkpYBIC9lyWI8QqjEHqNho5+LGu18/iVrJPD4fgs4UhGdCuAiQjpC36MbmnIDZA==", "dev": true, "dependencies": { - "@sentry-internal/tracing": "7.74.0", - "@sentry/core": "7.74.0", - "@sentry/types": "7.74.0", - "@sentry/utils": "7.74.0", + "@sentry-internal/tracing": "7.74.1", + "@sentry/core": "7.74.1", + "@sentry/types": "7.74.1", + "@sentry/utils": "7.74.1", "cookie": "^0.5.0", "https-proxy-agent": "^5.0.0", "lru_map": "^0.3.3", @@ -2573,19 +2573,19 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@sentry/types": { - "version": "7.74.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.74.0.tgz", - "integrity": "sha512-rI5eIRbUycWjn6s6o3yAjjWtIvYSxZDdnKv5je2EZINfLKcMPj1dkl6wQd2F4y7gLfD/N6Y0wZYIXC3DUdJQQg==", + "version": "7.74.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.74.1.tgz", + "integrity": "sha512-2jIuPc+YKvXqZETwr2E8VYnsH1zsSUR/wkIvg1uTVeVNyoowJv+YsOtCdeGyL2AwiotUBSPKu7O1Lz0kq5rMOQ==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.74.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.74.0.tgz", - "integrity": "sha512-k3np8nuTPtx5KDODPtULfFln4UXdE56MZCcF19Jv6Ljxf+YN/Ady1+0Oi3e0XoSvFpWNyWnglauT7M65qCE6kg==", + "version": "7.74.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.74.1.tgz", + "integrity": "sha512-qUsqufuHYcy5gFhLZslLxA5kcEOkkODITXW3c7D+x+8iP/AJqa8v8CeUCVNS7RetHCuIeWAbbTClC4c411EwQg==", "dependencies": { - "@sentry/types": "7.74.0", + "@sentry/types": "7.74.1", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -2692,9 +2692,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.44.4", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.4.tgz", - "integrity": "sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA==", + "version": "8.44.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.6.tgz", + "integrity": "sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==", "dev": true, "peer": true, "dependencies": { @@ -2703,9 +2703,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.5.tgz", - "integrity": "sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==", + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.6.tgz", + "integrity": "sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ==", "dev": true, "peer": true, "dependencies": { @@ -2714,16 +2714,16 @@ } }, "node_modules/@types/estree": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", - "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz", + "integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==", "dev": true, "peer": true }, "node_modules/@types/imagemin": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.2.tgz", - "integrity": "sha512-RcyM00BFTQQ5oFv88APJu4VFnm6xwtLEUiy2Z+lM8lay2NVwVAFetr1Koop1DNnwX+ZGKUgU4v8eZS8MsBEttg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.3.tgz", + "integrity": "sha512-se/hpaYxu5DyvPqmUEwbupmbQSx6JNislk0dkoIgWSmArkj+Ow9pGG9pGz8MRmbQDfGNYNzqwPQKHCUy+K+jpQ==", "dev": true, "dependencies": { "@types/node": "*" @@ -2739,18 +2739,18 @@ } }, "node_modules/@types/imagemin-jpegtran": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/imagemin-jpegtran/-/imagemin-jpegtran-5.0.2.tgz", - "integrity": "sha512-Ov/wC42m+1Hgui9h4aXflLRUE+Sloqb8W2xQ0IF2oLfOVulGTwB7cgjDsdwIPvSnmsYIVJ0t5IYCmmURwlnFHA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/imagemin-jpegtran/-/imagemin-jpegtran-5.0.3.tgz", + "integrity": "sha512-5qqqWK20Y+hlCbqlyksInmZ4km112SGLYb3FForSKj4f5URubrww19hsZ5ZaV+LskIi4P1px5xrdF6oOTFnkAg==", "dev": true, "dependencies": { "@types/imagemin": "*" } }, "node_modules/@types/imagemin-optipng": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.2.tgz", - "integrity": "sha512-BaKY+jrzKaFM3mPc0pUwfJOhoZAu9ZfMOmcKt4EXsmtqGm9otu9y+xJUmaZ/N60dJOTGZypOByXLAUyjsXEVeA==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.3.tgz", + "integrity": "sha512-Q80ANbJYn+WgKkWVfx9f7/q4LR6qun4NIiuV1eRWCg8KCAmNrU7ZH16a2hGs9kfkFqyJlhBv6oV9SDXe1vL3aQ==", "dev": true, "dependencies": { "@types/imagemin": "*" @@ -2767,9 +2767,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", + "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", "dev": true }, "node_modules/@types/json5": { @@ -2779,29 +2779,29 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.8.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", - "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "version": "20.8.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", + "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", "dev": true, "dependencies": { "undici-types": "~5.25.1" } }, "node_modules/@types/q": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.6.tgz", - "integrity": "sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ==", + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.7.tgz", + "integrity": "sha512-HBPgtzp44867rkL+IzQ3560/E/BlobwCjeXsuKqogrcE99SKgZR4tvBBCuNJZMhUFMz26M7cjKWZg785lllwpA==", "dev": true }, "node_modules/@types/sortablejs": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.3.tgz", - "integrity": "sha512-v+zh6TZP/cLeMUK0MDx1onp8e7Jk2/4iTQ7sb/n80rTAvBm14yJkpOEfJdrTCkHiF7IZbPjxGX2NRJfogRoYIg==" + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.4.tgz", + "integrity": "sha512-7oL7CcPSfoyoNx3Ba1+79ykJzpEKVhHUyfAiN5eT/FoeDXOR3eBDLXf9ndDNuxaExmjpI+zVi2dMMuaoXUOzNA==" }, "node_modules/@types/source-list-map": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.3.tgz", - "integrity": "sha512-I9R/7fUjzUOyDy6AFkehCK711wWoAXEaBi80AfjZt1lIkbe6AcXKd3ckQc3liMvQExWvfOeh/8CtKzrfUFN5gA==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.4.tgz", + "integrity": "sha512-Kdfm7Sk5VX8dFW7Vbp18+fmAatBewzBILa1raHYxrGEFXT0jNl9x3LWfuW7bTbjEKFNey9Dfkj/UzT6z/NvRlg==", "dev": true }, "node_modules/@types/svgo": { @@ -2815,15 +2815,15 @@ } }, "node_modules/@types/tapable": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.9.tgz", - "integrity": "sha512-fOHIwZua0sRltqWzODGUM6b4ffZrf/vzGUmNXdR+4DzuJP42PMbM5dLKcdzlYvv8bMJ3GALOzkk1q7cDm2zPyA==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.10.tgz", + "integrity": "sha512-q8F20SdXG5fdVJQ5yxsVlH+f+oekP42QeHv4s5KlrxTMT0eopXn7ol1rhxMcksf8ph7XNv811iVDE2hOpUvEPg==", "dev": true }, "node_modules/@types/uglify-js": { - "version": "3.17.2", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.2.tgz", - "integrity": "sha512-9SjrHO54LINgC/6Ehr81NjAxAYvwEZqjUHLjJYvC4Nmr9jbLQCIZbWSvl4vXQkkmR1UAuaKDycau3O1kWGFyXQ==", + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.3.tgz", + "integrity": "sha512-ToldSfJ6wxO21cakcz63oFD1GjqQbKzhZCD57eH7zWuYT5UEZvfUoqvrjX5d+jB9g4a/sFO0n6QSVzzn5sMsjg==", "dev": true, "dependencies": { "source-map": "^0.6.1" @@ -2835,9 +2835,9 @@ "integrity": "sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==" }, "node_modules/@types/webpack": { - "version": "4.41.34", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.34.tgz", - "integrity": "sha512-CN2aOGrR3zbMc2v+cKqzaClYP1ldkpPOgtdNvgX+RmlWCSWxHxpzz6WSCVQZRkF8D60ROlkRzAoEpgjWQ+bd2g==", + "version": "4.41.35", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.35.tgz", + "integrity": "sha512-XRC6HLGHtNfN8/xWeu1YUQV1GSE+28q8lSqvcJ+0xt/zW9Wmn4j9pCSvaXPyRlCKrl5OuqECQNEJUy2vo8oWqg==", "dev": true, "dependencies": { "@types/node": "*", @@ -2849,9 +2849,9 @@ } }, "node_modules/@types/webpack-sources": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.1.tgz", - "integrity": "sha512-iLC3Fsx62ejm3ST3PQ8vBMC54Rb3EoCprZjeJGI5q+9QjfDLGt9jeg/k245qz1G9AQnORGk0vqPicJFPT1QODQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.2.tgz", + "integrity": "sha512-acCzhuVe+UJy8abiSFQWXELhhNMZjQjQKpLNEi1pKGgKXZj0ul614ATcx4kkhunPost6Xw+aCq8y8cn1/WwAiA==", "dev": true, "dependencies": { "@types/node": "*", @@ -4598,9 +4598,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001549", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz", - "integrity": "sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==", + "version": "1.0.30001551", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001551.tgz", + "integrity": "sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==", "dev": true, "funding": [ { @@ -5503,6 +5503,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -5715,9 +5716,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.554", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz", - "integrity": "sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ==", + "version": "1.4.559", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.559.tgz", + "integrity": "sha512-iS7KhLYCSJbdo3rUSkhDTVuFNCV34RKs2UaB9Ecr7VlqzjjWW//0nfsFF5dtDmyXlZQaDYYtID5fjtC/6lpRug==", "dev": true }, "node_modules/emoji-regex": { @@ -9153,9 +9154,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.10.47", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.47.tgz", - "integrity": "sha512-b4t7VQDV29xx/ni+58yl9KWPGjnDLDXCeCTLrD4V8vDpObXZRZBrg7uX/HWZ7YXiJKqdBDGgc+barUUTNB6Slw==" + "version": "1.10.48", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.48.tgz", + "integrity": "sha512-Vvcgt4+o8+puIBJZLdMshPYx9nRN3/kTT7HPtOyfYrSQuN9PGBF1KUv0g07fjNzt4E4GuA7FnsLb+WeAMzyRQg==" }, "node_modules/lie": { "version": "3.1.1", @@ -11632,9 +11633,9 @@ } }, "node_modules/sass": { - "version": "1.69.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.3.tgz", - "integrity": "sha512-X99+a2iGdXkdWn1akFPs0ZmelUzyAQfvqYc2P/MPTrJRuIRoTffGzT9W9nFqG00S+c8hXzVmgxhUuHFdrwxkhQ==", + "version": "1.69.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.4.tgz", + "integrity": "sha512-+qEreVhqAy8o++aQfCJwp0sklr2xyEzkm9Pp/Igu9wNPoe7EZEQ8X/MBvvXggI2ql607cxKg/RKOwDj6pp2XDA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -13005,9 +13006,9 @@ } }, "node_modules/terser": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.21.0.tgz", - "integrity": "sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.22.0.tgz", + "integrity": "sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==", "dev": true, "peer": true, "dependencies": { @@ -13697,9 +13698,9 @@ } }, "node_modules/vite": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", - "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", "dev": true, "dependencies": { "esbuild": "^0.18.10", @@ -13873,9 +13874,9 @@ "integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA==" }, "node_modules/vue-loader": { - "version": "15.10.2", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.2.tgz", - "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==", + "version": "15.11.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz", + "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==", "dev": true, "dependencies": { "@vue/component-compiler-utils": "^3.1.0", @@ -13901,11 +13902,12 @@ } }, "node_modules/vue-meta": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-2.4.0.tgz", - "integrity": "sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw==", - "dependencies": { - "deepmerge": "^4.2.2" + "version": "3.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-3.0.0-alpha.2.tgz", + "integrity": "sha512-mLDB/vGjn2Q58IFKs5Dtp/STWZ0sEbkdM67u+YXuMreK5EjNHnqhcylQb+xn50pwxCdQD98nGgJlEXkh16Hqug==", + "peerDependencies": { + "@vue/server-renderer": "^3.0.6", + "vue": "^3.0.0" } }, "node_modules/vue-notion": { diff --git a/package.json b/package.json index feb5c40..dd71849 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "vue-confetti": "^2.3.0", "vue-country-flag-next": "^2.3.2", "vue-i18n": "^8.25.0", - "vue-meta": "^2.4.0", + "vue-meta": "^3.0.0-alpha.2", "vue-notion": "^3.0.0-beta.1", "vue-router": "^4.2.5", "vue-signature-pad": "^2.0.5", diff --git a/resources/js/app.js b/resources/js/app.js index 2ece41a..ab197d7 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -2,8 +2,8 @@ import { createApp, configureCompat, ref } from 'vue' import store from '~/store' import router from '~/router' import App from '~/components/App.vue' -import registerPlugin from './plugins/vue-plugins' import Base from './base.js' +import registerPlugin from './plugins' import '~/plugins' import '~/components' diff --git a/resources/js/components/App.vue b/resources/js/components/App.vue index b045e0e..41485d2 100644 --- a/resources/js/components/App.vue +++ b/resources/js/components/App.vue @@ -31,7 +31,6 @@ -
diff --git a/resources/js/components/Modal.vue b/resources/js/components/Modal.vue index 8c6f0de..2f34a1b 100644 --- a/resources/js/components/Modal.vue +++ b/resources/js/components/Modal.vue @@ -1,5 +1,5 @@ diff --git a/resources/js/components/forms/components/InputHelp.vue b/resources/js/components/forms/components/InputHelp.vue new file mode 100644 index 0000000..6a359c3 --- /dev/null +++ b/resources/js/components/forms/components/InputHelp.vue @@ -0,0 +1,21 @@ + + + diff --git a/resources/js/components/forms/components/InputLabel.vue b/resources/js/components/forms/components/InputLabel.vue new file mode 100644 index 0000000..227b10e --- /dev/null +++ b/resources/js/components/forms/components/InputLabel.vue @@ -0,0 +1,22 @@ + + + diff --git a/resources/js/components/forms/useFormInput.js b/resources/js/components/forms/useFormInput.js new file mode 100644 index 0000000..12238a0 --- /dev/null +++ b/resources/js/components/forms/useFormInput.js @@ -0,0 +1,74 @@ +import { ref, computed, watch, defineEmits } from 'vue' +import { themes } from '~/config/form-themes.js' + +export const inputProps = { + id: { type: String, default: null }, + name: { type: String, required: true }, + label: { type: String, required: false }, + form: { type: Object, required: false }, + value: { required: false }, + required: { type: Boolean, default: false }, + disabled: { type: Boolean, default: false }, + placeholder: { type: String, default: null }, + uppercaseLabels: { type: Boolean, default: false }, + help: { type: String, default: null }, + helpPosition: { type: String, default: 'below_input' }, + theme: { type: Object, default: () => themes.default }, + color: { type: String, default: '#3B82F6' }, + wrapperClass: { type: String, default: 'relative mb-3' } +} + +export function useFormInput (props) { + const content = ref(props.modelValue) + + const inputStyle = computed(() => { + return { + '--tw-ring-color': props.color + } + }) + + const hasValidation = computed(() => { + return props.form !== null && props.form !== undefined && props.form.hasOwnProperty('errors') + }) + + const hasError = computed(() => { + return hasValidation && props.form?.errors.has(name) + }) + + const compVal = computed({ + get: () => { + if (props.form) { + return props.form[props.name] + } + return content.value + }, + set: (val) => { + if (props.form) { + props.form[props.name] = val + } else { + content.value = val + } + + if (hasValidation.value) { + props.form.errors.clear(props.name) + } + + defineEmits('update:modelValue', compVal.value) + } + }) + + // Watch for changes in props.modelValue and update the local content + watch( + () => props.modelValue, + (newValue) => { + content.value = newValue + } + ) + + return { + compVal, + inputStyle, + hasValidation, + hasError + } +} diff --git a/resources/js/pages/home.vue b/resources/js/pages/home.vue index 5424c22..3f147a1 100644 --- a/resources/js/pages/home.vue +++ b/resources/js/pages/home.vue @@ -1,6 +1,6 @@