@flamingo-stack/openframe-frontend-core 0.0.458 → 0.0.459
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-YV2YA3QH.cjs → chunk-6XYHSDCL.cjs} +31 -31
- package/dist/{chunk-YV2YA3QH.cjs.map → chunk-6XYHSDCL.cjs.map} +1 -1
- package/dist/{chunk-VTQSB6QB.cjs → chunk-A2RF7ZG6.cjs} +5 -5
- package/dist/{chunk-VTQSB6QB.cjs.map → chunk-A2RF7ZG6.cjs.map} +1 -1
- package/dist/{chunk-KQGFKG6Y.js → chunk-AS5B343N.js} +2 -2
- package/dist/{chunk-WGJPTFRH.js → chunk-CBNHSXTR.js} +2 -2
- package/dist/{chunk-7IRPMNRL.cjs → chunk-DMU3BSPR.cjs} +59 -59
- package/dist/{chunk-7IRPMNRL.cjs.map → chunk-DMU3BSPR.cjs.map} +1 -1
- package/dist/{chunk-QL7ODLJA.js → chunk-EFGFAVOI.js} +4 -4
- package/dist/{chunk-YQBPIUZU.js → chunk-GSKLTMIY.js} +2 -2
- package/dist/{chunk-DQ3EHM6G.cjs → chunk-IG4QVZSP.cjs} +9 -9
- package/dist/{chunk-DQ3EHM6G.cjs.map → chunk-IG4QVZSP.cjs.map} +1 -1
- package/dist/{chunk-ZHQQRYMB.js → chunk-JGSBLQLE.js} +4 -4
- package/dist/{chunk-6B27O3ZB.js → chunk-JWXOZRZ6.js} +4 -4
- package/dist/{chunk-R5QYMUKN.js → chunk-KW33TBQX.js} +2 -2
- package/dist/{chunk-IDKDOQZL.js → chunk-LDVQIOS7.js} +2 -2
- package/dist/{chunk-H7ETLG65.js → chunk-MRKRE54X.js} +4 -4
- package/dist/{chunk-L676XVP4.cjs → chunk-O5E7ZWHK.cjs} +7 -7
- package/dist/{chunk-L676XVP4.cjs.map → chunk-O5E7ZWHK.cjs.map} +1 -1
- package/dist/{chunk-LDAOPWXZ.cjs → chunk-OFPHMNRL.cjs} +11 -11
- package/dist/{chunk-LDAOPWXZ.cjs.map → chunk-OFPHMNRL.cjs.map} +1 -1
- package/dist/{chunk-ZDJ4ZUQ4.cjs → chunk-OJ5ROJSS.cjs} +37 -37
- package/dist/{chunk-ZDJ4ZUQ4.cjs.map → chunk-OJ5ROJSS.cjs.map} +1 -1
- package/dist/{chunk-HWTUVLYB.js → chunk-Q74TSDZY.js} +2 -2
- package/dist/{chunk-U2YDR5DT.js → chunk-RTQ57HC5.js} +2 -2
- package/dist/{chunk-5USSSRAL.cjs → chunk-T2EBDVMZ.cjs} +26 -26
- package/dist/{chunk-5USSSRAL.cjs.map → chunk-T2EBDVMZ.cjs.map} +1 -1
- package/dist/{chunk-TNLFAJPA.js → chunk-TP5MVWQ2.js} +4721 -4901
- package/dist/chunk-TP5MVWQ2.js.map +1 -0
- package/dist/{chunk-KIIOBK7G.cjs → chunk-WVC627C7.cjs} +26 -26
- package/dist/{chunk-KIIOBK7G.cjs.map → chunk-WVC627C7.cjs.map} +1 -1
- package/dist/{chunk-XUNJILJT.cjs → chunk-X5TAAOE7.cjs} +62 -62
- package/dist/{chunk-XUNJILJT.cjs.map → chunk-X5TAAOE7.cjs.map} +1 -1
- package/dist/{chunk-FTXDIDNX.cjs → chunk-XVHNAMAL.cjs} +15 -15
- package/dist/{chunk-FTXDIDNX.cjs.map → chunk-XVHNAMAL.cjs.map} +1 -1
- package/dist/{chunk-MKLP2SOZ.cjs → chunk-YFPZLP63.cjs} +1196 -1376
- package/dist/chunk-YFPZLP63.cjs.map +1 -0
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chart.d.ts +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/chat-sidebar.d.ts.map +1 -1
- package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
- package/dist/components/chat/guide-welcome.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/chat/mingo-chat-history.d.ts.map +1 -1
- package/dist/components/chat/mingo-welcome.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
- package/dist/components/features/time-tracker/time-tracker-panel.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +129 -135
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +9 -15
- package/dist/components/index.js.map +1 -1
- package/dist/components/layout/page-container.d.ts.map +1 -1
- package/dist/components/navigation/app-layout-drawer.d.ts +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +2 -8
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +0 -1
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +1 -7
- package/dist/components/ui/modal-v2.d.ts.map +1 -1
- package/dist/components/ui/modal.d.ts.map +1 -1
- package/dist/index.cjs +2 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -7
- package/package.json +1 -3
- package/src/components/chat/chat-message-list.tsx +6 -7
- package/src/components/chat/chat-sidebar.tsx +4 -9
- package/src/components/chat/chat-ticket-list.tsx +2 -8
- package/src/components/chat/guide-welcome.tsx +4 -6
- package/src/components/chat/mingo-chat-history.tsx +4 -6
- package/src/components/chat/mingo-welcome.tsx +4 -6
- package/src/components/features/notifications/notification-drawer.tsx +4 -8
- package/src/components/features/time-tracker/time-tracker-panel.tsx +3 -11
- package/src/components/layout/page-container.tsx +5 -17
- package/src/components/ui/drawer.tsx +3 -8
- package/src/components/ui/index.ts +0 -1
- package/src/components/ui/modal-v2.tsx +2 -12
- package/src/components/ui/modal.tsx +2 -9
- package/src/styles/index.css +0 -2
- package/dist/chunk-MKLP2SOZ.cjs.map +0 -1
- package/dist/chunk-TNLFAJPA.js.map +0 -1
- package/dist/components/ui/overlay-scroll-area.d.ts +0 -59
- package/dist/components/ui/overlay-scroll-area.d.ts.map +0 -1
- package/src/components/ui/overlay-scroll-area.tsx +0 -219
- package/src/stories/OverlayScrollArea.stories.tsx +0 -52
- package/src/styles/overlay-scrollbars-theme.css +0 -19
- package/src/styles/vendor-overlayscrollbars.css +0 -673
- /package/dist/{chunk-KQGFKG6Y.js.map → chunk-AS5B343N.js.map} +0 -0
- /package/dist/{chunk-WGJPTFRH.js.map → chunk-CBNHSXTR.js.map} +0 -0
- /package/dist/{chunk-QL7ODLJA.js.map → chunk-EFGFAVOI.js.map} +0 -0
- /package/dist/{chunk-YQBPIUZU.js.map → chunk-GSKLTMIY.js.map} +0 -0
- /package/dist/{chunk-ZHQQRYMB.js.map → chunk-JGSBLQLE.js.map} +0 -0
- /package/dist/{chunk-6B27O3ZB.js.map → chunk-JWXOZRZ6.js.map} +0 -0
- /package/dist/{chunk-R5QYMUKN.js.map → chunk-KW33TBQX.js.map} +0 -0
- /package/dist/{chunk-IDKDOQZL.js.map → chunk-LDVQIOS7.js.map} +0 -0
- /package/dist/{chunk-H7ETLG65.js.map → chunk-MRKRE54X.js.map} +0 -0
- /package/dist/{chunk-HWTUVLYB.js.map → chunk-Q74TSDZY.js.map} +0 -0
- /package/dist/{chunk-U2YDR5DT.js.map → chunk-RTQ57HC5.js.map} +0 -0
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import * as React from 'react'
|
|
4
4
|
import { cn } from '../../utils/cn'
|
|
5
5
|
import { ScrollFadeOverlay, useScrollFade } from '../ui/scroll-fade'
|
|
6
|
-
import { OverlayScrollArea } from '../ui/overlay-scroll-area'
|
|
7
6
|
import { ChatTicketItem, type ChatTicketItemData } from './entity-cards/chat-ticket-item'
|
|
8
7
|
|
|
9
8
|
export interface ChatTicketListProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
@@ -47,12 +46,7 @@ const ChatTicketList = React.forwardRef<HTMLDivElement, ChatTicketListProps>(
|
|
|
47
46
|
!fadeBottom && "border-b rounded-b-md",
|
|
48
47
|
)}
|
|
49
48
|
>
|
|
50
|
-
<
|
|
51
|
-
viewportRef={scrollRef}
|
|
52
|
-
className="h-full"
|
|
53
|
-
contentClassName="overscroll-contain"
|
|
54
|
-
onScroll={updateFade}
|
|
55
|
-
>
|
|
49
|
+
<div ref={scrollRef} className="overflow-y-auto overscroll-contain h-full" onScroll={updateFade}>
|
|
56
50
|
{tickets.map((ticket) => (
|
|
57
51
|
<ChatTicketItem
|
|
58
52
|
key={ticket.id}
|
|
@@ -60,7 +54,7 @@ const ChatTicketList = React.forwardRef<HTMLDivElement, ChatTicketListProps>(
|
|
|
60
54
|
onClick={onTicketClick}
|
|
61
55
|
/>
|
|
62
56
|
))}
|
|
63
|
-
</
|
|
57
|
+
</div>
|
|
64
58
|
|
|
65
59
|
{/* Scroll-fade overlays — tinted with the page background so edge
|
|
66
60
|
tickets fade into the surface behind the list in BOTH themes
|
|
@@ -4,7 +4,6 @@ import * as React from 'react'
|
|
|
4
4
|
import { cn } from '../../utils/cn'
|
|
5
5
|
import { MingoIcon } from '../icons'
|
|
6
6
|
import { ScrollFadeOverlay, useScrollFade } from '../ui/scroll-fade'
|
|
7
|
-
import { OverlayScrollArea } from '../ui/overlay-scroll-area'
|
|
8
7
|
import { Skeleton } from '../ui/skeleton'
|
|
9
8
|
import { QuickActionWall } from './quick-action-wall'
|
|
10
9
|
import { EntityIcon } from '../icon-display'
|
|
@@ -142,11 +141,10 @@ export function GuideWelcome({
|
|
|
142
141
|
{/* Greeting + slash-command list share one scroll region; `relative` so
|
|
143
142
|
the edge fades can overlay it. */}
|
|
144
143
|
<div className="relative flex flex-1 min-h-0 flex-col">
|
|
145
|
-
<
|
|
146
|
-
|
|
144
|
+
<div
|
|
145
|
+
ref={scrollRef}
|
|
147
146
|
onScroll={updateScrollFade}
|
|
148
|
-
className="flex-1 min-h-0"
|
|
149
|
-
contentClassName="flex min-h-full flex-col gap-[var(--spacing-system-m)] overscroll-contain"
|
|
147
|
+
className="flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-y-auto overscroll-contain"
|
|
150
148
|
>
|
|
151
149
|
{/* Greeting grows to fill (`flex-1`) so the slash-command list stays
|
|
152
150
|
anchored below it — but its content is anchored at the TOP of the
|
|
@@ -189,7 +187,7 @@ export function GuideWelcome({
|
|
|
189
187
|
</div>
|
|
190
188
|
|
|
191
189
|
{children}
|
|
192
|
-
</
|
|
190
|
+
</div>
|
|
193
191
|
|
|
194
192
|
{/* Edge scroll-fades — visible only when content is hidden beyond them. */}
|
|
195
193
|
<ScrollFadeOverlay edge="top" visible={fadeTop} className="h-12" />
|
|
@@ -5,7 +5,6 @@ import { cn } from '../../utils/cn'
|
|
|
5
5
|
import { ActionsMenuDropdown, type ActionsMenuItem } from '../ui/actions-menu'
|
|
6
6
|
import { Button } from '../ui/button'
|
|
7
7
|
import { ScrollFadeOverlay, useScrollFade } from '../ui/scroll-fade'
|
|
8
|
-
import { OverlayScrollArea } from '../ui/overlay-scroll-area'
|
|
9
8
|
import { Ellipsis01Icon, SearchXmarkIcon } from '../icons-v2-generated'
|
|
10
9
|
import { ChatListEmptyState } from './chat-list-empty-state'
|
|
11
10
|
import type { DialogItem } from './types/component.types'
|
|
@@ -339,11 +338,10 @@ export function MingoChatHistory({
|
|
|
339
338
|
{/* Scroll region — the search INPUT now lives in the panel header
|
|
340
339
|
(Figma 116:51217), so the list is just the grouped rows + fades. */}
|
|
341
340
|
<div className="relative flex flex-1 min-h-0 flex-col">
|
|
342
|
-
<
|
|
343
|
-
|
|
341
|
+
<div
|
|
342
|
+
ref={scrollRef}
|
|
344
343
|
onScroll={updateFade}
|
|
345
|
-
className="flex-1 min-h-0"
|
|
346
|
-
contentClassName="flex flex-col gap-[var(--spacing-system-m)] overscroll-contain"
|
|
344
|
+
className="flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-y-auto overscroll-contain"
|
|
347
345
|
>
|
|
348
346
|
{noSearchResults ? (
|
|
349
347
|
// No search matches — same centred glyph + title + caption layout as
|
|
@@ -376,7 +374,7 @@ export function MingoChatHistory({
|
|
|
376
374
|
))
|
|
377
375
|
)}
|
|
378
376
|
{hasMore ? <div ref={sentinelRef} className="h-px shrink-0" /> : null}
|
|
379
|
-
</
|
|
377
|
+
</div>
|
|
380
378
|
|
|
381
379
|
{/* Scroll-fade — only while content is hidden in that direction. */}
|
|
382
380
|
<ScrollFadeOverlay edge="top" visible={fadeTop} color="var(--color-bg-card)" className="h-12" />
|
|
@@ -8,7 +8,6 @@ import { QuickActionChipButton } from './quick-action-chip'
|
|
|
8
8
|
import { QuickActionWall } from './quick-action-wall'
|
|
9
9
|
import { Button } from '../ui/button'
|
|
10
10
|
import { ScrollFadeOverlay, useScrollFade } from '../ui/scroll-fade'
|
|
11
|
-
import { OverlayScrollArea } from '../ui/overlay-scroll-area'
|
|
12
11
|
import { XmarkIcon } from '../icons-v2-generated/signs-and-symbols/xmark-icon'
|
|
13
12
|
import {
|
|
14
13
|
CompassIcon,
|
|
@@ -240,11 +239,10 @@ export function MingoWelcome({
|
|
|
240
239
|
input. The wrapper is `relative` so the scroll-fade gradients can
|
|
241
240
|
overlay the top/bottom edges. */}
|
|
242
241
|
<div className="relative flex flex-1 min-h-0 flex-col">
|
|
243
|
-
<
|
|
244
|
-
|
|
242
|
+
<div
|
|
243
|
+
ref={scrollRef}
|
|
245
244
|
onScroll={updateScrollFade}
|
|
246
|
-
className="flex-1 min-h-0"
|
|
247
|
-
contentClassName="flex min-h-full flex-col gap-[var(--spacing-system-m)] overscroll-contain"
|
|
245
|
+
className="flex flex-1 min-h-0 flex-col gap-[var(--spacing-system-m)] overflow-y-auto overscroll-contain"
|
|
248
246
|
>
|
|
249
247
|
{/* Greeting — grows to fill (`flex-1`) so it centres vertically,
|
|
250
248
|
keeping the grid anchored at the bottom of the scroll area. Default
|
|
@@ -263,7 +261,7 @@ export function MingoWelcome({
|
|
|
263
261
|
<p className="text-h4 text-ods-text-secondary">{subtitle}</p>
|
|
264
262
|
</div>
|
|
265
263
|
</div>
|
|
266
|
-
</
|
|
264
|
+
</div>
|
|
267
265
|
|
|
268
266
|
{/* Edge scroll-fades — visible only when content is hidden beyond them.
|
|
269
267
|
Fade into the panel's dark `ods-bg` surface (the default color), matching
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
3
|
import { useEffect, useRef } from 'react'
|
|
4
|
-
import { OverlayScrollArea } from '../../ui/overlay-scroll-area'
|
|
5
4
|
import { BellOffIcon } from '../../icons-v2-generated/interface/bell-off-icon'
|
|
6
5
|
import { ClockHistoryIcon, ArrowRightUpIcon } from '../../icons-v2-generated'
|
|
7
6
|
import { useAppLayoutDrawerContainer } from '../../navigation/app-layout-context'
|
|
@@ -190,12 +189,9 @@ function DrawerScrollList({
|
|
|
190
189
|
|
|
191
190
|
const isEmpty = unreadNotifications.length === 0
|
|
192
191
|
return (
|
|
193
|
-
<
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
// padding, so `px-*` on `contentClassName` would be silently dropped.
|
|
197
|
-
className="flex-1 min-h-0 px-[var(--spacing-system-m)]"
|
|
198
|
-
contentClassName="flex flex-col gap-[var(--spacing-system-xs)]"
|
|
192
|
+
<div
|
|
193
|
+
ref={scrollRef}
|
|
194
|
+
className="flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]"
|
|
199
195
|
>
|
|
200
196
|
{isEmpty && !isLoadingMore ? (
|
|
201
197
|
<EmptyState />
|
|
@@ -218,7 +214,7 @@ function DrawerScrollList({
|
|
|
218
214
|
{loadMore && hasMore && <div ref={sentinelRef} className="h-1" aria-hidden="true" />}
|
|
219
215
|
</>
|
|
220
216
|
)}
|
|
221
|
-
</
|
|
217
|
+
</div>
|
|
222
218
|
)
|
|
223
219
|
}
|
|
224
220
|
|
|
@@ -21,7 +21,6 @@ import {
|
|
|
21
21
|
XmarkIcon,
|
|
22
22
|
} from '../../icons-v2-generated'
|
|
23
23
|
import { useTrackerClock } from './use-tracker-clock'
|
|
24
|
-
import { OverlayScrollArea } from '../../ui/overlay-scroll-area'
|
|
25
24
|
import type { TimeTrackerData, TimeTrackerEntry, TimeTrackerStatus } from './types'
|
|
26
25
|
|
|
27
26
|
interface CustomerAutocompleteOption extends AutocompleteOption {
|
|
@@ -150,18 +149,11 @@ export function TimeTrackerPanel({
|
|
|
150
149
|
const visibleEntries = lastEntries.slice(0, 3)
|
|
151
150
|
|
|
152
151
|
return (
|
|
153
|
-
<
|
|
152
|
+
<div
|
|
154
153
|
className={cn(
|
|
155
|
-
|
|
156
|
-
// forces `padding: 0` on the viewport, so padding on the scroller is
|
|
157
|
-
// silently dropped (see OverlayScrollArea docs).
|
|
158
|
-
'max-h-[calc(100vh-6rem)] w-full rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-m)]',
|
|
154
|
+
'relative flex max-h-[calc(100vh-6rem)] w-full flex-col gap-[var(--spacing-system-l)] overflow-y-auto rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-m)]',
|
|
159
155
|
className,
|
|
160
156
|
)}
|
|
161
|
-
// No `relative` here so the absolute close button anchors to the padded
|
|
162
|
-
// host (OverlayScrollArea's host is always relative) and keeps its inset
|
|
163
|
-
// from the card edge instead of from the padding box.
|
|
164
|
-
contentClassName="flex flex-col gap-[var(--spacing-system-l)]"
|
|
165
157
|
>
|
|
166
158
|
<Button
|
|
167
159
|
variant="transparent"
|
|
@@ -322,7 +314,7 @@ export function TimeTrackerPanel({
|
|
|
322
314
|
<Button variant="outline" fullWidth onClick={onClose} className="md:hidden">
|
|
323
315
|
Close
|
|
324
316
|
</Button>
|
|
325
|
-
</
|
|
317
|
+
</div>
|
|
326
318
|
)
|
|
327
319
|
}
|
|
328
320
|
|
|
@@ -4,7 +4,6 @@ import React from 'react'
|
|
|
4
4
|
import { cn } from '../../utils/cn'
|
|
5
5
|
import type { ActionsMenuGroup } from '../ui/actions-menu'
|
|
6
6
|
import { PageActions, type PageActionButton } from '../ui/page-actions'
|
|
7
|
-
import { OverlayScrollArea } from '../ui/overlay-scroll-area'
|
|
8
7
|
import { BackButton } from './back-button'
|
|
9
8
|
|
|
10
9
|
// Legacy interface for backward compatibility (layout version)
|
|
@@ -394,7 +393,7 @@ function renderAdvancedPageContainer({
|
|
|
394
393
|
|
|
395
394
|
switch (variant) {
|
|
396
395
|
case 'detail':
|
|
397
|
-
return cn('flex-1
|
|
396
|
+
return cn('flex-1 overflow-auto', mobilePadding, contentClassName)
|
|
398
397
|
case 'list':
|
|
399
398
|
return cn('flex flex-col gap-4 md:gap-6', mobilePadding, contentClassName)
|
|
400
399
|
case 'form':
|
|
@@ -408,21 +407,10 @@ function renderAdvancedPageContainer({
|
|
|
408
407
|
return (
|
|
409
408
|
<div className={getContainerClasses()}>
|
|
410
409
|
{renderHeader()}
|
|
411
|
-
|
|
412
|
-
{
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
// on the host, while layout (`flex flex-col gap-*`) reaches the scroller,
|
|
416
|
-
// the direct parent of the children (OverlayScrollbars zeroes viewport
|
|
417
|
-
// padding, so padding on the scroller alone would be dropped).
|
|
418
|
-
<OverlayScrollArea className={getContentClasses()} contentClassName={contentClassName}>
|
|
419
|
-
{children}
|
|
420
|
-
</OverlayScrollArea>
|
|
421
|
-
) : (
|
|
422
|
-
<div className={getContentClasses()}>
|
|
423
|
-
{children}
|
|
424
|
-
</div>
|
|
425
|
-
)}
|
|
410
|
+
|
|
411
|
+
<div className={getContentClasses()}>
|
|
412
|
+
{children}
|
|
413
|
+
</div>
|
|
426
414
|
</div>
|
|
427
415
|
)
|
|
428
416
|
}
|
|
@@ -7,7 +7,6 @@ import { X } from "lucide-react"
|
|
|
7
7
|
|
|
8
8
|
import { cn } from "../../utils/cn"
|
|
9
9
|
import { useHeaderHeight } from "../../hooks/ui/use-header-height"
|
|
10
|
-
import { OverlayScrollArea } from "./overlay-scroll-area"
|
|
11
10
|
|
|
12
11
|
/** Unified overlay backdrop — dimmed, no blur. Single source of truth for
|
|
13
12
|
* every full-screen backdrop (Drawer, AppLayoutDrawer, MobileBurgerMenu,
|
|
@@ -531,16 +530,12 @@ DrawerDescription.displayName = "DrawerDescription"
|
|
|
531
530
|
|
|
532
531
|
const DrawerBody = ({
|
|
533
532
|
className,
|
|
534
|
-
children,
|
|
535
533
|
...props
|
|
536
534
|
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
537
|
-
<
|
|
538
|
-
className={cn("flex-1
|
|
539
|
-
contentClassName="flex flex-col gap-4"
|
|
535
|
+
<div
|
|
536
|
+
className={cn("flex flex-1 flex-col gap-4 overflow-y-auto", className)}
|
|
540
537
|
{...props}
|
|
541
|
-
|
|
542
|
-
{children}
|
|
543
|
-
</OverlayScrollArea>
|
|
538
|
+
/>
|
|
544
539
|
)
|
|
545
540
|
DrawerBody.displayName = "DrawerBody"
|
|
546
541
|
|
|
@@ -5,7 +5,6 @@ import { useEffect, useState } from "react"
|
|
|
5
5
|
import { usePreventScroll } from "@react-aria/overlays"
|
|
6
6
|
import { XmarkIcon } from "../icons-v2-generated"
|
|
7
7
|
import { cn } from "../../utils/cn"
|
|
8
|
-
import { OverlayScrollArea } from "./overlay-scroll-area"
|
|
9
8
|
|
|
10
9
|
// Duration of the open/close animation in ms — keep in sync with the
|
|
11
10
|
// `duration-200` utilities applied to the backdrop and panel below.
|
|
@@ -132,18 +131,9 @@ Modal.displayName = "ModalV2"
|
|
|
132
131
|
|
|
133
132
|
const ModalContent = React.forwardRef<HTMLDivElement, ModalContentProps>(
|
|
134
133
|
({ children, className }, ref) => (
|
|
135
|
-
|
|
136
|
-
// single scrolling div that directly parented the children, so it may carry
|
|
137
|
-
// layout (`flex flex-col gap-*` — must reach the scroller/`contentClassName`,
|
|
138
|
-
// the direct parent of the children) OR padding (must stay on the host, since
|
|
139
|
-
// OverlayScrollbars zeroes viewport padding). Each class lands where it works.
|
|
140
|
-
<OverlayScrollArea
|
|
141
|
-
viewportRef={ref}
|
|
142
|
-
className={cn("flex-1 min-h-0", className)}
|
|
143
|
-
contentClassName={className}
|
|
144
|
-
>
|
|
134
|
+
<div ref={ref} className={cn("flex-1 min-h-0 overflow-y-auto", className)}>
|
|
145
135
|
{children}
|
|
146
|
-
</
|
|
136
|
+
</div>
|
|
147
137
|
)
|
|
148
138
|
)
|
|
149
139
|
ModalContent.displayName = "ModalV2Content"
|
|
@@ -4,7 +4,6 @@ import * as React from "react"
|
|
|
4
4
|
import { useEffect } from "react"
|
|
5
5
|
import { usePreventScroll } from "@react-aria/overlays"
|
|
6
6
|
import { cn } from "../../utils/cn"
|
|
7
|
-
import { OverlayScrollArea } from "./overlay-scroll-area"
|
|
8
7
|
|
|
9
8
|
interface ModalProps {
|
|
10
9
|
isOpen: boolean
|
|
@@ -83,15 +82,9 @@ Modal.displayName = "Modal"
|
|
|
83
82
|
/** @deprecated Use ModalV2Content from './modal-v2' instead. */
|
|
84
83
|
const ModalContent = React.forwardRef<HTMLDivElement, ModalContentProps>(
|
|
85
84
|
({ children, className }, ref) => (
|
|
86
|
-
|
|
87
|
-
// or padding (must stay on the host), so it goes to both layers.
|
|
88
|
-
<OverlayScrollArea
|
|
89
|
-
viewportRef={ref}
|
|
90
|
-
className={cn("min-h-0 flex-1", className)}
|
|
91
|
-
contentClassName={className}
|
|
92
|
-
>
|
|
85
|
+
<div ref={ref} className={cn("overflow-y-auto min-h-0 flex-1", className)}>
|
|
93
86
|
{children}
|
|
94
|
-
</
|
|
87
|
+
</div>
|
|
95
88
|
)
|
|
96
89
|
)
|
|
97
90
|
ModalContent.displayName = "ModalContent"
|
package/src/styles/index.css
CHANGED