-
-

-
Estúdio
+
+
+ Estúdio
+
-
diff --git a/apps/studio.saladeaula.digital/package.json b/apps/studio.saladeaula.digital/package.json
index 169e27c..683c81d 100644
--- a/apps/studio.saladeaula.digital/package.json
+++ b/apps/studio.saladeaula.digital/package.json
@@ -12,18 +12,8 @@
"typecheck": "npm run cf-typegen && react-router typegen && tsc --noEmit"
},
"dependencies": {
- "@hookform/resolvers": "^5.2.2",
- "@radix-ui/react-avatar": "^1.1.10",
- "@radix-ui/react-checkbox": "^1.3.3",
- "@radix-ui/react-dropdown-menu": "^2.1.16",
- "@radix-ui/react-label": "^2.1.7",
- "@radix-ui/react-separator": "^1.1.7",
- "@radix-ui/react-slot": "^1.2.3",
- "@radix-ui/react-switch": "^1.2.6",
- "@radix-ui/react-tooltip": "^1.2.8",
- "@remix-run/form-data-parser": "^0.12.0",
- "class-variance-authority": "^0.7.1",
- "clsx": "^2.1.1",
+ "@repo/auth": "*",
+ "@repo/ui": "*",
"fuse.js": "^7.1.0",
"isbot": "^5.1.31",
"jose": "^6.1.0",
@@ -31,12 +21,7 @@
"lucide-react": "^0.548.0",
"meilisearch": "^0.54.0",
"react": "^19.2.0",
- "react-dom": "^19.2.0",
- "react-hook-form": "^7.65.0",
- "react-router": "^7.9.5",
- "remix-auth-oauth2": "^3.4.1",
- "tailwind-merge": "^3.3.1",
- "zod": "^4.1.12"
+ "react-dom": "^19.2.0"
},
"devDependencies": {
"@cloudflare/vite-plugin": "^1.13.17",
diff --git a/apps/studio.saladeaula.digital/worker-configuration.d.ts b/apps/studio.saladeaula.digital/worker-configuration.d.ts
index 0b3aecd..6c99364 100644
--- a/apps/studio.saladeaula.digital/worker-configuration.d.ts
+++ b/apps/studio.saladeaula.digital/worker-configuration.d.ts
@@ -1,5 +1,5 @@
/* eslint-disable */
-// Generated by Wrangler by running `wrangler types` (hash: 9130e11c7e4fa48b035ffe269cd5babc)
+// Generated by Wrangler by running `wrangler types` (hash: 94bfdc7e16675b26364c038a94ff21b3)
// Runtime types generated with workerd@1.20251011.0 2025-04-04
declare namespace Cloudflare {
interface GlobalProps {
@@ -7,11 +7,14 @@ declare namespace Cloudflare {
}
interface Env {
CLIENT_ID: "78a0819e-1f9b-4da1-b05f-40ec0eaed0c8";
- REDIRECT_URI: "https://studio.saladeaula.digital/login";
SCOPE: "openid profile email offline_access apps:studio";
API_URL: "https://bcs7fgb9og.execute-api.sa-east-1.amazonaws.com";
ISSUER_URL: "https://id.saladeaula.digital";
MEILI_HOST: "https://search.saladeaula.digital";
+ CLIENT_SECRET: string;
+ REDIRECT_URI: string;
+ SESSION_SECRET: string;
+ MEILI_API_KEY: string;
}
}
interface Env extends Cloudflare.Env {}
diff --git a/package-lock.json b/package-lock.json
index 9d99166..bfe3881 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -203,18 +203,8 @@
"apps/studio.saladeaula.digital": {
"hasInstallScript": true,
"dependencies": {
- "@hookform/resolvers": "^5.2.2",
- "@radix-ui/react-avatar": "^1.1.10",
- "@radix-ui/react-checkbox": "^1.3.3",
- "@radix-ui/react-dropdown-menu": "^2.1.16",
- "@radix-ui/react-label": "^2.1.7",
- "@radix-ui/react-separator": "^1.1.7",
- "@radix-ui/react-slot": "^1.2.3",
- "@radix-ui/react-switch": "^1.2.6",
- "@radix-ui/react-tooltip": "^1.2.8",
- "@remix-run/form-data-parser": "^0.12.0",
- "class-variance-authority": "^0.7.1",
- "clsx": "^2.1.1",
+ "@repo/auth": "*",
+ "@repo/ui": "*",
"fuse.js": "^7.1.0",
"isbot": "^5.1.31",
"jose": "^6.1.0",
@@ -222,12 +212,7 @@
"lucide-react": "^0.548.0",
"meilisearch": "^0.54.0",
"react": "^19.2.0",
- "react-dom": "^19.2.0",
- "react-hook-form": "^7.65.0",
- "react-router": "^7.9.5",
- "remix-auth-oauth2": "^3.4.1",
- "tailwind-merge": "^3.3.1",
- "zod": "^4.1.12"
+ "react-dom": "^19.2.0"
},
"devDependencies": {
"@cloudflare/vite-plugin": "^1.13.17",
@@ -4002,30 +3987,6 @@
}
}
},
- "node_modules/@remix-run/form-data-parser": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@remix-run/form-data-parser/-/form-data-parser-0.12.0.tgz",
- "integrity": "sha512-PSeHTVp1nDAA1yr8HUiU0dNkQ3jD4TlW6Crw0oV406YC0JskkJ9TyHC8BYKQzi8URFX12fHJD70W3RtvofKqvw==",
- "license": "MIT",
- "dependencies": {
- "@remix-run/multipart-parser": "^0.12.0"
- }
- },
- "node_modules/@remix-run/headers": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/@remix-run/headers/-/headers-0.14.0.tgz",
- "integrity": "sha512-IibY6iTkBhzHXacQkJDENlzJPe3G5RDJgzV2utftnJl/sg2qKnxtepypQmfXA6d+BI5BkzrtAd+mx7QSVY1NRQ==",
- "license": "MIT"
- },
- "node_modules/@remix-run/multipart-parser": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@remix-run/multipart-parser/-/multipart-parser-0.12.0.tgz",
- "integrity": "sha512-u/o4lKmIy/KuZGuQYMGhmr+BN7VKAt3G0ny8a1SBVlBXIBAtTOmDiI2WMZtyAv0VPbaIpT3OBTrRrKIfdDAE6w==",
- "license": "MIT",
- "dependencies": {
- "@remix-run/headers": "^0.14.0"
- }
- },
"node_modules/@remix-run/node-fetch-server": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@remix-run/node-fetch-server/-/node-fetch-server-0.8.1.tgz",
@@ -6796,6 +6757,16 @@
"is-arrayish": "^0.3.1"
}
},
+ "node_modules/sonner": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz",
+ "integrity": "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc",
+ "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ }
+ },
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
@@ -8187,6 +8158,7 @@
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.8",
"@radix-ui/react-slot": "^1.2.4",
+ "@radix-ui/react-switch": "^1.2.6",
"@radix-ui/react-tabs": "^1.1.13",
"@radix-ui/react-tooltip": "^1.2.8",
"@tailwindcss/postcss": "^4.1.16",
@@ -8203,6 +8175,7 @@
"react-day-picker": "^9.11.1",
"react-hook-form": "^7.66.0",
"react-number-format": "^5.4.4",
+ "sonner": "^2.0.7",
"tailwind-merge": "^3.3.1",
"tailwindcss": "^4.1.16",
"tw-animate-css": "^1.4.0",
diff --git a/packages/ui/package.json b/packages/ui/package.json
index adf07fc..9e0a8a0 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -26,6 +26,7 @@
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.8",
"@radix-ui/react-slot": "^1.2.4",
+ "@radix-ui/react-switch": "^1.2.6",
"@radix-ui/react-tabs": "^1.1.13",
"@radix-ui/react-tooltip": "^1.2.8",
"@tailwindcss/postcss": "^4.1.16",
@@ -42,6 +43,7 @@
"react-day-picker": "^9.11.1",
"react-hook-form": "^7.66.0",
"react-number-format": "^5.4.4",
+ "sonner": "^2.0.7",
"tailwind-merge": "^3.3.1",
"tailwindcss": "^4.1.16",
"tw-animate-css": "^1.4.0",
diff --git a/packages/ui/src/components/dark-mode.tsx b/packages/ui/src/components/dark-mode.tsx
index 808f938..7efb298 100644
--- a/packages/ui/src/components/dark-mode.tsx
+++ b/packages/ui/src/components/dark-mode.tsx
@@ -44,11 +44,16 @@ export function ModeToggle() {
)
}
-export function ThemedImage({ ...props }) {
+type ThemedImageProps = {
+ children?: string
+}
+
+export function ThemedImage({ children, ...props }: ThemedImageProps) {
return (

+ {children}
)
}
diff --git a/apps/studio.saladeaula.digital/app/components/ui/alert.tsx b/packages/ui/src/components/ui/alert.tsx
similarity index 100%
rename from apps/studio.saladeaula.digital/app/components/ui/alert.tsx
rename to packages/ui/src/components/ui/alert.tsx
diff --git a/packages/ui/src/components/ui/navigation-menu.tsx b/packages/ui/src/components/ui/navigation-menu.tsx
index 1199945..2c75aaf 100644
--- a/packages/ui/src/components/ui/navigation-menu.tsx
+++ b/packages/ui/src/components/ui/navigation-menu.tsx
@@ -1,9 +1,9 @@
-import * as React from "react"
-import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu"
-import { cva } from "class-variance-authority"
-import { ChevronDownIcon } from "lucide-react"
+import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu'
+import { cva } from 'class-variance-authority'
+import { ChevronDownIcon } from 'lucide-react'
+import * as React from 'react'
-import { cn } from "@/lib/utils"
+import { cn } from '@/lib/utils'
function NavigationMenu({
className,
@@ -18,7 +18,7 @@ function NavigationMenu({
data-slot="navigation-menu"
data-viewport={viewport}
className={cn(
- "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
+ 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',
className
)}
{...props}
@@ -37,7 +37,7 @@ function NavigationMenuList({
)
}
const navigationMenuTriggerStyle = cva(
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
+ 'group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1'
)
function NavigationMenuTrigger({
@@ -70,10 +70,10 @@ function NavigationMenuTrigger({
return (
- {children}{" "}
+ {children}{' '}
{
+ const { theme = "system" } = useTheme()
+
+ return (
+ ,
+ info: ,
+ warning: ,
+ error: ,
+ loading: ,
+ }}
+ style={
+ {
+ "--normal-bg": "var(--popover)",
+ "--normal-text": "var(--popover-foreground)",
+ "--normal-border": "var(--border)",
+ "--border-radius": "var(--radius)",
+ } as React.CSSProperties
+ }
+ {...props}
+ />
+ )
+}
+
+export { Toaster }
diff --git a/apps/studio.saladeaula.digital/app/components/ui/switch.tsx b/packages/ui/src/components/ui/switch.tsx
similarity index 98%
rename from apps/studio.saladeaula.digital/app/components/ui/switch.tsx
rename to packages/ui/src/components/ui/switch.tsx
index b0363e3..6a2b524 100644
--- a/apps/studio.saladeaula.digital/app/components/ui/switch.tsx
+++ b/packages/ui/src/components/ui/switch.tsx
@@ -1,3 +1,5 @@
+"use client"
+
import * as React from "react"
import * as SwitchPrimitive from "@radix-ui/react-switch"