From 5ecefbdc064efe42b3e465b36bc654f161477dc9 Mon Sep 17 00:00:00 2001 From: Aymeric Rabot Date: Thu, 26 Feb 2026 22:09:40 -0500 Subject: [PATCH] Feat/ux round 3 (#124) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Tree: add isLast prop & draw connectors Introduce an optional isLast prop across all site panel tree node components and TreeNode so children know when they're the last sibling. TreeNodeWrapper now renders vertical and horizontal connector lines (adjusted by depth and isLast) and keeps the toggle button clickable (z-index). Children are passed isLast when mapped, so the UI can stop the vertical line for final siblings. Also bump several deps in apps/editor package.json and update the lockfile accordingly. * chore: clean up monorepo dependencies and update packages Move app/library dependencies out of root package.json into their respective workspaces. Root now only contains monorepo tooling (turbo, biome, supabase CLI, typescript, portless, ultracite). Updates: - next 16.1.0 → 16.1.6 - drizzle-orm ^0.39.0 → ^0.45.1 - drizzle-kit ^0.30.0 → ^0.31.9 - drizzle-zod ^0.5.1 → ^0.8.3 - three-bvh-csg ^0.0.17 → ^0.0.18 - supabase 2.75.3 → 2.76.15 - typescript 5.9.2 → 5.9.3 (all workspaces) Co-Authored-By: Claude Opus 4.6 * Use semantic theme tokens and enable dark mode Replace hardcoded zinc color classes with semantic design tokens (text-muted-foreground, text-foreground, border, bg-background, bg-border) across the action menu, camera controls, control modes, and view toggles for consistent theming. Update separators and borders to use bg-border/border-border. Add useEffect in the editor root to add/remove the 'dark' class on document.body and apply 'dark text-foreground' to the root container so the UI renders in dark mode; also import useEffect. * Persistable sidebar width & resizer Introduce a zustand store to persist sidebar width (key: `sidebar-preferences`) and track dragging state. Default width is 288px (18rem) and is clamped between 288 and 800px. Wire the store into SidebarProvider to drive the CSS variable for width and expose a data-dragging attribute. Add a SidebarResizer component that handles pointer events to resize the sidebar, toggles dragging state, updates cursor/user-select, and disables transitions while dragging. Small class and structure adjustments ensure the resizer is rendered and resizing behaves smoothly. * Editor: floating action menu, selection/phase tweaks Add a FloatingActionMenu (move/duplicate/delete) that attaches to selected 3D nodes and integrates with editor/viewer state; includes new cursor SVG and layout wrapper to use the custom cursor. Improve selection and phase behavior: auto-select first building+level on scene load (moved/centralized in project scene hook and editor init), add resolveBuildingId helper, and enhance SelectionManager to auto-switch between structure/furnish based on clicked nodes and to preserve building/level context when changing selection. Update sidebar tree node click handlers to switch phases for structural vs item nodes and stop hiding nodes by phase (keep tree items visible across phases). Add keyboard escape behavior to clear selections while keeping building/level context and reset selected reference. Misc: register unified event listeners for selection, position floating menu over objects using three.js Box3, and various small integration fixes. * Add SceneLoader, loading states & editor fixes Add a SceneLoader component and associated CSS loader styles and wire it into Editor, Viewer and page-level flows so a loading UI displays while project/scene data loads. Replace useLayoutEffect in editor page with a client-mounted useEffect guard to avoid hydration issues. Introduce isSceneLoading state and setter in the project store and set/clear it in useProjectScene; include sceneGraph when creating a new project and clear the scene beforehand. Other changes: type-guard moving/duplicating logic in FloatingActionMenu and remove duplicated id on clones; refactor auto-selection logic for site/building/level and auto-select build/wall for empty levels in editor index and useProjectScene; optimize ZoneSystem to run per-frame (useFrame) and reduce unnecessary updates to visibility/label positions; add animated active background for layer toggle (motion) in site panel; add keyboard shortcuts to jump between levels (Ctrl/Cmd+ArrowUp/Down); simplify community-hub project-created handler to navigate straight to editor. These changes improve UX during load, enforce safer node operations, and optimize runtime rendering. * Improve selection logic and refine UI components Multiple editor and viewer updates: - Selection: enhance selection-manager to support modifier (Meta/Ctrl) multi-select, compute next selection logic, track modifier keys, prevent grid deselect races, and add debug logs. Adapted selection handlers throughout scene/editor components to pass native events and modifier state. - Sidebar / Site panel: refactor site panel to inline a LevelReferences UI (replacing the removed references dialog). Add upload flow for scan (.glb/.gltf) and guide images, handling file size/type checks, project asset upload/delete calls, and per-level reference lists. Add MultiSelectionBadge for showing/clearing multi-selection and animated expand/collapse for levels. Several tree-node components now use a shared handleTreeSelection helper and propagate click events properly. - UI polish & icons: change dark theme color tokens for better contrast; increase button sizes and icon sizes across action menus; swap some lucide icons for image assets (rotate, topview, select, build, mesh, floorplan, level, etc.) and add new public icons. - PascalRadio: replace popover with a framer-motion expandable panel, add outside-click handling, animated transitions, and minor UI tweaks. - Other: minor viewer hook/selection-manager updates and tweaks to control modes and view toggles to support image icons and consistent sizing. These changes improve multi-select reliability, user interactions in the sidebar, and overall visual polish with new icons and animations. * Fix TypeScript build errors in selection-manager and scene-loader Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- apps/editor/app/editor/[projectId]/layout.tsx | 6 +- apps/editor/app/editor/[projectId]/page.tsx | 16 +- apps/editor/app/globals.css | 98 ++- apps/editor/app/viewer/[id]/page.tsx | 31 +- .../editor/floating-action-menu.tsx | 141 ++++ apps/editor/components/editor/index.tsx | 48 +- .../components/editor/selection-manager.tsx | 206 +++++- apps/editor/components/pascal-radio.tsx | 178 +++-- .../components/systems/zone/zone-system.tsx | 28 +- .../ui/action-menu/camera-actions.tsx | 32 +- .../ui/action-menu/control-modes.tsx | 37 +- .../components/ui/action-menu/index.tsx | 12 +- .../ui/action-menu/view-toggles.tsx | 24 +- .../components/ui/primitives/sidebar.tsx | 80 ++- apps/editor/components/ui/scene-loader.tsx | 40 ++ .../panels/site-panel/building-tree-node.tsx | 8 +- .../panels/site-panel/ceiling-tree-node.tsx | 20 +- .../panels/site-panel/door-tree-node.tsx | 19 +- .../ui/sidebar/panels/site-panel/index.tsx | 655 +++++++++++++----- .../panels/site-panel/item-tree-node.tsx | 20 +- .../panels/site-panel/level-tree-node.tsx | 8 +- .../panels/site-panel/references-dialog.tsx | 265 ------- .../panels/site-panel/roof-tree-node.tsx | 19 +- .../panels/site-panel/slab-tree-node.tsx | 19 +- .../sidebar/panels/site-panel/tree-node.tsx | 201 ++++-- .../panels/site-panel/wall-tree-node.tsx | 20 +- .../panels/site-panel/window-tree-node.tsx | 19 +- .../panels/site-panel/zone-tree-node.tsx | 4 +- .../community/components/community-hub.tsx | 6 +- .../components/new-project-dialog.tsx | 8 +- .../features/community/lib/models/hooks.ts | 101 ++- .../features/community/lib/projects/store.ts | 7 + apps/editor/hooks/use-keyboard.ts | 34 + apps/editor/package.json | 32 +- apps/editor/public/cursor.svg | 3 + apps/editor/public/icons/build.png | Bin 0 -> 100524 bytes apps/editor/public/icons/rotate.png | Bin 0 -> 80125 bytes apps/editor/public/icons/select.png | Bin 0 -> 86878 bytes apps/editor/public/icons/topview.png | Bin 0 -> 98159 bytes bun.lock | 300 ++++---- package.json | 18 +- packages/auth/package.json | 2 +- packages/core/package.json | 4 +- packages/db/package.json | 8 +- packages/ui/package.json | 2 +- packages/viewer/package.json | 2 +- .../components/viewer/selection-manager.tsx | 30 +- packages/viewer/src/hooks/use-node-events.ts | 8 +- 48 files changed, 1866 insertions(+), 953 deletions(-) create mode 100644 apps/editor/components/editor/floating-action-menu.tsx create mode 100644 apps/editor/components/ui/scene-loader.tsx delete mode 100644 apps/editor/components/ui/sidebar/panels/site-panel/references-dialog.tsx create mode 100644 apps/editor/public/cursor.svg create mode 100644 apps/editor/public/icons/build.png create mode 100644 apps/editor/public/icons/rotate.png create mode 100644 apps/editor/public/icons/select.png create mode 100644 apps/editor/public/icons/topview.png diff --git a/apps/editor/app/editor/[projectId]/layout.tsx b/apps/editor/app/editor/[projectId]/layout.tsx index 82f03def..61badebf 100644 --- a/apps/editor/app/editor/[projectId]/layout.tsx +++ b/apps/editor/app/editor/[projectId]/layout.tsx @@ -14,5 +14,9 @@ export default function EditorProjectLayout({ }: Readonly<{ children: React.ReactNode }>) { - return children + return ( +
+ {children} +
+ ) } diff --git a/apps/editor/app/editor/[projectId]/page.tsx b/apps/editor/app/editor/[projectId]/page.tsx index 2a013627..8fa64c75 100644 --- a/apps/editor/app/editor/[projectId]/page.tsx +++ b/apps/editor/app/editor/[projectId]/page.tsx @@ -2,9 +2,10 @@ import Editor from '@/components/editor' import { useParams, useRouter } from 'next/navigation' -import { useLayoutEffect } from 'react' +import { useEffect, useState } from 'react' import { useProjectStore } from '@/features/community/lib/projects/store' import { useAuth } from '@/features/community/lib/auth/hooks' +import { SceneLoader } from '@/components/ui/scene-loader' export default function EditorPage() { const params = useParams() @@ -12,9 +13,14 @@ export default function EditorPage() { const { isAuthenticated, isLoading } = useAuth() const setActiveProject = useProjectStore((state) => state.setActiveProject) const router = useRouter() + const [mounted, setMounted] = useState(false) + + useEffect(() => { + setMounted(true) + }, []) // Use layoutEffect to set active project BEFORE the editor renders and hooks run - useLayoutEffect(() => { + useEffect(() => { if (isLoading) return if (!isAuthenticated) { router.replace('/') @@ -25,7 +31,11 @@ export default function EditorPage() { } }, [projectId, isAuthenticated, isLoading, setActiveProject, router]) - if (isLoading || !isAuthenticated) { + if (!mounted || isLoading) { + return + } + + if (!isAuthenticated) { return null } diff --git a/apps/editor/app/globals.css b/apps/editor/app/globals.css index 1ff450ab..c4c8a77b 100644 --- a/apps/editor/app/globals.css +++ b/apps/editor/app/globals.css @@ -85,7 +85,7 @@ } .dark { - --background: oklch(0.145 0 0); + --background: oklch(0.205 0 0); /* ~171717 */ --foreground: oklch(0.985 0 0); --card: oklch(0.205 0 0); --card-foreground: oklch(0.985 0 0); @@ -97,7 +97,7 @@ --secondary-foreground: oklch(0.985 0 0); --muted: oklch(0.269 0 0); --muted-foreground: oklch(0.708 0 0); - --accent: oklch(0.269 0 0); + --accent: oklch(0.235 0 0); /* slightly lighter than background (0.205) but darker than previous (0.269) */ --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.704 0.191 22.216); --border: oklch(1 0 0 / 10%); @@ -112,7 +112,7 @@ --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent: oklch(0.235 0 0); /* matching accent */ --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(1 0 0 / 10%); --sidebar-ring: oklch(0.556 0 0); @@ -161,3 +161,95 @@ scroll-behavior: auto !important; } } + +/* Loaders */ +.pascal-loader-1 { + width: 45px; + aspect-ratio: 1; + --c:no-repeat linear-gradient(currentColor 0 0); + background: var(--c), var(--c), var(--c); + animation: + pascal-l1-1 1s infinite, + pascal-l1-2 1s infinite; +} +@keyframes pascal-l1-1 { + 0%,100% {background-size:20% 100%} + 33%,66% {background-size:20% 20%} +} +@keyframes pascal-l1-2 { + 0%,33% {background-position: 0 0,50% 50%,100% 100%} + 66%,100% {background-position: 100% 0,50% 50%,0 100%} +} + +.pascal-loader-2 { + width: 45px; + aspect-ratio: .75; + --c: no-repeat linear-gradient(currentColor 0 0); + background: + var(--c) 0% 50%, + var(--c) 50% 50%, + var(--c) 100% 50%; + background-size: 20% 50%; + animation: pascal-l2 1s infinite linear; +} +@keyframes pascal-l2 { + 20% {background-position: 0% 0% ,50% 50% ,100% 50% } + 40% {background-position: 0% 100%,50% 0% ,100% 50% } + 60% {background-position: 0% 50% ,50% 100%,100% 0% } + 80% {background-position: 0% 50% ,50% 50% ,100% 100%} +} + +.pascal-loader-3 { + width: 45px; + aspect-ratio: .75; + --c:no-repeat linear-gradient(currentColor 0 0); + background: + var(--c) 0% 100%, + var(--c) 50% 100%, + var(--c) 100% 100%; + background-size: 20% 65%; + animation: pascal-l3 1s infinite linear; +} +@keyframes pascal-l3 { + 16.67% {background-position: 0% 0% ,50% 100%,100% 100%} + 33.33% {background-position: 0% 0% ,50% 0% ,100% 100%} + 50% {background-position: 0% 0% ,50% 0% ,100% 0% } + 66.67% {background-position: 0% 100%,50% 0% ,100% 0% } + 83.33% {background-position: 0% 100%,50% 100%,100% 0% } +} + +.pascal-loader-4 { + width: 45px; + aspect-ratio: 1; + --c:no-repeat linear-gradient(currentColor 0 0); + background: var(--c), var(--c), var(--c); + animation: + pascal-l4-1 1s infinite, + pascal-l4-2 1s infinite; +} +@keyframes pascal-l4-1 { + 0%,100% {background-size:20% 100%} + 33%,66% {background-size:20% 40%} +} +@keyframes pascal-l4-2 { + 0%,33% {background-position: 0 0,50% 100%,100% 100%} + 66%,100% {background-position: 100% 0,0 100%,50% 100%} +} + +.pascal-loader-5 { + width: 45px; + aspect-ratio: 1; + --c:no-repeat linear-gradient(currentColor 0 0); + background: var(--c), var(--c), var(--c); + animation: + pascal-l5-1 1s infinite, + pascal-l5-2 1s infinite; +} +@keyframes pascal-l5-1 { + 0%,100% {background-size:20% 100%} + 33%,66% {background-size:20% 40%} +} +@keyframes pascal-l5-2 { + 0%,33% {background-position: 0 0 ,50% 100%,100% 0} + 66%,100% {background-position: 0 100%,50% 0 ,100% 100%} +} diff --git a/apps/editor/app/viewer/[id]/page.tsx b/apps/editor/app/viewer/[id]/page.tsx index 74ac18bb..a21f97d3 100644 --- a/apps/editor/app/viewer/[id]/page.tsx +++ b/apps/editor/app/viewer/[id]/page.tsx @@ -14,6 +14,8 @@ import { ViewerGuestCTA } from './viewer-guest-cta' import { ViewerOverlay } from './viewer-overlay' import { ViewerZoneSystem } from './viewer-zone-system' +import { SceneLoader } from '@/components/ui/scene-loader' + export default function ViewerPage() { const params = useParams() const id = params.id as string @@ -90,14 +92,6 @@ export default function ViewerPage() { loadContent() }, [id, setScene]) - if (loading) { - return ( -
-

Loading...

-
- ) - } - if (error) { return (
@@ -108,13 +102,20 @@ export default function ViewerPage() { return (
- - + {loading && } + + {!loading && ( + <> + + + + )} + diff --git a/apps/editor/components/editor/floating-action-menu.tsx b/apps/editor/components/editor/floating-action-menu.tsx new file mode 100644 index 00000000..26f0853d --- /dev/null +++ b/apps/editor/components/editor/floating-action-menu.tsx @@ -0,0 +1,141 @@ +'use client' + +import { type AnyNode, type AnyNodeId, ItemNode, WindowNode, DoorNode, sceneRegistry, useScene } from '@pascal-app/core' +import { useViewer } from '@pascal-app/viewer' +import { Html } from '@react-three/drei' +import { useFrame } from '@react-three/fiber' +import { Copy, Move, Trash2 } from 'lucide-react' +import { useCallback, useRef } from 'react' +import * as THREE from 'three' +import { sfxEmitter } from '@/lib/sfx-bus' +import useEditor from '@/store/use-editor' + +const ALLOWED_TYPES = ['item', 'door', 'window'] + +export function FloatingActionMenu() { + const selectedIds = useViewer((s) => s.selection.selectedIds) + const nodes = useScene((s) => s.nodes) + const deleteNode = useScene((s) => s.deleteNode) + const setMovingNode = useEditor((s) => s.setMovingNode) + const setSelection = useViewer((s) => s.setSelection) + const isEditor = useViewer((state) => state.isEditor) + + const groupRef = useRef(null) + + // Only show for single selection of specific types + const selectedId = selectedIds.length === 1 ? selectedIds[0] : null + const node = selectedId ? nodes[selectedId as AnyNodeId] : null + const isValidType = node ? ALLOWED_TYPES.includes(node.type) : false + + useFrame(() => { + if (!selectedId || !isValidType || !groupRef.current) return + + const obj = sceneRegistry.nodes.get(selectedId) + if (obj) { + // Calculate bounding box in world space + const box = new THREE.Box3().setFromObject(obj) + if (!box.isEmpty()) { + const center = box.getCenter(new THREE.Vector3()) + // Position slightly above the object + groupRef.current.position.set(center.x, box.max.y + 0.3, center.z) + } + } + }) + + const handleMove = useCallback((e: React.MouseEvent) => { + e.stopPropagation() + if (!node) return + sfxEmitter.emit('sfx:item-pick') + if (node.type === 'item' || node.type === 'window' || node.type === 'door') { + setMovingNode(node as any) + } + setSelection({ selectedIds: [] }) + }, [node, setMovingNode, setSelection]) + + const handleDuplicate = useCallback((e: React.MouseEvent) => { + e.stopPropagation() + if (!node || !node.parentId) return + sfxEmitter.emit('sfx:item-pick') + useScene.temporal.getState().pause() + + let duplicateInfo = structuredClone(node) as any + delete duplicateInfo.id + duplicateInfo.metadata = { ...duplicateInfo.metadata, isNew: true } + + let duplicate: AnyNode | null = null + try { + if (node.type === 'door') { + duplicate = DoorNode.parse(duplicateInfo) + } else if (node.type === 'window') { + duplicate = WindowNode.parse(duplicateInfo) + } else if (node.type === 'item') { + duplicate = ItemNode.parse(duplicateInfo) + } + } catch (error) { + console.error('Failed to parse duplicate', error) + return + } + + if (duplicate) { + if (duplicate.type === 'door' || duplicate.type === 'window') { + useScene.getState().createNode(duplicate, duplicate.parentId as AnyNodeId) + } + if (duplicate.type === 'item' || duplicate.type === 'window' || duplicate.type === 'door') { + setMovingNode(duplicate as any) + } + setSelection({ selectedIds: [] }) + } + }, [node, setMovingNode, setSelection]) + + const handleDelete = useCallback((e: React.MouseEvent) => { + e.stopPropagation() + if (!selectedId || !node) return + sfxEmitter.emit('sfx:item-delete') + deleteNode(selectedId as AnyNodeId) + if (node.parentId) useScene.getState().dirtyNodes.add(node.parentId as AnyNodeId) + setSelection({ selectedIds: [] }) + }, [selectedId, node, deleteNode, setSelection]) + + if (!isEditor || !selectedId || !node || !isValidType) return null + + return ( + + +
e.stopPropagation()} + onPointerUp={(e) => e.stopPropagation()} + > + + + +
+ +
+ ) +} diff --git a/apps/editor/components/editor/index.tsx b/apps/editor/components/editor/index.tsx index 8f3d4e4f..e63890da 100644 --- a/apps/editor/components/editor/index.tsx +++ b/apps/editor/components/editor/index.tsx @@ -1,7 +1,8 @@ 'use client' +import { useEffect } from 'react' import { initSpaceDetectionSync, initSpatialGridSync, useScene } from '@pascal-app/core' -import { Viewer } from '@pascal-app/viewer' +import { Viewer, useViewer } from '@pascal-app/viewer' import { useProjectScene } from '@/features/community/lib/models/hooks' import { useKeyboard } from '@/hooks/use-keyboard' import { initSFXBus } from '@/lib/sfx-bus' @@ -18,15 +19,43 @@ import { SidebarProvider } from '../ui/primitives/sidebar' import { AppSidebar } from '../ui/sidebar/app-sidebar' import { CustomCameraControls } from './custom-camera-controls' import { ExportManager } from './export-manager' +import { FloatingActionMenu } from './floating-action-menu' import { Grid } from './grid' import { SelectionManager } from './selection-manager' import { ThumbnailGenerator } from './thumbnail-generator' +import { useProjectStore } from '@/features/community/lib/projects/store' +import { SceneLoader } from '../ui/scene-loader' // Load default scene initially (will be replaced when project loads) useScene.getState().loadScene() initSpatialGridSync() initSpaceDetectionSync(useScene, useEditor) +// Auto-select the first building and level for the default scene +const sceneNodes = useScene.getState().nodes as Record +const sceneRootIds = useScene.getState().rootNodeIds +const siteNode = sceneRootIds[0] ? sceneNodes[sceneRootIds[0]] : null +const resolve = (child: any) => typeof child === 'string' ? sceneNodes[child] : child +const firstBuilding = siteNode?.children?.map(resolve).find((n: any) => n?.type === 'building') +const firstLevel = firstBuilding?.children?.map(resolve).find((n: any) => n?.type === 'level') + +if (firstBuilding && firstLevel) { + useViewer.getState().setSelection({ + buildingId: firstBuilding.id, + levelId: firstLevel.id, + selectedIds: [], + zoneId: null, + }) + useEditor.getState().setPhase('structure') + useEditor.getState().setStructureLayer('elements') + + // Auto-select the wall tool if the level is empty + if (!firstLevel.children || firstLevel.children.length === 0) { + useEditor.getState().setMode('build') + useEditor.getState().setTool('wall') + } +} + // Initialize SFX bus to connect events to sound effects initSFXBus() @@ -38,14 +67,26 @@ export default function Editor({ projectId }: EditorProps) { useKeyboard() useProjectScene() + const isProjectLoading = useProjectStore((state) => state.isLoading) + const isSceneLoading = useProjectStore((state) => state.isSceneLoading) + const isLoading = isProjectLoading || isSceneLoading + + useEffect(() => { + document.body.classList.add('dark') + return () => { + document.body.classList.remove('dark') + } + }, []) + return ( -
+
+ {isLoading && } {/* Top-right controls */} -
+
@@ -59,6 +100,7 @@ export default function Editor({ projectId }: EditorProps) { + {/* Editor only system to toggle zone visibility */} diff --git a/apps/editor/components/editor/selection-manager.tsx b/apps/editor/components/editor/selection-manager.tsx index 57c12cc6..d1f31627 100644 --- a/apps/editor/components/editor/selection-manager.tsx +++ b/apps/editor/components/editor/selection-manager.tsx @@ -10,7 +10,7 @@ import { } from "@pascal-app/core"; import { useViewer } from "@pascal-app/viewer"; -import { useEffect } from "react"; +import { useEffect, useRef } from "react"; import useEditor from "@/store/use-editor"; const isNodeInCurrentLevel = (node: AnyNode): boolean => { @@ -22,13 +22,58 @@ const isNodeInCurrentLevel = (node: AnyNode): boolean => { type SelectableNodeType = "wall" | "item" | "building" | "zone" | 'slab' | 'ceiling' | 'roof' | 'window' | 'door'; +type ModifierKeys = { + meta: boolean; + ctrl: boolean; +}; + interface SelectionStrategy { types: SelectableNodeType[]; - handleSelect: (node: AnyNode, isShift: boolean) => void; + handleSelect: (node: AnyNode, nativeEvent?: any, modifierKeys?: ModifierKeys) => void; handleDeselect: () => void; isValid: (node: AnyNode) => boolean; } +export const resolveBuildingId = (levelId: string, nodes: Record): string | null => { + const level = nodes[levelId]; + if (!level) return null; + if (level.parentId && nodes[level.parentId]?.type === "building") { + return level.parentId; + } + return null; +}; + +const computeNextIds = ( + node: AnyNode, + selectedIds: string[], + event?: any, + modifierKeys?: ModifierKeys +): string[] => { + const isMeta = event?.metaKey || event?.nativeEvent?.metaKey || modifierKeys?.meta || false; + const isCtrl = event?.ctrlKey || event?.nativeEvent?.ctrlKey || modifierKeys?.ctrl || false; + + console.log("computeNextIds:", { + nodeId: node.id, + selectedIds, + isMeta, + isCtrl, + eventMeta: event?.metaKey, + nativeMeta: event?.nativeEvent?.metaKey, + modMeta: modifierKeys?.meta + }); + + if (isMeta || isCtrl) { + if (selectedIds.includes(node.id)) { + return selectedIds.filter((id) => id !== node.id); + } else { + return [...selectedIds, node.id]; + } + } + + // Not holding modifiers: select only this node + return [node.id]; +}; + const SELECTION_STRATEGIES: Record = { site: { types: ["building"], @@ -45,17 +90,28 @@ const SELECTION_STRATEGIES: Record = { structure: { types: ["wall", "item", "zone", "slab", "ceiling", "roof", "window", "door"], - handleSelect: (node, isShift) => { + handleSelect: (node, nativeEvent, modifierKeys) => { const { selection, setSelection } = useViewer.getState(); + const nodes = useScene.getState().nodes; + const nodeLevelId = resolveLevelId(node, nodes); + const buildingId = resolveBuildingId(nodeLevelId, nodes); + + const updates: any = {}; + if (nodeLevelId !== "default" && nodeLevelId !== selection.levelId) { + updates.levelId = nodeLevelId; + } + if (buildingId && buildingId !== selection.buildingId) { + updates.buildingId = buildingId; + } + if (node.type === 'zone') { - setSelection({ zoneId: node.id }); + updates.zoneId = node.id; + // Don't reset selectedIds in structure phase for zone, but if we changed level, it might reset them via hierarchy guard. + // Wait, the hierarchy guard resets zoneId if levelId changes. That's fine since we provide zoneId. + setSelection(updates); } else { - const nextIds = isShift - ? selection.selectedIds.includes(node.id) - ? selection.selectedIds.filter((id) => id !== node.id) - : [...selection.selectedIds, node.id] - : [node.id]; - setSelection({ selectedIds: nextIds }); + updates.selectedIds = computeNextIds(node, selection.selectedIds, nativeEvent, modifierKeys); + setSelection(updates); } }, handleDeselect: () => { @@ -89,14 +145,22 @@ const SELECTION_STRATEGIES: Record = { furnish: { types: ["item"], - handleSelect: (node, isShift) => { + handleSelect: (node, nativeEvent, modifierKeys) => { const { selection, setSelection } = useViewer.getState(); - const nextIds = isShift - ? selection.selectedIds.includes(node.id) - ? selection.selectedIds.filter((id) => id !== node.id) - : [...selection.selectedIds, node.id] - : [node.id]; - setSelection({ selectedIds: nextIds }); + const nodes = useScene.getState().nodes; + const nodeLevelId = resolveLevelId(node, nodes); + const buildingId = resolveBuildingId(nodeLevelId, nodes); + + const updates: any = {}; + if (nodeLevelId !== "default" && nodeLevelId !== selection.levelId) { + updates.levelId = nodeLevelId; + } + if (buildingId && buildingId !== selection.buildingId) { + updates.buildingId = buildingId; + } + + updates.selectedIds = computeNextIds(node, selection.selectedIds, nativeEvent, modifierKeys); + setSelection(updates); }, handleDeselect: () => { useViewer.getState().setSelection({ selectedIds: [] }); @@ -113,39 +177,116 @@ const SELECTION_STRATEGIES: Record = { export const SelectionManager = () => { const phase = useEditor((s) => s.phase); const mode = useEditor((s) => s.mode); + const modifierKeysRef = useRef({ + meta: false, + ctrl: false, + }); + const clickHandledRef = useRef(false); const movingNode = useEditor((s) => s.movingNode); + useEffect(() => { + const onKeyDown = (event: KeyboardEvent) => { + if (event.key === "Meta") modifierKeysRef.current.meta = true; + if (event.key === "Control") modifierKeysRef.current.ctrl = true; + }; + + const onKeyUp = (event: KeyboardEvent) => { + if (event.key === "Meta") modifierKeysRef.current.meta = false; + if (event.key === "Control") modifierKeysRef.current.ctrl = false; + }; + + const clearModifiers = () => { + modifierKeysRef.current.meta = false; + modifierKeysRef.current.ctrl = false; + }; + + window.addEventListener("keydown", onKeyDown); + window.addEventListener("keyup", onKeyUp); + window.addEventListener("blur", clearModifiers); + + return () => { + window.removeEventListener("keydown", onKeyDown); + window.removeEventListener("keyup", onKeyUp); + window.removeEventListener("blur", clearModifiers); + }; + }, []); + useEffect(() => { if (mode !== "select") return; if (movingNode) return; - const strategy = SELECTION_STRATEGIES[phase]; - if (!strategy) return; - const onClick = (event: NodeEvent) => { - if (!strategy.isValid(event.node)) return; + const node = event.node; + let currentPhase = useEditor.getState().phase; + let targetPhase = currentPhase; - event.stopPropagation(); - const isShift = event.nativeEvent?.shiftKey; - strategy.handleSelect(event.node, isShift ?? false); + // Auto-switch between structure and furnish phases when clicking elements on the same level + if (currentPhase === "structure" || currentPhase === "furnish") { + if (isNodeInCurrentLevel(node)) { + if ( + node.type === "wall" || + node.type === "slab" || + node.type === "ceiling" || + node.type === "roof" || + node.type === "window" || + node.type === "door" + ) { + targetPhase = "structure"; + } else if (node.type === "item") { + const item = node as ItemNode; + if (item.asset.category === "door" || item.asset.category === "window") { + targetPhase = "structure"; + } else { + targetPhase = "furnish"; + } + } + + if (targetPhase !== currentPhase) { + useEditor.getState().setPhase(targetPhase); + if (targetPhase === "structure" && useEditor.getState().structureLayer === "zones") { + useEditor.getState().setStructureLayer("elements"); + } + currentPhase = targetPhase; + } + } + } + + const activeStrategy = SELECTION_STRATEGIES[currentPhase]; + if (activeStrategy?.isValid(node)) { + event.stopPropagation(); + clickHandledRef.current = true; + + console.log("[SelectionManager] Valid click on:", node.type, node.id, "Shift:", event.nativeEvent.shiftKey); + activeStrategy.handleSelect(node, event.nativeEvent, modifierKeysRef.current); + + // Reset the handled flag after a short delay to allow grid:click to be ignored + setTimeout(() => { + clickHandledRef.current = false; + }, 50); + } }; - // Bind listeners for all potential types this strategy might care about - strategy.types.forEach((type) => { - emitter.on(`${type}:click`, onClick); + const allTypes = ["wall", "item", "building", "zone", "slab", "ceiling", "roof", "window", "door"]; + allTypes.forEach((type) => { + emitter.on(`${type}:click` as any, onClick as any); }); - const onGridClick = () => strategy.handleDeselect(); + const onGridClick = () => { + if (clickHandledRef.current) return; + console.log("onGridClick triggered! Deselecting."); + const activeStrategy = SELECTION_STRATEGIES[useEditor.getState().phase]; + if (activeStrategy) activeStrategy.handleDeselect(); + }; emitter.on("grid:click", onGridClick); return () => { - strategy.types.forEach((type) => { - emitter.off(`${type}:click`, onClick); + allTypes.forEach((type) => { + emitter.off(`${type}:click` as any, onClick as any); }); emitter.off("grid:click", onGridClick); }; - }, [phase, mode, movingNode]); + }, [mode, movingNode]); // Global double-click handler for auto-switching phases and cross-phase hover useEffect(() => { @@ -231,8 +372,7 @@ export const SelectionManager = () => { const strategy = SELECTION_STRATEGIES[targetPhase]; if (strategy) { - const isShift = event.nativeEvent?.shiftKey; - strategy.handleSelect(node, isShift ?? false); + strategy.handleSelect(node, event.nativeEvent, modifierKeysRef.current); } } }; diff --git a/apps/editor/components/pascal-radio.tsx b/apps/editor/components/pascal-radio.tsx index d882c6ab..e812b5f6 100644 --- a/apps/editor/components/pascal-radio.tsx +++ b/apps/editor/components/pascal-radio.tsx @@ -3,10 +3,10 @@ import { Howl } from 'howler' import { Disc3, Settings2, SkipBack, SkipForward, Volume2, VolumeX } from 'lucide-react' import { useCallback, useEffect, useRef, useState } from 'react' -import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/primitives/popover' import { Slider } from '@/components/ui/slider' import { cn } from '@/lib/utils' import useAudio from '@/store/use-audio' +import { motion, AnimatePresence } from 'framer-motion' const PLAYLIST = [ { @@ -66,6 +66,8 @@ export function PascalRadio() { const [currentTrackIndex, setCurrentTrackIndex] = useState(0) const { masterVolume, radioVolume, muted, isRadioPlaying, setRadioPlaying } = useAudio() const soundRef = useRef(null) + const [isOpen, setIsOpen] = useState(false) + const containerRef = useRef(null) const currentTrack = shuffledPlaylist[currentTrackIndex]! @@ -144,74 +146,126 @@ export function PascalRadio() { useAudio.setState({ radioVolume: value[0] }) } + // Handle click outside to close + useEffect(() => { + function handleClickOutside(event: MouseEvent) { + if (containerRef.current && !containerRef.current.contains(event.target as Node)) { + setIsOpen(false) + } + } + if (isOpen) { + document.addEventListener('mousedown', handleClickOutside) + } + return () => { + document.removeEventListener('mousedown', handleClickOutside) + } + }, [isOpen]) + return ( -
- - Radio Pascal -
{ - if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault() - handlePlayPause() - } - }} - > - {isRadioPlaying ? : } -
- - + { + if (!isOpen) setIsOpen(true) + }} + transition={{ type: 'spring', bounce: 0.2, duration: 0.6 }} + className={cn( + "flex flex-col rounded-lg border border-border bg-background/95 shadow-lg backdrop-blur-md overflow-hidden", + !isOpen && "cursor-pointer hover:bg-accent/30 transition-colors" + )} + > +
+
+ + Radio Pascal +
+
+
{ + e.stopPropagation() + handlePlayPause() + }} + className="rounded-sm p-1 transition-all cursor-pointer bg-accent/30 hover:bg-accent hover:text-accent-foreground hover:shadow-sm" + role="button" + tabIndex={0} + aria-label={isRadioPlaying ? 'Pause' : 'Play'} + onKeyDown={(e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + e.stopPropagation() + handlePlayPause() + } + }} + > + {isRadioPlaying ? : } +
- - -
- {/* Current song info with prev/next */} -
-

Now Playing

-
- -

{currentTrack.title}

- +
+
+ + + {isOpen && ( + +
+
+ {/* Current song info with prev/next */} +
+

Now Playing

+
+ +

+ {currentTrack.title} +

+ +
+
+ + {/* Volume control */} +
+ + + {radioVolume}%
- - {/* Volume control */} -
- - - {radioVolume}% -
-
- - -
+ + )} + + ) } diff --git a/apps/editor/components/systems/zone/zone-system.tsx b/apps/editor/components/systems/zone/zone-system.tsx index 1c5e2cf6..883123de 100644 --- a/apps/editor/components/systems/zone/zone-system.tsx +++ b/apps/editor/components/systems/zone/zone-system.tsx @@ -1,14 +1,14 @@ import { sceneRegistry, useScene, type ZoneNode } from '@pascal-app/core' import { useViewer } from '@pascal-app/viewer' -import { useEffect } from 'react' +import { useFrame } from '@react-three/fiber' import useEditor from '@/store/use-editor' export const ZoneSystem = () => { - const structureLayer = useEditor((state) => state.structureLayer) - const levelMode = useViewer((state) => state.levelMode) - const selectedLevelId = useViewer((state) => state.selection.levelId) + useFrame(() => { + const structureLayer = useEditor.getState().structureLayer + const levelMode = useViewer.getState().levelMode + const selectedLevelId = useViewer.getState().selection.levelId - useEffect(() => { const visible = structureLayer === 'zones' const zones = sceneRegistry.byType.zone || new Set() const nodes = useScene.getState().nodes @@ -23,21 +23,27 @@ export const ZoneSystem = () => { const isOnSelectedLevel = zone?.parentId === selectedLevelId const hideInSoloMode = levelMode === 'solo' && selectedLevelId && !isOnSelectedLevel - obj.visible = visible + if (obj.visible !== visible) { + obj.visible = visible + } const label = obj.getObjectByName('label') if (label) { // Hide label if zone layer is off OR if in solo mode on a different level const showLabel = visible && !hideInSoloMode; const labelPosition = obj.userData.labelPosition as [number, number, number] | undefined - if (showLabel && labelPosition) { - label.position.set(...labelPosition) - } else { - label.position.set(-9999, -9999, -9999) + + const targetX = showLabel && labelPosition ? labelPosition[0] : -9999 + if (label.position.x !== targetX) { + if (showLabel && labelPosition) { + label.position.set(...labelPosition) + } else { + label.position.set(-9999, -9999, -9999) + } } } }) - }, [structureLayer, levelMode, selectedLevelId]) + }) return null } diff --git a/apps/editor/components/ui/action-menu/camera-actions.tsx b/apps/editor/components/ui/action-menu/camera-actions.tsx index 929b557f..63309368 100644 --- a/apps/editor/components/ui/action-menu/camera-actions.tsx +++ b/apps/editor/components/ui/action-menu/camera-actions.tsx @@ -1,7 +1,7 @@ 'use client' import { emitter } from '@pascal-app/core' -import { RotateCcw, RotateCw, Rotate3D } from 'lucide-react' +import Image from 'next/image' import { Button } from '@/components/ui/primitives/button' import { Tooltip, @@ -28,12 +28,18 @@ export function CameraActions() { @@ -45,12 +51,18 @@ export function CameraActions() { @@ -62,12 +74,18 @@ export function CameraActions() { diff --git a/apps/editor/components/ui/action-menu/control-modes.tsx b/apps/editor/components/ui/action-menu/control-modes.tsx index c4d09097..15b97c62 100644 --- a/apps/editor/components/ui/action-menu/control-modes.tsx +++ b/apps/editor/components/ui/action-menu/control-modes.tsx @@ -1,19 +1,21 @@ "use client"; +import Image from "next/image"; import { Button } from "@/components/ui/primitives/button"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/primitives/tooltip"; -import { Hammer, MousePointer2, Pencil, Trash2 } from "lucide-react"; +import { Pencil, Trash2, type LucideIcon } from "lucide-react"; import { cn } from "@/lib/utils"; import useEditor, { Mode, Phase } from "@/store/use-editor"; type ModeConfig = { id: Mode; - icon: typeof MousePointer2; + icon?: LucideIcon; + imageSrc?: string; label: string; shortcut: string; color: string; @@ -24,7 +26,7 @@ type ModeConfig = { const allModes: ModeConfig[] = [ { id: "select", - icon: MousePointer2, + imageSrc: "/icons/select.png", label: "Select", shortcut: "V", color: "hover:bg-blue-500/20 hover:text-blue-400", @@ -40,7 +42,7 @@ const allModes: ModeConfig[] = [ }, { id: "build", - icon: Hammer, + imageSrc: "/icons/build.png", label: "Build", shortcut: "B", color: "hover:bg-green-500/20 hover:text-green-400", @@ -98,22 +100,39 @@ export function ControlModes() { {availableModes.map((m) => { const Icon = m.icon; const isActive = mode === m.id; + const isImageMode = Boolean(m.imageSrc); return ( diff --git a/apps/editor/components/ui/action-menu/index.tsx b/apps/editor/components/ui/action-menu/index.tsx index 461ab7d5..c5a14aff 100644 --- a/apps/editor/components/ui/action-menu/index.tsx +++ b/apps/editor/components/ui/action-menu/index.tsx @@ -30,7 +30,7 @@ export function ActionMenu({ className }: { className?: string }) { transition={transition} className={cn( "-translate-x-1/2 fixed bottom-6 left-1/2 z-50", - "rounded-2xl border border-zinc-800 bg-zinc-950/90 shadow-2xl backdrop-blur-md", + "rounded-2xl border border-border bg-background/90 shadow-2xl backdrop-blur-md", "transition-colors duration-200 ease-out", className, )} @@ -40,7 +40,7 @@ export function ActionMenu({ className }: { className?: string }) { {mode === "build" && tool === "item" && catalogCategory && ( -
+
-
+
diff --git a/apps/editor/components/ui/action-menu/view-toggles.tsx b/apps/editor/components/ui/action-menu/view-toggles.tsx index aa40e294..330385bd 100644 --- a/apps/editor/components/ui/action-menu/view-toggles.tsx +++ b/apps/editor/components/ui/action-menu/view-toggles.tsx @@ -85,7 +85,7 @@ export function ViewToggles() { @@ -107,7 +107,7 @@ export function ViewToggles() { @@ -131,7 +131,7 @@ export function ViewToggles() { @@ -156,7 +156,7 @@ export function ViewToggles() { @@ -178,7 +178,7 @@ export function ViewToggles() { diff --git a/apps/editor/components/ui/primitives/sidebar.tsx b/apps/editor/components/ui/primitives/sidebar.tsx index d6c8b0d7..fda56db9 100644 --- a/apps/editor/components/ui/primitives/sidebar.tsx +++ b/apps/editor/components/ui/primitives/sidebar.tsx @@ -4,6 +4,8 @@ import { Slot } from "@radix-ui/react-slot"; import { cva, type VariantProps } from "class-variance-authority"; import { PanelLeftIcon } from "lucide-react"; import * as React from "react"; +import { create } from "zustand"; +import { persist } from "zustand/middleware"; import { Button } from "@/components/ui/primitives/button"; import { Input } from "@/components/ui/primitives/input"; import { Separator } from "@/components/ui/primitives/separator"; @@ -31,6 +33,28 @@ const SIDEBAR_WIDTH_MOBILE = "18rem"; const SIDEBAR_WIDTH_ICON = "3rem"; const SIDEBAR_KEYBOARD_SHORTCUT = "b"; +type SidebarStore = { + width: number; + setWidth: (width: number) => void; + isDragging: boolean; + setIsDragging: (isDragging: boolean) => void; +}; + +export const useSidebarStore = create()( + persist( + (set) => ({ + width: 288, // 18rem = 288px + setWidth: (width) => set({ width: Math.max(288, Math.min(width, 800)) }), + isDragging: false, + setIsDragging: (isDragging) => set({ isDragging }), + }), + { + name: "sidebar-preferences", + partialize: (state) => ({ width: state.width }), // Only persist width + } + ) +); + type SidebarContextProps = { state: "expanded" | "collapsed"; open: boolean; @@ -67,6 +91,8 @@ function SidebarProvider({ }) { const isMobile = useIsMobile(); const [openMobile, setOpenMobile] = React.useState(false); + const sidebarWidth = useSidebarStore((state) => state.width); + const isDragging = useSidebarStore((state) => state.isDragging); // This is the internal state of the sidebar. // We use openProp and setOpenProp for control from outside the component. @@ -136,9 +162,10 @@ function SidebarProvider({ className, )} data-slot="sidebar-wrapper" + data-dragging={isDragging} style={ { - "--sidebar-width": SIDEBAR_WIDTH, + "--sidebar-width": `${sidebarWidth}px`, "--sidebar-width-icon": SIDEBAR_WIDTH_ICON, ...style, } as React.CSSProperties @@ -152,6 +179,52 @@ function SidebarProvider({ ); } +function SidebarResizer({ side }: { side: "left" | "right" }) { + const setWidth = useSidebarStore((state) => state.setWidth); + const setIsDragging = useSidebarStore((state) => state.setIsDragging); + const isResizing = React.useRef(false); + + const handlePointerDown = (e: React.PointerEvent) => { + isResizing.current = true; + setIsDragging(true); + document.body.style.cursor = "col-resize"; + document.body.style.userSelect = "none"; + }; + + React.useEffect(() => { + const handlePointerMove = (e: PointerEvent) => { + if (!isResizing.current) return; + const newWidth = side === "left" ? e.clientX : window.innerWidth - e.clientX; + setWidth(Math.max(288, Math.min(newWidth, 800))); + }; + + const handlePointerUp = () => { + isResizing.current = false; + setIsDragging(false); + document.body.style.cursor = ""; + document.body.style.userSelect = ""; + }; + + window.addEventListener("pointermove", handlePointerMove); + window.addEventListener("pointerup", handlePointerUp); + + return () => { + window.removeEventListener("pointermove", handlePointerMove); + window.removeEventListener("pointerup", handlePointerUp); + }; + }, [setWidth, side]); + + return ( +
+ ); +} + function Sidebar({ side = "left", variant = "sidebar", @@ -219,6 +292,7 @@ function Sidebar({
diff --git a/apps/editor/components/ui/scene-loader.tsx b/apps/editor/components/ui/scene-loader.tsx new file mode 100644 index 00000000..14530033 --- /dev/null +++ b/apps/editor/components/ui/scene-loader.tsx @@ -0,0 +1,40 @@ +'use client' + +import { useEffect, useState } from 'react' +import { cn } from '@/lib/utils' + +const LOADERS = [ + 'pascal-loader-1', + 'pascal-loader-2', + 'pascal-loader-3', + 'pascal-loader-4', + 'pascal-loader-5', +] + +interface SceneLoaderProps { + className?: string + fullScreen?: boolean +} + +export function SceneLoader({ className, fullScreen = false }: SceneLoaderProps) { + const [loaderClass, setLoaderClass] = useState(null) + + useEffect(() => { + // Pick a random loader on mount + setLoaderClass(LOADERS[Math.floor(Math.random() * LOADERS.length)] ?? LOADERS[0]!) + }, []) + + if (!loaderClass) return null + + return ( +
+
+
+ ) +} diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/building-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/building-tree-node.tsx index 18ec0101..1e390cf7 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/building-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/building-tree-node.tsx @@ -13,9 +13,10 @@ import { interface BuildingTreeNodeProps { node: BuildingNode; depth: number; + isLast?: boolean; } -export function BuildingTreeNode({ node, depth }: BuildingTreeNodeProps) { +export function BuildingTreeNode({ node, depth, isLast }: BuildingTreeNodeProps) { const [expanded, setExpanded] = useState(true); const createNode = useScene((state) => state.createNode); const isSelected = useViewer((state) => state.selection.buildingId === node.id); @@ -47,6 +48,7 @@ export function BuildingTreeNode({ node, depth }: BuildingTreeNodeProps) { onClick={handleClick} isSelected={isSelected} isHovered={isHovered} + isLast={isLast} actions={
@@ -64,8 +66,8 @@ export function BuildingTreeNode({ node, depth }: BuildingTreeNodeProps) {
} > - {node.children.map((childId) => ( - + {node.children.map((childId, index) => ( + ))} ); diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/ceiling-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/ceiling-tree-node.tsx index e002cbcb..70942b6c 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/ceiling-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/ceiling-tree-node.tsx @@ -2,16 +2,18 @@ import { type AnyNodeId, CeilingNode, useScene } from "@pascal-app/core"; import { useViewer } from "@pascal-app/viewer"; import Image from "next/image"; import { useState, useEffect } from "react"; +import useEditor from "@/store/use-editor"; import { InlineRenameInput } from "./inline-rename-input"; -import { TreeNode, TreeNodeWrapper } from "./tree-node"; +import { TreeNode, TreeNodeWrapper, handleTreeSelection } from "./tree-node"; import { TreeNodeActions } from "./tree-node-actions"; interface CeilingTreeNodeProps { node: CeilingNode; depth: number; + isLast?: boolean; } -export function CeilingTreeNode({ node, depth }: CeilingTreeNodeProps) { +export function CeilingTreeNode({ node, depth, isLast }: CeilingTreeNodeProps) { const [expanded, setExpanded] = useState(false); const [isEditing, setIsEditing] = useState(false); const selectedIds = useViewer((state) => state.selection.selectedIds); @@ -40,8 +42,12 @@ export function CeilingTreeNode({ node, depth }: CeilingTreeNodeProps) { } }, [selectedIds, node.id]); - const handleClick = () => { - setSelection({ selectedIds: [node.id] }); + const handleClick = (e: React.MouseEvent) => { + e.stopPropagation(); + const handled = handleTreeSelection(e, node.id, selectedIds, setSelection); + if (!handled && useEditor.getState().phase === "furnish") { + useEditor.getState().setPhase("structure"); + } }; const handleDoubleClick = () => { @@ -62,6 +68,7 @@ export function CeilingTreeNode({ node, depth }: CeilingTreeNodeProps) { return ( } label={ } > - {node.children.map((childId) => ( - + {node.children.map((childId, index) => ( + ))} ); diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/door-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/door-tree-node.tsx index ec2fb556..503f1146 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/door-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/door-tree-node.tsx @@ -4,18 +4,21 @@ import { DoorNode } from "@pascal-app/core" import { useViewer } from "@pascal-app/viewer" import Image from "next/image" import { useState } from "react" +import useEditor from "@/store/use-editor" import { InlineRenameInput } from "./inline-rename-input" -import { TreeNodeWrapper } from "./tree-node" +import { TreeNodeWrapper, handleTreeSelection } from "./tree-node" import { TreeNodeActions } from "./tree-node-actions" interface DoorTreeNodeProps { node: DoorNode depth: number + isLast?: boolean } -export function DoorTreeNode({ node, depth }: DoorTreeNodeProps) { +export function DoorTreeNode({ node, depth, isLast }: DoorTreeNodeProps) { const [isEditing, setIsEditing] = useState(false) - const isSelected = useViewer((state) => state.selection.selectedIds.includes(node.id)) + const selectedIds = useViewer((state) => state.selection.selectedIds) + const isSelected = selectedIds.includes(node.id) const isHovered = useViewer((state) => state.hoveredId === node.id) const setSelection = useViewer((state) => state.setSelection) const setHoveredId = useViewer((state) => state.setHoveredId) @@ -24,6 +27,7 @@ export function DoorTreeNode({ node, depth }: DoorTreeNodeProps) { return ( } label={ {}} - onClick={() => setSelection({ selectedIds: [node.id] })} + onClick={(e: React.MouseEvent) => { + e.stopPropagation() + const handled = handleTreeSelection(e, node.id, selectedIds, setSelection) + if (!handled && useEditor.getState().phase === "furnish") { + useEditor.getState().setPhase("structure") + } + }} onDoubleClick={() => setIsEditing(true)} onMouseEnter={() => setHoveredId(node.id)} onMouseLeave={() => setHoveredId(null)} isSelected={isSelected} isHovered={isHovered} isVisible={node.visible !== false} + isLast={isLast} actions={} /> ) diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/index.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/index.tsx index 4740f0e3..c59c8e5f 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/index.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/index.tsx @@ -7,30 +7,40 @@ import { type SiteNode, useScene, type ZoneNode, + type ScanNode, + type GuideNode, + ScanNode as ScanNodeSchema, + GuideNode as GuideNodeSchema, } from "@pascal-app/core"; import { useViewer } from "@pascal-app/viewer"; import { + Box, Building2, Camera, ChevronDown, + Image as ImageIcon, Layers, + Loader2, Pentagon, MoreHorizontal, Pencil, Plus, Trash2, + X, } from "lucide-react"; import { useState, useEffect, useRef } from "react"; import { cn } from "@/lib/utils"; import useEditor from "@/store/use-editor"; import { TreeNode } from "./tree-node"; -import { ReferencesDialog } from "./references-dialog"; import { InlineRenameInput } from "./inline-rename-input"; +import { useProjectStore } from '@/features/community/lib/projects/store'; +import { deleteProjectAssetByUrl, uploadProjectAsset } from '@/features/community/lib/assets/actions'; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/primitives/popover"; +import { motion, AnimatePresence, LayoutGroup } from "motion/react"; // Preset colors for zones const PRESET_COLORS = [ @@ -315,11 +325,188 @@ function CameraPopover({ } +function ReferenceItem({ refNode, isLastRow, setSelectedReferenceId, handleDelete }: { + refNode: ScanNode | GuideNode; + isLastRow: boolean; + setSelectedReferenceId: (id: string) => void; + handleDelete: (id: string, e: React.MouseEvent) => void; +}) { + const [isEditing, setIsEditing] = useState(false); + + return ( +
+
+
+ +
setSelectedReferenceId(refNode.id)} + onDoubleClick={() => setIsEditing(true)} + > + {refNode.type === 'scan' ? Scan : Guide} + setIsEditing(false)} + onStartEditing={() => setIsEditing(true)} + defaultName={refNode.type === 'scan' ? '3D Scan' : 'Guide Image'} + /> +
+ + +
+ ); +} + +const MAX_FILE_SIZE = 100 * 1024 * 1024; // 100MB + +function LevelReferences({ levelId, isLastLevel }: { levelId: string, isLastLevel?: boolean }) { + const nodes = useScene((s) => s.nodes); + const createNode = useScene((s) => s.createNode); + const deleteNode = useScene((s) => s.deleteNode); + const setSelectedReferenceId = useEditor((s) => s.setSelectedReferenceId); + const activeProject = useProjectStore((s) => s.activeProject); + const [uploadError, setUploadError] = useState(null); + const [uploading, setUploading] = useState(false); + const [uploadingType, setUploadingType] = useState<'scan'|'guide'|null>(null); + + const scanInputRef = useRef(null); + + const references = Object.values(nodes).filter( + (node): node is ScanNode | GuideNode => + (node.type === 'scan' || node.type === 'guide') && node.parentId === levelId, + ); + + const handleAddAsset = async (e: React.ChangeEvent) => { + const file = e.target.files?.[0]; + if (!file) return; + e.target.value = ''; + + const projectId = activeProject?.id; + if (!projectId) { + setUploadError('No active project. Please open a project first.'); + return; + } + + if (file.size > MAX_FILE_SIZE) { + setUploadError(`File is too large (${(file.size / 1024 / 1024).toFixed(0)} MB). Maximum size is 100 MB.`); + return; + } + + // Auto-detect type based on file extension/mime type + const isScan = file.name.toLowerCase().endsWith('.glb') || file.name.toLowerCase().endsWith('.gltf'); + const isImage = file.type.startsWith('image/'); + + if (!isScan && !isImage) { + setUploadError('Invalid file type. Please upload a .glb/.gltf scan or an image.'); + return; + } + + const type = isScan ? 'scan' : 'guide'; + + setUploadError(null); + setUploading(true); + setUploadingType(type); + const result = await uploadProjectAsset(projectId, file, type); + setUploading(false); + setUploadingType(null); + + if (!result.success) { + setUploadError(result.error); + return; + } + + const Schema = type === 'scan' ? ScanNodeSchema : GuideNodeSchema; + const node = Schema.parse({ + url: result.url, + name: file.name, + parentId: levelId, + }); + createNode(node, levelId as AnyNodeId); + setSelectedReferenceId(node.id); + }; + + const handleDelete = async (nodeId: string, e: React.MouseEvent) => { + e.stopPropagation(); + const refNode = nodes[nodeId as AnyNodeId] as ScanNode | GuideNode | undefined; + const projectId = activeProject?.id; + + if ( + projectId && + refNode?.url && + (refNode.url.startsWith('http://') || refNode.url.startsWith('https://')) + ) { + deleteProjectAssetByUrl(projectId, refNode.url); + } + deleteNode(nodeId as AnyNodeId); + }; + + const rows = [ + { type: 'upload' as const }, + ...references.map(ref => ({ type: 'ref' as const, data: ref })) + ]; + + return ( +
+ {!isLastLevel && ( +
+ )} + + {rows.map((row, i) => { + const isLastRow = i === rows.length - 1; + + if (row.type === 'upload') { + return ( +
+
+
+ + + + +
+ ); + } + + const ref = row.data as ScanNode | GuideNode; + return ( + + ); + })} + + {uploadError && ( +
+
+ {uploadError} +
+ )} +
+ ); +} + function LevelItem({ level, selectedLevelId, setSelection, - setReferencesLevelId, deleteNode, updateNode, isLast, @@ -327,7 +514,6 @@ function LevelItem({ level: LevelNode; selectedLevelId: string | null; setSelection: (selection: any) => void; - setReferencesLevelId: (id: string | null) => void; deleteNode: (id: AnyNodeId) => void; updateNode: (id: AnyNodeId, updates: Partial) => void; isLast?: boolean; @@ -336,6 +522,11 @@ function LevelItem({ const [isEditing, setIsEditing] = useState(false); const itemRef = useRef(null); const isSelected = selectedLevelId === level.id; + const [isExpanded, setIsExpanded] = useState(isSelected); + + useEffect(() => { + setIsExpanded(isSelected); + }, [isSelected]); useEffect(() => { if (isSelected && itemRef.current) { @@ -344,37 +535,66 @@ function LevelItem({ }, [isSelected]); return ( -
- {/* Vertical tree line */} -
- {/* Horizontal branch line */} -
- +
setSelection({ levelId: level.id })} - onDoubleClick={() => setIsEditing(true)} + ref={itemRef} + className={cn( + "flex items-center group/level border-b border-border/50 pr-2 transition-all duration-200 relative h-8 select-none", + isSelected + ? "bg-accent/50 text-foreground" + : "text-muted-foreground hover:bg-accent/30 hover:text-foreground" + )} > - + {/* Horizontal branch line */} +
+
- setIsEditing(false)} - onStartEditing={() => setIsEditing(true)} - defaultName={`Level ${level.level}`} - /> -
+ {/* Line down to children */} + {isExpanded && ( +
+ )} + +
+ +
+ +
setSelection({ levelId: level.id })} + onDoubleClick={() => setIsEditing(true)} + > + Level + setIsEditing(false)} + onStartEditing={() => setIsEditing(true)} + defaultName={`Level ${level.level}`} + /> +
{/* Camera snapshot button */} @@ -456,12 +676,6 @@ function LevelItem({ - {level.level !== 0 && (
+ + {isExpanded && ( + + + + )} + +
); } @@ -486,8 +714,6 @@ function LevelsSection() { const selectedLevelId = useViewer((state) => state.selection.levelId); const setSelection = useViewer((state) => state.setSelection); - const [referencesLevelId, setReferencesLevelId] = useState(null); - const building = selectedBuildingId ? (nodes[selectedBuildingId] as BuildingNode) : null; @@ -511,24 +737,27 @@ function LevelsSection() { return (
{/* Level buttons */} -
+
{levels.length === 0 && ( -
+
{/* Vertical tree line */}
{/* Horizontal branch line */} -
+
No levels yet
)} @@ -538,24 +767,12 @@ function LevelsSection() { level={level} selectedLevelId={selectedLevelId} setSelection={setSelection} - setReferencesLevelId={setReferencesLevelId} deleteNode={deleteNode} updateNode={updateNode} isLast={index === levels.length - 1} /> ))}
- - {/* References dialog */} - {referencesLevelId && ( - { - if (!open) setReferencesLevelId(null); - }} - /> - )}
); } @@ -566,13 +783,18 @@ function LayerToggle() { const phase = useEditor((state) => state.phase); const setPhase = useEditor((state) => state.setPhase); + const activeTab = + phase === "structure" && structureLayer === "elements" ? "structure" : + phase === "furnish" ? "furnish" : + phase === "structure" && structureLayer === "zones" ? "zones" : "none"; + return ( -
+
+ +
); } -function ZoneItem({ zone }: { zone: ZoneNode }) { +function ZoneItem({ zone, isLast }: { zone: ZoneNode, isLast?: boolean }) { const [isEditing, setIsEditing] = useState(false); const [cameraPopoverOpen, setCameraPopoverOpen] = useState(false); const deleteNode = useScene((state) => state.deleteNode); @@ -680,7 +931,7 @@ function ZoneItem({ zone }: { zone: ZoneNode }) {
setHoveredId(zone.id)} onMouseLeave={() => setHoveredId(null)} > + {/* Vertical tree line */} +
+ {/* Horizontal branch line */} +
+ +
+
+ ); +} + function ContentSection() { const nodes = useScene((state) => state.nodes); const selectedLevelId = useViewer((state) => state.selection.levelId); @@ -853,8 +1131,8 @@ function ContentSection() { return (
- {levelZones.map((zone) => ( - + {levelZones.map((zone, index) => ( + ))}
); @@ -865,28 +1143,9 @@ function ContentSection() { const childNode = nodes[childId]; if (!childNode || childNode.type === "zone") return false; - // In structure mode, show structural elements (walls, slabs, etc.) and doors/windows - if (phase === "structure") { - if (childNode.type === "item") { - const category = childNode.asset?.category?.toLowerCase() || ""; - // Only show doors and windows in structure mode - return category === "door" || category === "window"; - } - // Show all other structural elements (walls, slabs, ceiling, roof) - return true; - } - - // In furnish mode, only show items that are NOT doors or windows - if (phase === "furnish") { - if (childNode.type === "item") { - const category = childNode.asset?.category?.toLowerCase() || ""; - // Hide doors and windows in furnish mode - return category !== "door" && category !== "window"; - } - // Hide structural elements in furnish mode - return false; - } - + // We no longer filter out structural nodes in furnish mode or furnish nodes in structure mode + // This allows nested items (like lights in a ceiling or cabinetry on a wall) to remain visible + // and selectable in both modes, ensuring seamless transition in the tree view. return true; }); @@ -900,8 +1159,8 @@ function ContentSection() { return (
- {elementChildren.map((childId) => ( - + {elementChildren.map((childId, index) => ( + ))}
); @@ -931,8 +1190,13 @@ function BuildingItem({ }, [isBuildingActive]); return ( -
-
+ -
+ {/* Tools and content for the active building */} - {isBuildingActive && ( -
-
- - -
-
- -
-
- )} -
+ + {isBuildingActive && ( + +
+
+ + +
+
+ + +
+
+
+ )} +
+ ); } @@ -1064,61 +1339,77 @@ export function SitePanel() { .filter((node): node is BuildingNode => node?.type === "building"); return ( -
- {/* Site Header */} - {siteNode && ( -
setPhase("site")} - > -
- Site +
+ {/* Site Header */} + {siteNode && ( + setPhase("site")} + > +
+ Site + {siteNode.name || "Site"} +
+ - {siteNode.name || "Site"} -
- -
- )} - -
- {/* When phase is site, show property line immediately under site header */} - {phase === "site" &&
} - - {/* Buildings List */} - {buildings.length === 0 ? ( -
- No buildings yet -
- ) : ( -
- {buildings.map((building) => { - const isBuildingActive = (phase === "structure" || phase === "furnish") && selectedBuildingId === building.id; - - return ( - - ); - })} -
+ )} + + + {/* When phase is site, show property line immediately under site header */} + + {phase === "site" && ( + + + + )} + + + {/* Buildings List */} + {buildings.length === 0 ? ( + + No buildings yet + + ) : ( + + {buildings.map((building) => { + const isBuildingActive = (phase === "structure" || phase === "furnish") && selectedBuildingId === building.id; + + return ( + + ); + })} + + )} +
-
+ ); } diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/item-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/item-tree-node.tsx index 27704b7e..3204e3a3 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/item-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/item-tree-node.tsx @@ -2,8 +2,9 @@ import { type AnyNodeId, ItemNode, useScene } from "@pascal-app/core"; import { useViewer } from "@pascal-app/viewer"; import Image from "next/image"; import { useState, useEffect } from "react"; +import useEditor from "@/store/use-editor"; import { InlineRenameInput } from "./inline-rename-input"; -import { TreeNode, TreeNodeWrapper } from "./tree-node"; +import { TreeNode, TreeNodeWrapper, handleTreeSelection } from "./tree-node"; import { TreeNodeActions } from "./tree-node-actions"; const CATEGORY_ICONS: Record = { @@ -19,9 +20,10 @@ const CATEGORY_ICONS: Record = { interface ItemTreeNodeProps { node: ItemNode; depth: number; + isLast?: boolean; } -export function ItemTreeNode({ node, depth }: ItemTreeNodeProps) { +export function ItemTreeNode({ node, depth, isLast }: ItemTreeNodeProps) { const [isEditing, setIsEditing] = useState(false); const [expanded, setExpanded] = useState(true); const iconSrc = CATEGORY_ICONS[node.asset.category] || "/icons/couch.png"; @@ -51,8 +53,12 @@ export function ItemTreeNode({ node, depth }: ItemTreeNodeProps) { } }, [selectedIds, node.id]); - const handleClick = () => { - setSelection({ selectedIds: [node.id] }); + const handleClick = (e: React.MouseEvent) => { + e.stopPropagation(); + const handled = handleTreeSelection(e, node.id, selectedIds, setSelection); + if (!handled && useEditor.getState().phase === "structure") { + useEditor.getState().setPhase("furnish"); + } }; const handleDoubleClick = () => { @@ -72,6 +78,7 @@ export function ItemTreeNode({ node, depth }: ItemTreeNodeProps) { return ( } label={ } > - {hasChildren && node.children.map((childId) => ( - + {hasChildren && node.children.map((childId, index) => ( + ))} ); diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/level-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/level-tree-node.tsx index 1bab93de..159ef72e 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/level-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/level-tree-node.tsx @@ -9,9 +9,10 @@ import { TreeNodeActions } from "./tree-node-actions"; interface LevelTreeNodeProps { node: LevelNode; depth: number; + isLast?: boolean; } -export function LevelTreeNode({ node, depth }: LevelTreeNodeProps) { +export function LevelTreeNode({ node, depth, isLast }: LevelTreeNodeProps) { const [expanded, setExpanded] = useState(true); const [isEditing, setIsEditing] = useState(false); const isSelected = useViewer((state) => state.selection.levelId === node.id); @@ -48,10 +49,11 @@ export function LevelTreeNode({ node, depth }: LevelTreeNodeProps) { onDoubleClick={handleDoubleClick} isSelected={isSelected} isHovered={isHovered} + isLast={isLast} actions={} > - {node.children.map((childId) => ( - + {node.children.map((childId, index) => ( + ))} ); diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/references-dialog.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/references-dialog.tsx deleted file mode 100644 index 949c084f..00000000 --- a/apps/editor/components/ui/sidebar/panels/site-panel/references-dialog.tsx +++ /dev/null @@ -1,265 +0,0 @@ -'use client' - -import { - type AnyNodeId, - type GuideNode, - GuideNode as GuideNodeSchema, - type LevelNode, - type ScanNode, - ScanNode as ScanNodeSchema, - useScene, -} from '@pascal-app/core' -import { Box, Image, Pencil, Plus, Trash2 } from 'lucide-react' -import { useCallback, useRef, useState } from 'react' -import useEditor from '@/store/use-editor' -import { deleteProjectAssetByUrl, uploadProjectAsset } from '@/features/community/lib/assets/actions' -import { useProjectStore } from '@/features/community/lib/projects/store' -import { - Dialog, - DialogContent, - DialogHeader, - DialogTitle, -} from '@/components/ui/primitives/dialog' -import { - Popover, - PopoverContent, - PopoverTrigger, -} from '@/components/ui/primitives/popover' - -const MAX_FILE_SIZE = 100 * 1024 * 1024 // 100MB — matches server action bodySizeLimit - -interface ReferencesDialogProps { - levelId: string - open: boolean - onOpenChange: (open: boolean) => void -} - -export function ReferencesDialog({ levelId, open, onOpenChange }: ReferencesDialogProps) { - const nodes = useScene((s) => s.nodes) - const createNode = useScene((s) => s.createNode) - const deleteNode = useScene((s) => s.deleteNode) - const setSelectedReferenceId = useEditor((s) => s.setSelectedReferenceId) - const activeProject = useProjectStore((s) => s.activeProject) - const [uploadError, setUploadError] = useState(null) - const [uploading, setUploading] = useState(false) - - const scanInputRef = useRef(null) - const guideInputRef = useRef(null) - - const handleAddScan = useCallback( - async (e: React.ChangeEvent) => { - const file = e.target.files?.[0] - if (!file) return - e.target.value = '' - - const projectId = activeProject?.id - if (!projectId) { - setUploadError('No active project. Please open a project first.') - return - } - - if (file.size > MAX_FILE_SIZE) { - setUploadError(`File is too large (${(file.size / 1024 / 1024).toFixed(0)} MB). Maximum size is 100 MB.`) - return - } - - setUploadError(null) - setUploading(true) - const result = await uploadProjectAsset(projectId, file, 'scan') - setUploading(false) - - if (!result.success) { - setUploadError(result.error) - return - } - - const node = ScanNodeSchema.parse({ - url: result.url, - name: file.name, - parentId: levelId, - }) - createNode(node, levelId as AnyNodeId) - // Auto-select and close dialog - setSelectedReferenceId(node.id) - onOpenChange(false) - }, - [levelId, createNode, setSelectedReferenceId, onOpenChange, activeProject], - ) - - const handleAddGuide = useCallback( - async (e: React.ChangeEvent) => { - const file = e.target.files?.[0] - if (!file) return - e.target.value = '' - - const projectId = activeProject?.id - if (!projectId) { - setUploadError('No active project. Please open a project first.') - return - } - - if (file.size > MAX_FILE_SIZE) { - setUploadError(`File is too large (${(file.size / 1024 / 1024).toFixed(0)} MB). Maximum size is 100 MB.`) - return - } - - setUploadError(null) - setUploading(true) - const result = await uploadProjectAsset(projectId, file, 'guide') - setUploading(false) - - if (!result.success) { - setUploadError(result.error) - return - } - - const node = GuideNodeSchema.parse({ - url: result.url, - name: file.name, - parentId: levelId, - }) - createNode(node, levelId as AnyNodeId) - // Auto-select and close dialog - setSelectedReferenceId(node.id) - onOpenChange(false) - }, - [levelId, createNode, setSelectedReferenceId, onOpenChange, activeProject], - ) - - const handleEdit = useCallback( - (nodeId: string) => { - setSelectedReferenceId(nodeId) - onOpenChange(false) - }, - [setSelectedReferenceId, onOpenChange], - ) - - const handleDelete = useCallback( - async (nodeId: string) => { - const refNode = nodes[nodeId as AnyNodeId] as ScanNode | GuideNode | undefined - const projectId = activeProject?.id - - // Delete storage asset first (before removing from scene) - if ( - projectId && - refNode?.url && - (refNode.url.startsWith('http://') || refNode.url.startsWith('https://')) - ) { - const result = await deleteProjectAssetByUrl(projectId, refNode.url) - if (!result.success) { - setUploadError(`Failed to delete asset: ${result.error}`) - return - } - } - - deleteNode(nodeId as AnyNodeId) - }, - [deleteNode, nodes, activeProject], - ) - - const level = nodes[levelId as AnyNodeId] as LevelNode | undefined - if (!level) return null - - // Find all scan and guide children of this level - const references = Object.values(nodes).filter( - (node): node is ScanNode | GuideNode => - (node.type === 'scan' || node.type === 'guide') && node.parentId === levelId, - ) - - return ( - - - - References — {level.name || `Level ${level.level}`} - - -
- {references.length === 0 && ( -

- No references yet. Add a 3D scan or guide image. -

- )} - - {references.map((ref) => ( -
- {ref.type === 'scan' ? ( - - ) : ( - - )} - - {ref.name || (ref.type === 'scan' ? '3D Scan' : 'Guide Image')} - - - -
- ))} -
- - {uploadError && ( -

{uploadError}

- )} - -
- - - - - - - - - - - - -
-
-
- ) -} diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/roof-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/roof-tree-node.tsx index 371fe068..9beb9eff 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/roof-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/roof-tree-node.tsx @@ -2,24 +2,31 @@ import { RoofNode } from "@pascal-app/core"; import { useViewer } from "@pascal-app/viewer"; import Image from "next/image"; import { useState } from "react"; +import useEditor from "@/store/use-editor"; import { InlineRenameInput } from "./inline-rename-input"; -import { TreeNodeWrapper } from "./tree-node"; +import { TreeNodeWrapper, handleTreeSelection } from "./tree-node"; import { TreeNodeActions } from "./tree-node-actions"; interface RoofTreeNodeProps { node: RoofNode; depth: number; + isLast?: boolean; } -export function RoofTreeNode({ node, depth }: RoofTreeNodeProps) { +export function RoofTreeNode({ node, depth, isLast }: RoofTreeNodeProps) { const [isEditing, setIsEditing] = useState(false); - const isSelected = useViewer((state) => state.selection.selectedIds.includes(node.id)); + const selectedIds = useViewer((state) => state.selection.selectedIds); + const isSelected = selectedIds.includes(node.id); const isHovered = useViewer((state) => state.hoveredId === node.id); const setSelection = useViewer((state) => state.setSelection); const setHoveredId = useViewer((state) => state.setHoveredId); - const handleClick = () => { - setSelection({ selectedIds: [node.id] }); + const handleClick = (e: React.MouseEvent) => { + e.stopPropagation(); + const handled = handleTreeSelection(e, node.id, selectedIds, setSelection); + if (!handled && useEditor.getState().phase === "furnish") { + useEditor.getState().setPhase("structure"); + } }; const handleDoubleClick = () => { @@ -41,6 +48,7 @@ export function RoofTreeNode({ node, depth }: RoofTreeNodeProps) { return ( } label={ } /> ); diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/slab-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/slab-tree-node.tsx index d720ac86..07d2e4e8 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/slab-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/slab-tree-node.tsx @@ -2,24 +2,31 @@ import { SlabNode } from "@pascal-app/core"; import { useViewer } from "@pascal-app/viewer"; import Image from "next/image"; import { useState } from "react"; +import useEditor from "@/store/use-editor"; import { InlineRenameInput } from "./inline-rename-input"; -import { TreeNodeWrapper } from "./tree-node"; +import { TreeNodeWrapper, handleTreeSelection } from "./tree-node"; import { TreeNodeActions } from "./tree-node-actions"; interface SlabTreeNodeProps { node: SlabNode; depth: number; + isLast?: boolean; } -export function SlabTreeNode({ node, depth }: SlabTreeNodeProps) { +export function SlabTreeNode({ node, depth, isLast }: SlabTreeNodeProps) { const [isEditing, setIsEditing] = useState(false); - const isSelected = useViewer((state) => state.selection.selectedIds.includes(node.id)); + const selectedIds = useViewer((state) => state.selection.selectedIds); + const isSelected = selectedIds.includes(node.id); const isHovered = useViewer((state) => state.hoveredId === node.id); const setSelection = useViewer((state) => state.setSelection); const setHoveredId = useViewer((state) => state.setHoveredId); - const handleClick = () => { - setSelection({ selectedIds: [node.id] }); + const handleClick = (e: React.MouseEvent) => { + e.stopPropagation(); + const handled = handleTreeSelection(e, node.id, selectedIds, setSelection); + if (!handled && useEditor.getState().phase === "furnish") { + useEditor.getState().setPhase("structure"); + } }; const handleDoubleClick = () => { @@ -40,6 +47,7 @@ export function SlabTreeNode({ node, depth }: SlabTreeNodeProps) { return ( } label={ } /> ); diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/tree-node.tsx index 6e9044e4..51dde090 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/tree-node.tsx @@ -2,6 +2,53 @@ import { AnyNodeId, useScene } from "@pascal-app/core"; import { ChevronDown, ChevronRight } from "lucide-react"; import { forwardRef, useEffect, useRef } from "react"; import { cn } from "@/lib/utils"; +import { motion, AnimatePresence } from "motion/react"; + +export function handleTreeSelection( + e: React.MouseEvent, + nodeId: string, + selectedIds: string[], + setSelection: (s: any) => void +) { + if (e.metaKey || e.ctrlKey) { + if (selectedIds.includes(nodeId)) { + setSelection({ selectedIds: selectedIds.filter((id) => id !== nodeId) }); + } else { + setSelection({ selectedIds: [...selectedIds, nodeId] }); + } + return true; + } + + if (e.shiftKey && selectedIds.length > 0) { + const lastSelectedId = selectedIds[selectedIds.length - 1]; + if (lastSelectedId) { + const nodes = Array.from(document.querySelectorAll('[data-treenode-id]')); + const nodeIds = nodes.map(n => n.getAttribute('data-treenode-id') as string); + + const startIndex = nodeIds.indexOf(lastSelectedId); + const endIndex = nodeIds.indexOf(nodeId); + + if (startIndex !== -1 && endIndex !== -1) { + const start = Math.min(startIndex, endIndex); + const end = Math.max(startIndex, endIndex); + const range = nodeIds.slice(start, end + 1); + + // We can keep the previous selections that were outside the range if we want, + // but standard file system shift-click replaces the selection with the range. + setSelection({ selectedIds: range }); + return true; + } + } + // Fallback: if range selection fails (e.g. node not visible in tree), just add to selection + if (!selectedIds.includes(nodeId)) { + setSelection({ selectedIds: [...selectedIds, nodeId] }); + return true; + } + } + + setSelection({ selectedIds: [nodeId] }); + return false; +} import { BuildingTreeNode } from "./building-tree-node"; import { CeilingTreeNode } from "./ceiling-tree-node"; import { DoorTreeNode } from "./door-tree-node"; @@ -16,47 +63,49 @@ import { ZoneTreeNode } from "./zone-tree-node"; interface TreeNodeProps { nodeId: AnyNodeId; depth?: number; + isLast?: boolean; } -export function TreeNode({ nodeId, depth = 0 }: TreeNodeProps) { +export function TreeNode({ nodeId, depth = 0, isLast }: TreeNodeProps) { const node = useScene((state) => state.nodes[nodeId]); if (!node) return null; switch (node.type) { case "building": - return ; + return ; case "ceiling": - return ; + return ; case "level": - return ; + return ; case "slab": - return ; + return ; case "wall": - return ; + return ; case "roof": - return ; + return ; case "item": - return ; + return ; case "door": - return ; + return ; case "window": - return ; + return ; case "zone": - return ; + return ; default: return null; } } interface TreeNodeWrapperProps { + nodeId?: string; icon: React.ReactNode; label: React.ReactNode; depth: number; hasChildren: boolean; expanded: boolean; onToggle: () => void; - onClick: () => void; + onClick: (e: React.MouseEvent) => void; onDoubleClick?: () => void; onMouseEnter?: () => void; onMouseLeave?: () => void; @@ -65,56 +114,80 @@ interface TreeNodeWrapperProps { isSelected?: boolean; isHovered?: boolean; isVisible?: boolean; + isLast?: boolean; } export const TreeNodeWrapper = forwardRef( - function TreeNodeWrapper( - { - icon, - label, - depth, - hasChildren, - expanded, - onToggle, - onClick, - onDoubleClick, - onMouseEnter, - onMouseLeave, - actions, - children, - isSelected, - isHovered, - isVisible = true, - }, - ref - ) { - const rowRef = useRef(null); + function TreeNodeWrapper( + { + nodeId, + icon, + label, + depth, + hasChildren, + expanded, + onToggle, + onClick, + onDoubleClick, + onMouseEnter, + onMouseLeave, + actions, + children, + isSelected, + isHovered, + isVisible = true, + isLast, + }, + ref + ) { + const rowRef = useRef(null); - useEffect(() => { - if (isSelected && rowRef.current) { - rowRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); - } - }, [isSelected]); + useEffect(() => { + if (isSelected && rowRef.current) { + rowRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); + } + }, [isSelected]); - return ( -
-
-
)}
- {expanded && children} + + {expanded && children && ( + + {children} + + )} +
); } diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/wall-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/wall-tree-node.tsx index a6935926..c386ae99 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/wall-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/wall-tree-node.tsx @@ -2,16 +2,18 @@ import { type AnyNodeId, WallNode, useScene } from "@pascal-app/core"; import { useViewer } from "@pascal-app/viewer"; import Image from "next/image"; import { useState, useEffect } from "react"; +import useEditor from "@/store/use-editor"; import { InlineRenameInput } from "./inline-rename-input"; -import { TreeNode, TreeNodeWrapper } from "./tree-node"; +import { TreeNode, TreeNodeWrapper, handleTreeSelection } from "./tree-node"; import { TreeNodeActions } from "./tree-node-actions"; interface WallTreeNodeProps { node: WallNode; depth: number; + isLast?: boolean; } -export function WallTreeNode({ node, depth }: WallTreeNodeProps) { +export function WallTreeNode({ node, depth, isLast }: WallTreeNodeProps) { const [expanded, setExpanded] = useState(false); const [isEditing, setIsEditing] = useState(false); const selectedIds = useViewer((state) => state.selection.selectedIds); @@ -40,8 +42,12 @@ export function WallTreeNode({ node, depth }: WallTreeNodeProps) { } }, [selectedIds, node.id]); - const handleClick = () => { - setSelection({ selectedIds: [node.id] }); + const handleClick = (e: React.MouseEvent) => { + e.stopPropagation(); + const handled = handleTreeSelection(e, node.id, selectedIds, setSelection); + if (!handled && useEditor.getState().phase === "furnish") { + useEditor.getState().setPhase("structure"); + } }; const handleDoubleClick = () => { @@ -60,6 +66,7 @@ export function WallTreeNode({ node, depth }: WallTreeNodeProps) { return ( } label={ } > - {node.children.map((childId) => ( - + {node.children.map((childId, index) => ( + ))} ); diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/window-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/window-tree-node.tsx index 285f6223..27983eda 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/window-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/window-tree-node.tsx @@ -4,18 +4,21 @@ import { WindowNode } from "@pascal-app/core" import { useViewer } from "@pascal-app/viewer" import Image from "next/image" import { useState } from "react" +import useEditor from "@/store/use-editor" import { InlineRenameInput } from "./inline-rename-input" -import { TreeNodeWrapper } from "./tree-node" +import { TreeNodeWrapper, handleTreeSelection } from "./tree-node" import { TreeNodeActions } from "./tree-node-actions" interface WindowTreeNodeProps { node: WindowNode depth: number + isLast?: boolean } -export function WindowTreeNode({ node, depth }: WindowTreeNodeProps) { +export function WindowTreeNode({ node, depth, isLast }: WindowTreeNodeProps) { const [isEditing, setIsEditing] = useState(false) - const isSelected = useViewer((state) => state.selection.selectedIds.includes(node.id)) + const selectedIds = useViewer((state) => state.selection.selectedIds) + const isSelected = selectedIds.includes(node.id) const isHovered = useViewer((state) => state.hoveredId === node.id) const setSelection = useViewer((state) => state.setSelection) const setHoveredId = useViewer((state) => state.setHoveredId) @@ -24,6 +27,7 @@ export function WindowTreeNode({ node, depth }: WindowTreeNodeProps) { return ( } label={ {}} - onClick={() => setSelection({ selectedIds: [node.id] })} + onClick={(e: React.MouseEvent) => { + e.stopPropagation() + const handled = handleTreeSelection(e, node.id, selectedIds, setSelection) + if (!handled && useEditor.getState().phase === "furnish") { + useEditor.getState().setPhase("structure") + } + }} onDoubleClick={() => setIsEditing(true)} onMouseEnter={() => setHoveredId(node.id)} onMouseLeave={() => setHoveredId(null)} isSelected={isSelected} isHovered={isHovered} isVisible={node.visible !== false} + isLast={isLast} actions={} /> ) diff --git a/apps/editor/components/ui/sidebar/panels/site-panel/zone-tree-node.tsx b/apps/editor/components/ui/sidebar/panels/site-panel/zone-tree-node.tsx index 2879717b..f4186290 100644 --- a/apps/editor/components/ui/sidebar/panels/site-panel/zone-tree-node.tsx +++ b/apps/editor/components/ui/sidebar/panels/site-panel/zone-tree-node.tsx @@ -8,9 +8,10 @@ import { TreeNodeActions } from "./tree-node-actions"; interface ZoneTreeNodeProps { node: ZoneNode; depth: number; + isLast?: boolean; } -export function ZoneTreeNode({ node, depth }: ZoneTreeNodeProps) { +export function ZoneTreeNode({ node, depth, isLast }: ZoneTreeNodeProps) { const [isEditing, setIsEditing] = useState(false); const isSelected = useViewer((state) => state.selection.zoneId === node.id); const isHovered = useViewer((state) => state.hoveredId === node.id); @@ -64,6 +65,7 @@ export function ZoneTreeNode({ node, depth }: ZoneTreeNodeProps) { onMouseLeave={handleMouseLeave} isSelected={isSelected} isHovered={isHovered} + isLast={isLast} actions={} /> ); diff --git a/apps/editor/features/community/components/community-hub.tsx b/apps/editor/features/community/components/community-hub.tsx index 4c2e235d..00eb1289 100644 --- a/apps/editor/features/community/components/community-hub.tsx +++ b/apps/editor/features/community/components/community-hub.tsx @@ -46,11 +46,7 @@ export default function CommunityHub() { } }, [isAuthenticated, authLoading]) - const handleProjectCreated = async (projectId: string) => { - const result = await getUserProjects() - if (result.success) { - setUserProjects(result.data || []) - } + const handleProjectCreated = (projectId: string) => { router.push(`/editor/${projectId}`) } diff --git a/apps/editor/features/community/components/new-project-dialog.tsx b/apps/editor/features/community/components/new-project-dialog.tsx index 5b5fcc63..65d3e75b 100644 --- a/apps/editor/features/community/components/new-project-dialog.tsx +++ b/apps/editor/features/community/components/new-project-dialog.tsx @@ -4,6 +4,7 @@ import { X } from 'lucide-react' import { useState } from 'react' import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/primitives/dialog' import { Switch } from '@/components/ui/primitives/switch' +import { useScene } from '@pascal-app/core' import { createProject } from '../lib/projects/actions' interface NewProjectDialogProps { @@ -30,7 +31,12 @@ export function NewProjectDialog({ open, onOpenChange, onSuccess }: NewProjectDi setIsCreating(true) try { - const result = await createProject({ name, isPrivate }) + // Get the default scene graph + useScene.getState().clearScene() + const { nodes, rootNodeIds } = useScene.getState() + const sceneGraph = { nodes, rootNodeIds } + + const result = await createProject({ name, isPrivate, sceneGraph }) if (result.success && result.data) { onOpenChange(false) diff --git a/apps/editor/features/community/lib/models/hooks.ts b/apps/editor/features/community/lib/models/hooks.ts index 7b7025a3..1c51abad 100644 --- a/apps/editor/features/community/lib/models/hooks.ts +++ b/apps/editor/features/community/lib/models/hooks.ts @@ -61,44 +61,48 @@ export function useProjectScene() { async function loadScene() { // Suppress auto-save for the store update caused by setScene/clearScene isLoadingSceneRef.current = true + + useProjectStore.getState().setIsSceneLoading(true) try { + useScene.getState().clearScene() + const result = await getProjectModel(projectId || '') if (result.success && result.data?.scene_graph) { // Load the scene graph into the store const { nodes, rootNodeIds } = result.data.scene_graph useScene.getState().setScene(nodes, rootNodeIds) - - // Auto-select the first building + level after store is updated - const sceneNodes = useScene.getState().nodes as Record - const sceneRootIds = useScene.getState().rootNodeIds - const siteNode = sceneRootIds[0] ? sceneNodes[sceneRootIds[0]] : null - const resolve = (child: any) => - typeof child === 'string' ? sceneNodes[child] : child - const firstBuilding = siteNode?.children?.map(resolve).find((n: any) => n?.type === 'building') - const firstLevel = firstBuilding?.children?.map(resolve).find((n: any) => n?.type === 'level') - - if (firstBuilding && firstLevel) { - useViewer.getState().setSelection({ - buildingId: firstBuilding.id, - levelId: firstLevel.id, - selectedIds: [], - zoneId: null, - }) - useEditor.getState().setPhase('structure') - } else { - useEditor.getState().setPhase('site') - useViewer.getState().setSelection({ - buildingId: null, - levelId: null, - selectedIds: [], - zoneId: null, - }) - } } else { // No scene found - clear the scene useScene.getState().clearScene() + } + + // Auto-select the first building + level after store is updated + const sceneNodes = useScene.getState().nodes as Record + const sceneRootIds = useScene.getState().rootNodeIds + const siteNode = sceneRootIds[0] ? sceneNodes[sceneRootIds[0]] : null + const resolve = (child: any) => + typeof child === 'string' ? sceneNodes[child] : child + const firstBuilding = siteNode?.children?.map(resolve).find((n: any) => n?.type === 'building') + const firstLevel = firstBuilding?.children?.map(resolve).find((n: any) => n?.type === 'level') + + if (firstBuilding && firstLevel) { + useViewer.getState().setSelection({ + buildingId: firstBuilding.id, + levelId: firstLevel.id, + selectedIds: [], + zoneId: null, + }) + useEditor.getState().setPhase('structure') + useEditor.getState().setStructureLayer('elements') + + // Auto-select the wall tool if the level is empty (e.g., brand new project) + if (!firstLevel.children || firstLevel.children.length === 0) { + useEditor.getState().setMode('build') + useEditor.getState().setTool('wall') + } + } else { useEditor.getState().setPhase('site') useViewer.getState().setSelection({ buildingId: null, @@ -110,13 +114,42 @@ export function useProjectScene() { } catch (error) { // Fall back to clear scene useScene.getState().clearScene() - useEditor.getState().setPhase('site') - useViewer.getState().setSelection({ - buildingId: null, - levelId: null, - selectedIds: [], - zoneId: null, - }) + + // Auto-select the first building + level from the cleared scene + const sceneNodes = useScene.getState().nodes as Record + const sceneRootIds = useScene.getState().rootNodeIds + const siteNode = sceneRootIds[0] ? sceneNodes[sceneRootIds[0]] : null + const resolve = (child: any) => + typeof child === 'string' ? sceneNodes[child] : child + const firstBuilding = siteNode?.children?.map(resolve).find((n: any) => n?.type === 'building') + const firstLevel = firstBuilding?.children?.map(resolve).find((n: any) => n?.type === 'level') + + if (firstBuilding && firstLevel) { + useViewer.getState().setSelection({ + buildingId: firstBuilding.id, + levelId: firstLevel.id, + selectedIds: [], + zoneId: null, + }) + useEditor.getState().setPhase('structure') + useEditor.getState().setStructureLayer('elements') + + // Auto-select the wall tool if the level is empty (e.g., brand new project) + if (!firstLevel.children || firstLevel.children.length === 0) { + useEditor.getState().setMode('build') + useEditor.getState().setTool('wall') + } + } else { + useEditor.getState().setPhase('site') + useViewer.getState().setSelection({ + buildingId: null, + levelId: null, + selectedIds: [], + zoneId: null, + }) + } + } finally { + useProjectStore.getState().setIsSceneLoading(false) } // Allow auto-save again after a tick (let the store update propagate) diff --git a/apps/editor/features/community/lib/projects/store.ts b/apps/editor/features/community/lib/projects/store.ts index 1695f954..9b878a46 100644 --- a/apps/editor/features/community/lib/projects/store.ts +++ b/apps/editor/features/community/lib/projects/store.ts @@ -15,12 +15,14 @@ interface ProjectStore { activeProject: Project | null projects: Project[] isLoading: boolean + isSceneLoading: boolean error: string | null // Actions fetchProjects: () => Promise fetchActiveProject: () => Promise setActiveProject: (projectId: string) => Promise + setIsSceneLoading: (loading: boolean) => void initialize: () => Promise updateActiveThumbnail: (thumbnailUrl: string) => void } @@ -30,6 +32,7 @@ export const useProjectStore = create((set, get) => ({ activeProject: null, projects: [], isLoading: true, + isSceneLoading: false, error: null, // Fetch all projects @@ -79,6 +82,10 @@ export const useProjectStore = create((set, get) => ({ } }, + setIsSceneLoading: (loading: boolean) => { + set({ isSceneLoading: loading }) + }, + // Patch the active project's thumbnail URL in place (no refetch) updateActiveThumbnail: (thumbnailUrl: string) => { set((state) => ({ diff --git a/apps/editor/hooks/use-keyboard.ts b/apps/editor/hooks/use-keyboard.ts index d7616c5d..64da7074 100644 --- a/apps/editor/hooks/use-keyboard.ts +++ b/apps/editor/hooks/use-keyboard.ts @@ -16,6 +16,10 @@ export const useKeyboard = () => { e.preventDefault() emitter.emit('tool:cancel') + // Clear selections to close UI panels, but KEEP the active building and level context + useViewer.getState().setSelection({ selectedIds: [], zoneId: null }) + useEditor.getState().setSelectedReferenceId(null) + // If in build mode, switch back to select mode const { mode } = useEditor.getState() if (mode === 'build') { @@ -46,6 +50,36 @@ export const useKeyboard = () => { } else if (e.key === 'Z' && e.shiftKey && (e.metaKey || e.ctrlKey)) { e.preventDefault() useScene.temporal.getState().redo() + } else if (e.key === 'ArrowUp' && (e.metaKey || e.ctrlKey)) { + e.preventDefault() + const { buildingId, levelId } = useViewer.getState().selection + if (buildingId) { + const building = useScene.getState().nodes[buildingId] + if (building && building.type === 'building' && building.children.length > 0) { + const currentIdx = levelId ? building.children.indexOf(levelId as any) : -1 + const nextIdx = currentIdx < building.children.length - 1 ? currentIdx + 1 : currentIdx + if (nextIdx !== -1 && nextIdx !== currentIdx) { + useViewer.getState().setSelection({ levelId: building.children[nextIdx] as any }) + } else if (currentIdx === -1) { + useViewer.getState().setSelection({ levelId: building.children[0] as any }) + } + } + } + } else if (e.key === 'ArrowDown' && (e.metaKey || e.ctrlKey)) { + e.preventDefault() + const { buildingId, levelId } = useViewer.getState().selection + if (buildingId) { + const building = useScene.getState().nodes[buildingId] + if (building && building.type === 'building' && building.children.length > 0) { + const currentIdx = levelId ? building.children.indexOf(levelId as any) : -1 + const prevIdx = currentIdx > 0 ? currentIdx - 1 : currentIdx + if (prevIdx !== -1 && prevIdx !== currentIdx) { + useViewer.getState().setSelection({ levelId: building.children[prevIdx] as any }) + } else if (currentIdx === -1) { + useViewer.getState().setSelection({ levelId: building.children[building.children.length - 1] as any }) + } + } + } } else if (e.key === 'Delete' || e.key === 'Backspace') { e.preventDefault() diff --git a/apps/editor/package.json b/apps/editor/package.json index b7ef2fa5..c1cd4f89 100644 --- a/apps/editor/package.json +++ b/apps/editor/package.json @@ -29,38 +29,42 @@ "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", "@react-google-maps/api": "^2.20.8", - "@react-three/uikit-lucide": "^1.0.60", + "@react-three/drei": "^10.7.7", + "@react-three/fiber": "^9.5.0", + "@react-three/uikit-lucide": "^1.0.62", "@repo/ui": "*", - "@supabase/supabase-js": "^2.95.3", + "@supabase/supabase-js": "^2.98.0", "@t3-oss/env-nextjs": "^0.13.10", - "@tailwindcss/postcss": "^4.1.18", - "@types/three": "^0.183.0", + "@tailwindcss/postcss": "^4.2.1", + "@types/three": "^0.183.1", "@vercel/analytics": "^1.6.1", "@vercel/speed-insights": "^1.3.1", "@vercel/toolbar": "^0.2.2", "@visual-json/react": "latest", - "better-auth": "^1.4.18", + "better-auth": "^1.4.19", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "howler": "^2.2.4", "lucide-react": "^0.562.0", - "motion": "^12.26.2", + "motion": "^12.34.3", "nanoid": "^5.1.6", - "next": "16.1.0", + "next": "16.1.6", "postcss": "^8.5.6", - "react": "^19.2.0", - "react-dom": "^19.2.0", - "tailwind-merge": "^3.4.0", - "tailwindcss": "^4.1.18", - "zod": "^4.3.6" + "react": "^19.2.4", + "react-dom": "^19.2.4", + "tailwind-merge": "^3.5.0", + "tailwindcss": "^4.2.1", + "three": "^0.183.1", + "zod": "^4.3.6", + "zustand": "^5.0.11" }, "devDependencies": { "@repo/typescript-config": "*", "@types/howler": "^2.2.12", - "@types/node": "^22.15.3", + "@types/node": "^22.19.12", "@types/react": "19.2.2", "@types/react-dom": "19.2.2", "tw-animate-css": "^1.4.0", - "typescript": "5.9.2" + "typescript": "5.9.3" } } diff --git a/apps/editor/public/cursor.svg b/apps/editor/public/cursor.svg new file mode 100644 index 00000000..d0611362 --- /dev/null +++ b/apps/editor/public/cursor.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/editor/public/icons/build.png b/apps/editor/public/icons/build.png new file mode 100644 index 0000000000000000000000000000000000000000..cfaead987969a4a9be2a764824366727ed97877c GIT binary patch literal 100524 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 literal 0 HcmV?d00001 diff --git a/apps/editor/public/icons/rotate.png b/apps/editor/public/icons/rotate.png new file mode 100644 index 0000000000000000000000000000000000000000..4b840d2f7dae5b19426520a2e6cecd0c645b5e57 GIT binary patch literal 80125 zcmbrlhgVb0_dN_4kRT`ty-5<1NRbwr1qDKYB!Cnt3L-7^;v-c+Kp;XwCv;RwC_(@c zr6^HQX(A{^=>jTBFG`h~U)0a{{RiHxbyrsIx@%@~X7982oS92Dy=1_{CCbIZ!oq{Y zV$4}sSU3J$oE*$M-9uCH%rD@7*sK05EbQbz7psr^gI(rLR)2E?G|Qt8;`1!5XQ()g zj>WC9r9pXLi<|r%U;S4e$Vjq9$#94tV-YWVLSs7(WHXL-U>8=uv%tn{1T@YSp`>9c zo>nZz^FMPT4ybi4VfCB$X0N_c3|arv^Z&1pl0#>wTK=Wxsat!l&(~KRb{x)~4bwdT zdu_wrZr`j)%6hDPAm zcgO`NJy(prkUR_}Yr8mHKjwXS+tz4UQfR$q)j2~kIJhPvo@CA!D_7|)%poiE)V`5g zKRcQfL~E+{6tEPj4(wlGWHuTTEHKt)0{y{u1XqF;=27wLv_YHeui*O7+Th5&80R?0 zcLxW20uHwn?59==e3BF|cvmwz^CiAvMA>!38P+X3u0qjcF1?Rk6`#b4eMyxT=SUzD z0j)fov2qaT>$ERtSRhJ(H(_@0BjT*eI0hzLaqz+Q#@B4Tqe=2C_dC>ywK1GUN-R(i zE9Dg~xiRkI^{s-=c90V7n|W5kB@-_ZMVGFss)oI3$@NTQm2_`z;bRc_^RH1OcT8Ws zO1OU&!pS~=i5IK0dIV*VJRDPbZ_^G^xnQ1UP|1bAs!+N7i=ldNwaDY0kv4oQ%|VIOYg{ zbsMO*i#_d*a)5tLD_8S&KBZ0~Px6VU-WaJd5Nm7+Ucf7sDr}g)(>QbXdH&E$OGDdI zjXcX~C=e?M=l%l7<%A-zM4?}2U+tt_Fh)AOz3n!&Vp$wdl}=_1UkpaVFaWc(7g0X> z;~I|#R0W;2kMYQyj?OirDBI`tbiNF`ijj1Tk2;^=EZ9!`juD!bqajBN>!24OT{^83{g zv`}hMlx?o=$adPbacOyZASv-9FZA>&prASIG#mRHVV3a`wCY2jQv^{l{-{B1G{7-1 zSh37ea8wdQZ(c8K^si|x-N=3Y(n#Yb@`iSOq zEbP1)EQy;kKiQXCUK>n&%*rn8oetEMJfruP zg{apedZi}xg?bWcSRhb_*=Gh%uF)LdS5Rd;skK+@?EU*cXCoXmCml6cgj1sX(>rcG zEMCMciV8x06~I$@CEh2+wdajjhV2HzMD9Poov#)pQ_A%+;|Y-ORU3p==E>AozoGT{ zFT@k8DZjTi6Q7PokKfB5=lZWRrO7%A0^D!r>yA;j((%>e1+aldBpt@wnWzf!^ox+x{Oq;XPHSNkPcUPzle`clKPl?T(UtA1~Z_){rcm` zHli*Q`fZhQ7`!dMdsb+}|HDImdEAo1@1c?E;Q0>UWy8jd__7QfKqSb^wyW5MPsM0K zalc)D>+iFt_IdK>xoq0n*~+jVF`fIshtV=-+!N-NDhJ zPqrq*X?Y(HQyHTb?t}Yb#}DqW*Fw4W5&JsTX$eB5Fnm|+b=I$Q9j0byB<>Inro zFjHGs7R0(Z&XDjbumEDK9gur#yvRP`^o zbm4FR87+H?43%F-wn$pgo8j``4ON+#MwBy3P~M_(vg*A?P3ETtQCReO&40r!Wb8La z4$7*Gc|yJG1Q5jt5t(|U7j_RE@w%~(GCYjQH1lT0q0sQ=U(ECx&skWypy#d7$PA;U zA$o#=n5F!lel|#ERe@Scqd#e!j`+aNoP(>a5J$sQi)!?(sZ26qkh0lBdWUiKmh(hj zF;(lGdsTCz`X3og=J!HvuusMXKc zsyP^}-u%ZEZZL)OWUJLFQDn*~wF*#_BN!+`$+R$cz15*9r9!b;T^}zv*ln2TeO_4L zf3Y+Lu5Flh6p9}T!T|+j^gx*$b@jGB^`)7K0kQUzOl~)R?mb(e0=rU$Y|0cdUV4

`c&+}gHOZ}v(>}(|_?PiM%NSN0zVaK@4HPrI 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�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 literal 0 HcmV?d00001 diff --git a/apps/editor/public/icons/select.png b/apps/editor/public/icons/select.png new file mode 100644 index 0000000000000000000000000000000000000000..9abd1db3899bc676d174ebc06b3f2713731a2b5a GIT binary patch literal 86878 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�E5HS5=}lD` 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 K2dirIEz*BxYLA8h literal 0 HcmV?d00001 diff --git a/apps/editor/public/icons/topview.png b/apps/editor/public/icons/topview.png new file mode 100644 index 0000000000000000000000000000000000000000..35c96248db471f5b3c79de381233907ea8c09496 GIT binary patch literal 98159 zcmb5VdpOhm{|BCuOcawc6lUghJ8e`-WQNV5&_%6w<$u& zG0Ul#xTPrMn1menoBRHJf7kEdpX+*GyRQA={eC^)&%@*J9LfBekpQ0<-=RZ?1kfm? z<)K4dzYi{69?mztBa;c755R5It-wQvj*<>8E+0a{Hs?#OKuaUUp_)F4ABVW2Poa@| zn6R7HL$!Yz&UJqmGNshAjDIp4K2@i1h?y@|0Fr2V#INcDLR1ul^mjxIME>VE9jNZO^TdMo8;pEAv=vRTE%de&Kqi%W854l^n z*l)F{$?yIBX|UrM-a1cAb9>Cl(9nLTLTC_am<$^i;R{?}EV_ z!EHaX78WM|di_bmx^eri+r>NoeETUGv5_Jce9FLoH)46`y=ksI#YxbBw?<0*`I%mC zsVu3{Pvf6n#*Ui$h#WsY5z|a97`-XacY-H&En<@wWQ*vQTs~$O+_?7T^OVXRsPbzM z@8^fa9~}Csp?`>)MoCTe7?ZkuVe)p%$8DDQ7h09__jyuPQRbuaNVb-HsoV{>!g$C1 zzXIw};;8(B+u%_hE^j#36|6 zkL>MDNP32EMt)el7%?7t=Fw8DA@30>ZViASCAIko8YOS$#Rc)r_ZqzYC{9yrv|y!q z@8|Nu!UtSaXw|x9%?Z7U0h5@#9qi;tHYFrk}@Q^~ZE%Sf47bFK(laez;NhQ{$ z%u>`WrDADlG9u>Flb8&GK+NO4u3Y!(^}_c`4){s)ci)FR*I(Mmf8TCwwq4ZrQ4dd! zkBFq5LU_cHq%%8(9K^p!Mr;Z<`8~=$wilSsT8m&adzt2Q1WNcDYpW$piC)Uq|s20z|ZdO5M*npU{~qY2SE(Q=}Bd$)FfelvH?uV>5UvIPy2Igu_V z^E90}mzs@F(Ygh0G#fWIQSH00g6dq(3)Dbci;Uv8Z6mi-uBy1t8Ll*+!{JVmCWjrL)27P#YrVmP!+%-she`$l=B|N9v3py^-PLv ziU|7FI5f@RyY|rghVR<@FD18UqZfpurwaF``X_w;j4!eATcpAlxaEd%7AYnA549os zcUr?f1}^y-OpgG#aN~iEt~{EK!_2{E*m)pq!)BKM`={P-M1~C*0WMBjO31Aje9S8E zt-kPC%Inwe?-%=Rfi2r-Ry%fvCwxO6L^bU_-h4l~yYqSV*RQvJty{%xsqpo#u~)-G z7&nM~2I`E6zoQ#JqzVLzFffD#eJ6XdC=RFa6beM1tK8JcKUe_h2Ay4XFdy2A47A(( z@N_L@wz1`>k9{~h`fYIQ`|+g{oWN}6OKumh^gY#G&(a<9V!yTad$m@}NJ){_GKxh; z$bt{wbVIp-Jz*Z9mK0JIB_@F>1sscoWTIe$Bak47ZRERlh)w!K2{(Xzd%j=ft2=8u zlM(ClE9@n^*1OgV4dYj~*F$!iHQ%htu}4C+?XE;=1nz&kDCv=mrd1pC3TCYhczL+C zWnXPC6RTvz+2sT#e|xcg>Wvyf_C=M`wS0^}zC+ZXF7B1Y?T8?we>};!#^X5R(i*n3 z|3GPl-8H#(C3=z_<(J5h1<97C4mn!G&!r}|XZIZOZs-a+7TZgViz_RBFCm6i zKi|mODIDATGD*2Gx!t=d`e}U0_vNH7yY<)pPV29YSFg7E zk19}k=^dGIxSh$HAw=_n_8~EtVXd@Ovar)-*s@NW1@HCr=k$BwIE{OlYj&FCvTE!V%fM{lpOzu^3$eou13 zy)!wd(~?B+f{vA&l)4_K$&jkhK^I{90o;0Ynu`?<=lNcnfTSzIV{HJ!kUUQrsmA=G zER0*ML?SU)+DZR8&ga>@9ki<^XlRWEbD!Nf-F%suE+wdg}ta5GX!eq z>iOKCqcetKh)>n^qjz+?E*Di?It+D&3uXA$cu}9H!3ZyHD5H^g!fSG74bM%I{!y9= zX;R{3y?OyGlrYfV$vIg!Yh?RYmgw)}=u09X- zMh{5Mdz|nwJ*gmF>A}4w%CfR~=LF2i4M&MG$tGrkU^gPs6$&SL3f3iNcLw|8O_Y)* za$5KP)@2X22Kl8nO)OvKv>e~v#r~*;S38^g+mewjcRyU$wrk#VpI?1%ElW~E%UTMe z$pqd6skm!EAJfC>7OsYg&m$;W=kGgU&60iSOlMnG9w_6YylL6sX-M}wZrPJsMmRmB zegpVZ#bMUSdceyNGpEBr_EF#8MXwi5+>2^DxFYdkT@jPNNPdwklXn;1pWJ)7G2BoM zQI{(VG&aq0m!Z7>c7^+Eg58P-(dU zfv=uduFc6;rB{fEU}=K=vvLN0PpFJxq&i3@)_IR~a>8i?Yd4oPM~HpYDpe#sf$dc4?oLQuY@h3fnkVE>?8*w5Oy`|VCWZo;#qN?gcDFm{AifgyW5V(MYcocdDV zIeVML@R&pRoO&ToWI$L-cO3U1P#RL#n@y26onodrfJ?*!NQCLJ`M)=+AhBBdl|Z1> zC;RQ>mHqDP|NJk^%^@MRy1(DD+j7`@C!6;K*daTA7!zlEhefc(LR>x`-qtv|K`PVq z!_9P|thi3*KrFaT1`iAxR!}qagAO~y72kWTFTmpu9$nQXav6K0Z}SX zq_ip7G0(1Gm{&QYDE*Kyz()k0Ho_ztzqBck8Eqz`M4!V>$(5R<4Jh~Ws38rQ&dl~T z8+Rv!+sE&X^ILCZwHl8@_~vTjA>j1eh??t>U7`P%SIyA zgO7~D-EUiq?z%fEcehLmAM5@;TllliZ;K~TWhr(+(eQi~!=K)$nXyRM;-p&qb6F7O z@Z}2i8atTLfP&(^QS!3u3@ZMa-MZ) zcJjBGr25mK;I83ODuc*?QidTGyr-OD@*tV|Z~TgftDwlmA;SO-8Z9duc|(uSn=p7B zB18+0cgYu)Ga5!X7Y1KZ>OfvKGu%u!=W5u zN)G(|>$|Fb)J$#USi{|28J+#*F74VgO2uvs)Y4^Uch!W%bFz7IP%i zn>1FV4&{=8sgq23idr>PEv|d*2rVr}mN36TVwl}9K4bJb zHRfg(30ehBlRDKwNh`*u1O^SFHqYp8K1lgTWP2&ZzAvDu`CQBQz{$^D`P9+$PP+fn z>SsR|dpodoCVF4IaQ%(7WSz6>UzdVV<-u+mX^vPdHZHER2%m~fOrlJW-Fc~k>-5Jj zcxsj2G$DzV1#<_lgUiXpL9$mhA)o9_8X_<WSyx{#u?Y9ngvUj*aY5m6#AZtLbi)`q4oY^VKb|5 zDa0?KX~Irs$99}9o4w>sSx-M+_uQ?hmn|o(iyw zLqD(1jMwsFlJJf49yF1wj$UpqC9=XDLheqMV$WG)v*|>>v2;)zXa$lpj3U#K>L~XEM-IcX_|LAf5aCJ@f<1?(96aCGL!Jnv*3f~`!;B*U= zH>>y9^@+p!$FJ(+e1tAT(#XCd4*(>Q=eT>oMJr@lTpV>GD;}ZQe607Me;G@&&gTgB z#2US!b>nH5cp(9GQD4CGNgqY~iTbNM(g*~=Nsz`0xlUf5%nAJt=k4X;QX!Y?avC z5l(MJgy-vzS}mzYu_gjI$mSsT3YbqOG^z0EMo)~f_);Dm>UxII9F0$~t4>T>aBa4= z@Y`8*|GcKV+few+t8gnJXQ5bpd{n6sgM>`y3+01^H6G)3UZLd2W$8_B=NSGo14HTE zNX!7T<1_+{tC_Ef;}+hr%@!I@BoP9{551uR%mbtMsnZ+zCnABw)++!hn>jp4v4|Q z+3h6lx4z``TYujEnIe%AYGm4->Im&i?al{?lsTq3k@aX^usc|6?|CQf$rSsYe`?2- zT0g}1f0USU09R&CxO(B#KnZH%(26gfpu>*snFa{zX@k+z@*R3O^wl`-t0r$9fa<5H z%WG#^79{sOBeMUO=y(2n4~=4L-`VT_z3LmkMns!V<;TE>d>KcI1W0h_EW`G{HRXn0 zq^h|?oM*oFvb&DyY*JM3Ob?6e{2C0+@0wfZR*=)X(w8Q|!Xk>Ky-hBXvg3tpfT>9k zvBO_o2+u@E-;vL{B`X$FGsO%LbvOk|U3k=d(|)nvtJdO4-^~jg$g!?IrnP!eUHZNn z05mb61{uTzqDycIb~V+sjj9uRZ7#thGcaM!6s|7ZSB{>pWt;81BJ+N)N)QHsS3j5>Hs?Pywr*`T8%2F&(7BU#&0Ft+JB9~uX{q0!#}aAzr39-@ z7>PeSn;-b0uDt2VDJ}i5D94PF~Ku}Jm@RuN;^%N62dij12L&1cCOwPnxOs~ zN*<5DkAVT|>d(71Jz)@z)<8lBok5iiBV+|L2Mj-g2~HTG@^bGj--ZLl#ZE~M2GJXi ztzNHB6r3OJWTK|Vf&)1C2cRfR3Xye&y2#3!w%PT4)Z&hy#(m;CIyyXJmoqiyNgAy2 zJsM~jDhp93S=_?0$}kx ziRJ(_*T9Z~!DCrSXb1~Zb=62%58FmWyH-^;tH@#N`rp~PXxKJw*!XFmgVq@=2#py} z&3k@2P~p8-}b0_ z=i^nTC{Qg~kN8=duQ~MIq03U-z_UovCvFpzl6>(ynIHk>W|jLVnib)%$uW7!-d9(1oiEpa?8ex@ z{e3!IVL!VWsbePMb5^B#yz|qqJDI7f{#PtLp1cue{_i1LPHEYn0vJMA_*@mV~ z`i62|nY~-RNm5$d{ONDxPjnnbI*ZKBAz%ZRFm+)c18v}=Jabo`1<#`fz;RE4jQ;cE z5ajnbfl40`xPEaUoyXe*HC6PY@i1IvAx-ER7;4*;?rDrr0&_8>^ChCU_ALKd3TZtR z+7zipArtwksFXC}@nC!oW5Z@V!Ba`j4UtpSeUk>U#rM3xJY;^Lh|!h7VfpGLAq5}q z`kWtlf%5{r}~uTYt_sK7!IUg6?`p9cw-}GlX3Ho zFx`T`1|}?`Py}(txg$(U<>RIrIcVSNC}a@fApkKAN+jA~IAIERA$ z`ats#N494x9~OER+dKkx6@$4MCX%#Di$_OXwA~JswsEkH$fT)N?P%h8;?G( z;;pKJamg^Sbq~0N1So1;AbxA>zhh7(R1;SO3o;Y;yg7xF0sm%!VawWO_8LlG^k3 zWoaW?(_rcP#H&L0}blG#OH87X~W6zIm;C&S2tq1SpR9~$&2wNJI$bpsc|6*jkg`treo$w7>_;Bj|gDs@qr%Um`8f(-|f)aEoB%&&5k? z4qj@C7fHnT#)pA!37-$T_rJ%)&ggM|SZ0cSIxTiW{@t`2;Q^3xbf};xjk09b20oKXdoLP3&`1qK|P)Pz$HlR>f7 zS#efJAf`7(Tw({(b3sj*ANwWtTX;$K)8+oBpM5vuI0Z%d^YXm00U%CRnuN|ry5$lD z-N4e|qi(rmfS7pRSg~*h7n;dm5<6sh2OnERWym8w;m2WhI2;(3)-FZzI_~CloZh6E zE-hUwZ^OmZs<82KEiv%$Kd9J$gIM^&#sFx{BPfb#YOJQ-R8UqnHa2Nj2`P7_BqcDe zIkovxfsL}LZo)#N%D5s_2B4VR?rYX5uRL0#tR~#9_>`F&h|&-=<25ro>=a}z%rFhA zj`(Ev<>kK~&cDUV)F?>iEs^eYK|&tI$MOzYKup!7xniXtZ)_GCYgDgn3?-HEFd&Sy z)Ov(rFT<|aSJPr~E&cQO`p7OWsZvn(_z@IRB&AE}W`d9q zT*lqDGG85DuL;VK)>9D47)Y423Z?SpS=1Txo(n{31o3z$@KQ3<9R5({iAI!Uldv8~;oN{(A$ZKQ{0dD{h!3Gnog>vkY*K?kxsDS9knFzK80_xMtmD~oG6^0b}b8k1~PWE8Cf+C8IsoUW84v-TKGg@ArR?JbZ8)#RZ zkT^>ZK_9b{IjdtO_zp@P)k`U!B^GOPulkvgjPUq+KqtLAX?bi!#r=fxo9s@A#^ZhwnGP!x*d3?gA`&B$kvD49 z1ccT}ld2$NS@6sd*+JLZ`h0+*@bbz*_8wSxy&VzutC#!N5-0bSw`UeeLbs{{5H9H$ z2t-}j{Y0$dUjQ_QR|*0t)&vPDSQoY|->{dym7&h%7JoX6yDX*?a)_ZRjL?%f7UTu= zku6OE9Uy*!Di94R#S5XoDdO&zB+Ru$jbGTWlw^0U1agx4pknRMGb#;@aUBlGl6NuY zG%4zGNmY@uvMc~4L**R+I@IB?27`FyI|lI5AkWplQ7d4Ca&EgqBdrg4s41rmSjDKu z(>*bmU~944J^(aC-F;Nb%{DZE1G*35C!>4j)JtNK8^WR96L)WDB=`!YyIsQxS!QAG zqc=D-P{XiV!rt%F(qM={>a64rBYIN@Ms%z(7@)${dsaA>3MzhJ2$&WpfjEAM?g)Gz zFjZ;wUb=W`Pj@b)>G%O8_%M$(d(k$MU4jQH_jDuQy3nx2oQ89smv<<^ystgZ&T9tM zNk0y*@md<84B}%CVRBBFIEB*7)2hX;R-~sDQzsO~UK`pd+;8SPpC&7P0-r&Ahis$V zUGLv}`T3u(9KGcL-M`%r3bL38YgQQ_J6aLqn2suORjsK`p!m0~Z!3bSJ_fmj z>ZWV)*&v@IY7Y&dLN+UXy^mVI9I;>hwWhPB8Z|5VGh(;RKI}Tj**s`@>}Z`;(qzf3 zkdV*S=hUJm@7{T<&?~i1d8y!X9B!!G0IeW4z(X7ETpluSRN``?xuQ+bCHRcuuL&*? z^|P#zV9w#IPs{#pq`4wG>4~}RbR}~lYav|??*aCH5%M0{2JyJrKK)e3u1|MeDe6bp zK4tP-;XY$>U$upOf#Yu1(K%N1$(6|Oss*#-7bX|A>Tca=o!e45b%$XhIXtU_QGZ zHLuiOt}HOBMsk4Vp$z-f0VN5>Qip*2O-v4r)N7+mH!4yg+$5qY!K|Bq!0j4eqgxvp zQr6hv`KkJ3`0kUQtSu@Tk(qb+~wYJ*Q$nPLn}agrI7Ut$7qbrg$EMXO$C5l>y>#eK06{ zB4O0a%(&<;F^t0$qGNbW>LC)?G}^dfnH#)5go&SB|GhuHP^!JpOo{sKtjoSXx&2c2 z`*-`DYP?@BzXU*>6$KnK!~k)5hB~A1$k|1`$n)Vs|cc5 zf^e1)n(*v7Owmuhsrfb^SoI`}tfg<9kmoRJC0PA7fAFwgC`~%;ISxmJRK(?56o@j2 z*(#Q1bMkhf<=nufX|IEudVp_hap@8#1RyiWq0;!hH%d zX!VwxBq|rAM2dqz6tCUn_Rw6X7jD1EFfoRE7Lb<2WD1r{PTSQ&XRKv7Q`nD79J|x?A-1JF%{*lL#V{)1yy%-=|#`C9le{b)j$;E<{S6j|e zJ<)skmFSr>yH6(*SeNhpSJ|~fg^_DBccoYtx_aI7^58*$9(jftwaf-KSl(+2DfR;P z;{}{C79tiIyqQyDPdO<({Ts$LlveUuWkw;K9PA0R+ zvkB%HCed>WHv9fU%TC|1{d=>1TjIONCE1S~T7ML73)n}hzMVX1`M&Iahy@)?3cS{k zL+QqdySa4cKjb)@cMR-RC&sED z3-g9~r*)ak?%GNInX}$|6+LUe_nrOv!tUbAZhJxJzfF0m%TIAG+e$+{j;Q5K^&p2S z_ta6D@(_mOxv|`jA@l`ErmqJc=L0D{jzRlW#2_l>ME%esh3I$()wbmeV0a?M0gl3+{Vgm4ud^B~DU-ti{q=2zFh*kWM^v@> zZx}p}aGa?842@(;OaxTiVVXl_lnJVEBMeSJA)`*V(krJ#gFA3a@eTJUh<@epGoxgp zf!m^8iA_3m^w+EHx}2QQ=-LK*PUtp7*xze+3!{g1*~63ZpB0)XggHjuj)fK&HDxoS z{p`|g#XB<5g(;C8*ELNv&vX&|8IZgHPWq8LkSE-cU8N<{d0HShPH=%%@70dRdR&P| z)8_I3h)$P${))LF2hen*%Dn+HGq>wFYC2zrhwvWL0CffmackFVN}pcHKhtDAa_!p1 zQY%Y$grfVYwqQCV5bxa;EW19_uru&bXTN`Mr1eJwySKHccDuZFseiX;_OpHKe^2=} zax(||d+&7Q-Af>fkZmsnI;zfhNHjYveW6{HfMiRJ}@=}rNa7MXMZt)=vb&?aNA)V0kyooP1%7+8W{2@hf$zz{}H1D8br$=dPH|+YRQ?^UlKUcOouSe}{?$ztA zUf4so{<^mKuhy_pt@=B3^2&-%jUU5L2mV#v;uM@Fhz6!{2btVtV*KfDsAP~$QB{XQ zeC&%xojpoQ?=yMfY$pjUEH5=7?PGo_L7#_7mNJ$h#eo5Min*Ji@OuL5Tk0V_f|0Rt zy9*NIVKIB}b~(&+Ds65+O`n$pkzvT{5xBj+BYCLmamy8JB~ckUf%~btzfNx5(E0P| z?$1a2mv>(m{PS<=2pqcGfAaM9u_;{R8l~qVLCKM`$>cJQ^l&Mm0*)Ay!n9A6IEnkb z2VDiFTR7u&wtl4K*}CxrE5nVNV&1ho9V$?SC?4ie)B9zLhNl4Id@!1Zx-dDO5yB$! zQnmD_#!T+3Arw_@ouHj*oi3-)9-3MFQnwyGfdu_VpYRb9;&*yZ&6im%&gptI`Mn_Y z*X6tGcfYi5WkjX;{pq{h+z@dfi|^S#m>XHZo+&CvR8zBUCWbss66f0U!S9h7wiJMyeF_h|t+L%B}SFYNFco%d0jCH4I=MSxd;v zZINDsH@k`$tWQ3#61-kdHS?Bw(p7p=`FJIy6Ji?p<0YnDPmOWrrq>fsss(yx6<1I& zd2+L5dx<5sS(iM%#7Z@mWyWNBv9u9h7SHlX6WG=CQM^LI=!4v!zeHJo$9gFNQeQBD zH0V`93wq-7BvT6;tfrHhkl9L&vntlCNc)5tGf*O7&*!Cj%1FOmYn)p+^SOnyn%Lr()AX+D>N&Wnc7)y{fvNlKV5))E>bHQdNdA#mXp3``Rt{cwvPM|0P$T`qZdh%gln#qRY|t z?Dt~Q~24EH!^-IHghMyGV(!&U6THW!e#@~-4`p`A?PJr?E1ocatQri<0sc49_`dfx!u9!2>CPR;`rlCDk zk#N&MZ}l(Wc&smlD9C=g_RC1y-a2RD<+)kMzY8OG_IIMs?{{5(`7bRKKlEo~A)=py zNqqZR{SvY1$j~>&2%8y+3A(FWkTp=Ih8oy8?eBu{G`Io41ei{}%qg>13|iwB@e%rw zPPi{?)2He00v4XSx6u&Ju~~TfU=(QnS#-3=%9iq*Ml1P;Hh?EB6k+|YGY1@Kae#d zlo7Uk$$k7>iqWgh2MxAHff%2j;7`ph?4>ih?9ItS+yBjs;q8`_Q9oaWKb_3i(J4(M z{V30kkAoW0($!}xP)?iaQiG?RZK|ChX@(A?R5XnqvGt7=$plrzbEl$A37jjZ`;xTD;XTQLk6afSSuMJT9^tP~sR$X9A=F!p^3~ z`cGMOyGi>lAuena9miT&Ke;~`-RAc@c-+LHb|-sn`E9t>sR=Hq7{iBrBn{}G6@Q82 zc`Gbg#_EBfI>=a9N-f=(n1(b#o-lI-1Hg_@u^9<3fM(faR*BUcd7KE8Uu7|@rFF?L z;k1Q38nUz1-@N%!S9tT&+P^aQ#Qq93z1(PE#FwrPN?Zhg8B07NO%$~0BWG8Xuw2g# zcFL%ZIhB<$N$^2Dd@xB#yTj!w#vs0myNO$E5N0A=4dly?KcQlb(<>^ozz}S~#t7@< z($eygHSba9LX=3$LykX1$HkmO*ZHNv9V6qLsy}Wi3Y2tC5zTBz7FzZ$M8B)uUW^Ww zTmRQjT4IlEvcJS}Ce%4Uos7;n6?pMr=XnsC%vcQI1)q9jg}skpYUK^K8FvO}6-RF8 zUBCO0=?aA%N!Ldw(=>+41q~2lK%|&O9P%TvXh5kK5cB!Ed`9E?Y?;F7a&b#yUy z4)9jG?105Rl{o`YsvqUVXPX>&4$F@=2Z~V|8R?OnrQWu}2YyW-?lj49#Gj3~cP@UK z%|nV$+{|i^tx&&ZY)~@>(?|67q>j1vIV^FO#xgTUD5WtF#q`0`gH%0ChXY5o6%sNt zGdZDuc_<+kY#1nQg%!a_67c&HZV8UG}vfOD&v@=BB-hXa0_t|_Typ9M(_#J4w6H&;1clSaj^7DXl62na}w)$-iTCC-a@o30bs*IjURekJ=I$ zMY*TE1nb1>V08~FG==HEzIhhp$k)I?k8@@hTusQcSh+N*##`z`sFH`?7OL*AHb2j@ zo4c%|{!F$A-}xWfo!imf{hGm=?HBdaY0fQb9~B&iQZmXi88ClnNr*{TV4}R;xs%o` zW-by|1v5$oVeL07Qyx{q)j{K)UdWR|@4quqRj!%o63@$(6+|D_a8qgWR3Z=PsNhiu zXWKf~xJm&4vXGm$gsa2*Ok7@kl<8XED5?7@8m`r7aJ9;fdjQEO>C@V1{2U$GviD&% zaV7J=UZ7hd`R5H{WqiM``CQ>UGJM)5q?$-9i+CUvcit0QpzYn;E-F{2LJ>TSE6A0~ zB5?@5X5k+-l@DRdN(2_A&P1%S@w#${P=^Mq7sJ&trL z!|j-L_?P(^VQeON@NEC4mDmJbRv9lck;hcz>n13HorZ&(_pa;gV%MxchcfRjE+#$2JLj#f24$$ z^_f8Qb0x?YO-K|CVpN=kBy)HAw;v_i+|TElA;cPcS%RcUd-bA6?^)Bf7mCR^B_&+JR=HgFQ`!1!yB%i@joujhD9ouP|@6&P_&sLv`otILHov!1)X*ES=*`vBGW$$&Fhm- zGIcRDwls4oQ6$EejU_m#TheZFVav1P4g&=(1T%#6Ob!1scAC-i+Ju1&`eKN1=WE_d z`mk{;Am3b!&(g@+)_&{ek^T$OT95xf&lLH)bap+F)nAcw{XOWIr3LmV$rxeKnOqynE{T?Kr1xS_3%wD>bF}ve8x%2lbHT06- zzZ%?zbNy7KXD#2x%SMC60K6BDRTHw*G1aJo%&~SBM^gx;IOPd3-tn=8dX|{Fd$<1* z(1wQrBhRaRAJa6jXbh(Fz%5J%tBjo_B)HTRGl?2BsqzPa#}*-u;gOd+%s~Cc+{Eg0*v+M^vo4 z==U85hZH&D#ZdCnXt`qGDTjMk+uBbL++peumgARP6H^@#?-(xKYI?Hr++1Rr&we;` zi#{Z~e5|<5V_}jrRH9K``6O=;DL{R~FYpHKf+mU`y;r8(BVXZ$3gWEd`q|r0>afq> zUA^}GKc?fHea&&z+xBej<s ziesq+7Ki~cRT!JMYFi$IRfhAQ9?Tvw^>#F!OaJP^F@V#@IJm_1ox}(EC)LK)vhhxy zxI1X4oR9*L5Yoa#!ReNpVH(mHOIDOFH)+d%K1{{NA^l@ZhJkZc>RKw-4NO85)`nR0 z=;J!ka=-qYsa=c0t>2C*{w?s#XUU*5PvbDdxCF~e>YxN1F1`0)T)qy>tfy|h2mbT$`!YNbKzrf%Xfw8&8veX3O zbdEc_J=6jFQH^GjmpP?74DvMNtx7MF?=Xj?-SP=GK^vflWCOA|*GV*>0$= zpJPXk&Wg#rLH1@YtPks`Hg$KmGa5~-2dQEoKa`)oUI&bkmKH=>HhTJ_37tVfy+ekz z^F!G;BP#DOYDR{KWvLpCE$eHwwe0zV_Wye*`+ZIO)n%jEy~*XJwe5@#IiZ`|lkawh ze%(E7+ay*wry>h_&}mA8Ft2K3aT&ZNSHY}2iT=o_A1a%HR%y5KN}YB&U2#YRRAso6 z$Y3Dz2S&7vV3vpRmeyWw-4#_pumj$P6BNNblP9N=N~Vfr5mV~LAItA2(Hh73Vl9G< zV0r7gwuS7r*?pefW1(XILqN>^s_3PYeVcdRAB(EK9`$>g{n1EwV>SAFspS50JU_(jFVAnjOsu zh91ul)mQ4qyoG#@h+G-pEC`Jn;nd%MFZJ)0-Lcx;Km9w_(Vq%8(^8_|Pd?iFay`;6 z{8i*mrUd+CZGZ228E)xCNC(6$y@X@Y-zR%;pM~m=(6bz50D9Ak6A3pLG77gV0!JuC zV|f68Vx@04kuT21f*+@h=Ka#nBw<(+zJtg?e0d|!VXNbS52nJ9KjFTCs#bo{( zr=bi}D-#&!W(l>`&HEw$a5!btz)Inlke$IDul*!l4fgNW{obfn`%NXC{gch%v(wRG z&1*C3TOaXAlgoWtq9OREsyXJ>g0~c7qFC-Fxr9tn{)=x-y}g<;y{w@loaj#&y~>Y; z#1SVrT6tGKNB$EYdj~Qjr;*TDAEnB(P@|@6C#sZh@f#Z=kvIw=kz;i9nj%rbN}SVF z5UVKu{JCfmVQvdvA@v~kL)E+cO>B+3%hzWA8!j^2j1;!xY~XCp{_nyyzetwupVitw z-wO9$eZK3olfJN3g^!5*QCzGk*GGbP<@;Z$or`~0R6VbqEJR5qq!CK*^Jo%Y7Rkd) zrT^C1s!R!c^-((^2L3S4DeaXr1P12ASDQ9i4}an zb8s7Q6(@5|^*Is~jsVe%Iqn!V8NqIDJ;$CY82HcPH~MX&^Q(^Y3)YmV&B@(2CnJaZ zGf(dEtmwYa_UawUuBPM02{9FMYN{zl&|v)adl=v>87oucg(grO7Ed#aaoNzJ7_@Ew zg2{s@yAfiMa+M;_b6{MLo>?p}H)<4*1=u_}p9UaE6CovHp5&qs7C&I2&1R75(*6P? zb>wD;p&b1zmy*6XW;0zo`jdO>&+2{hP9E#Or+c{GY`>Ky8L?lMvZpS&H_*j?6R7j+ z!}R;hS~8CDA+l-YCoVKilBp>ePRVc?VTNhj@ir;JZAyrIC_*BtBx%7Z;F%@~i)g60 z9zA1Xvh0>ivNI5T6AuYF^JXBA#27Mn$FrzyX7K2En7`e(J^|h23|9zt9 zBO+Z^3v3u9dLyy@+s(Qp6{uUi{oR$oXpyLm0?uy1!LEn(!qZ(Lj)gWJ{bg53a<|)h zcOraiPO|^9ZY7mzoC~1FROMMwouF>90%q}O(HS*TVDdz-uflC*`qeI#4i1>nBPTr1 zVb+CjH(rnasC6AKUD~DwubR=8_o3uUu!6(2lbaRwp|k{35wk=23UjALMAG6?4Q~M5 z$}BW!f>IWGoIQNLY6Z$^w1x$*F*c|9^Zu0T#x{KAdfDfH*WvbS_d5&MjAl0X_gZ%@ z{P}0Ib!~I^i{eh9oa7$}+}*G*?}#Z!8vx3k!uCkbxIoj@vTvW`n$@#R=}Od^USA&$ zrY;j-h>Z^oCWR2_O81DGvjmx2h1*P{=I|SE^@qM@@yaM7Hmmr1zFy2hoqVF^6RhJ) z#08KDoDgzg2q{9#v3bMPZ-;=HsJ6Id3rZdw@gPnJ8oN+M4BEN7v*Fje+2?m4YF%Jk z+wXjcdRx0a5w%_W=eW+FwAx+V_xr6KJGIwvDI`-^#;fq~To9Klp;YlkPY(I~vo263 z>uY!=W!OWKcpw#-0{=1{$+V8mu9Tw$_;NWZWHkyl` z6k(esS#W0~lT0D13!BLb$!PJCDonB5YMwy;)B!~vGg{eIs-coR_^@}mAgg6Bc~gho z(JENjoDuP_KY4F*<9fJOA$#B{`*qi4$v;MuukQXndB@IA=hr`GIG?BK6e0}|*JFaj zK)}W%V_-^7n6}{w#Ep-X0TUPyl71=hwRUHA!-{=Pbxo2GG7*VT<8%UTuzTb@TykTk zypN2g1$kH-z{cjVz#oHD5Tly6rux!FXN>eiOrfUmr>Tl=H4sqmKCpZj&FcO6 zlhHqw_W#L08TG62Tlf{(3!)nwROq$UlrMq(;X5uHUAG!?;X$P|9$~S z1c@0zZIXyldsXcQL1I;_6m9K2s!Giwh}IUP_NJ;zjTUXq+IzJ%YuBn(yVQ8{`Tm~g z`8Tipk=*z7zOHkf`QG8v@QGwQ!lpdp1>;Mn&&fn zE$c43kJS;nn(dG^HG!c;&n4yYH>wwmYvmbaGt^)DX#+E2XEURojp}IqC`l@M{Wh|< z^vC!BRQL;u4l_QpPA*o*}hn4TC^r5*G&$ z*=e3b>9p27Qr1I}ncaT00iWOBchvgxx1goJoYa+37S_tw ztf;N{HF>XNAW^FVB|wh!(M`|Sr38Q=#;{OnBwj1o#YLKfk{FfNeRy;l5wei*ch%$E z?Ek;$tG;J4Azi0!FIBG|TsDTB+`oLrd-|vQa(X*!zA7h~_U%WTN$hVn?Ey?%|1!c+ zugyDiP@$VNJ#0!!yO;g4{SH=pzWc`(Sy;p?ypj~O%SrQVJl~DDWt4C*Li+rs2hUt% z$8wIR!GNwZJ&9@d_ia?}+MKzsE?}3V{e1R~s_17ZChgaxCSTzL$9TJsB4OAzizFe3 zu1GtqUKF2NWMn~jCPt=41cE?ZkCfN!g~{qs>3uYU8D*}gT1)dJgx6oSZ_Z5IVx4~` z`0qb~)G<>}|!;PIt^jHjC$&>Fv2W5?ghlL z2b%re7WwvoZR1Geo1EiPc6t=bZtw|-U590)vnT8Hkg8sHxPNaSw%gcFHOIZ%%(>er zGxvPM-*j_(=46m7qkke~RixuvZ5qzINSIsGNT#TQHbw|p(22pM;S7E3om>N*ZSUe< z^A%RrmdW6O>S1M>gnM_22|Cz&q*6_Mn|!u3Gkg^^e>NY~-sDTta!Br0E!0auANH=83}iWJTL5H-wdm&y1x< zElu-#zD1eG-)Y>5(6M!Ygxr$&FgRg; znNx4>AYDU(MRD3`VtK{s-6IybtF+qeC? z*vA{=ulVBlH1!|q{I)a3460eQY#!wO3(b3B>D~R$=U>aoUzXs7|Ncdt-}4{Zs{4-T z3#zA1*O8PA9w9jBdmpAr7MD?9TZZ4|B7TzaGHs;zg9+2^I{eubA61|LN37 zKe8m!#tC1Kvl~Rj)zyJ96+133DrCsb9oD5aenghaW$HK;H7Qp<<6)4ho3Rrz#)UH9 z(4KD&x-bjrxOvsp@;Cm3L{Rt7AJ<>7o>V^hSKE7A<)Zc0=~LCeMywlOa?9`L-sfLV zeA&@FeUd?fHH8=aNxl7E54i>Qe}KG#${$)sU7?A)Sbk+3G8(I3~#eF%O(S zGTOzLjMX3zteW&>qC!J*`@$6}INt zddeg9I!ual=#Je)#$xY}zPFo815zgDL!M@i@iKfX#jAV3%m7+3uNU9hc?1PKd8DG` zavP>Iy&9WUbJ#b&e2M?`zTY1cQ2u6CcfXCc!J+G!${@QZniIlQr;B87b&{Z_iTr|b z6A^oBSNm~N$LW4dvGF~%s%S<9LWuR;Md!&~k^_e18TkkK9dg#Trh3I2Id5s9`qO^M z>8*}UpI+4%RG@bNE8ISi&LsIZ6eD26{|W%R+sWqc`S6iL54P-cPhS)vLs4)j{2-G3 zmN)rNc?OF)u7lFFZutbilfm|7{-i{%jM1m7;30*NcGw(<o0j}rW+#CNx zwznU)EID5#H=Q?6xT<=qZ0`A)^8Yflx6z=Kc{NCCBN@*GiVdif62GG&*@d&o6z=dN zjs}u?zH>d5Pgwk}yreArQm?5owmZCA7n36+JrKn{7j&@Sa(ksh3{=~Y*%R9fomQjM zOUG-IjPozMeC*ZL@57Q^Z1Y?#;>8s+6{BW#h-^KRn@GJ$NkIcjS%eg&=<6}3{JM80 zn7b24m&0edyI1G)F-^eu$#t*g`Bi${BTbBrWNMzZ;Y zU+taFZH65B`Jc}Et`!A(Hd)LmcP)2ha~wG=d5-r6_-Cjh1rxuPD`Q|z%~PfSe)!VO=cNeqvXhDT4i8dD5!#$0Xro)6C-o&5ZEy6wYCGGT|T{i|HN+&bvtO;O-ga?ECT zZ)$GJ?)LNdcbd>czr`Wp){2>$z1YGB+fKleY*2c>Ra-`pNt-RQy+7(^f`%}Oz5hZe z%l#yNZCeK!-NT-ou2reHM&{yNJw)rIt=mxA+cQ3Z{p>Rsi<+J`QJh99c1(7l%PNp& z5%29JKfAGM0|qG>@fy_g;E2+cwP(RqZmA$ZjsiK4u?35c#CS zXQczem~*3R;Hzc~QB4RU0JHN%gRZl@Vs~dY5_mWfuzPksoST+#KIk`hhjgz=YQJDq zUXcFPYli2oyMI=5(kfLPkzib7(C$WnYLjw2LD>0S)F`(cTwS{!Rtk>FNbkm@qvV+q zy8n(e>;fLm-e7uE_Ef8%BqXIMud05KVX6s&#E|GAU6_KcFU!Px*9k&u1cqaF3??u- z-b+&8z9N8PO+{3auw7QPbWNy4TA64kh`L!n?3qg9+5y#@gIjbhzv9>b?@kvT1yx%9 z-3i%TAy1fJ^|WXfM+wLEj>b()ys_e8a39R5gS9@cl@!pBR6~E)Lm{5=EPHn0Nb9bX zi!`c^M3@SElxAqS@uCW;W$s1EQlJNPps&a%a*+GX9>FBf zr*`V>%PxalcQZ!2*k(2Ly6nE&RM=oqC`Mf%N#&jiAQ`AMe?0CL()(yv_+S=RO7gDh zzM}2n`qqDr1}PqE#W5dW*~70<2#=PX0_T1`;K>(P|O1-nKChGcocX&s=Jp}w6~nE0Z< zv5xTr2q}&xjJD!>TZV038o{RKi>`AaLMDFQ1i*oF6A`XZ(0&DwDQXCF=eH}>sqq+IUdFaQ@owD*o61-Oc5r)BC}5S>2~+xZw5-+VaU7 z8_qZ97l!e-P5cR&@9G6U*o_qHA?o4 znP!W;E0I43yF&j*@Lb&vy1Lq*o&UG{{BQg2Wq@FUhug~MQTzIuAMfgHEBDSWA3P#0 zGu_!}fp|ZKWvT9EQk=?KhhBwrq9i*9hq1A=tn`-21HqSC4`9^Upv3D@sk42w!dRQM zUsz#^LKmE#mII0}owf`TNAlpv6y3LvN2+P-){|Vd0097u&KwqIXScL}Ivjjd`7g0$ z^W=g&c;9#7@_c#QXP)Gjy|{HeCGq^Y;qv3f-%2k7-Vm$G?q%UVj(hc5IbNg(^6%;^ zD=$V~l42(K{RgmEK5NRAJvMbTe}Sgkef4@RL*qwXP9qdWU=!)EFR1DVGkt{e$NV2Z zzJAtLmtv*q;MDn=o7Q?%xxv$M@vhQUC~ z^K*vt?EfhT|8vCL*toE~6lwY6rTS;5f8zW3_wwX1w7aWxO^>|H!B)W4_JdoW>~;x+ z?*7sDex+C!Uw+%Lx4or|EYDuQM-~N6Ni$_kzn5XCBhlMl@t}Wpu3Rh}EHVSM6>^zi z(u4JD5dPOqLhged*+sg5ZAC}r%9z+ z;46piR_1X}7tS0iH`msT8v+)qXLhx(K#gYipO~5COZ40NGv$R?El9+!6=|q4+Y` zC6Qr7&?3G}5^*Gv_w$hqrAD8Ud|uq_PQT;r;mf4UOZ(bRv3}}9dw)?cpJ2i^d)fUC z`Z!UX6sAtCpsxoBnaSQdQQ8s!_QBUdu1FA@4Kk4)+A2#&8%>#0vXuOd;P)1-ehq`| zHaL4p4vLpJD89qaSgeKS5QwAst_Dj450(}xb*r3y+HmVohqX;=I$`+8BV|8f_|ySv z03Z^HT7dZ+%(47z{DgX3UKp-ERjVS^KHwmJRg?SOZoD%XI)4e+Y8xfB9FlvM!c0PTpxftB%t0%Y7gX2 zl6wg|gi_Lm2`3Y@CXwCoK585ZZO&*gd4X|{Ap~f+PDmmf<$n04pixRMUgW7{AW{uX zW=D>oo(-ea1*6qLFqDjFX~?IbXPuXB3xv|ek2|Zyx7-f5vk!`5Vm?erSXx|Gzh9~; zM_Z=W@Bi>!<9+@-a4)WD_VV-}nGr3GQo13v@FJdx*>f`UU%N_!;MIqdlIkxxC(q_R zDz1WuxqAX7BwqI8xJ091{CC3n{SCROYTPv3wjxK}pK|(8 zEwmjBy#NNy{FJJ&22E()PNF+&R%27xj*SSQ<-*$$*uMC#O&!VZnWF@!1kgHO2A?CL}7$vv38WU?J zlu$88+)Ks>$^tO5gVj`Y1bB??33KaIp=drEH#H)2#G8^Ej>Lyz2n%43PEQc9#uWDl z59BW<(re_ueerU~@EXXlDiq9^53#+ZONA69pjoY8;DWDwgH6j18rLp7$SF6-r0-T7 zKR=0m8`lA5C^**^z6y8D{e0}v{HLvU^WW@e+ir`3-O0VcwuGy{+N#amhbQE>zz;#h zg+xwPNceqAm6{(fXlq$eU@UNMvTS`6ub`yzbZ-oj1Lsuqru4DS*M^#LRzQ35QDKQd zJXAQD2Oy*#8C!yq6p91Jts1!3|IMlm5`$3Q4v+T`{6>ZtY2@eA;;8#Wxhi6Z{KUOV|AO_w_7>NGoTPw>@~o2)E+W;bCkHs{uB~VdZ_o zW4kJlG##oyE}X)-jFtc>r+aukrgk%H__RgWLj8lqT0B}#2ij(j3XdK8=8*sbgF%H0 z!Z4@+SsG*R8owSN;7bH-46s1Wph~^#Hxa&YEs;>j22uP9c7n#1cLLLks{tTygv!mX zJxjmK&%Tzy-Bh>!#Zo%WdqRg>cr^!L(*la>6}#*W8~4Oi8)H2cu7Ry`Mat1hnP~dweG9 zF(T0vkW}XZtSu*n90X`3%0~sbgDr$4CB{Ldv0AdSej@2(@?gEa91xK79RvpYLKcwY z(54O^w2cFfGSYT0C%Q9D@ZQ)B7}n_dIyUXDADNE<3c?a4wHQmKLPdWx(ti9a4x>_c$$6V2aiGK z&PbE__b9~TT#k(RLq)Y0qjB!h&={yF*$5%M2YH`diL99d<`g+te@CroVDQGAM$16BxUo8)GBuWax4AUSZ=&%@C^wx z2$uhI0&9L%2}OMhz5u>VUR{y+87>Y4k5W6?9_G6d5d}(I!O@_CVs(Ez9hrqy^(uu zQ&SrW-fL&uGxZ_#pFV^DeYOasQ#k>k-}mR7zR#8v9P|AVsTV4(Y|(Z}p+?9gb@J70 z%4T-wR94!om!C*7ri5`J!ANJlb%1QD8fCPZ`?uI0k&tp=Z5D#5sgW?fvT88;`Ng5p zkXDQ4pdsNPIm`hEHUcDsZ4*Xek;Njo%fG#ge}aVPRoq@$k_{c-Zja9y@!k3>On5Z> z`1lI8A&95?+hI>S*CSA|qDc}V4sI&DKTYuP~oWeV#xUreG!3xx> zKBJM`SYiw+)-z%AW=F%^3H)iY#hof#z9yNe6Nr3-iwRCJ83TsX(#mNti=rtxz|?GH zYG7P`YB48vUM1kU%wlKR*;Xz?i>=@xw^Fmt6Q4SjCmU^Y?oJ_qB#WNiI0{m!BcJq% zST=U=kygFgx?ip9K{D#PZdEymhX zT~CR7VA|#=8J__r=%a+*Oe3GPv#JPs38)i>e7Jo2dyn%8PlZJ>g-=KOTve=hQ_#P6R{9 zb@=+wy;pA*y}1;oqJt=clhJ(G z_Nl4F_QlrKSEL3;T!!OOW7=H`g)n^+HoX{19V-v8)EItJCswMpO`J&7gFD??gWz!UIe>ruZ3v>tl4YkH=n1fZ%xkm>SM2&YNoSz?yJ~8hu;!@PuKqY z-N`!N82oQMCok!69+aDd;T}>u+wTyAS3$waQlrXpF~h7kDkG-1>p~ozGhXrkg$oTfnNZjHlvD4&*EUXlSr$!Q6DG>wvAw|YV)Fv~k=pF`lv*XisWo= za)^r(o-(KFnhhc{f1~;~p&CmN&L~s`>;7Z~vVrs8rrw4d>bK0UYb##Ry*=+L*`^8P z4DL2qCt*;;VumBnw_4W|-rzmfmM3om&%5m}-?Y|4gS98suO(GAHp_h?*t?;TG3|mI zt?JPH`PVkAe%#0y?Z-d6AJkirOuAG>aVVjJNa1`kkeunr(#{6Epde=!T22kSItdR& zM#AA42E(bh#SEP)S8oDgszvG8L!p)Yp|hf`_;5k1;}HojKmZ!DO;Y>8ynqTSeVg zR3loO*qy&+p|>tJZu1t4OzgCHZ!{QQ zQZC^DBc}y*vMt8rnZ_TOM{pystU;CTWd7zt#2V!m5^&%+q+w%H{vpEMD`5Pb_v)YH zU+os@C*odz$Y{2-=Llo&Jm*^?xUAhh&l)p>$DfbUxTHVAOrdI0A)^Lqjf^ zes~?zLhwB2ot)_<5jT3neG9#DdcRWvjKWe^Enm6E%_ikGy&yjpu zjKU(wR9Z^{@pR<|ktk*a=QA{=+8Ed=vv?8|6%~)gnMVV?!=VwOLyT{+aB09;+4`G{ z`R8?auTJ}q_OBZMP5AzACf&aV{QXU$`FQfenD@h92L2$dxt$vg4&Z%q&-{TpsGk5w zOCtcf|7rGUzeroCQ(&$&7M)qH^VN0e}cv`T|}V3Yp{3Z;(&t3C^a=`Y?W~$ zqY#@};8VevTS;2iX6e|HSZ+^Cn#6G8vEV8Ig)RsjMwfp_qy9?jZO9ADzahI-M=S<% z;jL7N7-=_(8iauJ)|2hu6!ck6Wb85{oiJ~FCQ$PG2$YPj_U?D+ix;UvVic`_z6j>^ z5oc!7strhWim;*kBa?Y|UG`Y(=l4z$IQ4DHN!|v-y6KY&zRE)2e4Nj|$tG5JtaoLx z&Gy*XSrL$;i(nuaC`*|E&nAPIcokn~S5KlR!+q5EHCbW6=x2KE@)8V)&jn|%-Wi1) z{rdGQ&3Exn!V{tEmd-M`=h8#|+BsJ{R%Z@7?_QeA&49@V80_ z*~}+pC0d8UdIVv9F5sCGb5=MoaaGxJzb56nce?TKuU&F{)?QNaam@F$=u+1is}eH} zY-P7CYD^4i^51rmzlmy;HyHW3{CTZ%e}Rv6B=#Lk7r3ObB@|^!NeNK<=5@P^gBt|~ z6tOYGO0HC8fqJ%4C?knPt&~W#^jDCPG{6Sn(A9BUt$;{7is+-Uzv#)ANd3KbB6t3O zBT8lIzeMof(cqoKk5}0#c_|mxJzu43BGDi*nBX-qs@n8sD-ur0HtbWA@nJ{P6i7Sh zvKL0wL={`fybF%FUX`q(@=d%lX*knI8nU&@JvX0k zJ*!kGoyFiy4#uVEccuGp-pRX7j6sh$+o4siEKuf9$TLYRf6WSkWVjmq_N_)}PM0+7 zQ!Ks5-dB$RYFP)PEYK3J#3Bu?e3yyQzA{T=K+T^0EUCgHM!O=J78?fM_$Xc}l zsHv6u>c7X1(OW&{Y(9?he5fk@_Laov&kvh;sW--sWB$K3|D65atB~c@LDz}hhGW|q zpTAj=ymvM(&8~A)LG;3KVY+aHNo2IBUB!2)C?xAEituCmYO z&UVP9&5wEY%L&BINe~1v=>RgUOgB^mGZvFG7Eu8zB$JGt<0+%qu)_kC?uE6iel%eD z{`@%t6#BtN|Ks#Wu&Y$8B&ys$*bq+-E6uQ$nEyk^@Kj!5StidvXE1F8Oc5p@Pex5g zgtITryRWso4*=-AU;43iZD&aYBs# zWq9z>{UEh~gTS&wU(qY4B*)im$`2Oft?&?UCw1Q{pxgou#?OQY@%IN)#>9$&*w|!+ zM&MCk;V^pa0-#Owt`mlfnOJ))%z!S^mkl*Lf{bD*Y4`vSBiNOX>NdUSmOixj$AsU0 z0_QGQpY_U}fedV&tS&7QDyYpc2=M(xT9j>ugJzKc-EUm3w=IpLAtfg+5{{Q8>40za zNqU1^NR$J;W4BV{MbpVaPh3oj{+Bzk+ouQP`+u~Fk7-Ng%#je;do1*#NfdnOkC{Rv zzp$H%n8G%GDx4L+%h{!I&eVi;y) zR~bPLjnYCbZoJ`fQ2M!iQ}v(X2Ay+J0}do5>mB~^Lv*w6ZpyY{wp*B}wI!dEwVH2L zmceb_n_+`M+FmY*Q<6s_+6<0u%M6@g?tQIB#w`DHiEsXlS$y?hs9w@D3y5wjl}OPe z?@afAdCejFW7#AK9d&`4k%0EdVJkz8A_JS31;C7&xIw6jBZ!7(LG=9OcH*JG;8 zPh=xSE0ypOW-T+6frA@)eoJISU7U^Q5e=mbXisH1%7DZDDUnEg$J9oma5XnAq!57& z6B3G}s3sPm)QM{LuyxQ(?BlSKyUNnoejX=AiW{qe&rC!^Yqi8+(R+snmGU!%;1Su>s&ShE09pH1ywC_*WU>vY2Q1PM2%>qHh-9Ge)jEnDx6+oN3Q-qNbxtby)%aO+1gOfOM_jmtDjTV zSMjfR6Q7HvT1}NB4a4k3O?6%$WW9(*o9XtXT9H{4exip*&)nOA4wpLX^(TQ2#N=w7dr(Z%A) z?we@RW#`ZlCi{xpU93o_1WblJuy=$-Ug=Th;BV@EDw)X6b7F%({TQx4GrILIFX$QT(Dr}C z(*)>JD$z1%d3+;Jf2}3v+)<4Il42i)M2`t&dd+$h;bsTZdPDReW`WSKaV>tc4?eJU zmdi12&?J(Mq@naK0#sq##h`59a=Au*73U%pb0jb6!3bBw~UnRGbbG}sIB+J9+p zGy5Ui^WR1i)j2IX7zLxuT(Hw``QxJ8r&rS3ofxGdQxa zw=CB2l^dlt=1DlRC+Xb-Utu=}(hrz8ufFm2rIg)sgL_N3vx3*4}F_ z8m*WGCb#6Fd*)2g^3zXgWsl@QUo-?!1#V74ETOpacMly^zkfxwy37n$s!%*IlM@VE z-D*NCR1vKR?b(h>dMvf8QbgKTtc^E#v0A(G&##&Hf2LS(^-tYlBhO8hg0;pzhN71I zd@!vM?tCCB)FSN8w~dv>uE-boCaJDg7}PxG*TgwT8208$+%j0wX`a+r_T^_HG)p)w zKKM)IMo>Dhtl7E^ug{IbJw7A}l2Nl~Qi812@uP?HGvyQvlyIYM-trf+i2e`n^YQlS zZv)$aW?)b*nL3;nmHk0jpnRf@8HjXlxV4xS*L;P1Nt2dyd;6=bl8^fQo^klUorcQC zbBz~?H+OR{Hskgt)Ng-vDCIE?eU9b+(%l)f1AD)$;ud2L4s z73T&6Q$CO1dX1Ovodwz{5(x%SeO>T6BPw|ZHe-n=`C1`nB9^NHF z-{puEc3MCJX1I6*dSmQRVO6orUpVnXa2YmGWTQhj z!AbhN%XA6E#yec!b)y2|%>aj|%8Q5D)y=-i5mtjxGiy@)GR*Qj%WzdbIy7$nGcD4% zw|YG%3^8tl$j9FVa@`)Dth1THxMxNM_(;|G_~;Tw^-Ox5((MMbyX*C!PXX1=8lilZ z2m15JvNOHu$8DK&kI5-15^?Xb_z^`0G>Axzx9gnLk%Wo1XWHbmfin9V@>{7_LSHwt zK`S!n&;&6oANxDFzL^j_H9~?=yw)3o4y)Y>{c*kLr^g%+ckqV#e##p1!b<68*X&+D zD+BBNbX3rPkngf*q3@MQz;^97?Va4Yi|WM7N~Y!qy+L++LXmLPa2f6z7ONgZdTC|j z>J=5E3Fuu^*gex1^mZ$moDz2d;Nn0Y8OQ0~kD81QVuE7A>!)a54Dz`Aatn#?J7o4^ zQ8Ribmc{>p)wS}e)%J8$z}rKaiiaa%(47{a(6#vkAy)BRl6<12FQ-92AWL0&3O)Gn zba@Z!zWU29EAf*)TFqfF+Zn~jn(jZVM5aMrfa3%?8)DW{-pqSOy~+I?&27gAWaQRg z2@Zg|mT~rVf$+uE(USxgKG(qJwWMK>AQ5W_6+z0p_6!vit|33>94k0A9H@c(W|H`} zVOMHoAZYh9*huyn>)r3zI%hOUmr(vsyQ_S()qEuEwFrjy!^P~P-$wjy(C-@Y-T!y6 zImW!ZUpaU3TB7Mx(Eak-Sc}@3RJeP1s-rFpSO_-}-3T+yiX(tYu~9bQDj&%#_rMz< zsT+4*WGS7gMi7Kl6*nx@;y-9nPx)KY7P%xv-K{*!VrIerX`IL-f`Y_BWqdps5 zB4AX-kQxjE$}kR7%D#4%Eo6GE{FHY$_>%E)Uh`L7i6*U+P_77wPN_83ba7~k{Q*Se z6K(Gpqh6x*U}plI36`S|P<|(L0|cNk=-zz(D?#OJr*0wMVhPhzUYwR}3CGiO8)kSL zU9)x%w#A$fGSs2;`U=80);e@9`~7+%Uo}-+ zz{#Oe>DnNNWEAS4Y(>lXa`Q2&aLDhE*e*@^TC5mmnyn>Pcb-;wDvNm-K?=$T{6K7D z@@5%lXdJ4*nHF3{$1E!Zq<|H6IelgV^$2y@_`Eb_C(obC%XpM=D94|FJ#r-xBOTV}eh`RO{Vgy{9iQvzsKrL9EhEyPz^eh5+ zebS01izV*M(^&+PTTy@Q8t=tq^21M{8aR+z5nUC#weq|kj_kdcz&FT9V8*lpSDPds zOueJnah8zX47zC+ra(sRkQGBwksW@}!gOs`hb`4AnWg+2Hz}2l-{{-~M#+qeLRBpP z(p<%(Y94Zb2sMT!8e}#O51sg&7zJ&y-mXiQ*gE(ho%J_*`Rr)3+5cef!^uw0PcW!v09jHIdj!pITMVpZ46}qp0)>6@GHAU9#YYD?XFW4i}Hsp zI}78v?3@X3aY-0SdwV^@@PqX3(0(_Aq3o>9Y`48{a_AEjn}#xuJk=u@l!R0C3N}a` zZX!Rp%a7IUL7njn%i@fT-KhKyqyC*P+*BRfJG@~Ld}{oVl^Bz0cP~5lhSt3wWf!9A zrLYmV@$4hYWd3*!W^Vk~aE6=1Dp$~2h_z@kZTX1P^vy@nsRUA#*APASsIxW$WB~G-!MIf zfs2p=e~X9Pn;ct#Fwihj!UXa?rY$Jl!)K2i^>Y9C-Rl6?5a9nn>V4|_yK~&P%*R4_ z58os=tINC$%~3O9j4_SVvTloJj!Umt0rizUz`k=~l7yjC^q_h!uH)4RK2aL;BD7$B z8?%aZgy9C76Kp>^JK|dTxE2c>RX|4QNj!7Zo3CahAE|NFhdq|we!@56jD~+3WNy;m zZmni4;n!04T}M+EXL)O+qwIg^efu!DXq6kd!#HmXu(XSF@?OL5Ycjbk? znowd=*rknNtv_QPp?h4Ok=uI(oC)w=j0=A9W-r%@w5$3F;>^hhk6%>v%m|3`Hvdv6 ztfB_<#SNl@xZ0u*`7)rr&l$vq^j_T;Ua>aLvMv$j})ax z!{JuIW9k4HA-?{++3Lxq<`6q#V|FmYeE2FBPiY_?%{q65N>B+%B)tYs;qfeoH?QFU z+Y=ujE%#0n3RxY8XHf(fay0ur7F#Z|NCekszf+#w;6=)(wwypKyF@S)T$X+1RR*9V zdyMvScbqGvEvN%9V|HS~C9RLE&gY7S#7{t^755#~1v!ENOD_Ze8G$ zN1t0svJE-&`oHJ8l}`hNzjvlL)J62O%2^FO$;7UOnPd4d?h#^N=9kFl&*js^HKx{- z$GfV^EK~0)3)yI%(?cgCP)TIWIqsd8W1YYTbHL)rZDn(y zsin8MIlyWF^B??XYe}Dl*p#0yOYdH_Cja~rl$>S}@M>C|$cCtc39?52IJxnAfHB<6 zM_S>h@3#1^|85Z%eTfWl{3yz5e?G+iUA?cd>*zWeq`;nj79j;paW#jowPS|n1T6d5PijNRD1BO-txMe@ixYa>F4@Fus|3|{x96sa{(C_)G8-S7vGS%) zGZrxmYDW%vN}w&RqRMvQEb)b^YdT3nUze?q8WZvHi3JSqvFVgJ=U%*^^1oC`_|qpM z@$_Vf^uUpI{e>di46SsO7#{SrD&n2f&YwZvKu%V1j{&fyqeoTi?*P{LqMw^IR0gqibi!1|gOW z^Pf&Tv;IB*AJSP!3*Jbp6MU?E(OqV6scm*eJv)&EzFvXBF(V_PIVS1DO0a4k`Tq8w zVI2g#tk(~v43s+!Uop|ie8kH5-5~%(cEgH^g0Bal&Ix-$CE`jYXTM!AXRXj*< z+tci%*$pnDLV8__vgG7Cdsb!B2=!=D+iMUy8>xsy2BE@ks~hJ9e6;U$cH!OzIgdk; zia-iBZw~Szjg(h&Y0oU!)JrZz{c0z_rI_XLRCKf|=(&vhyv5UQ5DBvHxGTeC8KJ8{ zK}uf~DLz}0<*3*EubBlmLOLQ)6M@3rR6Gq$)=g{PY>P;~ZBZVRH$z&9No<^Ahi!t& zYW-Zm=3+N*$k{x@8LrrOP&QWbqCRzl2altyN%oF))Ol-XC*t~8mE4?~Oyph>e`>!U zf9z4Y0b%MIdzV!KA;}QvylyCtE{y|pCd;lN5v_NPZ?CAVfea~c*wiW}f+fMJQix^n zhalIXF015f*>|?p-)G$cPNqIL0GT`)G@)AF8Vu`<@u6^F>}V`ulw3cI6E)IJ3E~c0 zXN+Vkx}LSO(xDZ{|8TYWAHDL`T=%Evr#&9QtM)syHyq!5wTCAYM62k&^uJWy7fKWV z@w2q^8`3EZqGlvB>Wyc+?%fKmXxhBa4$jFf+r4pS%1u`yIV6OqwjR?Sf8OMn^2C~0 z6#;cfya84)@?AVCEGO~_x#oH?K|!HG;=w+4P>NwxLzvl7O!3;k3fUZdEZJM!&3Jxd z<3~Yhkd?uQuC3VX`TpBscDeyI8@wAl!#T_?ji+s{O4Yk0`gaqMaO?8ZkcC2nk8AeD zLT_(p3*^jt=03LgHT8qS;_Heu07y!V8uU&pC=nj|2Q~W2)9l;(7qV-+lcGcRq$4LF z!^in0tx}l`+WL72t!qe>^qQ`CmTmgM#&us6)q{YMncIwDtsvER7s`}1u#{x7d=|zO zO<|TD$YM<)Xf?(oGT$teM>||v>~Z&~(8w$XXcddb@D^~!6Gp=xk4Xl!qBJyaN>3Wf zr6$HwOz<=gG~|V(Jn5^vn(il(zihWQ2fE*R{Qlvs<PZEa0|1i=8EA4tHaB9 zK$uy9`UW0d#zG}31ANMu@9^#s(JD);IGp>}vqule(BkSOf2a@;(l112)miU&`s2q! zAyX<*1_Nc$m(1n-oTAU14b4cxnY;&g5kC z`^Ro->jxnZzuK-@GW)w6EM84D&Q9m~{a42v9Za{C3qZWSJzfB4Exl83g zJKprJD-5I4+Sz(uVz}GJE&OlF`2pr7+4^!Xa4+Z@Hf6KY!a8`EiIHRcSS)37Pl?qwqY_hWoaojm%9U`-k zBqMu;%MUhn7g^?E*ymaC&_`UPGjX_bYyLm}^N zEkQO}x4$^2!L3RzAvN;UFocOauF0=rAfid(KrApzO)a3DP6SI^Fv8aWxeC-+Wnh`Y9`~F zb}%LwD@lc20~t1&&g^TL0ap#3aj2S5LY^i#++!3Y#uTy=lF9r%c&GdRU9j%mK)#UG zp}!8{a&PD$<+tA^1E4l{7mY3DO&XbDeW8(C`@TxO7i(ejBR2x$nt@!GpOrixpp6aY z>cA&@?#7JuJ)d4X=I-vaYBB{HAD$?loqH*Hmu1wKDZ~F0X+qCy-lMh`uWy`6 zZHX%!h)npYTYapmBNl#~{=>+LMA7=$J-j*tL$em_^aO}q$f?r4AFws07Sma(Fri3$ z>VmH(0UYseHlpCy3gf0|o}XH-7})YrBF(UvwKA8b&A0BT`ND}v)+8|znCAXpn{Nbl z6O5ick9{*BUW1M!`kOEXQoQq)o*VoNnW>0m424KQerfsjzVx~Eol9~UW;q}5Bt@UP z^zi`JkE&1#$)zooMZY`=W_#A5csZB;L;dN$(t}y$x}PRKWA;UxwT3f>Gf->YimoBu z3c6&`U^p~aC|Q_MAcVh5=2Vi<3FQ)Nwo#{NQsE1?5rZP+!b)$=7<$i@v;7$EeXQ^V zsXRBdd(CjHVe^Evo4)(kWUk?Wrg2Ypdq#Qp!*=3b1|#DQ6ZLp6!vf=J#TgF|iYS+Ser8v7qVmjClq*Lp zg@0Qp^3?g{{BDtN;~#I?0N}CHi>CDt|Ng%HG`FW1xM^{6em2E``|^oDZt#fTzdY=N zQ>s{kFmsP4Lqk>Q6|P52T6pLQDqp_exuM49YUf%@qF8IcA@u@Gf;%mWLT`sHa`*`2 z>hfk1$sLsWQ2jZP;ePB_MqovvbHx2Pou^as3QJ#t@w_>_U}1*AFPKE0aUElxD!wV)*xAqbqWEGjHYpLF$s*aQTkI0FEut z`BR0cU?d!JNj(_mC56k**QJFHITL_zMrdcZ{$TIvD@5Z$`nqyZ+|S2^b5q{K<57FJ zAe9R%pGLZaslM7Mm&pxL0tM-KWL*{7G~6E7Evlv2aj{f-e+CONAYa1cTrrFhFwXZ^ ztt?g8OTt0HA!#@$@8)`NFrfkU=^|EU|8nPnWx-7Zml!I^0Xksib~@=D(eUJAJzq1BY4{=ZH6hL|_yj z=yCdrOVQhUs@f!e?ENC;h(ckM7v_q`zByG=lOOeU5<7{$w^(syrtvKGLnGjG*3VebJlgvnw(ZxQ9tK6eYrL-lQp@3ig19b!k4>Z z2@vac?D(nclyQqpmuT4HA&Mg!y9c8nXf*1saHxNMxPYrMbhTa%fMuDiJ6@e)WY!P+ z%T2T~cBx`}<_2LF{bBG)15}wSz^HBv3_++zk(}73ws?;-9H%a)7sAyzRf%^BPMMbQ zpnL2Q{2t)Z+pu93gmEU(K;HJbkcQU-CxfuhGFMV<8PYfUY9+_R{C653uT-BEG@Xp` zY*Vck?*WU|gWhl&`A%D5n`3EHX@<4wBTF3a?tc{+^IcI{Wj89vvbj$n%5&{3utoT zjv$KW;sp{#v$r+~*ZMWtjCcSZ+OjYYW0T=1C=t>n-Qau8%wzfT^CkHXs$p+o`76Or$)%SLg#|{@{D)Mf#&^ua==zXl2FMQcK-KI zz##$^NmXM0{gBqcIrS2{1U>fzs;u7QzvF7`a3*I52bvRZ^ai5E_&S#o(QE%ut8&?8 z`(n$;r&!|mkM(jfpKlNz-$|#`$lW0;XL{2(6S#OI4MUU@R%6O!%JrWwcblz$AzpvdUB^p1*D06?pM05E#c2eRdV3r{ zMbBa`^CHdYxpQg?VL4S0kYRZ@mt&k?or2%M6B(L?4b)PX(8V=++lxQ4 z7N|{%qyuiuAPjtb=F+?aZ8TI#DV7+f=39r!9LXseA0PHGa8g=;SmA|Bh=q*aTe2_> zP*`oNt-Hg10RldRqF24RSJ3I49MeqOB*z@BD&SNko>J87rY2aV;;TAEL<+d?*ugd` z%|iXYp8nqGnw@iIg==uLh)+)kTNj((gKOi+3;J*WqQNyN{KGF>CMYw1K!mAd;td+A(4S5fIJRIzuSV(wn zkqi#!Uw>TqQY`g#k8SzkEpvV|a0}LBr|pFszmCfbcReLDt3uMa1t_9~>XTcl={=np zp=#i3fNVT(Nai0aKVm*Sf{#?=$**$R&;@=Ez(@PCs;V$CL<)ni_9xuPCBUchl^~3j zSF7%t4T3U=fVXN;T@;>6G+Sk*@U=gSXwjKn)w;fu3B*<hKZb*w zaz~RhUr05+`?nny42-cPI+aO2GgG$&?W^<#dGzlUH(veAmf1K;{UzNu$Tj<|NI}G- zOYzn5uSA(Pf>XA>+FRgx`{hwGG=`*m;SeTCt~;fWtDx_?M8gsGc+^_Uo^YO#;3Zw@ zdS+mY+4emqBLrvo#rlqm4lGKJ29ufTiCQG<5hc<2fk)(aXHFI|l$+YQV>Z7yjgl%M zrj!KhM1fz>9T~K&#OE25$9v-xd3j*zJ%_n0kt^VhOkbkq@5gW_){)@_}#wI;+ zStHyylY+1;xe*c4-(d6jKOaPo_~>)`;G- z{l>G6xwF>B{lxD5|J2LZhpPker)+8zdI4@~Mo71M{FXdMw!J>6u67Pe>ud>tPdSmF zPWuRoqww=s!aFdt&7en0U2Z1Yl4D%{mk}R4-7^{DV9I7BQnT01q}1Z{1CBFGoC?F> z^EhIXb673!UmWU)ipuFvyf$2^&FdI6_mx0JdeTEhJu}KmqA6cXvCCy~p)d3mnelQR zbsRh5W5Mf8o3k9emaVl-(36g<+nyz)Ycce^4gO)V@|)MKD!&G1j(Ex7I=JTC_jr*S#Zx+j*}C#C3y@OK4C6%uGUeThS3dt1dOnP5aTlSui$O#` zwv5H1*0{xH1sGukF`~m7- z-^8JLwev++-)@(Vw{#$^><(8IbjwhPqHZ82arOO+KR@NdU2PCZH|g}Ut}(?Kh{(8} zGjoG;l8or>yoBR+x+2kwpA=KOCU->9esExU{WG%&I+Q^#&t@@$aq$w@F0h?y<{CB0%8#@2s(N_J|EI<4E zxL+%TP{cQ&C736?p{Ube6Ofxd*Ux1r1L&YO?`+$uk^3 z?O-yxZN2!k%EQ;0$mp@=B14y!cP|-`)%&ujo$x0Y@?m{uuHm1%v|yB1HyuZ=Fq&ri zT8~?(3!45?n4C-VDlaeEeMe;B#)q)lJ#qCM5G&y?_iJay3{wQi%}gzr-Nr{NGs+D0 zogO!^K}8JDAB}Y=D-I8oSByYL```Up?RNlbY5<2ge~d;8*v&^CY--JOgWU&^{=s-V zEZ$%Gm#Vp@*u+(VtBPD9+5lCW6qF2IsMcUGiqCqlQV2jbWI5WaQ52F4nTNjHBO-lFc8lYlb9 zg!*Pub>`2vV(5!Q_0cbs^~n#AH}cTVv6w(oi7>PBvav4c`Qz8>f9}8~+>z62@F-O1 zZiz19GSwk(@$QCU)_?vnf8XyWDtnUO`gW(@ZnAvP!NS**&OVZEEiwi7w~pvNIdBWu z{_6jmIDiiE*JkOK#|G^=fa34n2QLIZgIx{Z`GRa6|UD^9)2{zN#zk zic1OCOFYKXPVtgt+Lb{AB{)?fk^^V5%3SCRKzvafhaFN>B`HW$n}4eJpY3ibP>d};J z^InWZVg!XjDLF?F%)c}5*|W%tEc`EQV!mgkASkBK0)*$Fwu6E?TDW=4sNF&Z@MZTa zrQK3UP^a`8DrYWa{=?Oo+akBnk-%(JzFxa`K!H{Co?9c;mB?C+>oTeC3r2z+!br|% zz)TLT19Xbioh$fp?z5##{{!5f@qw*I<_`gfBX$$+vqSSq2iv=@Nya0X*5s~o^ z%Hz_TdyTt9&9kk%UI<l6%q`nZJlCso0hEi_r*c_tL!BgjE$}G(4CAm#$U)+Kldxx+mf}mywNQY z`c0QglXG$ef%~9MNC~gsVZRp_u;`IYH$cE7MPsU zX1Z0a$3zx#M1-P#)3QqtU81mpimpI$7oDDxJ49zlF@#vN$+b=)^_Utp(2}EFqmyCW zy?g&Oia|hEUk*r{Tq~N7@Dj^P+mSWT$D%sm0O8-thF*RN&m5U!licNSup$r}` z;|uMwMKH&NczcNSTH1#%LE(4k9xL2nOKW{fUsmn+NO^21cfP{&Y_dcvCgdMv&)wQ$Gi)s)i5$AuPU{LrBT$ghY2 zS#;Izi2ksCH8}%CQ*jl76%un(sHm3qq}c@0`$#>TO=5%fJKlUYm6KV`*P-O!176qj z8|g2kDDj>wuiR%jfb3Y^il#|AGdYP%7v$Qv?H1j}@&o<1drC3Ag+NAjxT|ZwINAv# zMd0R>@wf(JD^>BXNLTpXn4 zV>hLvZlT8G_iF$3#J3l~e)B7#?q1jhC|<;z$E3?ZQ)jOh=?Y5MOih8w)Z5C*Oat3) zZGBzYeD3?meC%WN2U*`bNhe49*e{3&_XiNtkK`YhNL#@^_xpK8u8rN`djD4nw(0Pa zgT!A#4-&n`KE8N}&oA|z|9t%pX>3U9**l#FWlX9-#c+2yu?4(n_k1j>9Lp1Ox5yNX zXQu9nEme_285>JxqOhYOms2nEhiGo$_*IA~H3$(G)%xT-wyenFWYDO*p!`m-D5BvL z%3owJq9mGi0|IPqNK=*O;?W8J?JZ!5i7)(Sj!+R;W)y`zQFydAa)VT{6-9*&_K@s# zgEgU2o`Q9ojcj&l=!2;_B$9je3~X;A+H`XhrM};~J`(f!vtN!Yc0*%~iJqNvk#h-L z3tz-+g;j%b?B3VMC-@MG zD=ZpKaq=tfLShSl&bZtTM7bVIBs5FUV1a{c{x4SZ&XR>~h0SniJFs??{yevv5CQR0 z++=QB*J0rY^>Zx%-6&R4m@nZ8LDK)*HJ~2AY(c!aNuZUdUmoMqU_Y^~Dgz9E^5SJ2 z1A9sJAE&5tLw0A-!;*$vnZEnA9Ob4qHu29@{YDLoJk5C}nz^F21q`JQUc@O7ZJ!cf zjN05*nr7~=_4y{poU7iF@n~RrTvZ0eLRml0&8d&#&OP#kWPOj=6bpA%zlMjhN_=sDK>S@%W6y;yP01KEV%*@t1NJy=RJrLTd9a<_bf#R8@VO!F<`4My}2UB z8Sp3>$-`ImNE`Y?BD2q^>(Xj6xhK!if2DEUUclI?6Wj@vmYv$4EE)A8cf&L@@5J51 zmrWk8Wi4C|o{Iz2s-Sp8eSC`ednY!VUodoF$-Ve{-zp)_gCnpiY13Myo@ruq62;^O z$#q=;A!ins|TNzTMu=x{ruj`6HuvpuZ@jJ^Z(8v&5XW()!)9o(*FD^iDNh$|~V=}4j)iyofVK^LN zX)raGf+9+EnkomILelQ79@OPrNLOZi*Qrf>>P?ko#8_gt1>sPfF)Mg*8{%5S3;IsS zJK6EW)yu4JJ5D=BNI{cs0&Ct z0{yvE=ek<^Aoec&!k6>6JscatqM&vuu9h+5LrBq2s%Om0P&7B16`yq{z_(?{Wciki zY_p6y-K|o`51+3s3`U!EhA1mR@OEZr7j8p?+Dcsd_Y=7673mvB9iBrInw2`kh-|~Z z@rWFZxXbltaE}!2Q^7h$)(VAO2_?~_Dm&@o>5W6jSO$8^F{>C2TAgBB6xm6#Og0oq z*UZmKL3Dk`l*ZrF&T$HSA>~mqtg9<8JX(D6`OCSJg~I>9J70FT$IhdE?7sG|tk_oet9bcMknac&^tO;rt#mO6^f%e_eVQaHGY z=Lf&teMRF`Ip`kS>N)~`%R&ao^h6*s0>lXZzWf&z(S;9YT}v0#R*-DZwCkZp_vU0U zzyuK^q_OlHzJl?j^U`EhJ}tXj<;hFYr93PjuJo<954#x z@<;zEPuRDH@z0${$#_-!U!7SSPp7`3(Fy-H6gJNjFOaeSFfHCM{_fon`O9B?aM;H( z{d7xRCP#^Hnrn!Mg}vh1fJqY_g8OwAt>seupjRgA%9AH6{jXy@C1qFA{i>(Zz9`hj zP32cGJkS$IIwz!P2f_N87L)W`Ldj2I9@f+@<^smcIAb*2C)y%_#Qr<8za`H2u}Z^0 zGl2P3%SYVQoDP6Cs^+>Ra~ta3SVNOH4->^sPfJ1eaoRA|iN2izQ|23sDA@N@mbc)m z3px;owG06=KIP={+6nzTzm7RAO&)sSorr(}!@0I<#Qk}~Q#aOBn}LN3$^5}ALCLk6 zkW8;Z{mpZCRHV-kR7*z+a=Jcm-f#tr%|J&%stB zfcd?EWD=a4Cx3!L4TWA?c>|=4$xO?~`0%i-K;dwy(}A()2R9l37j>_AFSz*bm*W%r z)s>YaFToV}W&mD;*rahmYh`L&FIq!NgpZJAADSXfkA$ z{(LJbyiHyVg0Gx*1N{dN`W<FnFI!WLxtTF9Nxvn|5f%0f z8vtTVNrS{!jnB<4cbqQtc|U(q8BAvt0b#7~Qz*Gjxc$eW@Hc4=N@t1E&QlZ!egdFNXZ(1tca~&-1WaNF(o{`e60Fe#v!{B5 z=*!-zxKE3|f(4Vh_X|sk=ZTN5qzl+7eA7^TH*?wl>4S$~pp9)-HqMe9n1i}3A~fV4 z$qV);S^ZB1BDhK1n-`&DTCi?*2K-!cycKM>&H%9lI>?IeH-}qRsoncGi)PlalISGY z)+*$qrjsXjtE^vL{DI+POgrOM_0?9q7%@BcoYoAkM84|LmNHZqO0^{K-(Ord&ryjJ_mp8TFKv zHn28+RegUg{>Ic+eZz}p`OPhFAG=@4vs(>S>18#tck2_`={x;zQbs<#mKW$yJ{b&1fFX+*|5Pg2b_X4e5Ez(-QqzxM88IuVB za6zjwMs|PUjt{j&Nz`s{^j%gkh7i{_twIB0K}RmR3WcFkQe<<8Ht}^U+8RnrSzp7( zqe1{5-kRjWo%x-KQIfqz2lGvk`m}XIn|3ejs&F{qMd7ym_ckczw!-?30~{TNKC(DW zzKGw}dd%T}f!P!-kGH2ld&VCY-TgPks3m9PfjvMVaP$DtSI6rL1 z2uEx_raM^6p<8^cXmI6l(84tR=J+qAR#q=EdQGZqC@&+ie`A^ zJ%s~a5>iu|Rr`LETGL>CFkoVHw7*)?shP&$lcQyDp`mjpTV4z?Seu;@@U9s|NF6DR zpU<+OZuMw26#}fL99jI}BMIpleWL^JiF(i@U!&yQ>Vnzh)%Q5Dx})hUL5JN(-NnGb zx&Mh9VeDa}bM5YnA{UaJ`oc9?H_3F*9Js2^7jY1jOm{=&i5TPx*9+Un4QFjx<&#*? zk|EHGM^hDwWOC~C!Pb%eCgY;HAV-Y41ySh+8GFf?xSi`SPA6-Lm7fW3n~8G%X_voW z#Mp<&j}pyE#Ie82^x?tmw@IAcHFe2P3P0X^Nd;0!`>^6~zqvMYMH`Ifz+8)P!NuMp zPEw$y%5Q_e4JI{I?RhdRET=~T?&+BeuAQ2rcql_5*2oIpxTj)F_wN36RxsV4hgQnm z_S&BV+|T;KG|NI(yR2~NqgrO9NDYej<5-<5FFzK0{zDM8zZ(O{UrQF)3jX+RN-cwe zZ0pPXA!8-VZW*;iK00iA^8sJ_h=vv>z_<|y0WAHLG(K)r{`Y(LBGqR9=c%eBEPgqc zBsShHQ=fX)MYqC3ou%@Ua$|!-OtC|nx|roEgHUPi-H-E!lm|nnzw;8sCR6;=p!$zo zcz#N3?fdMW>jWK^%TAUXE?jvx)sibY!rA3qpiJZ1%f;>cH}g0h%Itd{qwa;}Lm zkJHf9VimYv-(Fr;V3Q;u%mFvQAV8MmYk`!R0o)Np`YYpPpXD?CQ$D^2mulGQvOc?^ z>6;KpgD#UfMN5cDk*uP968+sWb5yH5v>7S5Q1d7ZBTe9tV=`{Yh2t2ejKqXcJnlx& zBm8Y+{W`S`taa#=^y-mRnU*Vvzy$Xn_~DB0JatPs-7Tj1-zFP0eE0kle^6t#^k(`r zGNCE1D@wm+$SCS5_&V;LEaNn|%%cLzsb4BcVyL!}HZ{Pjsv*Gx zO8-Kh({A=F+IS)&o_`~Nvp?C3TXyHjgrnj7XxfoOB0BAQ5_g+rXW6P6Y9@!f+-3jd z(n<|?2n-Sz2jpmL&xX=mrT@v#Rahbeja#uuQ~Y# zu59x&H$$8y52C-VK8QEG_InvFj&M4XBo?vAGxVx}fK7Q#d4s8*+dcrQ+c8@Is#YS{z-tZvED&`VVh6 zXtrVTPirpnjE;p0SrpLUV$0gAk(VnjEYPGfDq{#os!r7k6b!vog~AIf&pI!8zwnjG zd}mm%*5xdN+F-N@IG4wyds0ZSQ97)Mz#qB!JAT-GqdaxICpg}cB*W>mRaQ?FG}fRI zLZwn{(}ZbD(l-Byvd&)n)=Zf;eym@z|O*hn$&;>_WPJU=@dRDs{?#@SDj z2TX@$1n6T|cEP>?m$Prq*SVqiAsygopKtuu5z3Nkiko!5QuUqS5Q? z7XQGF)TeYkll%K5&nP}oPa#lA+d>OAzG&2dVaPE}UZuTo%rxdk6-m8aDf_nel1GF4;fc{b7Pj!2aaz&6Qi zNI97gztd(J37>N5(Y{!ESjF9?maw}_Z}pPK^yxK+);F6Ah*g zYL0l<`lw89vci&@a=kND6E4F84-G+;zsc!}vs#}78Mb(oLDGO#0!EgGjPWn-)4t(&N3hdRhpV>yi zrl{V4AyJ(GQ`=ZOx=6Nty>(%dY zw3nysF4={24^>-QaSF^#qa}B_2LSf{I^72-9NC0ETKZ=wSzgR-x+U|xO(4);nfDKUT(to(OnuDd}#Xc54~5h!1@@Of(6-~)b~aY z{{2A70Ow)safp`KjqqR$EngLWVrAqdL#zCCfAd=w?fyLPRTMB!$XF0b`^V&)_I8IN zH$~pdQNN(`%d43Wu1rFruu@XgYkGHU0&rz%^}6iPBP85LVp%^v^Fv%qS@^`*5BjIA z5iH?NKz`TvoCkYeo$d7@Dc@Obsr^W=W5)el`(DAMR5$F}qH8^zN``VesF8}TT z;QymTx`LYS9=ZMsP)2F-8EcV}`ykagq(=C?~BQ3djM zj5T~ED?`WbxpV`KMl;*9RYaLN7e01RD+LYIH*9Zwrqt((UwBq8_M?Ia9M>&o_X})i zH@HCh{FL&Ph2Pw1;jDs^B(ABZh6g`-E+l>?pD|f;+zS)yqN=`>-N)OJp=MSYCtW|| z#zg?R3@{me2o#kdzMz0$J~u(QjG1?p29F*-{aBS3-bq3|LZNMKO^hf_+07uM z6oC^+B7G8p%Lzwstq<}Gd@M2zM+u@iV;-tK4s3=F?UpQL)H8yWFu*;soM&r{RlXcM zRFjT|Y27Ex@u85&AM=a=%{%KX)z5!^Gk$p8;(IN9FBORcP2FJ=5|etT(~>Ei4-OY} zNA^{Wxt;ticzc@9*7KjfoHa10eAJ~ZxyscXPo-MR3@b&cK9^c7pc2A`k?d!EO@)2n z6BseTXp5zaYLS#;thpEimYh;IRKU1MsR!}}r`&X%PeEzJ{ruBztgQEL4LzK@MhG3$ zgsW*;BE~W6UJu{;&A;)tZ`4#}alj|t3KY{qZsN)^!c+SZjNy??baz$m-u(n(VZq%R zVO%0t_1v~`IKH%~-DBFd)?=Ce!kJjX7hy0aVNL-=_X`vP0+H z??^TXGcFmSse!-&qIK!GdG#X_G`Q<5rLF)=hHn~ObyOEtDV2!VyYh)I^g<%#)seFD z$?x5uKPmOL&xzvJe4?a4tlxg!U`x=#GBZ&wWuu*uZ7?ejdn}r! zg~Fv`Ey5aJA{^EH{iP5 zy%SqPg?N42rf|Wy7ouacw#Eh>zW$Q%B;z(ro6xF1pE^yI#|X;Fq<-L!AF$r%<`few z>Cml!)TPLZ5+1kK+FNTeG=uD!_kGAN6(4_rpD+{d6=|5C;w?)~>kB{E_(i2GcB~jr%O!5CgXqI!lSC z;{ZsU=3*L|4&(lB9aNrYI3zZ*?L_}>c=+;_Q6CDUm5KILmg>vJMi?9o=IVZIaz@jF zQVUq4=!>6?9}$l8kpqnoAEm&9nDq>!O;_4i zN^F+Zb2Io&;TF%PHZ)^d0b42@HZYB?_nq(XO2;FP0B{IeglFzA+P8>plj&|}%H2=K^uifX|dU|8=1Z(C{;aI)6kE+0yA{0?<-t{I`8)?B9 zQ!W#>2tc;NY_gg#>Q`1Emb!xDXin%Y9yA|JPDNXmPDU8hH}X(-2a2iE0;H&Eg*3UH zFYew5{CPnT{r6Ho_+OLqQr$r97mop9^$w={P#tTT@#f(hi~9KXA@|c5U^1G)8YLMH=8j@DXyN6_ zY|2bz&YpxGn0^@Zu{--+0lmE@HDgXR%ik{0@II;cJ*?X%j5wPjpNr*uj@EMs6R3qZH`eT|Q{FIM3 z6vtZ>q5yO$=k!H&)UX&mP<%?Q)(&R6lzbym93HNZ^_$(&eonlflRD>8>v_NJe)51BS7CQx8#YnQD-vlyJ}M zf)t3!^g(Q88Z|2KJwM6lckqu$f7eexy1(XGH2fT~PGF+;FA52$*;FCxQW*B$Q=6zy zddWH(CAiToip~RdoYg_(C0Z_PPzV8nhGqgf;Q0ltAV)z^$y-vlCd5|zH!Y7R% zSgE97uX~05ZE?9Z(i~{3E}F-0MdBCb_=-ys>Jll5j=#*8?@avkZ9y^N znjkThD6wvUMxrLrTZ zZc#Ebd2wDO`{i)a^ONsp$qn~r4WOlPyX8pJB>KU6YxelLbbH~J} zLm_9r1Uv{PfMn+^Sma}qnJsROa(7^Fx>f?TH=epx1!M+cOp)5XGEP3VuC z@APd55xsHH6M%{h#})&#Z}};mJZVrrvFevC+SIVeP?Qw7$)D^6z7m0Oc|diQj-?AF zf+V{d#rR6@DGHojov&`(2>%bY`}ya2Sdg!TGAaj$5k~gthS&(cEA)}ZCm_oGc1@tq z^3;F75sbNwim<-tuM<3d%G#n=10TjiZtf1prTu(w^yKemQB|&IuR>kuc_Cf^n@pl| zczB)cz5SKvB6`)xh4gYla(seJx?tCZmyPs6d>sT7c|Fu7=~8&pnlXONsF=!RExlu6 z%+l81h7(XuxCB_bZ2z4Yf`a~b@osCE!Ks7NgfSoU0gSX0dDDOm4jX=Y9IZneN$j~= zD$~NNFzXDk5jbGb^MWO;D!K)h=L5ZezMW#!oP(zF?V)uqG2_)tm*8kM3Xf~%TfrYNx;*yZHV#&tB?Bl;=2-~rI|8eCb}qHd?52s zv7h1pFyUt^LG!#j86D>;W~%RX;HDgc@tL~690OjWBs=XS)J0P|*o&LB-!x;O?=&b@ zm~9P|Z80qt*jDsm94DdW;4->F7`dzeAUy=|S3W_i?7JO~;}19+kebYE3)wxgf9v`8 zXFx`$w{FjG-CH!_MzwGS-fi<>tjZ@;wr!!kib>kH7uLKX;m{{-ccjch9f@9K2)D5H zT%CX%889ec3|G;SOA}~I@gM%wDY4ko^5*eJDlX>2Z-cMBB!v(N1r1=q0w#rPZxuzn zChBb?33kF&c+^+E*YlAHk`W5Hv~>GpeC~pRO_0$Q4ujjlT6X2o96X1*tm&m+(D>k( z*P}a?liocI8?)bOs*4l4X_EEagY>GwZ7YEMJY z6aEcuR(#^EAz~Q$rh<=4h4_2amyId-M}Uf_!ypJ;Gh1{$?N{^4f4_^b0sk2Tdl0nhbb(TwL9?RxBzj>D_yn)Lrh;KL863v;YHL~tqz-Hm}~ z?j0Bv@T0!7)p=x97D19xY5kh$@9)y#*#kooA10OxIFO3U#l#5`_O$~_o2Zl2WOz-1 zYV`aCFrdncapJknpby^$l?Y$RbN_!QwyqY(t)3Z9efqCNe<;DVI$_8J6_=r^Z_UoG z&m;zFYw&yq&|^X8i4~4VX?4&l1>2ml$4MVFf{OQ)ir=v$t>VV-0iHDJb(t50TFh6H zcv!G(G248u1Vmb%jJ?xTb4?_H41rs@idT3sDnMA6t5T`#0k^NU5P;)-euHdqFj4DSa_{fYt*%G$ z6r{{=hkuF-2WJjrzbt@(KmNZ4aBewwsN3D@rIg4M;Ktj=(0n$`*87{*5)v3nA?M7$2NPj47 z$K=nhuABl!4PtzfE|6!!zI%SwC);==zmgoQ?Duf~2P(sm8YTBd+dRQ%)G-okw(;q< z(5O+IB&yH4&AsRshUF_;6tw?@@NrE)BRn>`=|cw$_yk?OLJyt3c2z2!2I5We}ixLc_ISCal$)M7(RIF zRRN~5+ljT3ZId$D0pSF{2FXj=i#$53zZM?xI%kC49cN72$VGH$=pdbpDnya$?I32F z1*!u#vrExNn@p2QAKpW&xrLj1!YK%?Ke_@z@@5w;;mf=^+lslcsE#tBh-!cJ(^)BIIgTj12T*X-ou~j|Ns9#%W)0|=UACJIHZiM%y16k5FwIP*(9s13OSCG zk#)?BWF(nomz9~lvo|SwM0WU|_xtsFe}2C|;XE$S=kq-7xBKmOy=7Q(*fL>hm|{3s zZjbZZ$_C8iH+qe78Zj1=X{ivUnCZ5sTeWQ&!(8Tey>t!IK z>yM_p2pQku-u>G7@SxWJHGwtA9yFYeB)mD#mtt7#A&YX>=ly?;!)7XMQsos zZp27ecX?@sXyc(r;5_1c_`@3+MMisgc#{H>wB8#(=SVZryJ>WjTy}O2(-D38&Kns# zJxr;oBbHdg_-GJ^Z+b2iGq}LG0HKY4*&5Uw6*9QzjD$+CUsU0eU|>_Bp#}Fdx?k*RZOB*vgZ|buZuTi%sbAPRPxg6*=KLu&x{zhPS+Bz~c>MkdBIL zDYzAl|0RwIm{3gP>Gr=_$@eH$h!?(;lpIsZx9qGB=6e&m(+^UPP=zJ7 zlK_LJx9^QF*-ImWviF8$PKf0kL~)}h#_lTC4##?4#&;(-^vv$^B>F31^ksRTUsv@% z>z&jMz9v@EP?p^fk0Q<-1>#MjwV>diuK+f-*xF7iWu`z1F{zyHZN2obG zxi@+v$WBsL>x*BEmhj!NZ6rXwK&!O=CIm|GT{`F64fYJJ^O%SN)LLC@f272j^2^&c zDskW|+VpE{WdHXiB~?wGPl|yFzzLAfuNOu&3zymTGHen)RGz#kTdW)tSCdmmvorj3 z;R-^BYPaPB$Z9g@_c-5`g37qB2HFbl#&hMoBH042)WwsH!te6TNXASfvkCr|_9CZZ zu4hHjGyZ=#|L3uwTUG(DEv=a}PWD>3^LBNmR1`=Tl?Dwtad77T^79z>FD?`L{g_-g z9O*8+vpqyJ3npS**1FIVX2fx2WnUfU>&rG{or7pI&S2xKDDj&OH^;Ww`jc40}fk`2_$kz*1}@Wbkv>!IAgPi1Sre!{RP7b5+f6?DbaN#&p$ z3l+*ewon%bzYESoTrQD#IQcgzmu1$QY@o^KX!@I4sH;vxP0g6E4FYuh!ddZZ+2PSP z#bi(t!>g|$w_Q%KQ}dsDVf2ZY;C^~0ds&nXmZcrdOO{UnfR`-8;Zy9)?hsa4zycZ~UKDi` z4W>4tdsbi+Ca=a=sJ1l8OT*ev@A&{ssdQ#Qqv#g;SDD2d3VGp-BE=?Nvc-|zm5jasWYr3&b9q?-;l24kd$ar6knXi!~9uW!nrIBfwM^+rW z0I`Q&wk+B|o!M%k87*nC&7U+T*RiaKH&B2eZA z*jK8fk*+=+P@?$b;)oh}kj~^WQ_H-ID^dIcv2t$3whpQaP1gB>flaZKOQ3=#wofiu zIiDvU98A{l4(tt_(=U46{qM&wV~yc7Pvx`*^8$u}OAZ7UN}0=Kpir@#?5*NJel9DX z*hcFjX@;SO#jkhsnOwO%M6f4GD2&;sC)DV@3wNVY6-5ecV)wQhL;rh*PFX_1;?PJ$_u08y_!sOo$bLS_2?sirv_D+B?YC7@Ntcz zHJSEhhl<>FeSJU(W#DVz)DU)wTlQ)eeX#^>DFMbjn;hi^JF2vyPOeu;x%HD*l7;sTcXEs7ZtlWp^! zM{((biFA|k*mdi>4m0{GoA$JV?S(F);6#0`mu?+@a};;o{QUg?a{ilICyes!Q2tZW zdDlWzJ;yCEm$i}eb1+W`s2Cnh>7BdnB>Ia<)uH78(MCWsGR~!{r~bJPPn2V0jK|&% zSTio2oEXMNs*ogX4FVk!75V`Qd<0sZ7;jeEd|ij~RMgNajrN4_=CHo2%>Q`xKS*v*K{S^YQ zy0v{J=M!;&3Edwpcao^ON*o+MEpq++D||n@BJ2~GI|)*3AA40SefCc;&uMDq1JQ&3 z+Rtjwid7aqoNAHkQ+@JR?sjANUY;mN%0QNyoTHaxneGj(5-cEBmQ9nLh) zvJNY4Kob1t?CX2Cp57m4J_NP*0E)XQn{IuQXeY{1=93q1nBgZdnQZzoNUv^gTqh{i z(?e4o9u`Qf=(jc9;m_^p2dFY(*uoU^NM&FDRNVW+8>l14D3oyJ)gHqaC13wlgQvmU zz78{Iacj>H)+mYf|LRlFKPu}V&hrM33a;Ml?g4~Uia5A>icuA-ddekrQ43DWyfz^Y z>c~O+Ta&ddgKVErOGK!P8?m?DJ;uH&dqchD8mTpcMT?V3|v6kesr~{YQF~wY!4#++_*AZf>#k-e=U=s|l9~ zlVi#|{02R@m8!#qnIm|O>_?Ndm>R#kxS;=_fhw}%LJw<9^{c+4yQ_5A3RB|o=(LNw z#N4Cxva5%GcMob$mKUnUTwO`emed3rdeBi3cA-g#okqsQWZ=-MEaN~ApxbaReaLfIi?ZiQN>y)P=$-5Y ziWXsdSb^p8TY{)B4gQzj*enjMYkZU-PyMK<+Tw&)qmU?aUSHtt>IbBa=e6HsqUCJ4 z;eB6&y~qUnHlH^*W4B%^1HxRWeN(fNnkOs>Rd{0Iu_&*R)RE!%j6Tjh88>=Owf_5| zirms)y?sLpkpxW4N5oeQ5cVU zSt#}lS%0Kk)#vH-;(!;uKZR9pnpCBT65A1$lIVxJKJlgjzqPx^v^P#K>sA|J2(+(Gl-5%76qbWi`%|6Pxw5Bbl&Y$*&fXgC6F!;JP>=I~O^ zH=ZFA+gBZS-zagkgVsUWQ|Jp6_8+?+JwJf|b)pQri0qf{QscZ z@i>|chuS`U95%8HxXUFhUg9P2MA?Y8!bhMCImsu06gMVv^Ovh#Kn;T_o*O|FfB ztcf56^CD>6+C#aZp$!sG@K~o?hvIl(m;oU7xIgkk0v@7ZLMY|uV;0Gu839(aJLS;m z5RH6I_;0K6B0b@iQoMj(tLYtE{_ZJ5z4Pj77Yoq_XTGSyRcyKCCn3cZrDMyOEdEN*wVoT@o}saB0!ZamZ=4+8j-ug+;-eV?y)=$PtB;lod}^k|5*@ZE zf?06%@5>z>G{85O4-n;^0&;$-iz{C)KcrEjAFZX%uT)uzH*y3^)B2k(XH;p;jCA^3 z+qk?P8$6RF0>9cE^%%|kg+8`w%PMJu5q81TCjXJ!-OQ|%F8icU?TpAKZkL6+?kMA;leI3stD5(INS~kxU z)0!5vd4MH*I_$8neRkYDU$0g^ru+BsfS*)WqmP-sQXdB5Rn^E@=(#a=E8?iJEB+&6my!zs7`yKJDff_Y5%1>De<$uqiC-q>rTJse= zQakoH3u^IL_o&y;#LBcGRw0qd0G##{C3#)?N&y)celp3&id}Y{4X<#a{E5gJd>C$`r)QC!<_3rnrS+mXxKEY z&X<=>O zd+Eb%em-?x4)3cV>E}%&v`c@8%Bpfd$hd~Bb|B!4F5?Kv#~c|6_3tvU&n>*pQs)oJ z@KPBTas!Eai+^fbjsY2?1xu$oqkeKW?a}Mz`)};>zRJdj)3DjNWH)qJ14Q!`0cfkA zjcK3ouFSY|#r4-8B`R_QP`?-=gMH)6IZ&pG$uUUMp`=rOv7+&0T&=Uu9?F5wcCX z_(#Ir#wj-3jQtRv-4`U0@`RY;?wBO_s(74YBgja@4Jv}>gQLqy`=CRNqDMN_pxyJW zzxS?pJlumY9X()bX0-qw$cOf>Z)ihPZ8bBZx%(wpYwPIJ z{rBao+$ic2y*b8;f?ygN8-tsexxX>BNiW(bYk^j-{T^w=Aw>DXupv6V#sQM_{?NLE z5vxR|_~2{Ex1iN!kU6GrW0v`ZS19y}PqEclLHaDkDQAaDJf8KT#6Q)YF z5+!UsQ&Yy|U8l$G4ss5s^zMGAbCeaG!iQwnB2JKwP=D<#CPC;8^p%c3yi6pyU`xhT z8abvX0lX`tONT18ey8aTr`5v$RjvQA*B=VocFA zB8}SmBjW3Y@-o1vZiwsX>_k@gGzrF+1OYR$G10}y6SdrFDwV9+Kt#uh-VY7;;lspz zwcGCBjMD*lhbYf*}oC! z-Wng1g||3OY&2);7|h^ZlDK4pp$v2bqr)0+PccKQyDnI~y}xgTp6HE$Smp`_?5!^} zrRF3K|9l5+8`CJSks$J`Fb-NGp#!Ub-W1u#HH??^eLdqvGu^r7Zo8R1P_+*ps~O0( z-Q_Bi0mg63^}h-9R%yUqhWkb=RgYu{S#keaSL6BQtyyXq?evSumdR)stR0K-;5j)! zoxeUfIhj2-Seu{y>-0}V)fszE&vUMy`$$3Xm%DSXe1G0S?>F6xkMjUN_LFl0oQ+D& z1M|0v$4!PD!R@loXueJZ*G-I^SpDdm@L(F_e)-}CKJuDt4#2YPPG$xrhLBU4e!Efx zmauV_o6Bkfd^nkpV*7GIoxudgTKs*~x0aQrqan1n7$}si{c*+*is}cpTzF9Xo3i-i zZL0C%X++(|b434|5)WE`yG39rR0E*iSSHrZvKAW+n&|9k%!luRiVLhFNa7XYbfncO zyI@=|G1_Ilhwtjc0ZZ;VjlgaK=hiEA7#QEg#n?`X!gOw7xn5SeEnEx-B;UUaqSq!9 zr|4ON2iI#JDk@i~Vy^|pBqi?!hm?&5xFX9>l)wTg$%0GoXFJ}D=5j?Laz&0IQIY;Y zc&F|kU;ZLk62V#D0&;!LvTxx`}`+5+IUP!O8`8iLuA&@1jylGP{FU1~>PA=6t4B9mY^9FAC= z@z7UAjS($;ld&k`JE$Bdp*7hXh;gyHdD6h-1^o)z@jg&ov196Cdu#SWAr?tS7(P>` zS^U*?bWE9%ML&AXduVg``Zlw+Ex5R_b}6z07KwlT84_Vb_hosDwE=vNnuztY`%c;xXd=XU<3t<8 z6KmA^xmBHMrS|oo=ESoN9^JnuR|DPZ{OR_?zOJ@EL*W1EG?{xA$O(3nZ789r!W zY$eHIVQJ}!5w?vdCv=k;L)353Ee~JT%2FV*L+|RMp4`y{4}ip6WF@D%_+(m*8%@;O zzzgtAkqphIH<6_X&%Mm@%m+rStF@9DkPxERZn;nGoZa$=JMPO4*I+CVFYt5#yf|`k z!&rQQ;+k%~kY2y^+~+Z32WM^PSQ^?*F1mQ_FIy6WW$3blG-GjF^0jI$?dy+D>eMCW zGx~Qguu7rm_#RrnwT(?}Ao9bT@1Z|?zmWoiL*2z&qT3B%i3YC{*jfnmu_gIGx7q~? zlwnXHLpPnVK0t>}JD0hSJ{(VqhW~^KA+J0LLS9)~dn<2}PeVZC%(tOIs`t)~D1_+GiKc1Qf(v1NpOg- zPceogl@+!un;OOEU7%VPOV)xIcfWS5piVbFq6JA*nDir*jIea0F6uWBBj)ID^^??) z^P*-KYREH=6snp3JHz6=>JOAnRpbW+?)L8&_mltR*p+d5e_XFaZT;ZrpAYVw%GwHI z7kWs0hlkEl)UD^lZTfHT?6L2mQvFHlqKl;v}# zb=6HA$S!G02d#ieTz^>nDvH&F9Dn-Il=5eaush~WbYKF?D<)I8&HaN5Ed2b z+*DXp;@)P8f{;wgsF{7MB*1v!WO0E`r8evGF|yWkL!g@5VS;Fri*T z%56UqtoWi7A4K5TC9MdQ^oaU~6+AR?Osze~OKE9DJA(|mS;@38dG~2&91ItO(Pm zkC^=CKHXQ&`8sI(h4SP1z4ncYGAiaD-*^M_Fp;jKwHKGkzrN58`aOy2Nh4rsXvE9l zZiU`|EwOL}9vz-+7;vEL&eSI8@x62O#I$l3gz(fdX$8bH^oI=v|B$}Q~F6s@{}bY(dYu2FT;&{_tSqUcRRD7tq1?ae5sYx&Y9{B z_hm6_^tFoA?>9|3Fa>e9aMq;{#TG&(TbW{weA9RXGa0kt+uQg1KKInQWM1Cn=FV7g zi76iOeLp^V53Cd*gP zwj7p!i(DUyP;UT$r`QFNr5GVoou&%Y-}bJ%XW^7m-jSu+nwj4T(PEpQIVF`Smnp5O zcbuVEb}VM54+s|iS@YQ}Dr2b!`Q5ZECi6lb{{_<_^ADWG9`_dM)gx4yBibPXc>B$9 zUCqJ7uYSn+x2ZNb0zymfwH9fJ0-{VCC)|uz+C0_aygX%mOb{wTZd6H}uE$|r8~||$ znRty$v8IvR&yYjpJPz zDKojUMy&pB=_QkeF&!w74Vr?nCgQM+Qe&C8=~xX2|-AD)=;IKO{i{th!~zSSC+sxSvsdVQU3 zb_o0Pc^lGl8$~&>?ch{O-N1wE26j!|k;he&1CFex zITSEK6Q05g)>q_6lknZ}jPB{?EG^a*aQ*1}<|S}#eO7iO>Vul)=QQZ>!ky~&p6cBj z<4JSlHq={dG;n)pn%e1vLybk3-edn`5sz87H=1ZY;~QikrbV0`6JvJ4MhA2VII4?1 z`;qSVVkh8#7_hHrEtDtiWCk}&*5*owx4jg;sXDC zYa!$lUHJWXkpKg%VCO`Y2Enb|Ao>1EloKl4<@)>~GR%hG%zzs{scz&f8}zD;sNiSA4<th>BK%Y!%iv<{_NcC=$p3Zn4BASjI6y zGH#NQCkOK1P4!bJxa*Sy7_H#CMcV!?Q?gmMe6X-eqD1~LFy`_c|0H{_SQfzCKLc?|G$k@qXgFa1oXhvz<lO28ru0 zRi|?DG8%KR(TlG|UsXjI(f292O@Y!{mnx-fh`jx-3_kI*o_(i}l)oyUsoZZA`LF%f zKlrTeyyL;IOmoHzOeqVW;D#tqYDfIbH}Mwy721fFCP}RSdrGEs7ut30Q($XMptxGv zaQU^RYRjX%lf7ku72ul zw$~;tR(%?ga8p|-yk8vFp}zjuvCpPPB4<{~Mg!osTryAVcyTHSqj-{T&*2WjDAKU! z88qENA!+m4c+)0+Dwom2-2L>w6#Zol3D~6wnvwr5Bj(ohj^pareC>DWur|_YEi2Id zu&DSUb$;Gd>go2u-V9*X#z22+`JVguE7PM}j^-uaN!y8yZQZrJSUnEeGN8oJi;*G_ zzsIG1u6@Q7hyjeM?7EUQU?Ph}U_xMBMs;OZHKywR78N&q{nW35_GPxL54#9|t+UId zdDYADs#Tq*_QgCRQd(M8YYgIwnk@5_yz3RAVI|H&Zw?bT4<^KmoP|t)yF1(o1mFP< zyE5h4e!4WlwgMP7Qk!kIYYKw&&}9H0qUUOB(AQo3sY;UrktUM!mXC_8V=iPgOMBln z&5?I`YYExW7N{{$;B4YUOJCE=kB?paE$@ti1KJcXyrvI~^wqU*qY6ogskBb-7ZpR! z^V_?Mpm6PJsk3}LTYq0*11hHe8)~3ZHkM^rqH;P7gn9=xOZs#tqZRaI8kp*bEEXx^8F&|VXqHcF+Z6| zu!%1hGC2|a@#48Va&*+-<`3yFSR4fqYSAp&mWWUx5orf*w@P@fuVlp$(R$Ag@3Z!sJ5ao!e0G+Wr7U1@gN`$rJ-`tW~@&X zkG*7%WM|WS>W}_SKi2&`yX1f1V}5+5h*HpLrMF5R#Nh?pfmmURFv*Hq1KCqe!ipK< zcpVkXKgh~bJWM~-ym|m>>_imrGvm%8ykax8&8JMAA9$CsA(_e=LO%TU9hm^PKeUU1 zW@WMlA3cVQ7bE5U5zH;$p9zwAt5DbEBw85<#F+|>fLV zfqXq4jxK5LCPcid#{P6-(L3;HoKrgAi_;tbd+j-U=RFfUbrvQoMWnw99iRI9RAGC3 zM}lwwm#TnAdnCSMn`42nt$cOpV2&b?1Vy)dhyQi?NHBm|1B_IlC{o_9w6-4*JWi&s z-4cx6vzYsS<>JOx%<|KWQ9&jV4(c}(g1#MD*gr2ePXg*ZPaiG4ncYwMhaJ4V#~rYG z;HOu(rBZ4ioE)=3c0Ma7l7MdA%R>D}iz#>SPg-x^z zn*XM1PbtB^QW7Xi_NP}=4CddL*OY!5gjJt?x4W~NaU=fxu4xJ~|4)9KVV1>)C(~`+ zW8)ILr@s96gBmhjhNaVeg~vpGcd)@ptYhr@*wkGG^(=nk{P#}*R9{MTjvW5fr?t3> zYeQ|7$`(X7JG6HkUrqe@8S5%D!F5@_$m|f{=Ih@yH%)*u&Jjq1oyrsR2EYG|>!R6v zB{HR6ylidbbN=l;yY|I<*3D6qe>lQC#L@pk;(L{v$4P0A!%e+UFz)JrN!Zmf!OITK zipLA>CXuEa$s0$~d(P?XB7wBWykor>{-5Wiz4d!1z|(|(mN5;ZJ}*WO&YUy1)bOz+ zTj5x|CFFKI0-tfYm}X|2_Dy03;t4=PitvSH@q2!^pcL8N)>Z=GH853~I~;#mFyVLi z93jxtwFe*HuH-9qFmp(~f(2G2)TnDOKiYd|{C2yg+IZ`Q`Y{8!0(Hm*4R zZ37sNi*FCA=QTA>%y*e`ekk8(nS`kLz^x-U8CEhy#ySU zrV#;h@iGtsM6 ze20Kj%drq0B)VkQ6qDtDcHc*n!liqn4tw3AQ?YYc$mZEC_7iKbD8gqOe3Lpy8~kSY zJ6IhFw#n+ziMEV74X9r_t=}IwTK-G{zx_il+dBHFa_TU?^hqZRAd3!D3_|dK@x#Ei z=zics&BE-*w}|n>wB|915?>E2KbuYEH&wJC`e_0ROq=68FMUBRYA8f9RXnpn>x+J| zvbx%0P2hL4b4447-sy6@M2ZP*=syyst-crd5&ckUEa3@*zBZ;DOQy;%RC`mjx2&PM zc-c3rY#bh8_M0hGPav=iH}jx$>OC28y}Zjb@z8UwxNX8F$8l7$ zjys$UlMPViibX=WK%_=Zm_%}jTaDRUHB~kdHKjepliv8r;(3Y7JP;tagFgH8yMlK> z%=5QfI~C7S3mOnYrz3ivOr1!zkH4qX4`GolI?hyHseDs;vDV3pal8Uo~X?&mZWt$+s3U| zY%h6pJq(S|fK;F>v;*HL6E}2wq_qt)a$_xxVM3QsLwj<^4`Ah_<5o zXkt`3cq)31i;Ik;wkG>tr+26SsO*Ar6+L#;H!Gqrbc2RFNfSdypnVk1ct+O5SkIB*AJE(xpFI z)BEryxu9a5_33@B`%Qv_FX;~>dDAMi#j{hxU_$eHptlh(EM*G6(LhQQp0Hs9eMTwY zvbqAp8P9CK0TZ*5K0D#T1~X!i#0k!vO$Bc&RvhE#@h9Z;i*#l;>4P>_BHIm&BXvXq zo^$wUi62;|ith!#HVEczNAm=`i^TfJ3>SxtN4EISV!d7Urs$1lyrp9rFeHMbHTQv8 zqXu^Fkgv-8H>V`BWQ~iT(}>4!;-MwXgp0GMfg2=XDTHy4ns>yU8s9i?^{V@~v!wn- zZ{HE^i>UYYZ`5gCjZFsBnP^PZGCxLs24yk|V^Gk}1cp!{-;!M$y~eu*#q8Xx4iSeY?hgGNI0K zbkGj$7vKoDsIW&@nTxLZ?z?e9^ni2f^tD4^NPnd}@D@T1GX=Qd3JHdY!TF-*<39OM zJzL`rCV&C*wrH9W-e?rjN6qSek>iK)t)C3>ulpr*ap_JUsghj%BJ}CC%)*38Ksw%d zbAUntL!MuraImr97gHCN_JTeUiHkNeTlQkYUp!bTo^y^-CKMP7aR`eJD%5e?Dz0 zTYX1WDjrP_B-Bl``EHi<;DuCUk%*>8wXu>#RM*WKPCeSSztNj{Z^aKsy!OCgWU4ln z$)wDpCp=PM<<`N@?^k3wMT&7WCfzA#@Jc!9;qxacuR85SLxJqs>;Tb=LY#lI~r%)T#ynhSo*MT^Sb?)boC zqXzY>-Ouhcy`^f2o7JRyRFahJ^+-yv3U#mZoH`Jx^i@`i|M@$O3a3DrtyOpim6u|g z(mDm(YuRp=sXgtC0p7igD%FtXY*55yPX(4wr#T*7OuTFQ_}+!MOpiaYSECuO1wA9} z7VdI4yupt3U!aSye+JhOdN@RJ=k-|;rW)o88G|x12>guJY%gb@u1r%NwP>0A%$=<6Lw?YRsts=d~2a z5_66$<9c2bQ$`E8PyBMF3JqdR%(6?s${LHmP(uwVO|1Y5J^jGVq+0*F28YPvN9-WB zl7Z<#fF@VRpN2I*2>h_w-mWC~D4@*yt+$PmO?m8J$+%yUiviEh&(1!p9526{{XO`< zo7;u6sro+-9R3|o?%t^}eN5H~C2Oe*9$JuVvU1H{i1oJs<|O9^o`=iQt>cBnrFEUB z#^rMpo)#SMbwyFct2SsLFyqcIRO=Va}gB-CaG zJ|IsfL<7UXv#($z$vP3-=o#W`?a6ZfI30B41z+Lrn#5w z^2=s%Ob{1H$ssd8qM;j2>U+ip5nw6RCF=Q)tHH_7o|Y}mvpM?8gQ=eLQdy7vCd^$l zdEMYE>;)HzLA2DY2uKUhaXp#sqJ?E;`PqPDNHgeqtKfjO{|*JB%76D>|Gg3L(?|RG z3>B-6rMxVAV;Tsq2l&f`n>tMbj~$9{X*~pBQ||R3|MnuRV}~;@1x;HxZ=GtYyZ5=< z20Od9{eJi}d>hap=T4uD%Sn*C9%)cMP$)2~EATju`45WB;(o_Ky>4RM#gm_5&h1mh-*E>Y zQwgYF%VS)ImxPIa4XSYE8P1Mg{sNVm)X9547@Tb~E*l5Jy9?7RKsk5J`SG0`%9?Bw z29B_ADZM(X_r5OE)p!iJ#OUFmo4g=aN8Q)$M!vnhX6Z%0kj_a41%t!cOEFEXzlT(% z@W@diJB|@zPxZVmAirnn1=}Eh3dDXh?S8<q&Grt*Wx;xMy^;$Wz4l5`g*vPkX{flhKH&d&8(9u0doh+b8uqvs_BMFFad*?P;hu%}R8?iXa zo{(p4iaP)ss`q#fh_0)k{97Ltgw41p?A%w*$5F4b~duNTo%TE?0A9^q$I$ zUnA%JO3x|tKhfciu{9rK`63&AohGfGVWOUvuOB&Wc@_O}?S6zG9zchsGiN57Q-y!s zJZ^sAE-~#JlxbD$+?16gEjlwbcwu-lMI4ENVY|GapZGZRW}=;?_T~hM zoV+w7X?!+IoyE|@$y(^uzGOiRWOUjU*g?n`mK`yjFDd#}*CjBATIG45i(|7D*MQ@v z0BgED7#n&k@m3;buwr?d0!6_^Lvf(}3W6V?gDnmod%@ET&%?p)v_O@qO?9H=WGlK- zMMdv)82)h0obYz3?9v(f+H%XuVMc& z_Fa4##%90lsO1{5);aU`W7rNAP2+IH`dF?_>b=OE*~p?`=Ya?z2CWF?+G3;7P|`upZJ#gt?2MpGLjCeiKy9a# z*E+c8w|l&r>?BCXbzsH=|7Mg_kh6%yu(r~h1rSxB*7z@rN8SrA-@<$AXa%zuMUhVm zj`(in-cndoxcipCCZzw)m6*%DfiPOdAk~4ZU0Ts3h!og|#tdRZcl9HEsy1BcKRtm8&T~ zx%wY})4p04lMmoKSzPf^pFp!-M&Egb|M4^?@74n$zR(8#qr%kJog*ZL)GdSl%aDFC zU^XXD7hoe8*ha*dh0S35K4W@%PPgh6x6VHN4?DiM8!+c~n7lN2K;01$LAFp?RxkC` zlVePA=J?eZLCVo!joK#S!_=VkP8^9;tSR${?hb&*$h5%xfj2UNy56+qu~hb*InYig z21|G7J8L3{kORD$m;{@&#dc~>2Y1HLcx?R`4W!@qa42olg@zwDogm*X%36ttqBF6I z^t8v7a~*#|U=E=>Qzm%JB-n{%xQ_R&qK4m!?c2k8vqg&-3o3TIzp0O8 z3){0Vu9Fi3BHGz_9|;}_E*vano-_R4?d;Rh+S&0I&|gJ0mXwXbX@H8xBT8r`O$0a- z{4Kmw`N zG+53Jflo8<)U(5k%%?bW^O7|Y_-)L@yv-)yLzyMQb$E27SQk=x*U}b?1PjTx87$RAe@Y-?e)-L` zQO2B&2C(-t`8?8R>F>e+ot)bt=h?^>?o5N+4{UE>{6NyjFf;Qef1bk7-H{NuN0q2! z3#V2${oSEET{Cg}(*=3=ZhX6HsJUs_FnMp@-ZBH7;NFXCz_cs?IEt^nnd{l@ja}2y zN7H;e69-*W_5j{^@g#fFbu+)*G56-#I88~0`N^1X4V>I|z3R3co)Q_QJt63fp9}0- zRTNjCg8CGpatiH7rK%wS_e*#v9nP04?WKd^8q{t0SzpFYl5G6AL#7(wQ79o4qL18! z1v-FI=Nn10X&Hp;no4%nYwTnuWT7FKf;e>~02_o1!;br0If~OrVHAnU*eH&GZhk~s0AI@s~DgBCj)~uityt}DC z%YE7&7;sko@%(?Xt>0;6z>nE8CB!V5FS9iG^-obj{%_q%nC2KXpS~6wG1qyMFf!0p z0b?l=13&sToGg=N`vob-*8nHX=cZ}@u6=gN7P?+!!IGKwT2{n{P+B*xReywg!DRr6TeVBZgwLl0cZ@2 z?fO}Fw>vKJyv9Y6FZA@6mIhAQ5|K?Nf^ezkDzSC~QT3he%^fub*Z|vbx%DMIm#@#Q z0{w4YeaaIXAAi@2pBqr@Xax5QTf4K?zi}SIKxLzsbl}x7b;z+0shl;|Ljy= zp2?nz&VtW^MFrGaDsO)$a*J4Gr=i)+N&_FnekNrjxD@*c$ff6X;7+N#oNjz4-s6X|I z?u}ZJRg(7iLaGoUd~jiV#P9fup3i+zaJz>W9^=jKb+)23$X1C{Y|i=+_F9%>%JBJM z{)Mmk?FWpEtc%eVZvtcY|GK{yUTT<*=(m;A2Js^*g#fe}>1Ech9F%K}0GjCidZWLy z-cMhyc)6=(c)!f%)LI`TdKDZaCOnkV>cZ~}Q)<*lKl(nfFTOFos2vPes%F-zpM5HP zQrDaC2G{HWJz8gL(?rG~PFjp8E!Iop@>`JtiR^{k!+yOZt`^jOFi;cGh@FRj`U2HUB?YQx?_fAwH zH!pF(nlhZ)BFL;h$|0YVspti2fq|7KQUz-=fbuv?{RWyRN5DKQF~$tj%JOKK+0_%1 zDR}EmeejnmpnimVbUwlGa(s^tfJQDifLa3?K}CF?P_U#xqG0u5JXbTu1d04{aFGWM zm_~s_2`Si!2am4s|0C)={HcEb|9>XuaBv(W+rcq1vMKW%B(o%$m4jo?%rcLWQO3!N zWJ_i^IN7u8MA;*XvPW4(^z(Ut-k%--uy=Pvh;J+}I6q39bFzy21|d8@%}MPgYJ|^V5AQ}j)$myX#(4=8zwIODWnXxd z+6I3SwWf4|h}?_{uIZ*ggG$`+||}#ucf6WLRI%1p$Cy3U6pY>&b1(-=xX; z-T#g_+Lt^}UM_SFF#t5mAn|B}=&b3>6X4UjEVE??dbfp6-LdB(rhOxH=hN?=;A^s$;zEi+z6p^ z_k+Poxr+I&i@cz_+HvLCsyNLQ&IjYW<_uZ*iWrlDY`fUO^_udSSO~nZ29~3&p z*=vyW4$^tmB11S5MDr7-4|qPD1#h1rIw5QrQh;N_9IVWf^S8^8k#yn4}qx)GCeIvHIQ^RQYW+)-D>V9|GqH@s7V|O`QLTzjqJboVvF! zJN6y(@y6Y?Nw%Lzya`LpKv2m=!1P7(5i1k2d}CN`+V2z?ABV=}2lXoku@Kg@QkKhA z*)_+~lJ5!@`Ax9*4tHTNF6;oMFX`?gmdMt5x7oY^8FzY(be?V=ZfU~^Jtq;cwg89|TKP8mT^qvFPCe_mBu8w}oy|{Jic%}d%WX@SQn4&q$XQp|YhW`1v1hBR8(Qjk?d+;D zu&(N3t(B+YA|M7pr~aAM+diooZ%R#jGn=&)rZ=*h8UK>ZUwcAD>hmk9eQLgN^b1*|ezN~5DU%(rsmW$UYQ62VzHBzxKx}3C z5g~;ba2{mOP=2wO=vJa1_?j^^V+8yDcAmWizH;ma{m8jl<0bxE$c4p2RV^SBYISEW z;Z+3lg8}iNIb%h5(nL_gQ@tTG$627%)p>tjelIkQ*NzT9ykxWjwm#uh_u3y6sD=t> z#wkWI@O=4gdg-kHzomUBKj2vMPji@dQ7%KOkbES@0i8X}m??#1gwQkbWul{jPfP&^ zGF5OoBLguXB`Gybr1K-)Xk?(<`eq;%hOm{Ode!JWN3Z`=z}+aHmONH+tyy7O+9=zg zX#tp7M09N(aDfJS9^9+j*_Ikas>i0o1>@(@qTiItR5NId-Sp>UM`RbK_AZt;dDsJK zg}Q}vgIQ4LR(gQ^p)MKnZcfu;5d>ZG^I)Q8geC0>Ial5mh^3o@6%rcZ9|2&~Dzm8# z<+}MZ%tXEMHak)@L%rz!jql3XR;W^>B2JZ_o9*z&(>^wE3NQ8Nh`)3AxO-%5t!uv~ zt0O5l3r9=n3y<=-L{>pm-AwxG!9!()t%pbB_)|#4N}(QL${(-KKa&9M2mg1{c8;4v zf9F=LR<(%>hIjaJxZM9u9KlR=0-^`}BV^c+726NZ^EO(Ln$2C8Ke*l3;cgo-&FR%f zWqwhLsk5Br+U6sr&W9XQHTwKg4tRMhJZnAuMpQENio&|gT)#}dFivLTXPcG9ZSC9F zpVJABNmyC4TGFYDxEw#X5#kE)Np9?PduK>i+g2E=BVTn0v~_hTR9U!op?CM7Dx{wC z66XdWQZVtolsWZFq9&G>WB>R15&C0bd$VkS(dpXFl6zLP72d2)qbAe%ExRw7I>rTG z_Wpo|3L0h%onO-HmIt_p%$l^nf1aCsT$HA&=NM_OAaFO*-6-Vj?$H}<2)Jmn3hsKF z$%N`+Y|SG-T)bERvkiAV;#X{J>KOZTeJ?=BUSZPyhZcwbaP|H(Cwvn2L-Ow@WLR31 z6PNS!C_;BX6@YuBJuABHqhM8ZdpjHWq{rc>(@pBj3bG?*YwRWbS-w1pOl9Ld!&e@J zL)`L5mL-8;wV0E(nie;IKJl>MKI~t+m!p@UUH}1cX+-ixm|xrDaJf%2#y~CRT~Kc{ z)+losPR?wml3rR*OsP;AP%x-YKshwi03T`fMGPHBX6fx~{aW7O6__tNEQh+|GPZ*4 zQi9eWrvs^`H_0{*S#zwI+M7i^FdEa0LQN~hE!vkkYg5}Qyg3TxmiP*S`>ed*ftb@r zI2G|A-osEg@UQd}$y1hvm&-8(F?NuBaIZQ4#felC2W(|L z&)OpNSL9-bxzxE5M!G{aQqsnJXI~ShX=sT@ksGJ#WSYa-6BDv9^|vjA?x2n!i(fu| zx8rI+z&X?N2RT)T=ccsRR$LkU2A*#l_}UZ}^B5In^pNSXtSwBtlv>{7tsZhu1Kc{+ zC@w!Xin&Wg>4b+5Dv(N=HwV&KpUjw1TCW>CF*W60Bn}{VDh?U%Z@kjaIxiHXxJy4Q zZ9;2+=z9y`KrI#fHYJ1TpyVq1MjlY>4?Sc?sB9>r2 zuuClNE;Cq0mCR-e?<9_!nus~rxLi^VS2c; zb8qD8U z9i#J{ylhjW3=+l2@v^AvJ?bK<*0|RbCvHt?KLh~FUKEMXziTC;k(}$|R4_*d*ttKB zGN5LT9Ejotyj;mklk`)LoM}9lo*NhWOLDxl7;E%n8l}0VO?dCB^}*F*8%fQXh(K7M z?5C(s3VNpfg5IOFERVb1@X*GyZ-8dtB3k4`6`PX5c|dLP<>^B188yW;Pj*|H??P)m zeEH}Xn|3Apr+l2^;P7kZcSi#6m7eF?wog*81L32M2g?r0s0_m6TE!Zp9Cv&_Lc*{M( zK+!kBm0shF!Kf%ks3ad9Mn(2^VT#;Og1+7A3Kw{4G+CWs!-7J{8`o$FIXTwi@++LP&J&d# zU|qe~Zv7}qB+`VzhaHt@0ISha%2xsD`=M^V)TzmU;X}s7W+Q=@$_cV@P8_3w)F)E1 zZ#5#GA~_R3O-M!pdr8=DW`6T2x^*p}*#{kJ)`5+}o+cmLeAd?A%SSb5QLvcU%QA%O z+sc-s6#)=>S;dKP=8j-`!B;QCLJ2jgbRKb~>L3dp9nub*ES`+zq2h7`RJ?E557 zZNtym9W`6aFJw|CT*5evy_C05Wg^k}TD9j)4+8o4kZb9d=R#YTp_4~w_utwcLl89| ziWHoiVh#Nh{ckJN2|lj+H9Yhu4?|}YHSsLCgN-?pVkZp#0rEc>14w0>-gLE^#*_{9 zyiSD(r3gmFSu|RfIVg^Viu-(^ycd|UrGM-0%DGF4erMIuiy#p)_X9xgo{AU;s>BD) zF}l^~ls3|P<5#b}uNj~PKL4(8)*sso@I}7fd1x+(1x=K4ZPRO4L_MqvybnBFYHKri zDB&G0koX=#KP@uD7<{^sYqY39NJp@CN@*#cmz;EYjRBEJmbflrJPTIq;EM443%;CT zF9*k^bX`qjBo%tjoGSWzc8to*+QzzRm48l}=WqJ7DHiL<5-yn{b=UIj;T_Fr)Sgh@ z0B_{Y^gj)EAcJf?d|LF_M_+x3S0P`GfVRza*$Qb^Bi3RE1+S=Zj50?jN56aT{TH$$ z3>rM$Ii?OxAO5XPi1S(&iU+1t-i|rpov(CBLKHr%#isR>$>ZUe!g}2FLhpBXk9ef`ui)RZ)^~ahK&TW@ zZ#KU3eZ@vLM2}5V)3M80{wU+=wb~VD@5vyKZ#QG!lJe%J91w962GmX~xEm{t79%XZ z8Y|f7^PZVzxe|*Sk?vF0VC=E!e9p0rE(3KeK4^s%Twl3{1UpaSl(4bDXggV-XJ4uS zzA0a_%{(_Q*Xe7@`)=9lv~H`!y9S2lEH)&0^8Km1eiaX0>kt(rXT{r)%BuS+wtjd# z5X|W)4;(jJyWi)I!4)S7_eJ;rRPvAWr*^|YwKBGxDudmBAx?M$|N9(<@{_)X{#ZC_ zO>W;I7a>w+;Wbg*+7UQpG!pK{1rBF)g5e;Kjzcd>;bg9%qmmTR&^Wh^S>k{QMYoHQ z&gA}^dOJLr73#}5Oj|qIFFaPG|<=z*yt>zp@4^2H-%PzbbszHAL zm4_Abec+Z_+N)@9rpW5EE7LTd$H9>ydxU>)ioY-WE(NF7Jk1WMNv7ytb^*&l?t zRdKwd;4t#HcaaaSq^LTe4Z7V$g;fo)=PR-$(KdA+CK!_zPp88Opc_yFxax!2xZlGVL6= zIT!mEiu=vquuN2|1DXm*I5>Bk;8BRx59okPmAr5 zB842TaLNZ|$3Um1d~Vtwb&o?_=noH`lO6MT_D^5aS`k2>%}VEPb`=$}8SB1KQmo42 zgB}5!v&K$%Abra=Dp5wgytyZL{?7etp@G|o?+u=rEVb*Qbul8wzTntQe5LoBj{@&| zyswjGH~P{}`mE{&*c@wfU&?1W*Z<6Lp-;bjT%+^JP8{u(O`9w{-47D^doSEMzO0^7 zY%fhqAVwxVT^ydDZj3Vd&9r?Y1~^sGF}co+Bzmtn3xK-4FI0CL*|GbWuz#IwJA|h!%H`9(XPScPm2bGU9C=}c6l*AtC6F`- zypH84ExDaHINpQ-WQ*cpFN-wswrRj!eD2Kzg%@eRpU}ddSYI43KWeG{r85sr0W~V= zzWNOC^`~Pvxkt5rUD(OJz2if78KsK4;4Zb!>Rt*;-2UT^ZZ7S66B2(M)naUlAysI~ z!H0I=fB4wB$cd`3g#fW*K3a)<7pfvb!~046NR3-lswiJTWBXBYuzVBKq7D~3;ui1z z44$V7{6a#A4;U={+*G^Y!7|1n)rUa`nh)fNH6|6Y);|qjyf#ixW+MujZHZ^X)kNWg z#OKaAdVc{-F`SpB6JE8xxqUa~m$NRLSr4US;Sz|$L9Ewhr?f2>LeOz{yaK;g4D<@V zqPcK+7_n+;6ieP(fHSkuYag zot*y~#HU#HHD3(2>BWA_bTjt)e$K^s_U~)>rFQPGNl~t(F0&<{#;hr&C~^!7zv?IP zq#6QjzFlht7vJ#sS$7m@XD(* z)SSqQ;IDQ#0-HvfO6h!+$jdf!t>3(U$Yr7sifp~;L)}d80k~NWIZVzeKtk8hCi290 zQgd^Cwj$=&fh>t5P5bs$7DV>yuF1ADmZIt3O>|M-45&@oLAfi6L!e1Ig)X)R$7;#N z;?#y_mKthqe>&%u6Ni`G%R&HZ^IjFv?(PzG2$pLTEXF`fc246&%^aZJbA`?GW~d8I zN1@k6-&eRxY6VihUOo2|9(*%OWj2#a|MQ^9I6|P`vSIzV2uI-9C9E}YZql9~Bh|8^ z^jB_o!#be*A86n8$0t|YHyw44Lk0Lq7^x_wW_w?^z}}3l8^x`w!#nFu5nx-4ROR}SL#HM!|BvNM~K@Kos)-CVzA{_CwRNEcOvh(_6x zI8Z?D$YnIeGCtbBQdiyDa+)Fsj=1bCrp6#*{@u$-H@n{Q;Ck&T>|Up%4_T64wu@1F zu^Xn*(G`6|?KA_qTr1OxCh1b0U^QfP(6p)9M?vA9C5av-&VNSaY6Kf4_S6fKrNC>B zJ32jS(17(Wq!Y$ok=mEXGDI%Q;c>neBt+A$8O2 zX`@9UEgWM%lA7;p&m<3fo@oh$_^Y%veS&U%mx0mR&by9`Oq*@W?uMU7A2FUex%sg4%7%~8 zMN6@}1=+KTBSrc)W+aAL%@~f`3fWKB4wl?Ib+iAxq<{GP-LF?0cgJ#fy2W)? z3$d(yz}5S4n)TaErh&K6cy5A+{@zXn)dt~a#>zY{&_iC%MB%hl{6S9!V}qf-2Az5Ik)TG zQC~!XSe${?_n>=Osyv8`*(s(A3H-P1pU^&fI5Z_j5c~O4#ZWK{S5=;eo*y?Hk~uk% z8$HsQ{WW(?aVsb^}LxF>x#U3`_K16zTOX#jZ2E3OasMtm}u%^AH1$r{Vw>>sr=yQF2 zwiGl-mDXav`=j_#8oRiyG{j14_Hk9qCeLPfmIm=tQ>>|(5JD4+E{_qB{e)+&kvId5 zQDqz1-g>JEzWl`;Dv<@F!WQRm$Oi#k>bj){{I3|m@=~GhF;&3_c5i(PM;}+~eB2oI zz(xC9ia`4*Yf@_+e2;bc9X{mHBOpLOgwEQkZ1~XbNSY?G)8%7`Cu+Q?cIfW_EhxJ}a13-B0nIW=zhY2Vx+ zqgUqp5w@ZCo2*@?hPp7EK}nDKA`#h;6z247{E~L~rRp9r{)>@Upsc|L-YIi<=}}Z` zpPgK@#U6nCrrhT3(EG{uv)kvHJvT?n+8QNJah6~4io#I&yth*JNNNBl*+FD`1NF9m zOOvv0kB+rVf%jt_`rU5sN^d1+e1FLxUd=g;WZfiIez*UzwL2G6@3bBIN?UHc?PwaU zCD~Qm&2ONr=r;3W?P`jdDTQ#$$;JBEw&dF9>$tFlBCWByVipy?0J*-X3F-!SUHHAj(BE8Tjr(wo)9gA%UTUQMh$Bfth@|MkgNQAMKo%~&b-#h}M z8n2QQzxy=yeN8D}0(%#u2vDB1ED;$pQS|QP^J26tOhBggY{zF|qz3!)stgASTDRp2 zh0u%>_Uf1_%^t{B)+2ylj)_ax;g?a#Kcc*RraS60?z@4w*55FQ*IZZforO&L{TeV^ zU`dtXluBmbd~!yQv7sFmH9aV(`urLFq||dLc_O0eiV1Ad{zo^mMOf6F|2$uaPiy

FEl*s8GikIaerlBJ}zo7 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 WOG-J(eSz}N{dBbrvE`b!5&sXMb*H-k literal 0 HcmV?d00001 diff --git a/bun.lock b/bun.lock index eff6adff..5bb8e242 100644 --- a/bun.lock +++ b/bun.lock @@ -5,20 +5,14 @@ "": { "name": "editor", "dependencies": { - "@react-three/drei": "^10.7.7", - "@react-three/fiber": "^9.5.0", "portless": "^0.4.2", - "three": "^0.183.0", - "three-bvh-csg": "^0.0.17", - "three-mesh-bvh": "^0.9.8", - "zustand": "^5.0.11", }, "devDependencies": { - "@biomejs/biome": "^2.4.2", - "supabase": "2.75.3", - "turbo": "^2.8.10", - "typescript": "5.9.2", - "ultracite": "^7.2.3", + "@biomejs/biome": "^2.4.4", + "supabase": "2.76.15", + "turbo": "^2.8.11", + "typescript": "5.9.3", + "ultracite": "^7.2.4", }, }, "apps/editor": { @@ -43,39 +37,43 @@ "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", "@react-google-maps/api": "^2.20.8", - "@react-three/uikit-lucide": "^1.0.60", + "@react-three/drei": "^10.7.7", + "@react-three/fiber": "^9.5.0", + "@react-three/uikit-lucide": "^1.0.62", "@repo/ui": "*", - "@supabase/supabase-js": "^2.95.3", + "@supabase/supabase-js": "^2.98.0", "@t3-oss/env-nextjs": "^0.13.10", - "@tailwindcss/postcss": "^4.1.18", - "@types/three": "^0.183.0", + "@tailwindcss/postcss": "^4.2.1", + "@types/three": "^0.183.1", "@vercel/analytics": "^1.6.1", "@vercel/speed-insights": "^1.3.1", "@vercel/toolbar": "^0.2.2", "@visual-json/react": "latest", - "better-auth": "^1.4.18", + "better-auth": "^1.4.19", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "howler": "^2.2.4", "lucide-react": "^0.562.0", - "motion": "^12.26.2", + "motion": "^12.34.3", "nanoid": "^5.1.6", - "next": "16.1.0", + "next": "16.1.6", "postcss": "^8.5.6", - "react": "^19.2.0", - "react-dom": "^19.2.0", - "tailwind-merge": "^3.4.0", - "tailwindcss": "^4.1.18", + "react": "^19.2.4", + "react-dom": "^19.2.4", + "tailwind-merge": "^3.5.0", + "tailwindcss": "^4.2.1", + "three": "^0.183.1", "zod": "^4.3.6", + "zustand": "^5.0.11", }, "devDependencies": { "@repo/typescript-config": "*", "@types/howler": "^2.2.12", - "@types/node": "^22.15.3", + "@types/node": "^22.19.12", "@types/react": "19.2.2", "@types/react-dom": "19.2.2", "tw-animate-css": "^1.4.0", - "typescript": "5.9.2", + "typescript": "5.9.3", }, }, "packages/auth": { @@ -88,7 +86,7 @@ }, "devDependencies": { "@repo/typescript-config": "*", - "typescript": "5.9.2", + "typescript": "5.9.3", }, }, "packages/core": { @@ -99,7 +97,7 @@ "idb-keyval": "^6.2.2", "mitt": "^3.0.1", "nanoid": "^5.1.6", - "three-bvh-csg": "^0.0.17", + "three-bvh-csg": "^0.0.18", "three-mesh-bvh": "^0.9.8", "zod": "^4.3.5", "zundo": "^2.3.0", @@ -109,7 +107,7 @@ "@repo/typescript-config": "*", "@types/react": "^19.2.2", "@types/three": "^0.183.0", - "typescript": "5.9.2", + "typescript": "5.9.3", }, "peerDependencies": { "@react-three/drei": "^10", @@ -123,15 +121,15 @@ "version": "0.0.0", "dependencies": { "@supabase/supabase-js": "^2.95.3", - "drizzle-orm": "^0.39.0", - "drizzle-zod": "^0.5.1", + "drizzle-orm": "^0.45.1", + "drizzle-zod": "^0.8.3", "nanoid": "^5.0.9", "postgres": "^3.4.5", }, "devDependencies": { "@repo/typescript-config": "*", - "drizzle-kit": "^0.30.0", - "typescript": "5.9.2", + "drizzle-kit": "^0.31.9", + "typescript": "5.9.3", }, }, "packages/eslint-config": { @@ -169,7 +167,7 @@ "@types/react": "19.2.2", "@types/react-dom": "19.2.2", "eslint": "^9.39.1", - "typescript": "5.9.2", + "typescript": "5.9.3", }, }, "packages/viewer": { @@ -182,7 +180,7 @@ "@repo/typescript-config": "*", "@types/react": "^19.2.2", "@types/three": "^0.183.0", - "typescript": "5.9.2", + "typescript": "5.9.3", }, "peerDependencies": { "@pascal-app/core": "^0.1.4", @@ -198,31 +196,31 @@ "@babel/runtime": ["@babel/runtime@7.28.6", "", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="], - "@better-auth/core": ["@better-auth/core@1.4.18", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "zod": "^4.3.5" }, "peerDependencies": { "@better-auth/utils": "0.3.0", "@better-fetch/fetch": "1.1.21", "better-call": "1.1.8", "jose": "^6.1.0", "kysely": "^0.28.5", "nanostores": "^1.0.1" } }, "sha512-q+awYgC7nkLEBdx2sW0iJjkzgSHlIxGnOpsN1r/O1+a4m7osJNHtfK2mKJSL1I+GfNyIlxJF8WvD/NLuYMpmcg=="], + "@better-auth/core": ["@better-auth/core@1.4.19", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "zod": "^4.3.5" }, "peerDependencies": { "@better-auth/utils": "0.3.0", "@better-fetch/fetch": "1.1.21", "better-call": "1.1.8", "jose": "^6.1.0", "kysely": "^0.28.5", "nanostores": "^1.0.1" } }, "sha512-uADLHG1jc5BnEJi7f6ijUN5DmPPRSj++7m/G19z3UqA3MVCo4Y4t1MMa4IIxLCqGDFv22drdfxescgW+HnIowA=="], - "@better-auth/telemetry": ["@better-auth/telemetry@1.4.18", "", { "dependencies": { "@better-auth/utils": "0.3.0", "@better-fetch/fetch": "1.1.21" }, "peerDependencies": { "@better-auth/core": "1.4.18" } }, "sha512-e5rDF8S4j3Um/0LIVATL2in9dL4lfO2fr2v1Wio4qTMRbfxqnUDTa+6SZtwdeJrbc4O+a3c+IyIpjG9Q/6GpfQ=="], + "@better-auth/telemetry": ["@better-auth/telemetry@1.4.19", "", { "dependencies": { "@better-auth/utils": "0.3.0", "@better-fetch/fetch": "1.1.21" }, "peerDependencies": { "@better-auth/core": "1.4.19" } }, "sha512-ApGNS7olCTtDpKF8Ow3Z+jvFAirOj7c4RyFUpu8axklh3mH57ndpfUAUjhgA8UVoaaH/mnm/Tl884BlqiewLyw=="], "@better-auth/utils": ["@better-auth/utils@0.3.0", "", {}, "sha512-W+Adw6ZA6mgvnSnhOki270rwJ42t4XzSK6YWGF//BbVXL6SwCLWfyzBc1lN2m/4RM28KubdBKQ4X5VMoLRNPQw=="], "@better-fetch/fetch": ["@better-fetch/fetch@1.1.21", "", {}, "sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A=="], - "@biomejs/biome": ["@biomejs/biome@2.4.2", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.2", "@biomejs/cli-darwin-x64": "2.4.2", "@biomejs/cli-linux-arm64": "2.4.2", "@biomejs/cli-linux-arm64-musl": "2.4.2", "@biomejs/cli-linux-x64": "2.4.2", "@biomejs/cli-linux-x64-musl": "2.4.2", "@biomejs/cli-win32-arm64": "2.4.2", "@biomejs/cli-win32-x64": "2.4.2" }, "bin": { "biome": "bin/biome" } }, "sha512-vVE/FqLxNLbvYnFDYg3Xfrh1UdFhmPT5i+yPT9GE2nTUgI4rkqo5krw5wK19YHBd7aE7J6r91RRmb8RWwkjy6w=="], + "@biomejs/biome": ["@biomejs/biome@2.4.4", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.4", "@biomejs/cli-darwin-x64": "2.4.4", "@biomejs/cli-linux-arm64": "2.4.4", "@biomejs/cli-linux-arm64-musl": "2.4.4", "@biomejs/cli-linux-x64": "2.4.4", "@biomejs/cli-linux-x64-musl": "2.4.4", "@biomejs/cli-win32-arm64": "2.4.4", "@biomejs/cli-win32-x64": "2.4.4" }, "bin": { "biome": "bin/biome" } }, "sha512-tigwWS5KfJf0cABVd52NVaXyAVv4qpUXOWJ1rxFL8xF1RVoeS2q/LK+FHgYoKMclJCuRoCWAPy1IXaN9/mS61Q=="], - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.4.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-3pEcKCP/1POKyaZZhXcxFl3+d9njmeAihZ17k8lL/1vk+6e0Cbf0yPzKItFiT+5Yh6TQA4uKvnlqe0oVZwRxCA=="], + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.4.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-jZ+Xc6qvD6tTH5jM6eKX44dcbyNqJHssfl2nnwT6vma6B1sj7ZLTGIk6N5QwVBs5xGN52r3trk5fgd3sQ9We9A=="], - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.4.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-P7hK1jLVny+0R9UwyGcECxO6sjETxfPyBm/1dmFjnDOHgdDPjPqozByunrwh4xPKld8sxOr5eAsSqal5uKgeBg=="], + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.4.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-Dh1a/+W+SUCXhEdL7TiX3ArPTFCQKJTI1mGncZNWfO+6suk+gYA4lNyJcBB+pwvF49uw0pEbUS49BgYOY4hzUg=="], - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.4.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-DI3Mi7GT2zYNgUTDEbSjl3e1KhoP76OjQdm8JpvZYZWtVDRyLd3w8llSr2TWk1z+U3P44kUBWY3X7H9MD1/DGQ=="], + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.4.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-V/NFfbWhsUU6w+m5WYbBenlEAz8eYnSqRMDMAW3K+3v0tYVkNyZn8VU0XPxk/lOqNXLSCCrV7FmV/u3SjCBShg=="], - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.4.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-/x04YK9+7erw6tYEcJv9WXoBHcULI/wMOvNdAyE9S3JStZZ9yJyV67sWAI+90UHuDo/BDhq0d96LDqGlSVv7WA=="], + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.4.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-+sPAXq3bxmFwhVFJnSwkSF5Rw2ZAJMH3MF6C9IveAEOdSpgajPhoQhbbAK12SehN9j2QrHpk4J/cHsa/HqWaYQ=="], - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.4.2", "", { "os": "linux", "cpu": "x64" }, "sha512-GK2ErnrKpWFigYP68cXiCHK4RTL4IUWhK92AFS3U28X/nuAL5+hTuy6hyobc8JZRSt+upXt1nXChK+tuHHx4mA=="], + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.4.4", "", { "os": "linux", "cpu": "x64" }, "sha512-R4+ZCDtG9kHArasyBO+UBD6jr/FcFCTH8QkNTOCu0pRJzCWyWC4EtZa2AmUZB5h3e0jD7bRV2KvrENcf8rndBg=="], - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.4.2", "", { "os": "linux", "cpu": "x64" }, "sha512-wbBmTkeAoAYbOQ33f6sfKG7pcRSydQiF+dTYOBjJsnXO2mWEOQHllKlC2YVnedqZFERp2WZhFUoO7TNRwnwEHQ=="], + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.4.4", "", { "os": "linux", "cpu": "x64" }, "sha512-gGvFTGpOIQDb5CQ2VC0n9Z2UEqlP46c4aNgHmAMytYieTGEcfqhfCFnhs6xjt0S3igE6q5GLuIXtdQt3Izok+g=="], - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.4.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-k2uqwLYrNNxnaoiW3RJxoMGnbKda8FuCmtYG3cOtVljs3CzWxaTR+AoXwKGHscC9thax9R4kOrtWqWN0+KdPTw=="], + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.4.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-trzCqM7x+Gn832zZHgr28JoYagQNX4CZkUZhMUac2YxvvyDRLJDrb5m9IA7CaZLlX6lTQmADVfLEKP1et1Ma4Q=="], - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.4.2", "", { "os": "win32", "cpu": "x64" }, "sha512-9ma7C4g8Sq3cBlRJD2yrsHXB1mnnEBdpy7PhvFrylQWQb4PoyCmPucdX7frvsSBQuFtIiKCrolPl/8tCZrKvgQ=="], + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.4.4", "", { "os": "win32", "cpu": "x64" }, "sha512-gnOHKVPFAAPrpoPt2t+Q6FZ7RPry/FDV3GcpU53P3PtLNnQjBmKyN2Vh/JtqXet+H4pme8CC76rScwdjDcT1/A=="], "@clack/core": ["@clack/core@1.0.1", "", { "dependencies": { "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-WKeyK3NOBwDOzagPR5H08rFk9D/WuN705yEbuZvKqlkmoLM2woKtXb10OO2k1NoSU4SFG947i2/SCYh+2u5e4g=="], @@ -238,51 +236,57 @@ "@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", "get-tsconfig": "^4.7.0" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.19.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], - "@esbuild/android-arm": ["@esbuild/android-arm@0.19.12", "", { "os": "android", "cpu": "arm" }, "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w=="], + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.19.12", "", { "os": "android", "cpu": "arm64" }, "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA=="], + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], - "@esbuild/android-x64": ["@esbuild/android-x64@0.19.12", "", { "os": "android", "cpu": "x64" }, "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew=="], + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.19.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g=="], + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.19.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A=="], + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.19.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA=="], + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.19.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg=="], + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.19.12", "", { "os": "linux", "cpu": "arm" }, "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w=="], + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.19.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA=="], + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.19.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA=="], + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA=="], + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w=="], + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.19.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg=="], + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg=="], + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.19.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg=="], + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.19.12", "", { "os": "linux", "cpu": "x64" }, "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg=="], + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.19.12", "", { "os": "none", "cpu": "x64" }, "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA=="], + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.19.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw=="], + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.19.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA=="], + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.19.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A=="], + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.19.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ=="], + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.19.12", "", { "os": "win32", "cpu": "x64" }, "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA=="], + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.1", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ=="], @@ -390,25 +394,25 @@ "@monogrid/gainmap-js": ["@monogrid/gainmap-js@3.4.0", "", { "dependencies": { "promise-worker-transferable": "^1.0.4" }, "peerDependencies": { "three": ">= 0.159.0" } }, "sha512-2Z0FATFHaoYJ8b+Y4y4Hgfn3FRFwuU5zRrk+9dFWp4uGAdHGqVEdP7HP+gLA3X469KXHmfupJaUbKo1b/aDKIg=="], - "@next/env": ["@next/env@16.1.0", "", {}, "sha512-Dd23XQeFHmhf3KBW76leYVkejHlCdB7erakC2At2apL1N08Bm+dLYNP+nNHh0tzUXfPQcNcXiQyacw0PG4Fcpw=="], + "@next/env": ["@next/env@16.1.6", "", {}, "sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ=="], "@next/eslint-plugin-next": ["@next/eslint-plugin-next@15.5.9", "", { "dependencies": { "fast-glob": "3.3.1" } }, "sha512-kUzXx0iFiXw27cQAViE1yKWnz/nF8JzRmwgMRTMh8qMY90crNsdXJRh2e+R0vBpFR3kk1yvAR7wev7+fCCb79Q=="], - "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.1.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-onHq8dl8KjDb8taANQdzs3XmIqQWV3fYdslkGENuvVInFQzZnuBYYOG2HGHqqtvgmEU7xWzhgndXXxnhk4Z3fQ=="], + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.1.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw=="], - "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.1.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Am6VJTp8KhLuAH13tPrAoVIXzuComlZlMwGr++o2KDjWiKPe3VwpxYhgV6I4gKls2EnsIMggL4y7GdXyDdJcFA=="], + "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.1.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ=="], - "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.1.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-fVicfaJT6QfghNyg8JErZ+EMNQ812IS0lmKfbmC01LF1nFBcKfcs4Q75Yy8IqnsCqH/hZwGhqzj3IGVfWV6vpA=="], + "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.1.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw=="], - "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.1.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-TojQnDRoX7wJWXEEwdfuJtakMDW64Q7NrxQPviUnfYJvAx5/5wcGE+1vZzQ9F17m+SdpFeeXuOr6v3jbyusYMQ=="], + "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.1.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ=="], - "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.1.0", "", { "os": "linux", "cpu": "x64" }, "sha512-quhNFVySW4QwXiZkZ34SbfzNBm27vLrxZ2HwTfFFO1BBP0OY1+pI0nbyewKeq1FriqU+LZrob/cm26lwsiAi8Q=="], + "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.1.6", "", { "os": "linux", "cpu": "x64" }, "sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ=="], - "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.1.0", "", { "os": "linux", "cpu": "x64" }, "sha512-6JW0z2FZUK5iOVhUIWqE4RblAhUj1EwhZ/MwteGb//SpFTOHydnhbp3868gxalwea+mbOLWO6xgxj9wA9wNvNw=="], + "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.1.6", "", { "os": "linux", "cpu": "x64" }, "sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg=="], - "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.1.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-+DK/akkAvvXn5RdYN84IOmLkSy87SCmpofJPdB8vbLmf01BzntPBSYXnMvnEEv/Vcf3HYJwt24QZ/s6sWAwOMQ=="], + "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.1.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw=="], - "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.1.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Tr0j94MphimCCks+1rtYPzQFK+faJuhHWCegU9S9gDlgyOk8Y3kPmO64UcjyzZAlligeBtYZ/2bEyrKq0d2wqQ=="], + "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.1.6", "", { "os": "win32", "cpu": "x64" }, "sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A=="], "@noble/ciphers": ["@noble/ciphers@2.1.1", "", {}, "sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw=="], @@ -432,13 +436,15 @@ "@petamoriken/float16": ["@petamoriken/float16@3.9.3", "", {}, "sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g=="], - "@pmndrs/msdfonts": ["@pmndrs/msdfonts@1.0.61", "", {}, "sha512-Nxk+3dAdsXFdx5pq1IHNe1j4zxogkAfhmBKUIHS+aJUs45q/XMtlADVrHLooiQ/Amlp9tXAvbvFYUOGd897POw=="], + "@pmndrs/msdfonts": ["@pmndrs/msdfonts@1.0.62", "", {}, "sha512-TGmAo0mFbdzPwwNCDzJoy6Khr3T/Z613ApwegYsRs6S+P+AeOSIS4+4aB5bL4G7hY6uNt5cyZVClESuEjYXt9g=="], - "@pmndrs/uikit": ["@pmndrs/uikit@1.0.61", "", { "dependencies": { "@pmndrs/msdfonts": "^1.0.61", "@pmndrs/uikit-pub-sub": "^1.0.61", "@preact/signals-core": "^1.5.1", "@zappar/msdf-generator": "^1.2.4", "yoga-layout": "^3.2.1" }, "peerDependencies": { "three": ">=0.162" } }, "sha512-xoNp2jKRoHa7INC3QaAL2ddpGmKy+eORMh4zoNds17EndqyBrqYzfWJK+PVmei/5MQNBTi0KrY2qxBGj6hB0cg=="], + "@pmndrs/pointer-events": ["@pmndrs/pointer-events@6.6.29", "", {}, "sha512-o4YD6VfJgDYjFgde/YyAw2X5KY454tdmOXrHGOvKTWJBHzkL90B5vH4rqmexwRVvaDfT3YLvVh/Dm5cBbgZXMg=="], - "@pmndrs/uikit-lucide": ["@pmndrs/uikit-lucide@1.0.61", "", { "dependencies": { "@pmndrs/uikit": "^1.0.61" } }, "sha512-pToRVLnOIuxs0RUm6UTa5HWgcDfhLATq1FtgKmzxiUuHVvYf4h8PIrFJswP8e/KeotzHvr5sTg/HIYvbvSo0/A=="], + "@pmndrs/uikit": ["@pmndrs/uikit@1.0.62", "", { "dependencies": { "@pmndrs/msdfonts": "^1.0.62", "@pmndrs/uikit-pub-sub": "^1.0.62", "@preact/signals-core": "^1.5.1", "@zappar/msdf-generator": "^1.2.4", "yoga-layout": "^3.2.1" }, "peerDependencies": { "three": ">=0.162" } }, "sha512-TRV7Q1hKmGIFEzhJYF4xaXowdgqGUQd+XKcpEfyvwShOWEWqiDAYoI5OYjDQPhVVshI2frb5XVPr6acGf2laFQ=="], - "@pmndrs/uikit-pub-sub": ["@pmndrs/uikit-pub-sub@1.0.61", "", { "dependencies": { "@preact/signals-core": "^1.8.0" } }, "sha512-J1r5faMzwoWgAsDTW/0B+M96BuZgCyrvpM91/+QENnBfFCRR6xM2LIqI3KB/HlaO/1L8zQQHQE5g8HA2tVT4xw=="], + "@pmndrs/uikit-lucide": ["@pmndrs/uikit-lucide@1.0.62", "", { "dependencies": { "@pmndrs/uikit": "^1.0.62" } }, "sha512-aGgFJixWnYf+Gb3anQr04G3MaDYf82AQSZZFYO/Xzo1Y8QxaAjeiQdIgZtq7rrEWWxzJbVepHN9YgHyfLmBPMg=="], + + "@pmndrs/uikit-pub-sub": ["@pmndrs/uikit-pub-sub@1.0.62", "", { "dependencies": { "@preact/signals-core": "^1.8.0" } }, "sha512-E/8z5ZnqGfHgsgyUtMujJwRM11JSsZpxYnSxDDOZ+Q5FcK7aLSBCfT80Nm32EdytpN+xQ76mDI8ROvWYg3abxg=="], "@preact/signals-core": ["@preact/signals-core@1.12.1", "", {}, "sha512-BwbTXpj+9QutoZLQvbttRg5x3l5468qaV2kufh+51yha1c53ep5dY4kTuZR35+3pAZxpfQerGJiQqg34ZNZ6uA=="], @@ -532,9 +538,9 @@ "@react-three/fiber": ["@react-three/fiber@9.5.0", "", { "dependencies": { "@babel/runtime": "^7.17.8", "@types/webxr": "*", "base64-js": "^1.5.1", "buffer": "^6.0.3", "its-fine": "^2.0.0", "react-use-measure": "^2.1.7", "scheduler": "^0.27.0", "suspend-react": "^0.1.3", "use-sync-external-store": "^1.4.0", "zustand": "^5.0.3" }, "peerDependencies": { "expo": ">=43.0", "expo-asset": ">=8.4", "expo-file-system": ">=11.0", "expo-gl": ">=11.0", "react": ">=19 <19.3", "react-dom": ">=19 <19.3", "react-native": ">=0.78", "three": ">=0.156" }, "optionalPeers": ["expo", "expo-asset", "expo-file-system", "expo-gl", "react-dom", "react-native"] }, "sha512-FiUzfYW4wB1+PpmsE47UM+mCads7j2+giRBltfwH7SNhah95rqJs3ltEs9V3pP8rYdS0QlNne+9Aj8dS/SiaIA=="], - "@react-three/uikit": ["@react-three/uikit@1.0.61", "", { "dependencies": { "@pmndrs/uikit": "^1.0.61", "@preact/signals-core": "^1.5.1", "suspend-react": "^0.1.3", "zustand": "^5.0.6" }, "peerDependencies": { "@react-three/fiber": ">=8", "react": ">=18" } }, "sha512-rZrgev90X0UwXQ9CvBVYvoiMDW2UrIlQEoBERDG7BO3pdvXGENuMG9hmodGBGe9c8IC0REO9u7xerMWPBz8zyQ=="], + "@react-three/uikit": ["@react-three/uikit@1.0.62", "", { "dependencies": { "@pmndrs/pointer-events": "^6.6.29", "@pmndrs/uikit": "^1.0.62", "@preact/signals-core": "^1.5.1", "suspend-react": "^0.1.3", "zustand": "^5.0.6" }, "peerDependencies": { "@react-three/fiber": ">=8", "react": ">=18" } }, "sha512-2kvZSsIp/S6aTkEl9RT1rDV+p2S4fmIoUZTvHIWwpiENorQfARC/FZEC4tFzIRKty8+7Pa8J7h8twvkF3vWZ4A=="], - "@react-three/uikit-lucide": ["@react-three/uikit-lucide@1.0.61", "", { "dependencies": { "@pmndrs/uikit-lucide": "^1.0.61", "@react-three/uikit": "^1.0.61" } }, "sha512-iZc71VDl90sL14JjL6DqX6a0vJ0HKotFRHU4plIfauMcyLxmjhgQ9jQHKXUNwyvJtJhzNm+We7DUz5hCPODntQ=="], + "@react-three/uikit-lucide": ["@react-three/uikit-lucide@1.0.62", "", { "dependencies": { "@pmndrs/uikit-lucide": "^1.0.62", "@react-three/uikit": "^1.0.62" } }, "sha512-/iC9yjUwEHNFRPvTIIXiMIvek39XA2QpFZjVsr3XOwF3jmZ3IFlEOtjxZz0OYpxVZQSMAIqolPE78Ndim7pSZg=="], "@repo/eslint-config": ["@repo/eslint-config@workspace:packages/eslint-config"], @@ -546,17 +552,17 @@ "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], - "@supabase/auth-js": ["@supabase/auth-js@2.95.3", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-vD2YoS8E2iKIX0F7EwXTmqhUpaNsmbU6X2R0/NdFcs02oEfnHyNP/3M716f3wVJ2E5XHGiTFXki6lRckhJ0Thg=="], + "@supabase/auth-js": ["@supabase/auth-js@2.98.0", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-GBH361T0peHU91AQNzOlIrjUZw9TZbB9YDRiyFgk/3Kvr3/Z1NWUZ2athWTfHhwNNi8IrW00foyFxQD9IO/Trg=="], - "@supabase/functions-js": ["@supabase/functions-js@2.95.3", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-uTuOAKzs9R/IovW1krO0ZbUHSJnsnyJElTXIRhjJTqymIVGcHzkAYnBCJqd7468Fs/Foz1BQ7Dv6DCl05lr7ig=="], + "@supabase/functions-js": ["@supabase/functions-js@2.98.0", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-N/xEyiNU5Org+d+PNCpv+TWniAXRzxIURxDYsS/m2I/sfAB/HcM9aM2Dmf5edj5oWb9GxID1OBaZ8NMmPXL+Lg=="], - "@supabase/postgrest-js": ["@supabase/postgrest-js@2.95.3", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-LTrRBqU1gOovxRm1vRXPItSMPBmEFqrfTqdPTRtzOILV4jPSueFz6pES5hpb4LRlkFwCPRmv3nQJ5N625V2Xrg=="], + "@supabase/postgrest-js": ["@supabase/postgrest-js@2.98.0", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-v6e9WeZuJijzUut8HyXu6gMqWFepIbaeaMIm1uKzei4yLg9bC9OtEW9O14LE/9ezqNbSAnSLO5GtOLFdm7Bpkg=="], - "@supabase/realtime-js": ["@supabase/realtime-js@2.95.3", "", { "dependencies": { "@types/phoenix": "^1.6.6", "@types/ws": "^8.18.1", "tslib": "2.8.1", "ws": "^8.18.2" } }, "sha512-D7EAtfU3w6BEUxDACjowWNJo/ZRo7sDIuhuOGKHIm9FHieGeoJV5R6GKTLtga/5l/6fDr2u+WcW/m8I9SYmaIw=="], + "@supabase/realtime-js": ["@supabase/realtime-js@2.98.0", "", { "dependencies": { "@types/phoenix": "^1.6.6", "@types/ws": "^8.18.1", "tslib": "2.8.1", "ws": "^8.18.2" } }, "sha512-rOWt28uGyFipWOSd+n0WVMr9kUXiWaa7J4hvyLCIHjRFqWm1z9CaaKAoYyfYMC1Exn3WT8WePCgiVhlAtWC2yw=="], - "@supabase/storage-js": ["@supabase/storage-js@2.95.3", "", { "dependencies": { "iceberg-js": "^0.8.1", "tslib": "2.8.1" } }, "sha512-4GxkJiXI3HHWjxpC3sDx1BVrV87O0hfX+wvJdqGv67KeCu+g44SPnII8y0LL/Wr677jB7tpjAxKdtVWf+xhc9A=="], + "@supabase/storage-js": ["@supabase/storage-js@2.98.0", "", { "dependencies": { "iceberg-js": "^0.8.1", "tslib": "2.8.1" } }, "sha512-tzr2mG+v7ILSAZSfZMSL9OPyIH4z1ikgQ8EcQTKfMRz4EwmlFt3UnJaGzSOxyvF5b+fc9So7qdSUWTqGgeLokQ=="], - "@supabase/supabase-js": ["@supabase/supabase-js@2.95.3", "", { "dependencies": { "@supabase/auth-js": "2.95.3", "@supabase/functions-js": "2.95.3", "@supabase/postgrest-js": "2.95.3", "@supabase/realtime-js": "2.95.3", "@supabase/storage-js": "2.95.3" } }, "sha512-Fukw1cUTQ6xdLiHDJhKKPu6svEPaCEDvThqCne3OaQyZvuq2qjhJAd91kJu3PXLG18aooCgYBaB6qQz35hhABg=="], + "@supabase/supabase-js": ["@supabase/supabase-js@2.98.0", "", { "dependencies": { "@supabase/auth-js": "2.98.0", "@supabase/functions-js": "2.98.0", "@supabase/postgrest-js": "2.98.0", "@supabase/realtime-js": "2.98.0", "@supabase/storage-js": "2.98.0" } }, "sha512-Ohc97CtInLwZyiSASz7tT9/Abm/vqnIbO9REp+PivVUII8UZsuI3bngRQnYgJdFoOIwvaEII1fX1qy8x0CyNiw=="], "@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="], @@ -564,35 +570,35 @@ "@t3-oss/env-nextjs": ["@t3-oss/env-nextjs@0.13.10", "", { "dependencies": { "@t3-oss/env-core": "0.13.10" }, "peerDependencies": { "arktype": "^2.1.0", "typescript": ">=5.0.0", "valibot": "^1.0.0-beta.7 || ^1.0.0", "zod": "^3.24.0 || ^4.0.0" }, "optionalPeers": ["arktype", "typescript", "valibot", "zod"] }, "sha512-JfSA2WXOnvcc/uMdp31paMsfbYhhdvLLRxlwvrnlPE9bwM/n0Z+Qb9xRv48nPpvfMhOrkrTYw1I5Yc06WIKBJQ=="], - "@tailwindcss/node": ["@tailwindcss/node@4.1.18", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.1.18" } }, "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ=="], + "@tailwindcss/node": ["@tailwindcss/node@4.2.1", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.19.0", "jiti": "^2.6.1", "lightningcss": "1.31.1", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.2.1" } }, "sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg=="], - "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.18", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.18", "@tailwindcss/oxide-darwin-arm64": "4.1.18", "@tailwindcss/oxide-darwin-x64": "4.1.18", "@tailwindcss/oxide-freebsd-x64": "4.1.18", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", "@tailwindcss/oxide-linux-x64-musl": "4.1.18", "@tailwindcss/oxide-wasm32-wasi": "4.1.18", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" } }, "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A=="], + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.2.1", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.2.1", "@tailwindcss/oxide-darwin-arm64": "4.2.1", "@tailwindcss/oxide-darwin-x64": "4.2.1", "@tailwindcss/oxide-freebsd-x64": "4.2.1", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.1", "@tailwindcss/oxide-linux-arm64-gnu": "4.2.1", "@tailwindcss/oxide-linux-arm64-musl": "4.2.1", "@tailwindcss/oxide-linux-x64-gnu": "4.2.1", "@tailwindcss/oxide-linux-x64-musl": "4.2.1", "@tailwindcss/oxide-wasm32-wasi": "4.2.1", "@tailwindcss/oxide-win32-arm64-msvc": "4.2.1", "@tailwindcss/oxide-win32-x64-msvc": "4.2.1" } }, "sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw=="], - "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.18", "", { "os": "android", "cpu": "arm64" }, "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q=="], + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.2.1", "", { "os": "android", "cpu": "arm64" }, "sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg=="], - "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.18", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A=="], + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.2.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw=="], - "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.18", "", { "os": "darwin", "cpu": "x64" }, "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw=="], + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.2.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw=="], - "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.18", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA=="], + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.2.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA=="], - "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18", "", { "os": "linux", "cpu": "arm" }, "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA=="], + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1", "", { "os": "linux", "cpu": "arm" }, "sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw=="], - "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw=="], + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.2.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ=="], - "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg=="], + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.2.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ=="], - "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.18", "", { "os": "linux", "cpu": "x64" }, "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g=="], + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.2.1", "", { "os": "linux", "cpu": "x64" }, "sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g=="], - "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.18", "", { "os": "linux", "cpu": "x64" }, "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ=="], + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.2.1", "", { "os": "linux", "cpu": "x64" }, "sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g=="], - "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.18", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.1.0", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA=="], + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.2.1", "", { "dependencies": { "@emnapi/core": "^1.8.1", "@emnapi/runtime": "^1.8.1", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.1.1", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q=="], - "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.18", "", { "os": "win32", "cpu": "arm64" }, "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA=="], + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.2.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA=="], - "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.18", "", { "os": "win32", "cpu": "x64" }, "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q=="], + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.2.1", "", { "os": "win32", "cpu": "x64" }, "sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ=="], - "@tailwindcss/postcss": ["@tailwindcss/postcss@4.1.18", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.1.18", "@tailwindcss/oxide": "4.1.18", "postcss": "^8.4.41", "tailwindcss": "4.1.18" } }, "sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g=="], + "@tailwindcss/postcss": ["@tailwindcss/postcss@4.2.1", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.2.1", "@tailwindcss/oxide": "4.2.1", "postcss": "^8.5.6", "tailwindcss": "4.2.1" } }, "sha512-OEwGIBnXnj7zJeonOh6ZG9woofIjGrd2BORfvE5p9USYKDCZoQmfqLcfNiRWoJlRWLdNPn2IgVZuWAOM4iTYMw=="], "@tinyhttp/accepts": ["@tinyhttp/accepts@1.3.0", "", { "dependencies": { "es-mime-types": "^0.0.16", "negotiator": "^0.6.2" } }, "sha512-YaJ4EMgVUI6JHzWO14lr6vn/BLJEoFN4Sqd20l0/oBcLLENkP8gnPtX1jB7OhIu0AE40VCweAqvSP+0/pgzB1g=="], @@ -638,7 +644,7 @@ "@types/md5": ["@types/md5@2.3.6", "", {}, "sha512-WD69gNXtRBnpknfZcb4TRQ0XJQbUPZcai/Qdhmka3sxUR3Et8NrXoeAoknG/LghYHTf4ve795rInVYHBTQdNVA=="], - "@types/node": ["@types/node@22.19.7", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw=="], + "@types/node": ["@types/node@22.19.12", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-0QEp0aPJYSyf6RrTjDB7HlKgNMTY+V2C7ESTaVt6G9gQ0rPLzTGz7OF2NXTLR5vcy7HJEtIUsyWLsfX0kTqJBA=="], "@types/offscreencanvas": ["@types/offscreencanvas@2019.7.3", "", {}, "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A=="], @@ -740,7 +746,7 @@ "baseline-browser-mapping": ["baseline-browser-mapping@2.9.14", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg=="], - "better-auth": ["better-auth@1.4.18", "", { "dependencies": { "@better-auth/core": "1.4.18", "@better-auth/telemetry": "1.4.18", "@better-auth/utils": "0.3.0", "@better-fetch/fetch": "1.1.21", "@noble/ciphers": "^2.0.0", "@noble/hashes": "^2.0.0", "better-call": "1.1.8", "defu": "^6.1.4", "jose": "^6.1.0", "kysely": "^0.28.5", "nanostores": "^1.0.1", "zod": "^4.3.5" }, "peerDependencies": { "@lynx-js/react": "*", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "@sveltejs/kit": "^2.0.0", "@tanstack/react-start": "^1.0.0", "@tanstack/solid-start": "^1.0.0", "better-sqlite3": "^12.0.0", "drizzle-kit": ">=0.31.4", "drizzle-orm": ">=0.41.0", "mongodb": "^6.0.0 || ^7.0.0", "mysql2": "^3.0.0", "next": "^14.0.0 || ^15.0.0 || ^16.0.0", "pg": "^8.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "solid-js": "^1.0.0", "svelte": "^4.0.0 || ^5.0.0", "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0", "vue": "^3.0.0" }, "optionalPeers": ["@lynx-js/react", "@prisma/client", "@sveltejs/kit", "@tanstack/react-start", "@tanstack/solid-start", "better-sqlite3", "drizzle-kit", "drizzle-orm", "mongodb", "mysql2", "next", "pg", "prisma", "react", "react-dom", "solid-js", "svelte", "vitest", "vue"] }, "sha512-bnyifLWBPcYVltH3RhS7CM62MoelEqC6Q+GnZwfiDWNfepXoQZBjEvn4urcERC7NTKgKq5zNBM8rvPvRBa6xcg=="], + "better-auth": ["better-auth@1.4.19", "", { "dependencies": { "@better-auth/core": "1.4.19", "@better-auth/telemetry": "1.4.19", "@better-auth/utils": "0.3.0", "@better-fetch/fetch": "1.1.21", "@noble/ciphers": "^2.0.0", "@noble/hashes": "^2.0.0", "better-call": "1.1.8", "defu": "^6.1.4", "jose": "^6.1.0", "kysely": "^0.28.5", "nanostores": "^1.0.1", "zod": "^4.3.5" }, "peerDependencies": { "@lynx-js/react": "*", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "@sveltejs/kit": "^2.0.0", "@tanstack/react-start": "^1.0.0", "@tanstack/solid-start": "^1.0.0", "better-sqlite3": "^12.0.0", "drizzle-kit": ">=0.31.4", "drizzle-orm": ">=0.41.0", "mongodb": "^6.0.0 || ^7.0.0", "mysql2": "^3.0.0", "next": "^14.0.0 || ^15.0.0 || ^16.0.0", "pg": "^8.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "solid-js": "^1.0.0", "svelte": "^4.0.0 || ^5.0.0", "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0", "vue": "^3.0.0" }, "optionalPeers": ["@lynx-js/react", "@prisma/client", "@sveltejs/kit", "@tanstack/react-start", "@tanstack/solid-start", "better-sqlite3", "drizzle-kit", "drizzle-orm", "mongodb", "mysql2", "next", "pg", "prisma", "react", "react-dom", "solid-js", "svelte", "vitest", "vue"] }, "sha512-3RlZJcA0+NH25wYD85vpIGwW9oSTuEmLIaGbT8zg41w/Pa2hVWHKedjoUHHJtnzkBXzDb+CShkLnSw7IThDdqQ=="], "better-call": ["better-call@1.1.8", "", { "dependencies": { "@better-auth/utils": "^0.3.0", "@better-fetch/fetch": "^1.1.4", "rou3": "^0.7.10", "set-cookie-parser": "^2.7.1" }, "peerDependencies": { "zod": "^4.0.0" }, "optionalPeers": ["zod"] }, "sha512-XMQ2rs6FNXasGNfMjzbyroSwKwYbZ/T3IxruSS6U2MJRsSYh3wYtG3o6H00ZlKZ/C/UPOAD97tqgQJNsxyeTXw=="], @@ -850,15 +856,15 @@ "draco3d": ["draco3d@1.5.7", "", {}, "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ=="], - "drizzle-kit": ["drizzle-kit@0.30.6", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.19.7", "esbuild-register": "^3.5.0", "gel": "^2.0.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-U4wWit0fyZuGuP7iNmRleQyK2V8wCuv57vf5l3MnG4z4fzNTjY/U13M8owyQ5RavqvqxBifWORaR3wIUzlN64g=="], + "drizzle-kit": ["drizzle-kit@0.31.9", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-GViD3IgsXn7trFyBUUHyTFBpH/FsHTxYJ66qdbVggxef4UBPHRYxQaRzYLTuekYnk9i5FIEL9pbBIwMqX/Uwrg=="], - "drizzle-orm": ["drizzle-orm@0.39.3", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-EZ8ZpYvDIvKU9C56JYLOmUskazhad+uXZCTCRN4OnRMsL+xAJ05dv1eCpAG5xzhsm1hqiuC5kAZUCS924u2DTw=="], + "drizzle-orm": ["drizzle-orm@0.45.1", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-Te0FOdKIistGNPMq2jscdqngBRfBpC8uMFVwqjf6gtTVJHIQ/dosgV/CLBU2N4ZJBsXL5savCba9b0YJskKdcA=="], - "drizzle-zod": ["drizzle-zod@0.5.1", "", { "peerDependencies": { "drizzle-orm": ">=0.23.13", "zod": "*" } }, "sha512-C/8bvzUH/zSnVfwdSibOgFjLhtDtbKYmkbPbUCq46QZyZCH6kODIMSOgZ8R7rVjoI+tCj3k06MRJMDqsIeoS4A=="], + "drizzle-zod": ["drizzle-zod@0.8.3", "", { "peerDependencies": { "drizzle-orm": ">=0.36.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-66yVOuvGhKJnTdiqj1/Xaaz9/qzOdRJADpDa68enqS6g3t0kpNkwNYjUuaeXgZfO/UWuIM9HIhSlJ6C5ZraMww=="], "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], - "enhanced-resolve": ["enhanced-resolve@5.18.4", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q=="], + "enhanced-resolve": ["enhanced-resolve@5.19.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" } }, "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg=="], "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], @@ -888,7 +894,7 @@ "es-vary": ["es-vary@0.0.8", "", {}, "sha512-fiERjQiCHrXUAToNRT/sh7MtXnfei9n7cF9oVQRUEp9L5BGXsTKSPaXq8L+4v0c/ezfvuTWd/f0JSl5IBRUvSg=="], - "esbuild": ["esbuild@0.19.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.19.12", "@esbuild/android-arm": "0.19.12", "@esbuild/android-arm64": "0.19.12", "@esbuild/android-x64": "0.19.12", "@esbuild/darwin-arm64": "0.19.12", "@esbuild/darwin-x64": "0.19.12", "@esbuild/freebsd-arm64": "0.19.12", "@esbuild/freebsd-x64": "0.19.12", "@esbuild/linux-arm": "0.19.12", "@esbuild/linux-arm64": "0.19.12", "@esbuild/linux-ia32": "0.19.12", "@esbuild/linux-loong64": "0.19.12", "@esbuild/linux-mips64el": "0.19.12", "@esbuild/linux-ppc64": "0.19.12", "@esbuild/linux-riscv64": "0.19.12", "@esbuild/linux-s390x": "0.19.12", "@esbuild/linux-x64": "0.19.12", "@esbuild/netbsd-x64": "0.19.12", "@esbuild/openbsd-x64": "0.19.12", "@esbuild/sunos-x64": "0.19.12", "@esbuild/win32-arm64": "0.19.12", "@esbuild/win32-ia32": "0.19.12", "@esbuild/win32-x64": "0.19.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg=="], + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], "esbuild-register": ["esbuild-register@3.6.0", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "esbuild": ">=0.12 <1" } }, "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg=="], @@ -962,7 +968,7 @@ "formdata-polyfill": ["formdata-polyfill@4.0.10", "", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="], - "framer-motion": ["framer-motion@12.26.2", "", { "dependencies": { "motion-dom": "^12.26.2", "motion-utils": "^12.24.10", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-lflOQEdjquUi9sCg5Y1LrsZDlsjrHw7m0T9Yedvnk7Bnhqfkc89/Uha10J3CFhkL+TCZVCRw9eUGyM/lyYhXQA=="], + "framer-motion": ["framer-motion@12.34.3", "", { "dependencies": { "motion-dom": "^12.34.3", "motion-utils": "^12.29.2", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-v81ecyZKYO/DfpTwHivqkxSUBzvceOpoI+wLfgCgoUIKxlFKEXdg0oR9imxwXumT4SFy8vRk9xzJ5l3/Du/55Q=="], "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], @@ -1150,29 +1156,29 @@ "lie": ["lie@3.3.0", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="], - "lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="], + "lightningcss": ["lightningcss@1.31.1", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.31.1", "lightningcss-darwin-arm64": "1.31.1", "lightningcss-darwin-x64": "1.31.1", "lightningcss-freebsd-x64": "1.31.1", "lightningcss-linux-arm-gnueabihf": "1.31.1", "lightningcss-linux-arm64-gnu": "1.31.1", "lightningcss-linux-arm64-musl": "1.31.1", "lightningcss-linux-x64-gnu": "1.31.1", "lightningcss-linux-x64-musl": "1.31.1", "lightningcss-win32-arm64-msvc": "1.31.1", "lightningcss-win32-x64-msvc": "1.31.1" } }, "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ=="], - "lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="], + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.31.1", "", { "os": "android", "cpu": "arm64" }, "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg=="], - "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="], + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.31.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg=="], - "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="], + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.31.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA=="], - "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="], + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.31.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A=="], - "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="], + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.31.1", "", { "os": "linux", "cpu": "arm" }, "sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g=="], - "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="], + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.31.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg=="], - "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="], + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.31.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg=="], - "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="], + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.31.1", "", { "os": "linux", "cpu": "x64" }, "sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA=="], - "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="], + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.31.1", "", { "os": "linux", "cpu": "x64" }, "sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA=="], - "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="], + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.31.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w=="], - "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="], + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.31.1", "", { "os": "win32", "cpu": "x64" }, "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw=="], "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], @@ -1214,11 +1220,11 @@ "mitt": ["mitt@3.0.1", "", {}, "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="], - "motion": ["motion@12.26.2", "", { "dependencies": { "framer-motion": "^12.26.2", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-2Q6g0zK1gUJKhGT742DAe42LgietcdiJ3L3OcYAHCQaC1UkLnn6aC8S/obe4CxYTLAgid2asS1QdQ/blYfo5dw=="], + "motion": ["motion@12.34.3", "", { "dependencies": { "framer-motion": "^12.34.3", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-xZIkBGO7v/Uvm+EyaqYd+9IpXu0sZqLywVlGdCFrrMiaO9JI4Kx51mO9KlHSWwll+gZUVY5OJsWgYI5FywJ/tw=="], - "motion-dom": ["motion-dom@12.26.2", "", { "dependencies": { "motion-utils": "^12.24.10" } }, "sha512-KLMT1BroY8oKNeliA3JMNJ+nbCIsTKg6hJpDb4jtRAJ7nCKnnpg/LTq/NGqG90Limitz3kdAnAVXecdFVGlWTw=="], + "motion-dom": ["motion-dom@12.34.3", "", { "dependencies": { "motion-utils": "^12.29.2" } }, "sha512-sYgFe+pR9aIM7o4fhs2aXtOI+oqlUd33N9Yoxcgo1Fv7M20sRkHtCmzE/VRNIcq7uNJ+qio+Xubt1FXH3pQ+eQ=="], - "motion-utils": ["motion-utils@12.24.10", "", {}, "sha512-x5TFgkCIP4pPsRLpKoI86jv/q8t8FQOiM/0E8QKBzfMozWHfkKap2gA1hOki+B5g3IsBNpxbUnfOum1+dgvYww=="], + "motion-utils": ["motion-utils@12.29.2", "", {}, "sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], @@ -1230,7 +1236,7 @@ "negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], - "next": ["next@16.1.0", "", { "dependencies": { "@next/env": "16.1.0", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.1.0", "@next/swc-darwin-x64": "16.1.0", "@next/swc-linux-arm64-gnu": "16.1.0", "@next/swc-linux-arm64-musl": "16.1.0", "@next/swc-linux-x64-gnu": "16.1.0", "@next/swc-linux-x64-musl": "16.1.0", "@next/swc-win32-arm64-msvc": "16.1.0", "@next/swc-win32-x64-msvc": "16.1.0", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-Y+KbmDbefYtHDDQKLNrmzE/YYzG2msqo2VXhzh5yrJ54tx/6TmGdkR5+kP9ma7i7LwZpZMfoY3m/AoPPPKxtVw=="], + "next": ["next@16.1.6", "", { "dependencies": { "@next/env": "16.1.6", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.1.6", "@next/swc-darwin-x64": "16.1.6", "@next/swc-linux-arm64-gnu": "16.1.6", "@next/swc-linux-arm64-musl": "16.1.6", "@next/swc-linux-x64-gnu": "16.1.6", "@next/swc-linux-x64-musl": "16.1.6", "@next/swc-win32-arm64-msvc": "16.1.6", "@next/swc-win32-x64-msvc": "16.1.6", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw=="], "node-domexception": ["node-domexception@1.0.0", "", {}, "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="], @@ -1342,9 +1348,9 @@ "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], - "react": ["react@19.2.3", "", {}, "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA=="], + "react": ["react@19.2.4", "", {}, "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ=="], - "react-dom": ["react-dom@19.2.3", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.3" } }, "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg=="], + "react-dom": ["react-dom@19.2.4", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.4" } }, "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ=="], "react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], @@ -1458,7 +1464,7 @@ "styled-jsx": ["styled-jsx@5.1.6", "", { "dependencies": { "client-only": "0.0.1" }, "peerDependencies": { "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" } }, "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA=="], - "supabase": ["supabase@2.75.3", "", { "dependencies": { "bin-links": "^6.0.0", "https-proxy-agent": "^7.0.2", "node-fetch": "^3.3.2", "tar": "7.5.7" }, "bin": { "supabase": "bin/supabase" } }, "sha512-j2uHJfK8TE7SxL6cd+kQixwkl8H5ASBkQfOEVjf3d3XS1Wixy4UO8WudDYNVriu1KuKzsNnkkSC/jTyHNXNrcQ=="], + "supabase": ["supabase@2.76.15", "", { "dependencies": { "bin-links": "^6.0.0", "https-proxy-agent": "^7.0.2", "node-fetch": "^3.3.2", "tar": "7.5.9" }, "bin": { "supabase": "bin/supabase" } }, "sha512-m69o1XPAzZaIWfQiEeT+KY/Ci3OSA663RyoH9xECbXSxhr7dsipLCpCqT1E4MCob0mMhHh/7A+Eltx4y1qSwiQ=="], "supercluster": ["supercluster@8.0.1", "", { "dependencies": { "kdbush": "^4.0.2" } }, "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ=="], @@ -1468,17 +1474,17 @@ "suspend-react": ["suspend-react@0.1.3", "", { "peerDependencies": { "react": ">=17.0" } }, "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ=="], - "tailwind-merge": ["tailwind-merge@3.4.0", "", {}, "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g=="], + "tailwind-merge": ["tailwind-merge@3.5.0", "", {}, "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A=="], - "tailwindcss": ["tailwindcss@4.1.18", "", {}, "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw=="], + "tailwindcss": ["tailwindcss@4.2.1", "", {}, "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw=="], "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], - "tar": ["tar@7.5.7", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ=="], + "tar": ["tar@7.5.9", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg=="], "three": ["three@0.183.1", "", {}, "sha512-Psv6bbd3d/M/01MT2zZ+VmD0Vj2dbWTNhfe4CuSg7w5TuW96M3NOyCVuh9SZQ05CpGmD7NEcJhZw4GVjhCYxfQ=="], - "three-bvh-csg": ["three-bvh-csg@0.0.17", "", { "peerDependencies": { "three": ">=0.151.0", "three-mesh-bvh": ">=0.6.6" } }, "sha512-iEkHDF8GRfGM6593Cuw8SnF1vfENCp46gIAtRzuL4nGXGWPcR1sbTBwM9ptDONb5twqlZp5WkAKya5aBKe2qcA=="], + "three-bvh-csg": ["three-bvh-csg@0.0.18", "", { "peerDependencies": { "three": ">=0.179.0", "three-mesh-bvh": ">=0.9.7" } }, "sha512-M3GCZMmGFgASGuDf+YMamM83nVlD/vdwzVHcYbFxgW+g1S7/nKPiuY00YVHOMbjmJPh8mLevGZL65ItHUuGt2w=="], "three-mesh-bvh": ["three-mesh-bvh@0.9.8", "", { "peerDependencies": { "three": ">= 0.159.0" } }, "sha512-YphYvdXEZSXdz6iNdWJo1RB6qvSCRyiXPEVSvNU6xVWbLDOdSrfEIsJOpgFOnefdmVEvZ6M+sY0cjh9gl7MvdA=="], @@ -1502,19 +1508,19 @@ "tunnel-rat": ["tunnel-rat@0.1.2", "", { "dependencies": { "zustand": "^4.3.2" } }, "sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ=="], - "turbo": ["turbo@2.8.10", "", { "optionalDependencies": { "turbo-darwin-64": "2.8.10", "turbo-darwin-arm64": "2.8.10", "turbo-linux-64": "2.8.10", "turbo-linux-arm64": "2.8.10", "turbo-windows-64": "2.8.10", "turbo-windows-arm64": "2.8.10" }, "bin": { "turbo": "bin/turbo" } }, "sha512-OxbzDES66+x7nnKGg2MwBA1ypVsZoDTLHpeaP4giyiHSixbsiTaMyeJqbEyvBdp5Cm28fc+8GG6RdQtic0ijwQ=="], + "turbo": ["turbo@2.8.11", "", { "optionalDependencies": { "turbo-darwin-64": "2.8.11", "turbo-darwin-arm64": "2.8.11", "turbo-linux-64": "2.8.11", "turbo-linux-arm64": "2.8.11", "turbo-windows-64": "2.8.11", "turbo-windows-arm64": "2.8.11" }, "bin": { "turbo": "bin/turbo" } }, "sha512-H+rwSHHPLoyPOSoHdmI1zY0zy0GGj1Dmr7SeJW+nZiWLz2nex8EJ+fkdVabxXFMNEux+aywI4Sae8EqhmnOv4A=="], - "turbo-darwin-64": ["turbo-darwin-64@2.8.10", "", { "os": "darwin", "cpu": "x64" }, "sha512-A03fXh+B7S8mL3PbdhTd+0UsaGrhfyPkODvzBDpKRY7bbeac4MDFpJ7I+Slf2oSkCEeSvHKR7Z4U71uKRUfX7g=="], + "turbo-darwin-64": ["turbo-darwin-64@2.8.11", "", { "os": "darwin", "cpu": "x64" }, "sha512-XKaCWaz4OCt77oYYvGCIRpvYD4c/aNaKjRkUpv+e8rN3RZb+5Xsyew4yRO+gaHdMIUhQznXNXfHlhs+/p7lIhA=="], - "turbo-darwin-arm64": ["turbo-darwin-arm64@2.8.10", "", { "os": "darwin", "cpu": "arm64" }, "sha512-sidzowgWL3s5xCHLeqwC9M3s9M0i16W1nuQF3Mc7fPHpZ+YPohvcbVFBB2uoRRHYZg6yBnwD4gyUHKTeXfwtXA=="], + "turbo-darwin-arm64": ["turbo-darwin-arm64@2.8.11", "", { "os": "darwin", "cpu": "arm64" }, "sha512-VvynLHGUNvQ9k7GZjRPSsRcK4VkioTfFb7O7liAk4nHKjEcMdls7GqxzjVWgJiKz3hWmQGaP9hRa9UUnhVWCxA=="], - "turbo-linux-64": ["turbo-linux-64@2.8.10", "", { "os": "linux", "cpu": "x64" }, "sha512-YK9vcpL3TVtqonB021XwgaQhY9hJJbKKUhLv16osxV0HkcQASQWUqR56yMge7puh6nxU67rQlTq1b7ksR1T3KA=="], + "turbo-linux-64": ["turbo-linux-64@2.8.11", "", { "os": "linux", "cpu": "x64" }, "sha512-cbSn37dcm+EmkQ7DD0euy7xV7o2el4GAOr1XujvkAyKjjNvQ+6QIUeDgQcwAx3D17zPpDvfDMJY2dLQadWnkmQ=="], - "turbo-linux-arm64": ["turbo-linux-arm64@2.8.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-3+j2tL0sG95iBJTm+6J8/45JsETQABPqtFyYjVjBbi6eVGdtNTiBmHNKrbvXRlQ3ZbUG75bKLaSSDHSEEN+btQ=="], + "turbo-linux-arm64": ["turbo-linux-arm64@2.8.11", "", { "os": "linux", "cpu": "arm64" }, "sha512-+trymp2s2aBrhS04l6qFxcExzZ8ffndevuUB9c5RCeqsVpZeiWuGQlWNm5XjOmzoMayxRARZ5ma7yiWbGMiLqQ=="], - "turbo-windows-64": ["turbo-windows-64@2.8.10", "", { "os": "win32", "cpu": "x64" }, "sha512-hdeF5qmVY/NFgiucf8FW0CWJWtyT2QPm5mIsX0W1DXAVzqKVXGq+Zf+dg4EUngAFKjDzoBeN6ec2Fhajwfztkw=="], + "turbo-windows-64": ["turbo-windows-64@2.8.11", "", { "os": "win32", "cpu": "x64" }, "sha512-3kJjFSM4yw1n9Uzmi+XkAUgCae19l/bH6RJ442xo7mnZm0tpOjo33F+FYHoSVpIWVMd0HG0LDccyafPSdylQbA=="], - "turbo-windows-arm64": ["turbo-windows-arm64@2.8.10", "", { "os": "win32", "cpu": "arm64" }, "sha512-QGdr/Q8LWmj+ITMkSvfiz2glf0d7JG0oXVzGL3jxkGqiBI1zXFj20oqVY0qWi+112LO9SVrYdpHS0E/oGFrMbQ=="], + "turbo-windows-arm64": ["turbo-windows-arm64@2.8.11", "", { "os": "win32", "cpu": "arm64" }, "sha512-JOM4uF2vuLsJUvibdR6X9QqdZr6BhC6Nhlrw4LKFPsXZZI/9HHLoqAiYRpE4MuzIwldCH/jVySnWXrI1SKto0g=="], "tw-animate-css": ["tw-animate-css@1.4.0", "", {}, "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ=="], @@ -1528,11 +1534,11 @@ "typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], - "typescript": ["typescript@5.9.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="], + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], "typescript-eslint": ["typescript-eslint@8.53.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.53.0", "@typescript-eslint/parser": "8.53.0", "@typescript-eslint/typescript-estree": "8.53.0", "@typescript-eslint/utils": "8.53.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw=="], - "ultracite": ["ultracite@7.2.3", "", { "dependencies": { "@clack/prompts": "^1.0.1", "commander": "^14.0.3", "deepmerge": "^4.3.1", "glob": "^13.0.3", "jsonc-parser": "^3.3.1", "nypm": "^0.6.5" }, "peerDependencies": { "oxlint": "^1.0.0" }, "optionalPeers": ["oxlint"], "bin": { "ultracite": "dist/index.js" } }, "sha512-WKNS2sKAZe4BHu+JGbZebXvy/A1QagDaBnndrK/zwOJAze/mQ8jeHfdG2bPlv3qcJ5fdS3w2Kd7c/eIcH78HvA=="], + "ultracite": ["ultracite@7.2.4", "", { "dependencies": { "@clack/prompts": "^1.0.1", "commander": "^14.0.3", "deepmerge": "^4.3.1", "glob": "^13.0.3", "jsonc-parser": "^3.3.1", "nypm": "^0.6.5" }, "peerDependencies": { "oxlint": "^1.0.0" }, "optionalPeers": ["oxlint"], "bin": { "ultracite": "dist/index.js" } }, "sha512-3b2g2pwZMDSd+PBK8pxYCjEoYaqVSgXD22HS22BxR8GfbmRXJ3VpNu5Z5lNywIxZXsJleWdpGPHibOPYr/xmKg=="], "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], @@ -1586,8 +1592,6 @@ "zustand": ["zustand@5.0.11", "", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg=="], - "@better-auth/core/zod": ["zod@4.3.5", "", {}, "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g=="], - "@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="], "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], @@ -1618,8 +1622,6 @@ "@react-three/fiber/zustand": ["zustand@5.0.10", "", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-U1AiltS1O9hSy3rul+Ub82ut2fqIAefiSuwECWt6jlMVUGejvf+5omLcRBSzqbRagSM3hQZbtzdeRc6QVScXTg=="], - "@react-three/uikit/zustand": ["zustand@5.0.10", "", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-U1AiltS1O9hSy3rul+Ub82ut2fqIAefiSuwECWt6jlMVUGejvf+5omLcRBSzqbRagSM3hQZbtzdeRc6QVScXTg=="], - "@repo/ui/@types/react": ["@types/react@19.2.2", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.8.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg=="], @@ -1634,6 +1636,8 @@ "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@types/ws/@types/node": ["@types/node@22.19.7", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw=="], + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], @@ -1654,8 +1658,6 @@ "@vercel/toolbar/fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], - "better-auth/zod": ["zod@4.3.5", "", {}, "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g=="], - "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], "cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], diff --git a/package.json b/package.json index 4f177702..e176605a 100644 --- a/package.json +++ b/package.json @@ -27,20 +27,14 @@ "release:major": "gh workflow run release.yml -f package=both -f bump=major" }, "dependencies": { - "@react-three/drei": "^10.7.7", - "@react-three/fiber": "^9.5.0", - "portless": "^0.4.2", - "three": "^0.183.0", - "three-bvh-csg": "^0.0.17", - "three-mesh-bvh": "^0.9.8", - "zustand": "^5.0.11" + "portless": "^0.4.2" }, "devDependencies": { - "@biomejs/biome": "^2.4.2", - "supabase": "2.75.3", - "turbo": "^2.8.10", - "typescript": "5.9.2", - "ultracite": "^7.2.3" + "@biomejs/biome": "^2.4.4", + "supabase": "2.76.15", + "turbo": "^2.8.11", + "typescript": "5.9.3", + "ultracite": "^7.2.4" }, "engines": { "node": ">=18" diff --git a/packages/auth/package.json b/packages/auth/package.json index c354edfc..f1e951f6 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -19,6 +19,6 @@ }, "devDependencies": { "@repo/typescript-config": "*", - "typescript": "5.9.2" + "typescript": "5.9.3" } } diff --git a/packages/core/package.json b/packages/core/package.json index 85d35be2..b877f284 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -32,7 +32,7 @@ "idb-keyval": "^6.2.2", "mitt": "^3.0.1", "nanoid": "^5.1.6", - "three-bvh-csg": "^0.0.17", + "three-bvh-csg": "^0.0.18", "three-mesh-bvh": "^0.9.8", "zod": "^4.3.5", "zundo": "^2.3.0", @@ -41,7 +41,7 @@ "devDependencies": { "@repo/typescript-config": "*", "@types/react": "^19.2.2", - "typescript": "5.9.2", + "typescript": "5.9.3", "@types/three": "^0.183.0" }, "keywords": [ diff --git a/packages/db/package.json b/packages/db/package.json index 92af857d..612ab320 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -20,14 +20,14 @@ }, "dependencies": { "@supabase/supabase-js": "^2.95.3", - "drizzle-orm": "^0.39.0", - "drizzle-zod": "^0.5.1", + "drizzle-orm": "^0.45.1", + "drizzle-zod": "^0.8.3", "nanoid": "^5.0.9", "postgres": "^3.4.5" }, "devDependencies": { "@repo/typescript-config": "*", - "drizzle-kit": "^0.30.0", - "typescript": "5.9.2" + "drizzle-kit": "^0.31.9", + "typescript": "5.9.3" } } diff --git a/packages/ui/package.json b/packages/ui/package.json index 715430ca..638b47fe 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -17,7 +17,7 @@ "@types/react": "19.2.2", "@types/react-dom": "19.2.2", "eslint": "^9.39.1", - "typescript": "5.9.2" + "typescript": "5.9.3" }, "dependencies": { "react": "^19.2.0", diff --git a/packages/viewer/package.json b/packages/viewer/package.json index 80ae189b..508a27d2 100644 --- a/packages/viewer/package.json +++ b/packages/viewer/package.json @@ -34,7 +34,7 @@ "devDependencies": { "@repo/typescript-config": "*", "@types/react": "^19.2.2", - "typescript": "5.9.2", + "typescript": "5.9.3", "@types/three": "^0.183.0" }, "keywords": [ diff --git a/packages/viewer/src/components/viewer/selection-manager.tsx b/packages/viewer/src/components/viewer/selection-manager.tsx index 5fa67574..adfabdae 100644 --- a/packages/viewer/src/components/viewer/selection-manager.tsx +++ b/packages/viewer/src/components/viewer/selection-manager.tsx @@ -75,7 +75,7 @@ const pointInPolygonWithTolerance = ( interface SelectionStrategy { types: SelectableNodeType[] - handleClick: (node: AnyNode) => void + handleClick: (node: AnyNode, nativeEvent?: MouseEvent) => void handleDeselect: () => void isValid: (node: AnyNode) => boolean } @@ -159,6 +159,21 @@ const isNodeInZone = (node: AnyNode, levelId: string, zoneId: string): boolean = const getStrategy = (): SelectionStrategy | null => { const { buildingId, levelId, zoneId } = useViewer.getState().selection + const computeNextIds = (node: AnyNode, selectedIds: string[], event?: any): string[] => { + const isMeta = event?.metaKey || event?.nativeEvent?.metaKey; + const isCtrl = event?.ctrlKey || event?.nativeEvent?.ctrlKey; + + if (isMeta || isCtrl) { + if (selectedIds.includes(node.id)) { + return selectedIds.filter((id) => id !== node.id); + } else { + return [...selectedIds, node.id]; + } + } + + return [node.id]; + }; + // No building selected -> can select buildings if (!buildingId) { return { @@ -204,16 +219,9 @@ const getStrategy = (): SelectionStrategy | null => { // Zone selected -> can select/hover contents (walls, items, slabs, ceilings, roofs, windows, doors) return { types: ['wall', 'item', 'slab', 'ceiling', 'roof', 'window', 'door'], - handleClick: (node) => { + handleClick: (node, nativeEvent) => { const { selectedIds } = useViewer.getState().selection - // Toggle selection - if already selected, deselect; otherwise select - if (selectedIds.includes(node.id)) { - useViewer - .getState() - .setSelection({ selectedIds: selectedIds.filter((id) => id !== node.id) }) - } else { - useViewer.getState().setSelection({ selectedIds: [node.id] }) - } + useViewer.getState().setSelection({ selectedIds: computeNextIds(node, selectedIds, nativeEvent) }) }, handleDeselect: () => { const { selectedIds } = useViewer.getState().selection @@ -262,7 +270,7 @@ export const SelectionManager = () => { event.stopPropagation() clickHandledRef.current = true - strategy.handleClick(event.node) + strategy.handleClick(event.node, event.nativeEvent as unknown as MouseEvent) // Clear hover immediately after clicking on building/level/zone useViewer.setState({ hoveredId: null }) } diff --git a/packages/viewer/src/hooks/use-node-events.ts b/packages/viewer/src/hooks/use-node-events.ts index 77f9650c..f619707b 100644 --- a/packages/viewer/src/hooks/use-node-events.ts +++ b/packages/viewer/src/hooks/use-node-events.ts @@ -69,11 +69,13 @@ export function useNodeEvents(node: NodeConfig[T]['node'], t if (useViewer.getState().cameraDragging) return if (e.button !== 0) return emit('pointerup', e) + // Synthesize a click event on pointer up to be more forgiving than R3F's default onClick + // which often fails if the mouse moves even 1 pixel. + emit('click', e) }, onClick: (e: ThreeEvent) => { - if (useViewer.getState().cameraDragging) return - if (e.button !== 0) return - emit('click', e) + // Disable default R3F click since we synthesize it on pointerup + // This prevents double-clicks from firing twice. }, onPointerEnter: (e: ThreeEvent) => { if (useViewer.getState().cameraDragging) return