{
- if (showScrollButtons) {
- checkScrollability()
- }
- }}
+ onAnimationEnd={checkScrollability}
collisionPadding={16}
{...props}
>
@@ -249,7 +254,10 @@ const DropdownMenuContent = React.forwardRef<
{children}
@@ -113,6 +125,7 @@ const SelectItem = React.forwardRef<
ref={ref}
className={cn(
'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
+ menuItemLargeTextClass,
className
)}
{...props}
diff --git a/src/constants.ts b/src/constants.ts
index fbe19dd4..82e09198 100644
--- a/src/constants.ts
+++ b/src/constants.ts
@@ -459,7 +459,6 @@ export const NIP42_POOL_AUTOMATIC_AUTH_RELAY_URLS = ['wss://nostr.wine'] as cons
export const SOCIAL_KIND_BLOCKED_RELAY_URLS = [
'wss://thecitadel.nostr1.com',
'wss://profiles.nostr1.com',
- 'wss://purplepag.es',
'wss://relay.nsec.app',
'wss://bucket.coracle.social',
'wss://spatia-arcana.com',
@@ -521,10 +520,11 @@ export const SEARCH_QUERY_DEBOUNCE_MS = 550
export const PROFILE_RELAY_URLS = [
'wss://profiles.nostr1.com',
- 'wss://purplepag.es',
'wss://profiles.nostrver.se/',
'wss://indexer.coracle.social/',
- 'wss://thecitadel.nostr1.com'
+ 'wss://thecitadel.nostr1.com',
+ 'wss://relay.damus.io',
+ 'wss://relay.primal.net'
]
export const FOLLOWS_HISTORY_RELAY_URLS = [
diff --git a/src/i18n/locales/cs.ts b/src/i18n/locales/cs.ts
index 91d0b2c5..4c87e117 100644
--- a/src/i18n/locales/cs.ts
+++ b/src/i18n/locales/cs.ts
@@ -87,6 +87,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Edit this event',
'Clone or fork this event': 'Clone or fork this event',
+ 'Edit or fork this event': 'Edit or fork this event',
'Event kind': 'Event kind',
'Note content': 'Note content',
Publish: 'Publish',
diff --git a/src/i18n/locales/de.ts b/src/i18n/locales/de.ts
index 0028138a..795043ba 100644
--- a/src/i18n/locales/de.ts
+++ b/src/i18n/locales/de.ts
@@ -88,6 +88,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Dieses Event bearbeiten',
'Clone or fork this event': 'Event klonen oder forken',
+ 'Edit or fork this event': 'Event bearbeiten oder forken',
'Event kind': 'Event-Kind',
'Note content': 'Inhalt',
Publish: 'Veröffentlichen',
diff --git a/src/i18n/locales/en.ts b/src/i18n/locales/en.ts
index 5041429d..0decc601 100644
--- a/src/i18n/locales/en.ts
+++ b/src/i18n/locales/en.ts
@@ -85,6 +85,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Edit this event',
'Clone or fork this event': 'Clone or fork this event',
+ 'Edit or fork this event': 'Edit or fork this event',
'Event kind': 'Event kind',
'Note content': 'Note content',
Publish: 'Publish',
@@ -289,6 +290,9 @@ export default {
'Profile event tags (e.g. lud16, nip05, website). Saved with kind 0.',
'Tag value': 'Tag value',
'Saving…': 'Saving…',
+ Connections: 'Connections',
+ Calls: 'Calls',
+ Advanced: 'Advanced',
'Share with Imwald': 'Share with Imwald',
'Share with Alexandria': 'Share with Alexandria',
'Start video call': 'Start video call',
diff --git a/src/i18n/locales/es.ts b/src/i18n/locales/es.ts
index 44c59500..0e31b3ea 100644
--- a/src/i18n/locales/es.ts
+++ b/src/i18n/locales/es.ts
@@ -87,6 +87,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Edit this event',
'Clone or fork this event': 'Clone or fork this event',
+ 'Edit or fork this event': 'Edit or fork this event',
'Event kind': 'Event kind',
'Note content': 'Note content',
Publish: 'Publish',
diff --git a/src/i18n/locales/fr.ts b/src/i18n/locales/fr.ts
index 1c50b1de..00ca81a3 100644
--- a/src/i18n/locales/fr.ts
+++ b/src/i18n/locales/fr.ts
@@ -87,6 +87,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Edit this event',
'Clone or fork this event': 'Clone or fork this event',
+ 'Edit or fork this event': 'Edit or fork this event',
'Event kind': 'Event kind',
'Note content': 'Note content',
Publish: 'Publish',
diff --git a/src/i18n/locales/nl.ts b/src/i18n/locales/nl.ts
index 37e4abaa..defc81d5 100644
--- a/src/i18n/locales/nl.ts
+++ b/src/i18n/locales/nl.ts
@@ -87,6 +87,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Edit this event',
'Clone or fork this event': 'Clone or fork this event',
+ 'Edit or fork this event': 'Edit or fork this event',
'Event kind': 'Event kind',
'Note content': 'Note content',
Publish: 'Publish',
diff --git a/src/i18n/locales/pl.ts b/src/i18n/locales/pl.ts
index 6552a664..2f8b924c 100644
--- a/src/i18n/locales/pl.ts
+++ b/src/i18n/locales/pl.ts
@@ -87,6 +87,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Edit this event',
'Clone or fork this event': 'Clone or fork this event',
+ 'Edit or fork this event': 'Edit or fork this event',
'Event kind': 'Event kind',
'Note content': 'Note content',
Publish: 'Publish',
diff --git a/src/i18n/locales/ru.ts b/src/i18n/locales/ru.ts
index d883fb83..b874dfb3 100644
--- a/src/i18n/locales/ru.ts
+++ b/src/i18n/locales/ru.ts
@@ -87,6 +87,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Edit this event',
'Clone or fork this event': 'Clone or fork this event',
+ 'Edit or fork this event': 'Edit or fork this event',
'Event kind': 'Event kind',
'Note content': 'Note content',
Publish: 'Publish',
diff --git a/src/i18n/locales/tr.ts b/src/i18n/locales/tr.ts
index da902559..d2a177ef 100644
--- a/src/i18n/locales/tr.ts
+++ b/src/i18n/locales/tr.ts
@@ -87,6 +87,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Edit this event',
'Clone or fork this event': 'Clone or fork this event',
+ 'Edit or fork this event': 'Edit or fork this event',
'Event kind': 'Event kind',
'Note content': 'Note content',
Publish: 'Publish',
diff --git a/src/i18n/locales/zh.ts b/src/i18n/locales/zh.ts
index 598d9fb1..fb12ba54 100644
--- a/src/i18n/locales/zh.ts
+++ b/src/i18n/locales/zh.ts
@@ -87,6 +87,7 @@ export default {
'Raw Event': 'Raw Event',
'Edit this event': 'Edit this event',
'Clone or fork this event': 'Clone or fork this event',
+ 'Edit or fork this event': 'Edit or fork this event',
'Event kind': 'Event kind',
'Note content': 'Note content',
Publish: 'Publish',
diff --git a/src/lib/menu-popover-layout.ts b/src/lib/menu-popover-layout.ts
new file mode 100644
index 00000000..ce3319e8
--- /dev/null
+++ b/src/lib/menu-popover-layout.ts
@@ -0,0 +1,29 @@
+/**
+ * Shared Tailwind classes for menus, popovers, and selects.
+ * Uses Radix collision CSS variables so lists fit the viewport (mobile + large font).
+ */
+
+/** Dropdown / menu list vertical bound */
+export const dropdownMenuMaxHeightClass =
+ 'max-h-[min(85dvh,var(--radix-dropdown-menu-content-available-height,100dvh))]'
+
+/** Popover panel vertical bound */
+export const popoverMaxHeightClass =
+ 'max-h-[min(85dvh,var(--radix-popover-content-available-height,100dvh))]'
+
+/** Select viewport vertical bound */
+export const selectViewportMaxHeightClass =
+ 'max-h-[min(85dvh,var(--radix-select-content-available-height,80dvh))]'
+
+/** Hover card vertical bound */
+export const hoverCardMaxHeightClass =
+ 'max-h-[min(85dvh,var(--radix-hover-card-content-available-height,100dvh))]'
+
+/** Keep panels inside the screen horizontally */
+export const floatingPanelMaxWidthClass = 'max-w-[min(calc(100vw-1.5rem),28rem)]'
+
+export const floatingPanelScrollClass =
+ 'popover-scroll-y min-h-0 overflow-x-hidden overflow-y-auto overscroll-contain'
+
+/** Menu rows: wrap when root font-size is large */
+export const menuItemLargeTextClass = 'min-w-0 whitespace-normal'