Compare commits

...

2 Commits

7 changed files with 58 additions and 42 deletions
+30 -34
View File
@@ -26,56 +26,54 @@
* ```
*/
declare module '$env/static/private' {
export const _ZO_DOCTOR: string;
export const VSCODE_CRASH_REPORTER_PROCESS_TYPE: string;
export const VSCODE_GIT_IPC_AUTH_TOKEN: string;
export const TERM_PROGRAM: string;
export const NODE: string;
export const TERM: string;
export const SHELL: string;
export const VSCODE_PROCESS_TITLE: string;
export const TMPDIR: string;
export const HOMEBREW_REPOSITORY: string;
export const MallocNanoZone: string;
export const TMPDIR: string;
export const TERM_PROGRAM_VERSION: string;
export const ZDOTDIR: string;
export const CURSOR_TRACE_ID: string;
export const NO_COLOR: string;
export const MallocNanoZone: string;
export const npm_config_local_prefix: string;
export const USER: string;
export const COMMAND_MODE: string;
export const SSH_AUTH_SOCK: string;
export const VSCODE_PROFILE_INITIALIZED: string;
export const __CF_USER_TEXT_ENCODING: string;
export const npm_execpath: string;
export const PATH: string;
export const npm_package_json: string;
export const _: string;
export const USER_ZDOTDIR: string;
export const __CFBundleIdentifier: string;
export const npm_command: string;
export const PWD: string;
export const VSCODE_HANDLES_UNCAUGHT_ERRORS: string;
export const npm_lifecycle_event: string;
export const VSCODE_ESM_ENTRYPOINT: string;
export const npm_package_name: string;
export const CURSOR_AGENT: string;
export const LANG: string;
export const VSCODE_GIT_ASKPASS_EXTRA_ARGS: string;
export const XPC_FLAGS: string;
export const FORCE_COLOR: string;
export const npm_package_version: string;
export const XPC_SERVICE_NAME: string;
export const VSCODE_INJECTION: string;
export const SHLVL: string;
export const HOME: string;
export const VSCODE_NLS_CONFIG: string;
export const CI: string;
export const VSCODE_GIT_ASKPASS_MAIN: string;
export const HOMEBREW_PREFIX: string;
export const LOGNAME: string;
export const npm_lifecycle_script: string;
export const VSCODE_IPC_HOOK: string;
export const VSCODE_CODE_CACHE_PATH: string;
export const VSCODE_GIT_IPC_HANDLE: string;
export const npm_config_user_agent: string;
export const VSCODE_PID: string;
export const VSCODE_GIT_ASKPASS_NODE: string;
export const GIT_ASKPASS: string;
export const INFOPATH: string;
export const HOMEBREW_CELLAR: string;
export const OSLogRateLimit: string;
export const VSCODE_L10N_BUNDLE_LOCATION: string;
export const VSCODE_CWD: string;
export const npm_node_execpath: string;
export const COLORTERM: string;
export const NODE_ENV: string;
}
@@ -106,56 +104,54 @@ declare module '$env/static/public' {
*/
declare module '$env/dynamic/private' {
export const env: {
_ZO_DOCTOR: string;
VSCODE_CRASH_REPORTER_PROCESS_TYPE: string;
VSCODE_GIT_IPC_AUTH_TOKEN: string;
TERM_PROGRAM: string;
NODE: string;
TERM: string;
SHELL: string;
VSCODE_PROCESS_TITLE: string;
TMPDIR: string;
HOMEBREW_REPOSITORY: string;
MallocNanoZone: string;
TMPDIR: string;
TERM_PROGRAM_VERSION: string;
ZDOTDIR: string;
CURSOR_TRACE_ID: string;
NO_COLOR: string;
MallocNanoZone: string;
npm_config_local_prefix: string;
USER: string;
COMMAND_MODE: string;
SSH_AUTH_SOCK: string;
VSCODE_PROFILE_INITIALIZED: string;
__CF_USER_TEXT_ENCODING: string;
npm_execpath: string;
PATH: string;
npm_package_json: string;
_: string;
USER_ZDOTDIR: string;
__CFBundleIdentifier: string;
npm_command: string;
PWD: string;
VSCODE_HANDLES_UNCAUGHT_ERRORS: string;
npm_lifecycle_event: string;
VSCODE_ESM_ENTRYPOINT: string;
npm_package_name: string;
CURSOR_AGENT: string;
LANG: string;
VSCODE_GIT_ASKPASS_EXTRA_ARGS: string;
XPC_FLAGS: string;
FORCE_COLOR: string;
npm_package_version: string;
XPC_SERVICE_NAME: string;
VSCODE_INJECTION: string;
SHLVL: string;
HOME: string;
VSCODE_NLS_CONFIG: string;
CI: string;
VSCODE_GIT_ASKPASS_MAIN: string;
HOMEBREW_PREFIX: string;
LOGNAME: string;
npm_lifecycle_script: string;
VSCODE_IPC_HOOK: string;
VSCODE_CODE_CACHE_PATH: string;
VSCODE_GIT_IPC_HANDLE: string;
npm_config_user_agent: string;
VSCODE_PID: string;
VSCODE_GIT_ASKPASS_NODE: string;
GIT_ASKPASS: string;
INFOPATH: string;
HOMEBREW_CELLAR: string;
OSLogRateLimit: string;
VSCODE_L10N_BUNDLE_LOCATION: string;
VSCODE_CWD: string;
npm_node_execpath: string;
COLORTERM: string;
NODE_ENV: string;
[key: `PUBLIC_${string}`]: undefined;
[key: `${string}`]: string | undefined;
+2 -2
View File
@@ -21,10 +21,10 @@ export const options = {
service_worker: false,
service_worker_options: undefined,
templates: {
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n " + head + "\n </head>\n <body data-sveltekit-preload-data=\"hover\">\n <div style=\"display: contents\">" + body + "</div>\n </body>\n</html>\n",
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <link rel=\"icon\" href=\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' rx='4' fill='%231e293b'/><text x='16' y='22' font-size='18' font-family='system-ui' fill='%2394a3b8' text-anchor='middle'>S</text></svg>\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n " + head + "\n </head>\n <body data-sveltekit-preload-data=\"hover\">\n <div style=\"display: contents\">" + body + "</div>\n </body>\n</html>\n",
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
},
version_hash: "1cw4viz"
version_hash: "6si2m4"
};
export async function get_hooks() {
+1 -1
View File
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' rx='4' fill='%231e293b'/><text x='16' y='22' font-size='18' font-family='system-ui' fill='%2394a3b8' text-anchor='middle'>S</text></svg>" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
%sveltekit.head%
</head>
+21 -1
View File
@@ -2,4 +2,24 @@ import PocketBase from "pocketbase";
const POCKETBASE_URL = "https://pocketbase.ccllc.pro";
export const pb = new PocketBase(POCKETBASE_URL);
/** Base URL for API/file URLs; safe to use during SSR. */
export const POCKETBASE_BASE_URL = POCKETBASE_URL;
let _pb: PocketBase | null = null;
/** PocketBase client — only created in the browser to avoid fetch during SSR. */
export function getPb(): PocketBase {
if (typeof window === "undefined") {
throw new Error("PocketBase client is only available in the browser. Use load/actions for server data.");
}
if (!_pb) _pb = new PocketBase(POCKETBASE_URL);
return _pb;
}
/** Lazy client proxy: baseUrl is safe during SSR; other access creates the client in the browser only. */
export const pb = new Proxy({} as PocketBase, {
get(_, prop) {
if (prop === "baseUrl") return POCKETBASE_BASE_URL;
return (getPb() as Record<string, unknown>)[prop as string];
},
});
+2 -1
View File
@@ -1,6 +1,8 @@
<script lang="ts">
import { browser } from "$app/environment";
import { Button } from "$lib/components/ui/button";
let { data }: { data: { itemsForParent: { id: string; Item: string; SKU: string }[] } } = $props();
</script>
{#if browser}
@@ -14,7 +16,6 @@
{:else}
<main class="flex min-h-screen flex-col items-center justify-center gap-6 p-8">
<h1 class="text-2xl font-semibold">Stackq</h1>
<p class="text-muted-foreground">Svelte 5 + shadcn-svelte + PocketBase</p>
<div class="flex w-full max-w-xs flex-col gap-2">
<a href="/items" class="block">
<Button class="w-full">Items table</Button>
-1
View File
@@ -21,7 +21,6 @@
<main class="flex min-h-screen flex-col items-center justify-center gap-6 p-8">
<h1 class="text-2xl font-semibold">Stackq</h1>
<p class="text-muted-foreground">Svelte 5 + shadcn-svelte + PocketBase</p>
<div class="flex w-full max-w-xs flex-col gap-2">
<a href="/items" class="block">
<Button class="w-full">Items table</Button>
+2 -2
View File
@@ -4,13 +4,13 @@
import { Label } from "$lib/components/ui/label";
import { enhance } from "$app/forms";
import { Camera, X } from "@lucide/svelte";
import { pb } from "$lib/pocketbase";
import { POCKETBASE_BASE_URL } from "$lib/pocketbase";
import { UOM_OPTIONS, CATAGORY_OPTIONS, SUB_CATAGORY_OPTIONS } from "$lib/constants/items";
import type { StackqItem } from "$lib/types/items";
const COLLECTION = "Stackq_Items";
function itemImageUrl(recordId: string, filename: string): string {
return `${pb.baseUrl}/api/files/${COLLECTION}/${recordId}/${filename}`;
return `${POCKETBASE_BASE_URL}/api/files/${COLLECTION}/${recordId}/${filename}`;
}
let {