{
void framer.showUI({
- width: size?.width ?? 260,
- height: size?.height ?? 345,
+ width: size?.width ?? DEFAULT_PLUGIN_WIDTH,
+ height: size?.height ?? DEFAULT_PLUGIN_HEIGHT,
})
}, [size])
From 39e142aaca6d9b6f89f7c67953cfd8917c3ad36a Mon Sep 17 00:00:00 2001
From: Isaac Roberts <119639439+madebyisaacr@users.noreply.github.com>
Date: Tue, 19 May 2026 15:13:45 -0400
Subject: [PATCH 10/16] Add hero section to collection view
---
plugins/hubspot/src/App.tsx | 4 ++--
plugins/hubspot/src/components/HeroSection.tsx | 15 +++++++++++++++
plugins/hubspot/src/pages/canvas/Menu.tsx | 12 ++----------
plugins/hubspot/src/pages/cms/Menu.tsx | 2 ++
4 files changed, 21 insertions(+), 12 deletions(-)
create mode 100644 plugins/hubspot/src/components/HeroSection.tsx
diff --git a/plugins/hubspot/src/App.tsx b/plugins/hubspot/src/App.tsx
index 8d94fafd8..057d79e49 100644
--- a/plugins/hubspot/src/App.tsx
+++ b/plugins/hubspot/src/App.tsx
@@ -78,7 +78,7 @@ const routes: Route[] = [
path: "/learn-more",
element: LearnMoreTrackingPage,
size: {
- height: 184,
+ height: 201,
},
},
],
@@ -89,7 +89,7 @@ const routes: Route[] = [
path: "/cms",
element: CMSMenuPage,
size: {
- height: 141,
+ height: 320,
},
children: [
{
diff --git a/plugins/hubspot/src/components/HeroSection.tsx b/plugins/hubspot/src/components/HeroSection.tsx
new file mode 100644
index 000000000..b5d66bd1b
--- /dev/null
+++ b/plugins/hubspot/src/components/HeroSection.tsx
@@ -0,0 +1,15 @@
+import { Logo } from "./Logo"
+
+interface Props {
+ description: string
+}
+
+export const HeroSection = ({ description }: Props) => (
+
+
+
+
Welcome to HubSpot
+
{description}
+
+
+)
diff --git a/plugins/hubspot/src/pages/canvas/Menu.tsx b/plugins/hubspot/src/pages/canvas/Menu.tsx
index bb274bc76..0250ee89a 100644
--- a/plugins/hubspot/src/pages/canvas/Menu.tsx
+++ b/plugins/hubspot/src/pages/canvas/Menu.tsx
@@ -3,8 +3,8 @@ import { framer } from "framer-plugin"
import { useEffect } from "react"
import { useLocation } from "wouter"
import { useAccountQuery, useFormsQuery, useInboxesQuery, useMeetingsQuery, useUserQuery } from "../../api"
+import { HeroSection } from "../../components/HeroSection"
import { ChartIcon, FormsIcon, LightningIcon, MeetingsIcon, MessageIcon, PersonIcon } from "../../components/Icons"
-import { Logo } from "../../components/Logo"
import { useIsPrerelease } from "../../utils"
const queryHooks = {
@@ -68,15 +68,7 @@ export default function MenuPage() {
return (
-
-
-
-
Welcome to HubSpot
-
- View forms, monitor site traffic, embed widgets and much more.
-
-
-
+
} />
} />
diff --git a/plugins/hubspot/src/pages/cms/Menu.tsx b/plugins/hubspot/src/pages/cms/Menu.tsx
index 7e77c8946..e4c209397 100644
--- a/plugins/hubspot/src/pages/cms/Menu.tsx
+++ b/plugins/hubspot/src/pages/cms/Menu.tsx
@@ -1,9 +1,11 @@
+import { HeroSection } from "../../components/HeroSection"
import { DatabaseIcon, FormsIcon } from "../../components/Icons"
import { MenuOption } from "../../components/MenuOption"
export default function MenuPage() {
return (
+
} />
} />
From f3ec7704f165db39bb82e11ea589bc8da0bdb220 Mon Sep 17 00:00:00 2001
From: Isaac Roberts <119639439+madebyisaacr@users.noreply.github.com>
Date: Tue, 19 May 2026 15:21:54 -0400
Subject: [PATCH 11/16] Increase animation speed
---
plugins/hubspot/src/App.tsx | 2 +-
plugins/hubspot/src/router.tsx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/hubspot/src/App.tsx b/plugins/hubspot/src/App.tsx
index 057d79e49..87db6911f 100644
--- a/plugins/hubspot/src/App.tsx
+++ b/plugins/hubspot/src/App.tsx
@@ -47,7 +47,7 @@ const routes: Route[] = [
{
path: "/chat",
element: ChatPage,
- title: "Chat",
+ title: "Chats",
size: {
height: 401,
},
diff --git a/plugins/hubspot/src/router.tsx b/plugins/hubspot/src/router.tsx
index 5e09153b0..9cd58174a 100644
--- a/plugins/hubspot/src/router.tsx
+++ b/plugins/hubspot/src/router.tsx
@@ -117,7 +117,7 @@ function useRoutes({ routes, hubDbPluginContext, blogPluginContext }: UseRoutesP
transition: {
x: {
ease: [0.25, 0.1, 0.25, 1],
- duration: 0.3,
+ duration: 0.2,
},
opacity: {
duration: 0.2,
From b6041d120cff7b2181de88dee2eacecee8cb9eb5 Mon Sep 17 00:00:00 2001
From: Isaac Roberts <119639439+madebyisaacr@users.noreply.github.com>
Date: Tue, 19 May 2026 15:43:06 -0400
Subject: [PATCH 12/16] Secondary buttons, clean up animation
---
plugins/hubspot/src/components/Button.tsx | 7 ++-----
plugins/hubspot/src/components/Layout.tsx | 8 +++-----
plugins/hubspot/src/pages/Auth.tsx | 2 +-
plugins/hubspot/src/pages/canvas/Chat.tsx | 2 +-
plugins/hubspot/src/pages/canvas/Meetings.tsx | 5 +----
plugins/hubspot/src/pages/canvas/forms/index.tsx | 5 +----
.../canvas/tracking/components/ToggleTrackingButton.tsx | 1 -
plugins/hubspot/src/pages/cms/Blog.tsx | 1 -
plugins/hubspot/src/pages/cms/hubdb/MapFields.tsx | 1 -
plugins/hubspot/src/router.tsx | 7 +------
10 files changed, 10 insertions(+), 29 deletions(-)
diff --git a/plugins/hubspot/src/components/Button.tsx b/plugins/hubspot/src/components/Button.tsx
index cb074c867..b47af1465 100644
--- a/plugins/hubspot/src/components/Button.tsx
+++ b/plugins/hubspot/src/components/Button.tsx
@@ -1,12 +1,9 @@
-import cx from "classnames"
-
interface Props extends React.ButtonHTMLAttributes
{
- variant?: "primary" | "secondary" | "destructive"
isLoading?: boolean
}
-export const Button = ({ variant = "primary", children, className, isLoading = false, disabled, ...rest }: Props) => (
-
-
+
Log In
diff --git a/plugins/hubspot/src/pages/canvas/Chat.tsx b/plugins/hubspot/src/pages/canvas/Chat.tsx
index aa8b7c991..93165e777 100644
--- a/plugins/hubspot/src/pages/canvas/Chat.tsx
+++ b/plugins/hubspot/src/pages/canvas/Chat.tsx
@@ -144,7 +144,7 @@ export default function ChatPage() {
{
window.open(`https://app-eu1.hubspot.com/chatflows/${account.portalId}/`, "_blank")
}}
diff --git a/plugins/hubspot/src/pages/canvas/Meetings.tsx b/plugins/hubspot/src/pages/canvas/Meetings.tsx
index e63a91ce5..ac513da54 100644
--- a/plugins/hubspot/src/pages/canvas/Meetings.tsx
+++ b/plugins/hubspot/src/pages/canvas/Meetings.tsx
@@ -41,10 +41,7 @@ export default function MeetingsPage() {
- window.open(`https://${uiDomain}/meetings/${portalId}`, "_blank")}
- >
+ window.open(`https://${uiDomain}/meetings/${portalId}`, "_blank")}>
View Meetings
diff --git a/plugins/hubspot/src/pages/canvas/forms/index.tsx b/plugins/hubspot/src/pages/canvas/forms/index.tsx
index eb3f643d9..f71a3946e 100644
--- a/plugins/hubspot/src/pages/canvas/forms/index.tsx
+++ b/plugins/hubspot/src/pages/canvas/forms/index.tsx
@@ -47,10 +47,7 @@ export default function FormsPage() {
- window.open(`https://${uiDomain}/forms/${portalId}`, "_blank")}
- >
+ window.open(`https://${uiDomain}/forms/${portalId}`, "_blank")}>
View Forms
diff --git a/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx b/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx
index a132dca13..ea342695a 100644
--- a/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx
+++ b/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx
@@ -41,7 +41,6 @@ export const ToggleTrackingButton = ({ className }: { className?: string }) => {
return (
-
+
Date: Tue, 19 May 2026 15:52:14 -0400
Subject: [PATCH 13/16] Top divider
---
plugins/hubspot/src/App.tsx | 1 -
plugins/hubspot/src/components/Layout.tsx | 48 ++++++++---------------
plugins/hubspot/src/router.tsx | 22 ++++++-----
3 files changed, 30 insertions(+), 41 deletions(-)
diff --git a/plugins/hubspot/src/App.tsx b/plugins/hubspot/src/App.tsx
index 87db6911f..e964c6076 100644
--- a/plugins/hubspot/src/App.tsx
+++ b/plugins/hubspot/src/App.tsx
@@ -103,7 +103,6 @@ const routes: Route[] = [
{
path: "/hubdb",
element: HubDBPage,
- showTopDivider: false,
size: {
width: 320,
height: 305,
diff --git a/plugins/hubspot/src/components/Layout.tsx b/plugins/hubspot/src/components/Layout.tsx
index ebeb5fc50..8280db0e2 100644
--- a/plugins/hubspot/src/components/Layout.tsx
+++ b/plugins/hubspot/src/components/Layout.tsx
@@ -1,45 +1,31 @@
import cx from "classnames"
-import React from "react"
import { CaretLeftIcon } from "./Icons"
-const PageDivider = () => (
-
-
-
-)
-
-interface TitleProps {
- title: string
- goBack: () => void
-}
-
-const Title = ({ title, goBack }: TitleProps) => (
-
-
-
-
-)
-
interface Props {
children: React.ReactNode
className?: string
title?: string
- showTopDivider?: boolean
goBack: () => void
}
-export const Layout = ({ children, className, title, showTopDivider = true, goBack }: Props) => (
+export const Layout = ({ children, className, title, goBack }: Props) => (
- {title &&
}
- {showTopDivider &&
}
+ {title && (
+ <>
+
+
+
+
+ >
+ )}
{children}
)
diff --git a/plugins/hubspot/src/router.tsx b/plugins/hubspot/src/router.tsx
index 1d292d163..070cf4948 100644
--- a/plugins/hubspot/src/router.tsx
+++ b/plugins/hubspot/src/router.tsx
@@ -24,7 +24,6 @@ export interface Route {
element: React.ComponentType
title?: string | (() => string)
children?: Route[]
- showTopDivider?: boolean
size?: PluginSize
}
@@ -87,7 +86,7 @@ function useRoutes({ routes, hubDbPluginContext, blogPluginContext }: UseRoutesP
for (const { match, route } of matches) {
const [isMatch, params] = match
- const { title, showTopDivider, size, element: Element } = route
+ const { title, size, element: Element } = route
if (!isMatch) continue
@@ -128,7 +127,7 @@ function useRoutes({ routes, hubDbPluginContext, blogPluginContext }: UseRoutesP
return {
page: (
-
+
-
-
- {cloneElement(page, { key: location.pathname })}
-
-
+
+
+
+
+
+
+
+ {cloneElement(page, { key: location.pathname })}
+
+
+
)
}
From 37b62c926e47904b9000be9169ee10192978769d Mon Sep 17 00:00:00 2001
From: Isaac Roberts <119639439+madebyisaacr@users.noreply.github.com>
Date: Tue, 19 May 2026 15:59:45 -0400
Subject: [PATCH 14/16] Primary tracking button
---
.../pages/canvas/tracking/components/ToggleTrackingButton.tsx | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx b/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx
index ea342695a..36a9f2526 100644
--- a/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx
+++ b/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx
@@ -1,4 +1,5 @@
import { type CustomCode, framer, useIsAllowedTo } from "framer-plugin"
+import cx from "classnames"
import { useEffect, useState } from "react"
import { useUserQuery } from "../../../../api"
import { Button } from "../../../../components/Button"
@@ -43,7 +44,7 @@ export const ToggleTrackingButton = ({ className }: { className?: string }) => {
From 33b4751f0a09b3b08d99aabdef2925267912ebfb Mon Sep 17 00:00:00 2001
From: Isaac Roberts <119639439+madebyisaacr@users.noreply.github.com>
Date: Tue, 19 May 2026 16:01:08 -0400
Subject: [PATCH 15/16] Button variant
---
plugins/hubspot/src/components/Button.tsx | 10 ++++++++--
.../tracking/components/ToggleTrackingButton.tsx | 4 ++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/plugins/hubspot/src/components/Button.tsx b/plugins/hubspot/src/components/Button.tsx
index b47af1465..09791bec5 100644
--- a/plugins/hubspot/src/components/Button.tsx
+++ b/plugins/hubspot/src/components/Button.tsx
@@ -1,9 +1,15 @@
+import cx from "classnames"
+
interface Props extends React.ButtonHTMLAttributes {
isLoading?: boolean
}
-export const Button = ({ children, className, isLoading = false, disabled, ...rest }: Props) => (
-
+export const Button = ({ variant = "secondary", children, className, isLoading = false, disabled, ...rest }: Props) => (
+
{isLoading ? : children}
)
diff --git a/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx b/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx
index 36a9f2526..a132dca13 100644
--- a/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx
+++ b/plugins/hubspot/src/pages/canvas/tracking/components/ToggleTrackingButton.tsx
@@ -1,5 +1,4 @@
import { type CustomCode, framer, useIsAllowedTo } from "framer-plugin"
-import cx from "classnames"
import { useEffect, useState } from "react"
import { useUserQuery } from "../../../../api"
import { Button } from "../../../../components/Button"
@@ -42,9 +41,10 @@ export const ToggleTrackingButton = ({ className }: { className?: string }) => {
return (
From 16341a720a6e279f8eb652968e9bdbf08bc619cc Mon Sep 17 00:00:00 2001
From: Isaac Roberts <119639439+madebyisaacr@users.noreply.github.com>
Date: Tue, 19 May 2026 16:01:46 -0400
Subject: [PATCH 16/16] Fix type
---
plugins/hubspot/src/components/Button.tsx | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/hubspot/src/components/Button.tsx b/plugins/hubspot/src/components/Button.tsx
index 09791bec5..f407f323f 100644
--- a/plugins/hubspot/src/components/Button.tsx
+++ b/plugins/hubspot/src/components/Button.tsx
@@ -1,6 +1,7 @@
import cx from "classnames"
interface Props extends React.ButtonHTMLAttributes {
+ variant?: "primary" | "secondary"
isLoading?: boolean
}