diff --git a/deps/shui/src/logseq/shui/dialog/core.cljs b/deps/shui/src/logseq/shui/dialog/core.cljs
index 659773f84f..9ab62c8504 100644
--- a/deps/shui/src/logseq/shui/dialog/core.cljs
+++ b/deps/shui/src/logseq/shui/dialog/core.cljs
@@ -159,12 +159,14 @@
(cond-> (merge props content-props)
auto-width? (assoc :data-auto-width true)
(false? close-btn?) (assoc :data-close-btn false))
- (when title
- (dialog-header
- (when title (dialog-title title))
- (when description (dialog-description description))))
+
+ ;; nested title component is required for radix dialog content
+ (dialog-title {:class (when (empty? title) "hidden")} title)
+ (when description (dialog-description description))
+
(when content
[:div.ui__dialog-main-content content])
+
(when footer
(dialog-footer footer)))))))
diff --git a/deps/shui/src/logseq/shui/popup/core.cljs b/deps/shui/src/logseq/shui/popup/core.cljs
index 651276f211..1fdf87512d 100644
--- a/deps/shui/src/logseq/shui/popup/core.cljs
+++ b/deps/shui/src/logseq/shui/popup/core.cljs
@@ -178,7 +178,6 @@
:top y
:left x}} ""))
(let [content-props (cond-> (merge content-props {:onEscapeKeyDown handle-key-escape!
- :disableOutsideScroll false
:onPointerDownOutside handle-pointer-outside!})
(and (not force-popover?)
(not as-dropdown?))
diff --git a/packages/ui/.storybook/preview.js b/packages/ui/.storybook/preview.js
index 4375df4e99..c2fdee4720 100644
--- a/packages/ui/.storybook/preview.js
+++ b/packages/ui/.storybook/preview.js
@@ -5,7 +5,7 @@ import '../src/index.css'
import { useEffect } from 'react'
// require in this file to keep app state when HMR
-const { setupGlobals } = require('../src')
+const { setupGlobals } = require('../src/ui')
setupGlobals()
diff --git a/packages/ui/@/components/ui/toaster.tsx b/packages/ui/@/components/ui/toaster.tsx
index c046fb623f..0b250d2e1d 100644
--- a/packages/ui/@/components/ui/toaster.tsx
+++ b/packages/ui/@/components/ui/toaster.tsx
@@ -22,6 +22,7 @@ export function Toaster() {
description,
action,
icon,
+ onDismiss, // remove from toast props
...props
}) {
const duration = props?.duration
diff --git a/packages/ui/examples/index.tsx b/packages/ui/examples/index.tsx
index f36daac2b4..c20fa37bef 100644
--- a/packages/ui/examples/index.tsx
+++ b/packages/ui/examples/index.tsx
@@ -1,5 +1,5 @@
-import 'src/index.css'
-import { setupGlobals } from '../src'
+import '../src/index.css'
+import { setupGlobals } from '../src/ui'
import * as React from 'react'
import * as ReactDOM from 'react-dom'
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 74273babe5..46ffd7280a 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -8,33 +8,30 @@
"build:ui:only": "parcel build --target ui",
"build:ui": "rm -rf .parcel-cache && yarn build:ui:only",
"watch:storybook": "storybook dev -p 6006",
- "install:primitives": "rm -rf primitives/ && git clone -b x https://github.com/xyhp915/primitives.git --depth=1",
- "build:primitives": "yarn install:primitives && cd primitives/ && yarn install && yarn build",
- "preinstall": "test -f primitives/package.json || yarn build:primitives",
"postinstall": "yarn build:ui"
},
"dependencies": {
"@hookform/resolvers": "^3.3.2",
"@radix-ui/colors": "^3.0.0",
- "@radix-ui/react-alert-dialog": "^1.0.5",
- "@radix-ui/react-avatar": "^1.0.4",
- "@radix-ui/react-checkbox": "^1.0.4",
- "@radix-ui/react-context-menu": "^2.1.5",
- "@radix-ui/react-dialog": "^1.1.2",
- "@radix-ui/react-dropdown-menu": "^2.0.6",
- "@radix-ui/react-label": "^2.0.2",
- "@radix-ui/react-popover": "^1.0.7",
- "@radix-ui/react-radio-group": "^1.1.3",
- "@radix-ui/react-select": "^2.0.0",
- "@radix-ui/react-separator": "^1.1.0",
- "@radix-ui/react-slider": "^1.1.2",
- "@radix-ui/react-slot": "^1.1.0",
- "@radix-ui/react-switch": "^1.0.3",
- "@radix-ui/react-tabs": "^1.1.1",
- "@radix-ui/react-toast": "^1.1.5",
- "@radix-ui/react-toggle": "^1.0.3",
- "@radix-ui/react-toggle-group": "^1.0.4",
- "@radix-ui/react-tooltip": "^1.1.4",
+ "@radix-ui/react-alert-dialog": "^1.1.11",
+ "@radix-ui/react-avatar": "^1.1.7",
+ "@radix-ui/react-checkbox": "^1.2.3",
+ "@radix-ui/react-context-menu": "^2.2.12",
+ "@radix-ui/react-dialog": "^1.1.11",
+ "@radix-ui/react-dropdown-menu": "^2.1.12",
+ "@radix-ui/react-label": "^2.1.4",
+ "@radix-ui/react-popover": "^1.1.11",
+ "@radix-ui/react-radio-group": "^1.3.4",
+ "@radix-ui/react-select": "^2.2.2",
+ "@radix-ui/react-separator": "^1.1.4",
+ "@radix-ui/react-slider": "^1.3.2",
+ "@radix-ui/react-slot": "^1.2.0",
+ "@radix-ui/react-switch": "^1.2.2",
+ "@radix-ui/react-tabs": "^1.1.9",
+ "@radix-ui/react-toast": "^1.2.11",
+ "@radix-ui/react-toggle": "^1.1.6",
+ "@radix-ui/react-toggle-group": "^1.1.7",
+ "@radix-ui/react-tooltip": "^1.2.4",
"class-variance-authority": "^0.7.1",
"clsx": "^2.0.0",
"cmdk": "^0.2.0",
@@ -89,8 +86,7 @@
},
"react/jsx-dev-runtime": "./node_modules/react/jsx-dev-runtime.js",
"react/jsx-runtime": "./node_modules/react/jsx-runtime.js",
- "@/*": "./@/$1",
- "@radix-ui/react-*": "./primitives/packages/react/$1"
+ "@/*": "./@/$1"
},
"targets": {
"main": false,
diff --git a/packages/ui/src/Demo.story.tsx b/packages/ui/src/Demo.story.tsx
index 68138c9bf5..b52ef48799 100644
--- a/packages/ui/src/Demo.story.tsx
+++ b/packages/ui/src/Demo.story.tsx
@@ -1,4 +1,4 @@
-import { Button } from '../@/components/ui/button'
+import { Button } from '@/components/ui/button'
import { Meta, StoryObj } from '@storybook/react'
import { DropdownMenuCheckboxItemProps } from '@radix-ui/react-dropdown-menu'
@@ -73,6 +73,7 @@ export const Primary: StoryObj =