diff --git a/custom_ui/commands.py b/custom_ui/commands.py index 3a6cf21..aebb741 100644 --- a/custom_ui/commands.py +++ b/custom_ui/commands.py @@ -2,7 +2,7 @@ import click import os import subprocess import frappe -from custom_ui.utils import create_module +from custom_ui.utils import create_module, create_customer_info_doctype @click.command("build-frontend") @click.option("--site", default=None, help="Site to build frontend for") @@ -54,5 +54,10 @@ def build_frontend(site): def create_module_command(): create_module() click.echo("✅ Custom UI module created or already exists.") - -commands = [build_frontend, create_module_command] \ No newline at end of file + +@click.command("create-customer-info-doctype") +def create_customer_info_doctype_command(): + create_customer_info_doctype() + click.echo("✅ Customer Info doctype created or already exists.") + +commands = [build_frontend, create_module_command, create_customer_info_doctype_command] \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 42ead5f..fd24066 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,9 +9,11 @@ "version": "0.0.0", "dependencies": { "@iconoir/vue": "^7.11.0", + "@primeuix/themes": "^1.2.5", "axios": "^1.12.2", "frappe-ui": "^0.1.205", "pinia": "^3.0.3", + "primevue": "^4.4.1", "vue": "^3.5.22", "vue-router": "^4.6.3" }, @@ -744,6 +746,74 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@primeuix/styled": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@primeuix/styled/-/styled-0.7.4.tgz", + "integrity": "sha512-QSO/NpOQg8e9BONWRBx9y8VGMCMYz0J/uKfNJEya/RGEu7ARx0oYW0ugI1N3/KB1AAvyGxzKBzGImbwg0KUiOQ==", + "license": "MIT", + "dependencies": { + "@primeuix/utils": "^0.6.1" + }, + "engines": { + "node": ">=12.11.0" + } + }, + "node_modules/@primeuix/styles": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@primeuix/styles/-/styles-1.2.5.tgz", + "integrity": "sha512-nypFRct/oaaBZqP4jinT0puW8ZIfs4u+l/vqUFmJEPU332fl5ePj6DoOpQgTLzo3OfmvSmz5a5/5b4OJJmmi7Q==", + "license": "MIT", + "dependencies": { + "@primeuix/styled": "^0.7.3" + } + }, + "node_modules/@primeuix/themes": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@primeuix/themes/-/themes-1.2.5.tgz", + "integrity": "sha512-n3YkwJrHQaEESc/D/A/iD815sxp8cKnmzscA6a8Tm8YvMtYU32eCahwLLe6h5rywghVwxASWuG36XBgISYOIjQ==", + "license": "MIT", + "dependencies": { + "@primeuix/styled": "^0.7.3" + } + }, + "node_modules/@primeuix/utils": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@primeuix/utils/-/utils-0.6.1.tgz", + "integrity": "sha512-tQL/ZOPgCdD+NTimlUmhyD0ey8J1XmpZE4hDHM+/fnuBicVVmlKOd5HpS748LcOVRUKbWjmEPdHX4hi5XZoC1Q==", + "license": "MIT", + "engines": { + "node": ">=12.11.0" + } + }, + "node_modules/@primevue/core": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@primevue/core/-/core-4.4.1.tgz", + "integrity": "sha512-RG56iDKIJT//EtntjQzOiWOHZZJczw/qWWtdL5vFvw8/QDS9DPKn8HLpXK7N5Le6KK1MLXUsxoiGTZK+poUFUg==", + "license": "MIT", + "dependencies": { + "@primeuix/styled": "^0.7.4", + "@primeuix/utils": "^0.6.1" + }, + "engines": { + "node": ">=12.11.0" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@primevue/icons": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@primevue/icons/-/icons-4.4.1.tgz", + "integrity": "sha512-UfDimrIjVdY6EziwieyV4zPKzW6mnKHKhy4Dgyjv2oI6pNeuim+onbJo1ce22PEGXW78vfblG/3/JIzVHFweqQ==", + "license": "MIT", + "dependencies": { + "@primeuix/utils": "^0.6.1", + "@primevue/core": "4.4.1" + }, + "engines": { + "node": ">=12.11.0" + } + }, "node_modules/@remirror/core-constants": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", @@ -3528,6 +3598,22 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/primevue": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/primevue/-/primevue-4.4.1.tgz", + "integrity": "sha512-JbHBa5k30pZ7mn/z4vYBOnyt5GrR15eM3X0wa3VanonxnFLYkTEx8OMh33aU6ndWeOfi7Ef57dOL3bTH+3f4hQ==", + "license": "MIT", + "dependencies": { + "@primeuix/styled": "^0.7.4", + "@primeuix/styles": "^1.2.5", + "@primeuix/utils": "^0.6.1", + "@primevue/core": "4.4.1", + "@primevue/icons": "4.4.1" + }, + "engines": { + "node": ">=12.11.0" + } + }, "node_modules/prosemirror-changeset": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 989af67..ceaf44d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,9 +10,11 @@ }, "dependencies": { "@iconoir/vue": "^7.11.0", + "@primeuix/themes": "^1.2.5", "axios": "^1.12.2", "frappe-ui": "^0.1.205", "pinia": "^3.0.3", + "primevue": "^4.4.1", "vue": "^3.5.22", "vue-router": "^4.6.3" }, diff --git a/frontend/src/App.vue b/frontend/src/App.vue index bf5e583..2b00a0a 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -25,10 +25,13 @@ import SideBar from "./components/SideBar.vue"; #snw-ui { display: flex; flex-direction: row; - border: 1px solid black; + border-radius: 10px; + padding: 10px; + border: 4px solid rgb(235, 230, 230); max-width: 1280px; min-width: 800px; - margin: 0 auto; + margin: 10px auto; + height: 80vh; } #display-content { diff --git a/frontend/src/components/SideBar.vue b/frontend/src/components/SideBar.vue index 064242c..83c9000 100644 --- a/frontend/src/components/SideBar.vue +++ b/frontend/src/components/SideBar.vue @@ -82,5 +82,6 @@ const handleCategoryClick = (category) => { background-color: #f3f3f3; padding: 10px; border-radius: 5px; + margin-top: 10px; }