@semiont/react-ui 0.4.13 → 0.4.14
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/index.d.mts +8 -2
- package/dist/index.mjs +21 -17
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/Toolbar.tsx +13 -13
- package/src/components/resource/panels/CollaborationPanel.tsx +9 -1
- package/src/features/resource-viewer/components/ResourceViewerPage.tsx +7 -0
- package/src/styles/patterns/panels-base.css +12 -0
package/package.json
CHANGED
|
@@ -77,19 +77,6 @@ export function Toolbar<T extends string = string>({
|
|
|
77
77
|
<span className="semiont-toolbar-icon" aria-hidden="true">📒</span>
|
|
78
78
|
</button>
|
|
79
79
|
|
|
80
|
-
{/* Collaboration Icon */}
|
|
81
|
-
<button
|
|
82
|
-
onClick={() => handlePanelToggle('collaboration')}
|
|
83
|
-
className="semiont-toolbar-button"
|
|
84
|
-
data-active={activePanel === 'collaboration'}
|
|
85
|
-
data-panel="collaboration"
|
|
86
|
-
aria-label={t('collaboration')}
|
|
87
|
-
aria-pressed={activePanel === 'collaboration'}
|
|
88
|
-
title={t('collaboration')}
|
|
89
|
-
>
|
|
90
|
-
<span className="semiont-toolbar-icon" aria-hidden="true">👥</span>
|
|
91
|
-
</button>
|
|
92
|
-
|
|
93
80
|
{/* JSON-LD Icon */}
|
|
94
81
|
<button
|
|
95
82
|
onClick={() => handlePanelToggle('jsonld')}
|
|
@@ -102,6 +89,19 @@ export function Toolbar<T extends string = string>({
|
|
|
102
89
|
>
|
|
103
90
|
<span className="semiont-toolbar-icon" aria-hidden="true">🌐</span>
|
|
104
91
|
</button>
|
|
92
|
+
|
|
93
|
+
{/* Collaboration Icon */}
|
|
94
|
+
<button
|
|
95
|
+
onClick={() => handlePanelToggle('collaboration')}
|
|
96
|
+
className="semiont-toolbar-button"
|
|
97
|
+
data-active={activePanel === 'collaboration'}
|
|
98
|
+
data-panel="collaboration"
|
|
99
|
+
aria-label={t('collaboration')}
|
|
100
|
+
aria-pressed={activePanel === 'collaboration'}
|
|
101
|
+
title={t('collaboration')}
|
|
102
|
+
>
|
|
103
|
+
<span className="semiont-toolbar-icon" aria-hidden="true">👥</span>
|
|
104
|
+
</button>
|
|
105
105
|
</>
|
|
106
106
|
)}
|
|
107
107
|
|
|
@@ -7,12 +7,14 @@ interface Props {
|
|
|
7
7
|
isConnected: boolean;
|
|
8
8
|
eventCount: number;
|
|
9
9
|
lastEventTimestamp?: string;
|
|
10
|
+
knowledgeBaseName?: string;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
export function CollaborationPanel({
|
|
13
14
|
isConnected,
|
|
14
15
|
eventCount,
|
|
15
|
-
lastEventTimestamp
|
|
16
|
+
lastEventTimestamp,
|
|
17
|
+
knowledgeBaseName
|
|
16
18
|
}: Props) {
|
|
17
19
|
const t = useTranslations('CollaborationPanel');
|
|
18
20
|
|
|
@@ -52,6 +54,12 @@ export function CollaborationPanel({
|
|
|
52
54
|
{t('title')}
|
|
53
55
|
</h3>
|
|
54
56
|
|
|
57
|
+
{knowledgeBaseName && (
|
|
58
|
+
<div style={{ padding: '0 0.75rem 0.5rem', fontSize: '0.8rem', color: 'var(--semiont-color-neutral-400)' }}>
|
|
59
|
+
{knowledgeBaseName}
|
|
60
|
+
</div>
|
|
61
|
+
)}
|
|
62
|
+
|
|
55
63
|
{/* Connection Status Section */}
|
|
56
64
|
<div className="semiont-collaboration-panel__section">
|
|
57
65
|
<h3 className="semiont-collaboration-panel__heading">
|
|
@@ -90,6 +90,11 @@ export interface ResourceViewerPageProps {
|
|
|
90
90
|
* SSE attention stream connection status for the active workspace
|
|
91
91
|
*/
|
|
92
92
|
streamStatus: StreamStatus;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Name of the active knowledge base (for display in panels)
|
|
96
|
+
*/
|
|
97
|
+
knowledgeBaseName?: string | undefined;
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
/**
|
|
@@ -128,6 +133,7 @@ export function ResourceViewerPage({
|
|
|
128
133
|
ToolbarPanels,
|
|
129
134
|
refetchDocument,
|
|
130
135
|
streamStatus,
|
|
136
|
+
knowledgeBaseName,
|
|
131
137
|
}: ResourceViewerPageProps) {
|
|
132
138
|
// Translations
|
|
133
139
|
const tw = useTranslations('ReferenceWizard');
|
|
@@ -628,6 +634,7 @@ export function ResourceViewerPage({
|
|
|
628
634
|
<CollaborationPanel
|
|
629
635
|
isConnected={streamStatus === 'connected'}
|
|
630
636
|
eventCount={0}
|
|
637
|
+
knowledgeBaseName={knowledgeBaseName}
|
|
631
638
|
/>
|
|
632
639
|
)}
|
|
633
640
|
|
|
@@ -401,4 +401,16 @@
|
|
|
401
401
|
|
|
402
402
|
.semiont-panel-actions--between {
|
|
403
403
|
justify-content: space-between;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/* Login form pulsing border for first-launch nudge */
|
|
407
|
+
@keyframes semiont-pulse-border {
|
|
408
|
+
0%, 100% { border-color: var(--semiont-color-primary-300, #93c5fd); }
|
|
409
|
+
50% { border-color: var(--semiont-color-primary-600, #2563eb); }
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
.semiont-panel__login-form--pulsing {
|
|
413
|
+
border: 2px solid var(--semiont-color-primary-400, #60a5fa);
|
|
414
|
+
border-radius: var(--semiont-panel-border-radius, 0.5rem);
|
|
415
|
+
animation: semiont-pulse-border 2s ease-in-out infinite;
|
|
404
416
|
}
|