@floegence/floe-webapp-core 0.33.5 → 0.33.6
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/components/file-browser/FileBrowser.js +97 -132
- package/dist/components/layout/SidebarPane.d.ts +19 -0
- package/dist/components/layout/SidebarPane.js +68 -0
- package/dist/components/layout/index.d.ts +1 -0
- package/dist/full.js +163 -161
- package/dist/layout.js +14 -12
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/full.js
CHANGED
|
@@ -82,55 +82,56 @@ import { SegmentedControl as mc } from "./components/ui/SegmentedControl.js";
|
|
|
82
82
|
import { Shell as lc } from "./components/layout/Shell.js";
|
|
83
83
|
import { ShellBlock as sc } from "./components/chat/blocks/ShellBlock.js";
|
|
84
84
|
import { Sidebar as xc, SidebarContent as Ic, SidebarItem as gc, SidebarItemList as Cc, SidebarSection as uc } from "./components/layout/Sidebar.js";
|
|
85
|
-
import {
|
|
86
|
-
import {
|
|
87
|
-
import {
|
|
88
|
-
import {
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
-
import {
|
|
92
|
-
import {
|
|
93
|
-
import {
|
|
94
|
-
import {
|
|
95
|
-
import {
|
|
96
|
-
import {
|
|
97
|
-
import {
|
|
98
|
-
import {
|
|
99
|
-
import {
|
|
100
|
-
import {
|
|
101
|
-
import {
|
|
102
|
-
import {
|
|
103
|
-
import {
|
|
104
|
-
import {
|
|
105
|
-
import {
|
|
106
|
-
import {
|
|
107
|
-
import {
|
|
108
|
-
import {
|
|
109
|
-
import {
|
|
110
|
-
import {
|
|
111
|
-
import {
|
|
112
|
-
import {
|
|
113
|
-
import {
|
|
114
|
-
import {
|
|
115
|
-
import {
|
|
116
|
-
import {
|
|
117
|
-
import {
|
|
118
|
-
import {
|
|
119
|
-
import {
|
|
120
|
-
import {
|
|
121
|
-
import {
|
|
122
|
-
import {
|
|
123
|
-
import {
|
|
124
|
-
import {
|
|
125
|
-
import {
|
|
126
|
-
import {
|
|
127
|
-
import {
|
|
128
|
-
import {
|
|
129
|
-
import {
|
|
130
|
-
import {
|
|
131
|
-
import {
|
|
132
|
-
import {
|
|
133
|
-
import {
|
|
85
|
+
import { SidebarPane as kc } from "./components/layout/SidebarPane.js";
|
|
86
|
+
import { Skeleton as Fc, SkeletonCard as Bc, SkeletonList as Pc, SkeletonText as yc } from "./components/loading/Skeleton.js";
|
|
87
|
+
import { SnakeLoader as Mc } from "./components/loading/SnakeLoader.js";
|
|
88
|
+
import { Stepper as vc, Wizard as wc, useWizard as bc } from "./components/ui/Stepper.js";
|
|
89
|
+
import { StreamingCursor as Lc } from "./components/chat/status/StreamingCursor.js";
|
|
90
|
+
import { SvgBlock as Rc } from "./components/chat/blocks/SvgBlock.js";
|
|
91
|
+
import { Switch as Hc } from "./components/ui/Switch.js";
|
|
92
|
+
import { TabPanel as Vc, Tabs as Oc } from "./components/ui/Tabs.js";
|
|
93
|
+
import { TerminalWidget as Nc } from "./widgets/TerminalWidget.js";
|
|
94
|
+
import { TextBlock as Kc } from "./components/chat/blocks/TextBlock.js";
|
|
95
|
+
import { ThemeProvider as Qc, createThemeService as Zc, useTheme as Xc } from "./context/ThemeContext.js";
|
|
96
|
+
import { ThinkingBlock as jc } from "./components/chat/blocks/ThinkingBlock.js";
|
|
97
|
+
import { ToolCallBlock as Yc } from "./components/chat/blocks/ToolCallBlock.js";
|
|
98
|
+
import { Tooltip as em } from "./components/ui/Tooltip.js";
|
|
99
|
+
import { TopBar as rm } from "./components/layout/TopBar.js";
|
|
100
|
+
import { TopBarIconButton as im } from "./components/layout/TopBarIconButton.js";
|
|
101
|
+
import { ViewActivationProvider as am, useViewActivation as cm } from "./context/ViewActivationContext.js";
|
|
102
|
+
import { VirtualMessageList as pm } from "./components/chat/message-list/VirtualMessageList.js";
|
|
103
|
+
import { WidgetFrame as fm } from "./components/deck/WidgetFrame.js";
|
|
104
|
+
import { WidgetPalette as dm } from "./components/deck/WidgetPalette.js";
|
|
105
|
+
import { WidgetRegistryProvider as Im, createWidgetRegistry as gm, useWidgetRegistry as Cm } from "./context/WidgetRegistry.js";
|
|
106
|
+
import { WidgetResizeHandle as hm } from "./components/deck/WidgetResizeHandle.js";
|
|
107
|
+
import { WidgetStateProvider as Sm, useCurrentWidgetId as Fm, useWidgetState as Bm, useWidgetStateContext as Pm } from "./context/WidgetStateContext.js";
|
|
108
|
+
import { WidgetTypeSwitcher as Dm } from "./components/deck/WidgetTypeSwitcher.js";
|
|
109
|
+
import { WorkingIndicator as Tm } from "./components/chat/status/WorkingIndicator.js";
|
|
110
|
+
import { applyDragDelta as wm, applyResizeDelta as bm, getGridCellSize as Wm, pixelDeltaToGridDelta as Lm, positionToGridArea as Am, snapToGrid as Rm } from "./utils/gridLayout.js";
|
|
111
|
+
import { buildAssistantNoticeEvents as Hm, createStreamEventBuilder as Em, isStreamEvent as Vm } from "./components/chat/streamEvents.js";
|
|
112
|
+
import { checkCollision as Um, constrainPosition as Nm, findFreePosition as zm, hasCollision as Km } from "./utils/gridCollision.js";
|
|
113
|
+
import { cn as Qm } from "./utils/cn.js";
|
|
114
|
+
import { computeCodeDiff as Xm, computeCodeDiffSync as qm, configureDiffWorker as jm, createDiffWorker as Jm, hasDiffWorker as Ym, terminateDiffWorker as $m, waitForDiffWorker as ep } from "./components/chat/hooks/useCodeDiff.js";
|
|
115
|
+
import { configureMarkdownWorker as rp, createMarkdownWorker as tp, hasMarkdownWorker as ip, renderMarkdown as np, renderMarkdownSync as ap, terminateMarkdownWorker as cp, waitForMarkdownWorker as mp } from "./components/chat/hooks/useMarkdown.js";
|
|
116
|
+
import { configureMermaidWorker as lp, configureSyncMermaid as fp, renderMermaid as sp, terminateMermaidWorker as dp, useMermaid as xp } from "./components/chat/hooks/useMermaid.js";
|
|
117
|
+
import { configureShikiWorker as gp, configureSyncHighlighter as Cp, highlightCode as up, terminateShikiWorker as hp, useCodeHighlight as kp } from "./components/chat/hooks/useCodeHighlight.js";
|
|
118
|
+
import { createSimpleContext as Fp } from "./context/createSimpleContext.js";
|
|
119
|
+
import { deferAfterPaint as Pp, deferNonBlocking as yp } from "./utils/defer.js";
|
|
120
|
+
import { duration as Mp, easing as Tp, fadeIn as vp, listContainer as wp, listItem as bp, panelResize as Wp, popIn as Lp, scaleIn as Ap, sidebarVariants as Rp, slideInFromBottom as Gp, slideInFromLeft as Hp, slideInFromRight as Ep, slideInFromTop as Vp, springConfig as Op } from "./utils/animations.js";
|
|
121
|
+
import { formatKeybind as Np, matchKeybind as zp, parseKeybind as Kp } from "./utils/keybind.js";
|
|
122
|
+
import { isTypingElement as Qp, shouldIgnoreHotkeys as Zp } from "./utils/dom.js";
|
|
123
|
+
import { lockBodyStyle as qp } from "./utils/bodyStyleLock.js";
|
|
124
|
+
import { registerCommandContributions as Jp, useCommandContributions as Yp } from "./hooks/useCommandContributions.js";
|
|
125
|
+
import { useAttachments as el } from "./components/chat/hooks/useAttachments.js";
|
|
126
|
+
import { useAutoScroll as rl } from "./components/chat/hooks/useAutoScroll.js";
|
|
127
|
+
import { useDebounce as il } from "./hooks/useDebounce.js";
|
|
128
|
+
import { useDeckDrag as al } from "./hooks/useDeckDrag.js";
|
|
129
|
+
import { useFileBrowserDropTarget as ml, useFileBrowserItemDrag as pl } from "./hooks/useFileBrowserDrag.js";
|
|
130
|
+
import { useKeybind as fl } from "./hooks/useKeybind.js";
|
|
131
|
+
import { useMediaQuery as dl } from "./hooks/useMediaQuery.js";
|
|
132
|
+
import { usePersisted as Il } from "./hooks/usePersisted.js";
|
|
133
|
+
import { useResizeObserver as Cl } from "./hooks/useResizeObserver.js";
|
|
134
|
+
import { useVirtualList as hl } from "./components/chat/hooks/useVirtualList.js";
|
|
134
135
|
export {
|
|
135
136
|
m as Activity,
|
|
136
137
|
zr as ActivityAppsMain,
|
|
@@ -423,49 +424,50 @@ export {
|
|
|
423
424
|
Ic as SidebarContent,
|
|
424
425
|
gc as SidebarItem,
|
|
425
426
|
Cc as SidebarItemList,
|
|
427
|
+
kc as SidebarPane,
|
|
426
428
|
uc as SidebarSection,
|
|
427
429
|
Ln as SidebarWidget,
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
430
|
+
Fc as Skeleton,
|
|
431
|
+
Bc as SkeletonCard,
|
|
432
|
+
Pc as SkeletonList,
|
|
433
|
+
yc as SkeletonText,
|
|
434
|
+
Mc as SnakeLoader,
|
|
433
435
|
tr as SparkleIcon,
|
|
434
436
|
ir as Sparkles,
|
|
435
437
|
nr as Star,
|
|
436
438
|
ar as StarIcon,
|
|
437
439
|
St as StatusIndicator,
|
|
438
|
-
|
|
440
|
+
vc as Stepper,
|
|
439
441
|
zt as StepsProgress,
|
|
440
442
|
cr as Stop,
|
|
441
|
-
|
|
443
|
+
Lc as StreamingCursor,
|
|
442
444
|
ri as StyleFileIcon,
|
|
443
445
|
tn as SuccessBlock,
|
|
444
446
|
mr as SuccessIcon,
|
|
445
447
|
pr as Sun,
|
|
446
448
|
lr as SunIcon,
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
449
|
+
Rc as SvgBlock,
|
|
450
|
+
Hc as Switch,
|
|
451
|
+
Vc as TabPanel,
|
|
452
|
+
Oc as Tabs,
|
|
451
453
|
fr as Tag,
|
|
452
454
|
sr as TagIcon,
|
|
453
455
|
dr as TargetIcon,
|
|
454
456
|
xr as Terminal,
|
|
455
457
|
Ir as TerminalIcon,
|
|
456
|
-
|
|
457
|
-
|
|
458
|
+
Nc as TerminalWidget,
|
|
459
|
+
Kc as TextBlock,
|
|
458
460
|
jr as Textarea,
|
|
459
|
-
|
|
460
|
-
|
|
461
|
+
Qc as ThemeProvider,
|
|
462
|
+
jc as ThinkingBlock,
|
|
461
463
|
gr as ThumbsDownIcon,
|
|
462
464
|
Cr as ThumbsUpIcon,
|
|
463
465
|
ur as Timer,
|
|
464
466
|
nn as TipBlock,
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
467
|
+
Yc as ToolCallBlock,
|
|
468
|
+
em as Tooltip,
|
|
469
|
+
rm as TopBar,
|
|
470
|
+
im as TopBarIconButton,
|
|
469
471
|
hr as Trash,
|
|
470
472
|
kr as TrashIcon,
|
|
471
473
|
Sr as TrendingDown,
|
|
@@ -477,135 +479,135 @@ export {
|
|
|
477
479
|
Mr as UserIcon,
|
|
478
480
|
Tr as Video,
|
|
479
481
|
vr as VideoIcon,
|
|
480
|
-
|
|
481
|
-
|
|
482
|
+
am as ViewActivationProvider,
|
|
483
|
+
pm as VirtualMessageList,
|
|
482
484
|
wr as Volume,
|
|
483
485
|
br as VolumeIcon,
|
|
484
486
|
Wr as VolumeOff,
|
|
485
487
|
Lr as Wand,
|
|
486
488
|
an as WarningBlock,
|
|
487
489
|
Ar as WarningIcon,
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
490
|
+
fm as WidgetFrame,
|
|
491
|
+
dm as WidgetPalette,
|
|
492
|
+
Im as WidgetRegistryProvider,
|
|
493
|
+
hm as WidgetResizeHandle,
|
|
494
|
+
Sm as WidgetStateProvider,
|
|
495
|
+
Dm as WidgetTypeSwitcher,
|
|
494
496
|
Rr as WifiIcon,
|
|
495
497
|
Gr as WifiOffIcon,
|
|
496
|
-
|
|
498
|
+
wc as Wizard,
|
|
497
499
|
Hr as Workflow,
|
|
498
|
-
|
|
500
|
+
Tm as WorkingIndicator,
|
|
499
501
|
Er as X,
|
|
500
502
|
Vr as XCircle,
|
|
501
503
|
Or as Zap,
|
|
502
504
|
Ur as ZapIcon,
|
|
503
|
-
|
|
504
|
-
|
|
505
|
+
wm as applyDragDelta,
|
|
506
|
+
bm as applyResizeDelta,
|
|
505
507
|
i as applyTheme,
|
|
506
|
-
|
|
508
|
+
Hm as buildAssistantNoticeEvents,
|
|
507
509
|
n as builtInThemes,
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
510
|
+
Um as checkCollision,
|
|
511
|
+
Qm as cn,
|
|
512
|
+
Xm as computeCodeDiff,
|
|
513
|
+
qm as computeCodeDiffSync,
|
|
514
|
+
jm as configureDiffWorker,
|
|
515
|
+
rp as configureMarkdownWorker,
|
|
516
|
+
lp as configureMermaidWorker,
|
|
517
|
+
gp as configureShikiWorker,
|
|
518
|
+
Cp as configureSyncHighlighter,
|
|
519
|
+
fp as configureSyncMermaid,
|
|
520
|
+
Nm as constrainPosition,
|
|
519
521
|
mi as createCommandService,
|
|
520
522
|
si as createComponentRegistry,
|
|
521
523
|
Hi as createDeckService,
|
|
522
|
-
|
|
524
|
+
Jm as createDiffWorker,
|
|
523
525
|
ga as createLayoutService,
|
|
524
|
-
|
|
526
|
+
tp as createMarkdownWorker,
|
|
525
527
|
za as createNotificationService,
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
528
|
+
Fp as createSimpleContext,
|
|
529
|
+
Em as createStreamEventBuilder,
|
|
530
|
+
Zc as createThemeService,
|
|
531
|
+
gm as createWidgetRegistry,
|
|
532
|
+
Pp as deferAfterPaint,
|
|
533
|
+
yp as deferNonBlocking,
|
|
534
|
+
Mp as duration,
|
|
535
|
+
Tp as easing,
|
|
536
|
+
vp as fadeIn,
|
|
537
|
+
zm as findFreePosition,
|
|
538
|
+
Np as formatKeybind,
|
|
537
539
|
ti as getFileIcon,
|
|
538
|
-
|
|
540
|
+
Wm as getGridCellSize,
|
|
539
541
|
yi as getGridConfigFromElement,
|
|
540
542
|
a as getSystemTheme,
|
|
541
|
-
|
|
543
|
+
Km as hasCollision,
|
|
542
544
|
di as hasComponentRegistryContext,
|
|
543
|
-
|
|
545
|
+
Ym as hasDiffWorker,
|
|
544
546
|
dn as hasFileBrowserDragContext,
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
547
|
+
ip as hasMarkdownWorker,
|
|
548
|
+
up as highlightCode,
|
|
549
|
+
Vm as isStreamEvent,
|
|
550
|
+
Qp as isTypingElement,
|
|
551
|
+
wp as listContainer,
|
|
552
|
+
bp as listItem,
|
|
553
|
+
qp as lockBodyStyle,
|
|
554
|
+
zp as matchKeybind,
|
|
555
|
+
Wp as panelResize,
|
|
556
|
+
Kp as parseKeybind,
|
|
557
|
+
Lm as pixelDeltaToGridDelta,
|
|
558
|
+
Lp as popIn,
|
|
559
|
+
Am as positionToGridArea,
|
|
560
|
+
Jp as registerCommandContributions,
|
|
561
|
+
np as renderMarkdown,
|
|
562
|
+
ap as renderMarkdownSync,
|
|
563
|
+
sp as renderMermaid,
|
|
564
|
+
Ap as scaleIn,
|
|
565
|
+
Zp as shouldIgnoreHotkeys,
|
|
566
|
+
Rp as sidebarVariants,
|
|
567
|
+
Gp as slideInFromBottom,
|
|
568
|
+
Hp as slideInFromLeft,
|
|
569
|
+
Ep as slideInFromRight,
|
|
570
|
+
Vp as slideInFromTop,
|
|
571
|
+
Rm as snapToGrid,
|
|
572
|
+
Op as springConfig,
|
|
573
|
+
$m as terminateDiffWorker,
|
|
574
|
+
cp as terminateMarkdownWorker,
|
|
575
|
+
dp as terminateMermaidWorker,
|
|
576
|
+
hp as terminateShikiWorker,
|
|
577
|
+
el as useAttachments,
|
|
578
|
+
rl as useAutoScroll,
|
|
577
579
|
Wt as useChatContext,
|
|
578
|
-
|
|
580
|
+
kp as useCodeHighlight,
|
|
579
581
|
pi as useCommand,
|
|
580
|
-
|
|
582
|
+
Yp as useCommandContributions,
|
|
581
583
|
xi as useComponentContextFactory,
|
|
582
584
|
Ii as useComponentRegistry,
|
|
583
|
-
|
|
584
|
-
|
|
585
|
+
Fm as useCurrentWidgetId,
|
|
586
|
+
il as useDebounce,
|
|
585
587
|
Ei as useDeck,
|
|
586
|
-
|
|
588
|
+
al as useDeckDrag,
|
|
587
589
|
Cn as useFileBrowser,
|
|
588
590
|
xn as useFileBrowserDrag,
|
|
589
|
-
|
|
590
|
-
|
|
591
|
+
ml as useFileBrowserDropTarget,
|
|
592
|
+
pl as useFileBrowserItemDrag,
|
|
591
593
|
vi as useFloeConfig,
|
|
592
594
|
Jn as useFormSubmitting,
|
|
593
|
-
|
|
595
|
+
fl as useKeybind,
|
|
594
596
|
Ca as useLayout,
|
|
595
|
-
|
|
596
|
-
|
|
597
|
+
dl as useMediaQuery,
|
|
598
|
+
xp as useMermaid,
|
|
597
599
|
Ka as useNotification,
|
|
598
600
|
gi as useOptionalComponentRegistry,
|
|
599
|
-
|
|
600
|
-
|
|
601
|
+
Il as usePersisted,
|
|
602
|
+
Cl as useResizeObserver,
|
|
601
603
|
wi as useResolvedFloeConfig,
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
604
|
+
Xc as useTheme,
|
|
605
|
+
cm as useViewActivation,
|
|
606
|
+
hl as useVirtualList,
|
|
607
|
+
Cm as useWidgetRegistry,
|
|
608
|
+
Bm as useWidgetState,
|
|
609
|
+
Pm as useWidgetStateContext,
|
|
610
|
+
bc as useWizard,
|
|
611
|
+
ep as waitForDiffWorker,
|
|
612
|
+
mp as waitForMarkdownWorker
|
|
611
613
|
};
|
package/dist/layout.js
CHANGED
|
@@ -1,30 +1,32 @@
|
|
|
1
|
-
import { ActivityBar as
|
|
1
|
+
import { ActivityBar as o } from "./components/layout/ActivityBar.js";
|
|
2
2
|
import { BottomBar as a, BottomBarItem as m, StatusIndicator as i } from "./components/layout/BottomBar.js";
|
|
3
3
|
import { KeepAliveStack as n } from "./components/layout/KeepAliveStack.js";
|
|
4
4
|
import { MobileTabBar as x } from "./components/layout/MobileTabBar.js";
|
|
5
|
-
import { Panel as
|
|
5
|
+
import { Panel as d, PanelContent as B, PanelHeader as b } from "./components/layout/Panel.js";
|
|
6
6
|
import { ResizeHandle as c } from "./components/layout/ResizeHandle.js";
|
|
7
|
-
import { Shell as
|
|
7
|
+
import { Shell as P } from "./components/layout/Shell.js";
|
|
8
8
|
import { Sidebar as T, SidebarContent as u, SidebarItem as v, SidebarItemList as A, SidebarSection as C } from "./components/layout/Sidebar.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { SidebarPane as h } from "./components/layout/SidebarPane.js";
|
|
10
|
+
import { TopBar as y } from "./components/layout/TopBar.js";
|
|
11
|
+
import { TopBarIconButton as K } from "./components/layout/TopBarIconButton.js";
|
|
11
12
|
export {
|
|
12
|
-
|
|
13
|
+
o as ActivityBar,
|
|
13
14
|
a as BottomBar,
|
|
14
15
|
m as BottomBarItem,
|
|
15
16
|
n as KeepAliveStack,
|
|
16
17
|
x as MobileTabBar,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
d as Panel,
|
|
19
|
+
B as PanelContent,
|
|
20
|
+
b as PanelHeader,
|
|
20
21
|
c as ResizeHandle,
|
|
21
|
-
|
|
22
|
+
P as Shell,
|
|
22
23
|
T as Sidebar,
|
|
23
24
|
u as SidebarContent,
|
|
24
25
|
v as SidebarItem,
|
|
25
26
|
A as SidebarItemList,
|
|
27
|
+
h as SidebarPane,
|
|
26
28
|
C as SidebarSection,
|
|
27
29
|
i as StatusIndicator,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
y as TopBar,
|
|
31
|
+
K as TopBarIconButton
|
|
30
32
|
};
|