From fd544459e483fab629f9295f7665ee5063219fb0 Mon Sep 17 00:00:00 2001 From: Omer Sabic Date: Mon, 6 May 2024 18:54:27 +0200 Subject: [PATCH] :) --- package-lock.json | 39 ++++- package.json | 3 +- src/lib/components/molecules/probadge.svelte | 5 +- .../components/molecules/tooltipbutton.svelte | 5 +- src/lib/components/ui/switch/index.js | 6 + src/lib/components/ui/switch/switch.svelte | 24 +++ src/lib/components/ui/textarea/index.js | 6 + .../components/ui/textarea/textarea.svelte | 29 ++++ src/lib/config.js | 2 +- src/routes/(app)/+layout.svelte | 37 ++--- src/routes/(app)/articles/+page.server.js | 3 +- src/routes/(app)/articles/+page.svelte | 141 ++++-------------- .../(app)/articles/createArticleDialog.svelte | 120 +++++++++++++++ .../(app)/articles/editArticleDialog.svelte | 55 +++++++ .../(app)/articles/getArticleBody/+server.js | 11 ++ src/routes/(app)/articles/schema.js | 12 +- src/routes/(app)/emails/+page.server.js | 13 ++ src/routes/(app)/emails/+page.svelte | 45 ++++++ src/routes/(auth)/auth/+page.server.js | 2 +- src/routes/site/[site_id]/+page.server.js | 45 ++++++ src/routes/site/[site_id]/+page.svelte | 27 ++++ .../[site_id]/[article_id]/+page.server.js | 14 ++ .../site/[site_id]/[article_id]/+page.svelte | 10 ++ src/routes/site/[site_id]/schema.js | 7 + src/routes/site/[site_id]/store.js | 3 + 25 files changed, 515 insertions(+), 149 deletions(-) create mode 100644 src/lib/components/ui/switch/index.js create mode 100644 src/lib/components/ui/switch/switch.svelte create mode 100644 src/lib/components/ui/textarea/index.js create mode 100644 src/lib/components/ui/textarea/textarea.svelte create mode 100644 src/routes/(app)/articles/createArticleDialog.svelte create mode 100644 src/routes/(app)/articles/editArticleDialog.svelte create mode 100644 src/routes/(app)/articles/getArticleBody/+server.js create mode 100644 src/routes/(app)/emails/+page.server.js create mode 100644 src/routes/(app)/emails/+page.svelte create mode 100644 src/routes/site/[site_id]/+page.server.js create mode 100644 src/routes/site/[site_id]/+page.svelte create mode 100644 src/routes/site/[site_id]/[article_id]/+page.server.js create mode 100644 src/routes/site/[site_id]/[article_id]/+page.svelte create mode 100644 src/routes/site/[site_id]/schema.js create mode 100644 src/routes/site/[site_id]/store.js diff --git a/package-lock.json b/package-lock.json index 9aa1958..a39c00d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,11 +8,12 @@ "name": "front-end", "version": "0.0.1", "dependencies": { - "bits-ui": "^0.21.4", + "bits-ui": "^0.21.7", "clsx": "^2.1.1", "formsnap": "^1.0.0", "lucide-svelte": "^0.373.0", "mode-watcher": "^0.3.0", + "svelte-markdown": "^0.4.1", "svelte-radix": "^1.1.0", "svelte-sonner": "^0.3.22", "sveltekit-superforms": "^2.12.6", @@ -953,6 +954,11 @@ "optional": true, "peer": true }, + "node_modules/@types/marked": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-5.0.2.tgz", + "integrity": "sha512-OucS4KMHhFzhz27KxmWg7J+kIYqyqoW5kdIEI319hqARQQUTqhao3M/F+uFnDXD0Rg72iDDZxZNxq5gvctmLlg==" + }, "node_modules/@types/pug": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", @@ -1124,9 +1130,9 @@ } }, "node_modules/bits-ui": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.4.tgz", - "integrity": "sha512-IL+7s19GW561jwkeYk23dwkTfQ9606I062qqv2AtjCdhhIdoOEJNVBX0kjP5xefSaS6ojL0HGG54att0aRTcAQ==", + "version": "0.21.7", + "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.7.tgz", + "integrity": "sha512-1PKp90ly1R6jexIiAUj1Dk4u2pln7ok+L8Vc0rHMY7pi7YZvadFNZvkp1G5BtmL8qh2xsn4MVNgKjPAQMCxW0A==", "dependencies": { "@internationalized/date": "^3.5.1", "@melt-ui/svelte": "0.76.2", @@ -1136,7 +1142,7 @@ "url": "https://github.com/sponsors/huntabyte" }, "peerDependencies": { - "svelte": "^4.0.0" + "svelte": "^4.0.0 || ^5.0.0-next.118" } }, "node_modules/bits-ui/node_modules/nanoid": { @@ -1950,6 +1956,17 @@ "@jridgewell/sourcemap-codec": "^1.4.15" } }, + "node_modules/marked": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.2.tgz", + "integrity": "sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 16" + } + }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", @@ -2974,6 +2991,18 @@ "svelte": "^3.19.0 || ^4.0.0" } }, + "node_modules/svelte-markdown": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/svelte-markdown/-/svelte-markdown-0.4.1.tgz", + "integrity": "sha512-pOlLY6EruKJaWI9my/2bKX8PdTeP5CM0s4VMmwmC2prlOkjAf+AOmTM4wW/l19Y6WZ87YmP8+ZCJCCwBChWjYw==", + "dependencies": { + "@types/marked": "^5.0.1", + "marked": "^5.1.2" + }, + "peerDependencies": { + "svelte": "^4.0.0" + } + }, "node_modules/svelte-preprocess": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz", diff --git a/package.json b/package.json index d01d9ff..0060353 100644 --- a/package.json +++ b/package.json @@ -29,11 +29,12 @@ }, "type": "module", "dependencies": { - "bits-ui": "^0.21.4", + "bits-ui": "^0.21.7", "clsx": "^2.1.1", "formsnap": "^1.0.0", "lucide-svelte": "^0.373.0", "mode-watcher": "^0.3.0", + "svelte-markdown": "^0.4.1", "svelte-radix": "^1.1.0", "svelte-sonner": "^0.3.22", "sveltekit-superforms": "^2.12.6", diff --git a/src/lib/components/molecules/probadge.svelte b/src/lib/components/molecules/probadge.svelte index 0184d9a..44998f1 100644 --- a/src/lib/components/molecules/probadge.svelte +++ b/src/lib/components/molecules/probadge.svelte @@ -1,4 +1,7 @@ -PRO \ No newline at end of file +PRO \ No newline at end of file diff --git a/src/lib/components/molecules/tooltipbutton.svelte b/src/lib/components/molecules/tooltipbutton.svelte index 4fcf4e0..a1bfa12 100644 --- a/src/lib/components/molecules/tooltipbutton.svelte +++ b/src/lib/components/molecules/tooltipbutton.svelte @@ -5,11 +5,14 @@ export let tip = ""; export let variant = ""; export let size = ""; + let className = ""; + + export {className as class}; - +

{tip}

diff --git a/src/lib/components/ui/switch/index.js b/src/lib/components/ui/switch/index.js new file mode 100644 index 0000000..7745ca3 --- /dev/null +++ b/src/lib/components/ui/switch/index.js @@ -0,0 +1,6 @@ +import Root from "./switch.svelte"; +export { + Root, + // + Root as Switch, +}; diff --git a/src/lib/components/ui/switch/switch.svelte b/src/lib/components/ui/switch/switch.svelte new file mode 100644 index 0000000..461dbc2 --- /dev/null +++ b/src/lib/components/ui/switch/switch.svelte @@ -0,0 +1,24 @@ + + + + + diff --git a/src/lib/components/ui/textarea/index.js b/src/lib/components/ui/textarea/index.js new file mode 100644 index 0000000..4e396e1 --- /dev/null +++ b/src/lib/components/ui/textarea/index.js @@ -0,0 +1,6 @@ +import Root from "./textarea.svelte"; +export { + Root, + // + Root as Textarea, +}; diff --git a/src/lib/components/ui/textarea/textarea.svelte b/src/lib/components/ui/textarea/textarea.svelte new file mode 100644 index 0000000..7403ee2 --- /dev/null +++ b/src/lib/components/ui/textarea/textarea.svelte @@ -0,0 +1,29 @@ + + + diff --git a/src/lib/config.js b/src/lib/config.js index 4335536..ba0a39d 100644 --- a/src/lib/config.js +++ b/src/lib/config.js @@ -1,3 +1,3 @@ export const config = { - api_url: "http://api.omersabic.com:3001" + api_url: "http://localhost:3000" } \ No newline at end of file diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index f383714..b248b00 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -14,10 +14,18 @@ import { Button } from '$lib/components/ui/button/index.js'; import { ModeWatcher, toggleMode } from 'mode-watcher'; - import { Toaster } from "$lib/components/ui/sonner"; + import { Toaster } from '$lib/components/ui/sonner'; /** @type {import('./$types').LayoutServerData} */ export let data; + + const navs = [ + { name: 'Dashboard', redirect: '/' }, + { name: 'Articles', redirect: '/articles' }, + { name: 'Emails', redirect: '/emails' }, + { name: 'Website', redirect: '##' }, + { name: 'Analytics', redirect: '##' }, + ]; @@ -32,19 +40,9 @@ {data.me.user.name} - Dashboard - - Articles - - - Emails - - - Website - - - Analytics - + {#each navs as nav} + {nav.name} + {/each} @@ -59,12 +57,9 @@ {data.me.user.name} - Dashboard - Articles - Products - Customers - Analytics - + {#each navs as nav} + {nav.name} + {/each}