cortex-react-components 2.13.0 → 2.13.2
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-2UNIT7NC.mjs +4 -0
- package/dist/{chunk-JCWFPKF3.mjs → chunk-5EQXJS23.mjs} +1 -1
- package/dist/{chunk-TTWEHUP5.mjs → chunk-6MSM3CZ6.mjs} +1 -1
- package/dist/{chunk-RS4VD3ML.mjs → chunk-6R6NYDWN.mjs} +1 -1
- package/dist/{chunk-UBJT7MPU.mjs → chunk-A7SGFSI5.mjs} +1 -1
- package/dist/chunk-CDVRH3MC.mjs +4 -0
- package/dist/chunk-CJ6APTVT.mjs +4 -0
- package/dist/{chunk-PMJGTB6S.mjs → chunk-CR326IJ6.mjs} +1 -1
- package/dist/{chunk-TVTTUSWM.mjs → chunk-E2OSUDXP.mjs} +1 -1
- package/dist/{chunk-JMIUGRDN.mjs → chunk-GGJZVAC4.mjs} +1 -1
- package/dist/{chunk-LAQ3QAUW.mjs → chunk-ITJH72Z2.mjs} +1 -1
- package/dist/{chunk-RVHCTANZ.mjs → chunk-KCEJXXM2.mjs} +1 -1
- package/dist/{chunk-7R47MHQE.mjs → chunk-KIYBEYSU.mjs} +1 -1
- package/dist/{chunk-RXUCV64J.mjs → chunk-NSJPZJQF.mjs} +1 -1
- package/dist/{chunk-E5LTCCBN.mjs → chunk-O57JJTH5.mjs} +1 -1
- package/dist/chunk-TKCFCYEQ.mjs +4 -0
- package/dist/components/Blocks/index.mjs +1 -1
- package/dist/components/CRM/index.mjs +1 -1
- package/dist/components/DigitalColleagues/MainPage.mjs +1 -1
- package/dist/components/DigitalColleagues/Pages/dashboardpage.mjs +1 -1
- package/dist/components/DigitalColleagues/Views/index.js +1 -1
- package/dist/components/DigitalColleagues/Views/index.mjs +1 -1
- package/dist/components/DigitalColleagues/index.js +1 -1
- package/dist/components/DigitalColleagues/index.mjs +1 -1
- package/dist/components/Foundary/MainPage.mjs +1 -1
- package/dist/components/Foundary/Pages/dashboardpage.mjs +1 -1
- package/dist/components/Foundary/Views/KnowledgeView.docs.js +40 -17
- package/dist/components/Foundary/Views/KnowledgeView.docs.mjs +40 -17
- package/dist/components/Foundary/Views/TeamsIndexView.d.ts +3 -3
- package/dist/components/Foundary/Views/TeamsIndexView.js +2 -2
- package/dist/components/Foundary/Views/TeamsIndexView.mjs +1 -1
- package/dist/components/Foundary/Views/index.js +1 -1
- package/dist/components/Foundary/Views/index.mjs +1 -1
- package/dist/components/Foundary/index.js +1 -1
- package/dist/components/Foundary/index.mjs +1 -1
- package/dist/components/Foundary/team-form.d.ts +1 -1
- package/dist/components/Foundary/team-form.js +2 -2
- package/dist/components/Foundary/team-form.mjs +1 -1
- package/dist/components/Foundary/types.d.ts +9 -0
- package/dist/components/HeaderFooter/Header.mjs +1 -1
- package/dist/components/HeaderFooter/index.mjs +1 -1
- package/dist/components/Heros/RenderHero.mjs +1 -1
- package/dist/components/Heros/index.mjs +1 -1
- package/dist/components/Holidays/HolidayTracker.mjs +1 -1
- package/dist/components/Holidays/index.mjs +1 -1
- package/dist/components/Layouts/SlideShow.mjs +1 -1
- package/dist/components/Layouts/index.mjs +1 -1
- package/dist/components/Projects/KanbanBoardView.mjs +1 -1
- package/dist/components/Projects/ProjectPage.mjs +1 -1
- package/dist/components/Projects/ProjectView.mjs +1 -1
- package/dist/components/Projects/ProjectsIndexView.d.ts +3 -3
- package/dist/components/Projects/ProjectsIndexView.js +2 -2
- package/dist/components/Projects/ProjectsIndexView.mjs +1 -1
- package/dist/components/Projects/index.mjs +1 -1
- package/dist/components/Projects/project-form.d.ts +3 -3
- package/dist/components/Projects/project-form.js +1 -1
- package/dist/components/Projects/project-form.mjs +1 -1
- package/dist/components/dc-temp/index.mjs +1 -1
- package/dist/components/index.js +10 -10
- package/dist/components/index.mjs +1 -1
- package/dist/index.js +16 -16
- package/dist/index.mjs +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/pages/Blog.mjs +1 -1
- package/dist/pages/Documentation.mjs +1 -1
- package/dist/pages/IndexPage.mjs +1 -1
- package/dist/pages/Intranet.mjs +1 -1
- package/dist/pages/LandingPage.mjs +1 -1
- package/dist/pages/Page.mjs +1 -1
- package/dist/pages/Publish.mjs +1 -1
- package/dist/pages/Website.mjs +1 -1
- package/dist/sections/BlogDetail.mjs +1 -1
- package/dist/sections/ContactSection.mjs +1 -1
- package/dist/sections/PageSections.mjs +1 -1
- package/dist/sections/ServiceSection.mjs +1 -1
- package/dist/sections/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-2XMVNXF6.mjs +0 -4
- package/dist/chunk-62G4REJ3.mjs +0 -4
- package/dist/chunk-CXCDV7VP.mjs +0 -4
- package/dist/chunk-UAEEBFHJ.mjs +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s}from"../../chunk-
|
|
1
|
+
import{a as s}from"../../chunk-A7SGFSI5.mjs";import{a as h}from"../../chunk-UXOUJ5YO.mjs";import{a as w}from"../../chunk-KG3MNGT6.mjs";import{a as P}from"../../chunk-SNTLCFXF.mjs";import{a as C}from"../../chunk-ZXPDSSCF.mjs";import{a as u}from"../../chunk-RHR3YOLG.mjs";import{a as d}from"../../chunk-AREQGH47.mjs";import{a as n}from"../../chunk-CTAIR3TE.mjs";import{a as l}from"../../chunk-AOQPH32M.mjs";import{a as f}from"../../chunk-47OE4ZPY.mjs";import{a as p}from"../../chunk-4USR4WTH.mjs";import{a as x}from"../../chunk-6XUIHSKG.mjs";import{a as g}from"../../chunk-XADBBCGL.mjs";import{a as i}from"../../chunk-CO6AQNZ5.mjs";import{a}from"../../chunk-TR6RBROH.mjs";import{a as m}from"../../chunk-5EQXJS23.mjs";import{a as t}from"../../chunk-AQQCH7Z2.mjs";import"../../chunk-USOGZB6R.mjs";import"../../chunk-R4SE63GR.mjs";import"../../chunk-ENRNRNPQ.mjs";import"../../chunk-VGWDYD6Z.mjs";import{a as S}from"../../chunk-GGJZVAC4.mjs";import"../../chunk-2C4UDLVF.mjs";import{a as c}from"../../chunk-6TUNKKV7.mjs";import{a as b}from"../../chunk-TKCFCYEQ.mjs";import"../../chunk-CDVRH3MC.mjs";import"../../chunk-KPTGYVDM.mjs";import"../../chunk-5RTGHMF3.mjs";import"../../chunk-6DEY5ZDD.mjs";import"../../chunk-4HHGVL3E.mjs";import{a as D}from"../../chunk-QBUU2AQL.mjs";import"../../chunk-DSSHQ6K7.mjs";import"../../chunk-O57JJTH5.mjs";import"../../chunk-KZCIHFTM.mjs";import"../../chunk-NKDFAFWH.mjs";import"../../chunk-MBPTBEOX.mjs";import"../../chunk-AB43AQKL.mjs";import"../../chunk-ORNGKQM7.mjs";import"../../chunk-4A3MGS6I.mjs";import"../../chunk-KW6L6KBY.mjs";import"../../chunk-Z22NSJMF.mjs";import"../../chunk-YRMNCHFO.mjs";import{a as r}from"../../chunk-EOXVYLPB.mjs";import{a as o}from"../../chunk-EOR2BAI2.mjs";import{a as e}from"../../chunk-3AWUWWR4.mjs";import"../../chunk-4WA47ZQA.mjs";import"../../chunk-NPVUICIF.mjs";import"../../chunk-6SWKEZN6.mjs";import"../../chunk-DFIXTV2M.mjs";import"../../chunk-Q67RF7VO.mjs";import"../../chunk-AZKOVKSK.mjs";import"../../chunk-FGEFYI5E.mjs";import"../../chunk-MU5WPW4N.mjs";import"../../chunk-E4TE4NV6.mjs";import"../../chunk-JFFTEK6Z.mjs";import"../../chunk-JHNVX4UB.mjs";import"../../chunk-7BXIU4ZM.mjs";import"../../chunk-YFAZQYK4.mjs";import"../../chunk-INCYANPB.mjs";import"../../chunk-B4H6T2GP.mjs";import"../../chunk-TVZOULLL.mjs";import"../../chunk-RLVKIMGU.mjs";import"../../chunk-OCPX4QPC.mjs";import"../../chunk-FT3AE7L2.mjs";import"../../chunk-76M7JE4D.mjs";import"../../chunk-3UMMMQEH.mjs";import"../../chunk-OYZDAMCS.mjs";import"../../chunk-5NRGSTPV.mjs";import"../../chunk-ZFUP5NVF.mjs";import"../../chunk-4UIARERB.mjs";import"../../chunk-D4IMQTVU.mjs";import"../../chunk-7GSXNSLD.mjs";import"../../chunk-YNCJATT7.mjs";import"../../chunk-L5JPAKPM.mjs";import"../../chunk-KY7WQYN4.mjs";import"../../chunk-ZUA4KNIR.mjs";import"../../chunk-SOLZ4VQH.mjs";import"../../chunk-CSBGSBEU.mjs";import"../../chunk-YO3GQYRJ.mjs";import"../../chunk-IC2ABKAM.mjs";import"../../chunk-FHMQVAKQ.mjs";import"../../chunk-7WIO2CIC.mjs";import"../../chunk-X5KZKO2V.mjs";import"../../chunk-6C4WESLL.mjs";import"../../chunk-ITJH72Z2.mjs";import"../../chunk-L3BLBPSR.mjs";import"../../chunk-ZDPQXVTF.mjs";import"../../chunk-PDY7JYY3.mjs";import"../../chunk-Q5XT55O3.mjs";import"../../chunk-22LHS2J6.mjs";import"../../chunk-WISC5QJV.mjs";import"../../chunk-55EX54R7.mjs";import"../../chunk-FMJBJ3HN.mjs";import"../../chunk-WISCWNL2.mjs";import"../../chunk-FVM5SQT2.mjs";import"../../chunk-MDJREBVI.mjs";import"../../chunk-ZWHGOTSF.mjs";import"../../chunk-Q3G5UAAD.mjs";import"../../chunk-XGRRLABA.mjs";import"../../chunk-WU3JMLSC.mjs";import"../../chunk-BZAYEKYC.mjs";import"../../chunk-FLHDNCNY.mjs";import"../../chunk-FRWX5YES.mjs";import"../../chunk-CV7PH2KH.mjs";import"../../chunk-YEKQJ4YC.mjs";export{t as AppSidebarLeft,l as ColleagueCard,f as ColleagueForm,x as ColleagueTypeSelection,h as ColleaguesView,a as DashboardHeader,s as DashboardPage,e as DigitalColleageusLayout,g as DigitalColleagueClone,i as DigitalColleagueOptions,d as DocumentEdit,u as DocumentPreview,D as FileView,C as KnowledgeBrowser,p as KnowledgeSearch,w as KnowledgeView,m as MainPage,o as ManagementSidebar,c as PlanningView,S as ProjectView,b as ProjectsIndexView,r as SearchableSelect,n as TeamForm,P as TeamsIndexView};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";import{a}from"../../chunk-
|
|
2
|
+
"use strict";import{a}from"../../chunk-6R6NYDWN.mjs";import"../../chunk-5NIEZE7A.mjs";import"../../chunk-76M7JE4D.mjs";import"../../chunk-OYZDAMCS.mjs";import"../../chunk-5NRGSTPV.mjs";import"../../chunk-ZFUP5NVF.mjs";import"../../chunk-4UIARERB.mjs";import"../../chunk-D4IMQTVU.mjs";import"../../chunk-7GSXNSLD.mjs";import"../../chunk-YNCJATT7.mjs";import"../../chunk-L5JPAKPM.mjs";import"../../chunk-KY7WQYN4.mjs";import"../../chunk-ZUA4KNIR.mjs";import"../../chunk-IC2ABKAM.mjs";import"../../chunk-FHMQVAKQ.mjs";import"../../chunk-7WIO2CIC.mjs";import"../../chunk-X5KZKO2V.mjs";import"../../chunk-6C4WESLL.mjs";import"../../chunk-ITJH72Z2.mjs";import"../../chunk-L3BLBPSR.mjs";import"../../chunk-ZDPQXVTF.mjs";import"../../chunk-PDY7JYY3.mjs";import"../../chunk-Q5XT55O3.mjs";import"../../chunk-22LHS2J6.mjs";import"../../chunk-WISC5QJV.mjs";import"../../chunk-55EX54R7.mjs";import"../../chunk-FMJBJ3HN.mjs";import"../../chunk-WISCWNL2.mjs";import"../../chunk-FVM5SQT2.mjs";import"../../chunk-MDJREBVI.mjs";import"../../chunk-ZWHGOTSF.mjs";import"../../chunk-Q3G5UAAD.mjs";import"../../chunk-XGRRLABA.mjs";import"../../chunk-WU3JMLSC.mjs";import"../../chunk-BZAYEKYC.mjs";import"../../chunk-FRWX5YES.mjs";import"../../chunk-CV7PH2KH.mjs";import"../../chunk-YEKQJ4YC.mjs";export{a as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";import{a}from"../../../chunk-
|
|
2
|
+
"use strict";import{a}from"../../../chunk-CR326IJ6.mjs";import"../../../chunk-ZKSZJI4F.mjs";import"../../../chunk-MDBYZZXI.mjs";import"../../../chunk-MFE4VZPC.mjs";import"../../../chunk-I4GYQZGM.mjs";import"../../../chunk-ATBKMJU6.mjs";import"../../../chunk-K5MJYNCD.mjs";import"../../../chunk-FSCDCSVK.mjs";import"../../../chunk-SGK4ZXKR.mjs";import"../../../chunk-6LEH6XKI.mjs";import"../../../chunk-5ROLUQ45.mjs";import"../../../chunk-KO6JUP2L.mjs";import"../../../chunk-POIHYOIP.mjs";import"../../../chunk-R4SE63GR.mjs";import"../../../chunk-ENRNRNPQ.mjs";import"../../../chunk-KPTGYVDM.mjs";import"../../../chunk-5RTGHMF3.mjs";import"../../../chunk-DSSHQ6K7.mjs";import"../../../chunk-Z22NSJMF.mjs";import"../../../chunk-4WA47ZQA.mjs";import"../../../chunk-NPVUICIF.mjs";import"../../../chunk-Q67RF7VO.mjs";import"../../../chunk-AZKOVKSK.mjs";import"../../../chunk-FGEFYI5E.mjs";import"../../../chunk-MU5WPW4N.mjs";import"../../../chunk-YFAZQYK4.mjs";import"../../../chunk-INCYANPB.mjs";import"../../../chunk-B4H6T2GP.mjs";import"../../../chunk-TVZOULLL.mjs";import"../../../chunk-RLVKIMGU.mjs";import"../../../chunk-OCPX4QPC.mjs";import"../../../chunk-FT3AE7L2.mjs";import"../../../chunk-3UMMMQEH.mjs";import"../../../chunk-L5JPAKPM.mjs";import"../../../chunk-KY7WQYN4.mjs";import"../../../chunk-ZUA4KNIR.mjs";import"../../../chunk-SOLZ4VQH.mjs";import"../../../chunk-CSBGSBEU.mjs";import"../../../chunk-YO3GQYRJ.mjs";import"../../../chunk-MDJREBVI.mjs";import"../../../chunk-ZWHGOTSF.mjs";import"../../../chunk-Q3G5UAAD.mjs";import"../../../chunk-XGRRLABA.mjs";import"../../../chunk-FLHDNCNY.mjs";import"../../../chunk-YEKQJ4YC.mjs";export{a as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var n=`import { Meta } from '@storybook/blocks'
|
|
2
2
|
|
|
3
|
-
<Meta title="
|
|
3
|
+
<Meta title="Foundary/Views/KnowledgeView/Documentation" />
|
|
4
4
|
|
|
5
5
|
# KnowledgeView Component Documentation
|
|
6
6
|
|
|
@@ -13,26 +13,31 @@ This component serves as the primary interface for browsing, searching, and mana
|
|
|
13
13
|
## Key Features
|
|
14
14
|
|
|
15
15
|
### \u{1F504} Context-based Navigation
|
|
16
|
+
|
|
16
17
|
Switch between different organizational views:
|
|
18
|
+
|
|
17
19
|
- **All Documentation**: Browse all documents by category and type
|
|
18
20
|
- **Services**: Organize by service and team
|
|
19
|
-
- **Architecture**: View by component and layer
|
|
21
|
+
- **Architecture**: View by component and layer
|
|
20
22
|
- **Teams**: Group by team and project
|
|
21
23
|
- **Security**: Filter security documentation
|
|
22
24
|
|
|
23
25
|
### \u{1F4DA} Document Browser
|
|
26
|
+
|
|
24
27
|
- **Hierarchical organization** with expandable categories
|
|
25
28
|
- **Search functionality** across all document content
|
|
26
29
|
- **Document metadata** display (author, date, tags)
|
|
27
30
|
- **Quick preview** capabilities
|
|
28
31
|
|
|
29
32
|
### \u{1F3AF} Interactive Features
|
|
33
|
+
|
|
30
34
|
- **Document selection** with visual feedback
|
|
31
35
|
- **Sharing capabilities** for collaboration
|
|
32
36
|
- **Cross-context document selection** for comparison
|
|
33
37
|
- **Preview panels** for quick content review
|
|
34
38
|
|
|
35
39
|
### \u26A1 Performance Optimizations
|
|
40
|
+
|
|
36
41
|
- **Lazy content loading** for large document sets
|
|
37
42
|
- **Virtual scrolling** for massive lists
|
|
38
43
|
- **Optimistic updates** for better UX
|
|
@@ -41,6 +46,7 @@ Switch between different organizational views:
|
|
|
41
46
|
## Architecture
|
|
42
47
|
|
|
43
48
|
### Component Structure
|
|
49
|
+
|
|
44
50
|
\`\`\`
|
|
45
51
|
KnowledgeView
|
|
46
52
|
\u251C\u2500\u2500 Context Selector (dropdown)
|
|
@@ -56,6 +62,7 @@ KnowledgeView
|
|
|
56
62
|
\`\`\`
|
|
57
63
|
|
|
58
64
|
### Props Interface
|
|
65
|
+
|
|
59
66
|
\`\`\`typescript
|
|
60
67
|
interface KnowledgeViewProps {
|
|
61
68
|
contexts: KnowledgeContext[]
|
|
@@ -68,6 +75,7 @@ interface KnowledgeViewProps {
|
|
|
68
75
|
\`\`\`
|
|
69
76
|
|
|
70
77
|
### Context System
|
|
78
|
+
|
|
71
79
|
The component uses a context-based organization system where each context represents a different way to organize and view the same underlying documents:
|
|
72
80
|
|
|
73
81
|
\`\`\`typescript
|
|
@@ -83,13 +91,14 @@ interface KnowledgeContext {
|
|
|
83
91
|
## Usage Patterns
|
|
84
92
|
|
|
85
93
|
### Basic Usage
|
|
94
|
+
|
|
86
95
|
\`\`\`tsx
|
|
87
96
|
import { KnowledgeView } from '@/components/DigitalColleagues/Views'
|
|
88
97
|
import { defaultContexts } from './KnowledgeView.stories'
|
|
89
98
|
|
|
90
99
|
const MyComponent = () => {
|
|
91
100
|
return (
|
|
92
|
-
<KnowledgeView
|
|
101
|
+
<KnowledgeView
|
|
93
102
|
contexts={defaultContexts}
|
|
94
103
|
onDocumentSelect={(docs) => console.log('Selected:', docs)}
|
|
95
104
|
/>
|
|
@@ -98,6 +107,7 @@ const MyComponent = () => {
|
|
|
98
107
|
\`\`\`
|
|
99
108
|
|
|
100
109
|
### With Custom Content Loading
|
|
110
|
+
|
|
101
111
|
\`\`\`tsx
|
|
102
112
|
const MyComponent = () => {
|
|
103
113
|
const handleLoadContent = async (document: KnowledgeDocument) => {
|
|
@@ -106,42 +116,35 @@ const MyComponent = () => {
|
|
|
106
116
|
return response.text()
|
|
107
117
|
}
|
|
108
118
|
|
|
109
|
-
return
|
|
110
|
-
<KnowledgeView
|
|
111
|
-
contexts={contexts}
|
|
112
|
-
onLoadDocumentContent={handleLoadContent}
|
|
113
|
-
/>
|
|
114
|
-
)
|
|
119
|
+
return <KnowledgeView contexts={contexts} onLoadDocumentContent={handleLoadContent} />
|
|
115
120
|
}
|
|
116
121
|
\`\`\`
|
|
117
122
|
|
|
118
123
|
### With Sharing Integration
|
|
124
|
+
|
|
119
125
|
\`\`\`tsx
|
|
120
126
|
const MyComponent = () => {
|
|
121
127
|
const handleShare = (documents: KnowledgeDocument[]) => {
|
|
122
|
-
const urls = documents.map(doc => doc.url).join('\\n')
|
|
128
|
+
const urls = documents.map((doc) => doc.url).join('\\n')
|
|
123
129
|
navigator.clipboard.writeText(urls)
|
|
124
130
|
toast.success('Document links copied to clipboard!')
|
|
125
131
|
}
|
|
126
132
|
|
|
127
|
-
return
|
|
128
|
-
<KnowledgeView
|
|
129
|
-
contexts={contexts}
|
|
130
|
-
onShare={handleShare}
|
|
131
|
-
/>
|
|
132
|
-
)
|
|
133
|
+
return <KnowledgeView contexts={contexts} onShare={handleShare} />
|
|
133
134
|
}
|
|
134
135
|
\`\`\`
|
|
135
136
|
|
|
136
137
|
## Context Design Guidelines
|
|
137
138
|
|
|
138
139
|
### Creating Effective Contexts
|
|
140
|
+
|
|
139
141
|
1. **Purpose-driven**: Each context should serve a specific user need
|
|
140
142
|
2. **Comprehensive**: Include all relevant documents for that context
|
|
141
143
|
3. **Intuitive organization**: Use familiar categorization schemes
|
|
142
144
|
4. **Balanced depth**: Avoid overly deep or flat hierarchies
|
|
143
145
|
|
|
144
146
|
### Best Practices
|
|
147
|
+
|
|
145
148
|
- **Limit context count**: 3-7 contexts work best for cognitive load
|
|
146
149
|
- **Clear naming**: Use descriptive, action-oriented names
|
|
147
150
|
- **Consistent structure**: Maintain similar organization patterns
|
|
@@ -150,18 +153,21 @@ const MyComponent = () => {
|
|
|
150
153
|
## Performance Considerations
|
|
151
154
|
|
|
152
155
|
### Large Document Sets
|
|
156
|
+
|
|
153
157
|
- Use \`onLoadDocumentContent\` for lazy loading
|
|
154
158
|
- Implement virtual scrolling for 1000+ documents
|
|
155
159
|
- Consider pagination for very large sets
|
|
156
160
|
- Cache frequently accessed content
|
|
157
161
|
|
|
158
162
|
### Memory Management
|
|
163
|
+
|
|
159
164
|
- Unload content when switching contexts
|
|
160
165
|
- Implement cleanup in useEffect hooks
|
|
161
166
|
- Monitor memory usage in production
|
|
162
167
|
- Use React.memo for expensive renders
|
|
163
168
|
|
|
164
169
|
### Network Optimization
|
|
170
|
+
|
|
165
171
|
- Batch API requests when possible
|
|
166
172
|
- Implement request debouncing for search
|
|
167
173
|
- Use service workers for offline support
|
|
@@ -170,18 +176,21 @@ const MyComponent = () => {
|
|
|
170
176
|
## Accessibility Features
|
|
171
177
|
|
|
172
178
|
### Keyboard Navigation
|
|
179
|
+
|
|
173
180
|
- **Tab**: Navigate through interactive elements
|
|
174
181
|
- **Arrow keys**: Navigate tree structure
|
|
175
182
|
- **Space/Enter**: Select/expand items
|
|
176
183
|
- **Escape**: Close modals/dropdowns
|
|
177
184
|
|
|
178
185
|
### Screen Reader Support
|
|
186
|
+
|
|
179
187
|
- Semantic HTML structure
|
|
180
188
|
- ARIA labels and descriptions
|
|
181
189
|
- Focus management
|
|
182
190
|
- Status announcements
|
|
183
191
|
|
|
184
192
|
### Visual Accessibility
|
|
193
|
+
|
|
185
194
|
- High contrast mode support
|
|
186
195
|
- Respects \`prefers-reduced-motion\`
|
|
187
196
|
- Scalable text and icons
|
|
@@ -190,18 +199,21 @@ const MyComponent = () => {
|
|
|
190
199
|
## Testing Strategies
|
|
191
200
|
|
|
192
201
|
### Unit Tests
|
|
202
|
+
|
|
193
203
|
- Test document selection logic
|
|
194
204
|
- Verify context switching
|
|
195
205
|
- Mock API interactions
|
|
196
206
|
- Test keyboard navigation
|
|
197
207
|
|
|
198
208
|
### Integration Tests
|
|
209
|
+
|
|
199
210
|
- Test with real data sets
|
|
200
211
|
- Verify performance thresholds
|
|
201
212
|
- Test error boundary behavior
|
|
202
213
|
- Cross-browser compatibility
|
|
203
214
|
|
|
204
215
|
### User Experience Tests
|
|
216
|
+
|
|
205
217
|
- Usability testing with real users
|
|
206
218
|
- Performance testing with large datasets
|
|
207
219
|
- Accessibility audit compliance
|
|
@@ -212,30 +224,36 @@ const MyComponent = () => {
|
|
|
212
224
|
### Common Issues
|
|
213
225
|
|
|
214
226
|
**Documents not loading**
|
|
227
|
+
|
|
215
228
|
- Check context data structure
|
|
216
229
|
- Verify document URLs are accessible
|
|
217
230
|
- Check network connectivity
|
|
218
231
|
- Review console for errors
|
|
219
232
|
|
|
220
233
|
**Performance issues**
|
|
234
|
+
|
|
221
235
|
- Implement lazy loading
|
|
222
236
|
- Reduce initial data load
|
|
223
237
|
- Check for memory leaks
|
|
224
238
|
- Profile React components
|
|
225
239
|
|
|
226
240
|
**Accessibility problems**
|
|
241
|
+
|
|
227
242
|
- Run automated accessibility tests
|
|
228
243
|
- Test with screen readers
|
|
229
244
|
- Verify keyboard navigation
|
|
230
245
|
- Check color contrast ratios
|
|
231
246
|
|
|
232
247
|
### Debug Mode
|
|
248
|
+
|
|
233
249
|
Enable debug logging by setting:
|
|
250
|
+
|
|
234
251
|
\`\`\`typescript
|
|
235
252
|
window.__KNOWLEDGE_VIEW_DEBUG__ = true
|
|
236
253
|
\`\`\`
|
|
237
254
|
|
|
238
255
|
This will log:
|
|
256
|
+
|
|
239
257
|
- Context switching events
|
|
240
258
|
- Document selection changes
|
|
241
259
|
- API request timing
|
|
@@ -244,6 +262,7 @@ This will log:
|
|
|
244
262
|
## API Integration
|
|
245
263
|
|
|
246
264
|
### Expected Data Format
|
|
265
|
+
|
|
247
266
|
\`\`\`typescript
|
|
248
267
|
// Sample API response structure
|
|
249
268
|
{
|
|
@@ -273,7 +292,9 @@ This will log:
|
|
|
273
292
|
\`\`\`
|
|
274
293
|
|
|
275
294
|
### Error Handling
|
|
295
|
+
|
|
276
296
|
The component handles various error states:
|
|
297
|
+
|
|
277
298
|
- Network failures
|
|
278
299
|
- Invalid data structures
|
|
279
300
|
- Missing documents
|
|
@@ -284,12 +305,14 @@ Implement proper error boundaries and user feedback for production use.
|
|
|
284
305
|
## Future Enhancements
|
|
285
306
|
|
|
286
307
|
### Planned Features
|
|
308
|
+
|
|
287
309
|
- **Advanced search**: Full-text search with filters
|
|
288
310
|
- **Document versioning**: Track and compare versions
|
|
289
311
|
- **Collaborative features**: Comments and annotations
|
|
290
312
|
- **Analytics integration**: Usage tracking and insights
|
|
291
313
|
|
|
292
314
|
### Extension Points
|
|
315
|
+
|
|
293
316
|
- **Custom renderers**: For different document types
|
|
294
317
|
- **Plugin system**: For third-party integrations
|
|
295
318
|
- **Theme customization**: Beyond basic styling
|
|
@@ -300,7 +323,7 @@ Implement proper error boundaries and user feedback for production use.
|
|
|
300
323
|
## Related Components
|
|
301
324
|
|
|
302
325
|
- **DocumentPreview**: For detailed document viewing
|
|
303
|
-
- **SearchInterface**: Advanced search capabilities
|
|
326
|
+
- **SearchInterface**: Advanced search capabilities
|
|
304
327
|
- **DocumentEditor**: For content creation/editing
|
|
305
328
|
- **AnalyticsDashboard**: Usage insights and metrics
|
|
306
329
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import"../../../chunk-YEKQJ4YC.mjs";var n=`import { Meta } from '@storybook/blocks'
|
|
2
2
|
|
|
3
|
-
<Meta title="
|
|
3
|
+
<Meta title="Foundary/Views/KnowledgeView/Documentation" />
|
|
4
4
|
|
|
5
5
|
# KnowledgeView Component Documentation
|
|
6
6
|
|
|
@@ -13,26 +13,31 @@ This component serves as the primary interface for browsing, searching, and mana
|
|
|
13
13
|
## Key Features
|
|
14
14
|
|
|
15
15
|
### \u{1F504} Context-based Navigation
|
|
16
|
+
|
|
16
17
|
Switch between different organizational views:
|
|
18
|
+
|
|
17
19
|
- **All Documentation**: Browse all documents by category and type
|
|
18
20
|
- **Services**: Organize by service and team
|
|
19
|
-
- **Architecture**: View by component and layer
|
|
21
|
+
- **Architecture**: View by component and layer
|
|
20
22
|
- **Teams**: Group by team and project
|
|
21
23
|
- **Security**: Filter security documentation
|
|
22
24
|
|
|
23
25
|
### \u{1F4DA} Document Browser
|
|
26
|
+
|
|
24
27
|
- **Hierarchical organization** with expandable categories
|
|
25
28
|
- **Search functionality** across all document content
|
|
26
29
|
- **Document metadata** display (author, date, tags)
|
|
27
30
|
- **Quick preview** capabilities
|
|
28
31
|
|
|
29
32
|
### \u{1F3AF} Interactive Features
|
|
33
|
+
|
|
30
34
|
- **Document selection** with visual feedback
|
|
31
35
|
- **Sharing capabilities** for collaboration
|
|
32
36
|
- **Cross-context document selection** for comparison
|
|
33
37
|
- **Preview panels** for quick content review
|
|
34
38
|
|
|
35
39
|
### \u26A1 Performance Optimizations
|
|
40
|
+
|
|
36
41
|
- **Lazy content loading** for large document sets
|
|
37
42
|
- **Virtual scrolling** for massive lists
|
|
38
43
|
- **Optimistic updates** for better UX
|
|
@@ -41,6 +46,7 @@ Switch between different organizational views:
|
|
|
41
46
|
## Architecture
|
|
42
47
|
|
|
43
48
|
### Component Structure
|
|
49
|
+
|
|
44
50
|
\`\`\`
|
|
45
51
|
KnowledgeView
|
|
46
52
|
\u251C\u2500\u2500 Context Selector (dropdown)
|
|
@@ -56,6 +62,7 @@ KnowledgeView
|
|
|
56
62
|
\`\`\`
|
|
57
63
|
|
|
58
64
|
### Props Interface
|
|
65
|
+
|
|
59
66
|
\`\`\`typescript
|
|
60
67
|
interface KnowledgeViewProps {
|
|
61
68
|
contexts: KnowledgeContext[]
|
|
@@ -68,6 +75,7 @@ interface KnowledgeViewProps {
|
|
|
68
75
|
\`\`\`
|
|
69
76
|
|
|
70
77
|
### Context System
|
|
78
|
+
|
|
71
79
|
The component uses a context-based organization system where each context represents a different way to organize and view the same underlying documents:
|
|
72
80
|
|
|
73
81
|
\`\`\`typescript
|
|
@@ -83,13 +91,14 @@ interface KnowledgeContext {
|
|
|
83
91
|
## Usage Patterns
|
|
84
92
|
|
|
85
93
|
### Basic Usage
|
|
94
|
+
|
|
86
95
|
\`\`\`tsx
|
|
87
96
|
import { KnowledgeView } from '@/components/DigitalColleagues/Views'
|
|
88
97
|
import { defaultContexts } from './KnowledgeView.stories'
|
|
89
98
|
|
|
90
99
|
const MyComponent = () => {
|
|
91
100
|
return (
|
|
92
|
-
<KnowledgeView
|
|
101
|
+
<KnowledgeView
|
|
93
102
|
contexts={defaultContexts}
|
|
94
103
|
onDocumentSelect={(docs) => console.log('Selected:', docs)}
|
|
95
104
|
/>
|
|
@@ -98,6 +107,7 @@ const MyComponent = () => {
|
|
|
98
107
|
\`\`\`
|
|
99
108
|
|
|
100
109
|
### With Custom Content Loading
|
|
110
|
+
|
|
101
111
|
\`\`\`tsx
|
|
102
112
|
const MyComponent = () => {
|
|
103
113
|
const handleLoadContent = async (document: KnowledgeDocument) => {
|
|
@@ -106,42 +116,35 @@ const MyComponent = () => {
|
|
|
106
116
|
return response.text()
|
|
107
117
|
}
|
|
108
118
|
|
|
109
|
-
return
|
|
110
|
-
<KnowledgeView
|
|
111
|
-
contexts={contexts}
|
|
112
|
-
onLoadDocumentContent={handleLoadContent}
|
|
113
|
-
/>
|
|
114
|
-
)
|
|
119
|
+
return <KnowledgeView contexts={contexts} onLoadDocumentContent={handleLoadContent} />
|
|
115
120
|
}
|
|
116
121
|
\`\`\`
|
|
117
122
|
|
|
118
123
|
### With Sharing Integration
|
|
124
|
+
|
|
119
125
|
\`\`\`tsx
|
|
120
126
|
const MyComponent = () => {
|
|
121
127
|
const handleShare = (documents: KnowledgeDocument[]) => {
|
|
122
|
-
const urls = documents.map(doc => doc.url).join('\\n')
|
|
128
|
+
const urls = documents.map((doc) => doc.url).join('\\n')
|
|
123
129
|
navigator.clipboard.writeText(urls)
|
|
124
130
|
toast.success('Document links copied to clipboard!')
|
|
125
131
|
}
|
|
126
132
|
|
|
127
|
-
return
|
|
128
|
-
<KnowledgeView
|
|
129
|
-
contexts={contexts}
|
|
130
|
-
onShare={handleShare}
|
|
131
|
-
/>
|
|
132
|
-
)
|
|
133
|
+
return <KnowledgeView contexts={contexts} onShare={handleShare} />
|
|
133
134
|
}
|
|
134
135
|
\`\`\`
|
|
135
136
|
|
|
136
137
|
## Context Design Guidelines
|
|
137
138
|
|
|
138
139
|
### Creating Effective Contexts
|
|
140
|
+
|
|
139
141
|
1. **Purpose-driven**: Each context should serve a specific user need
|
|
140
142
|
2. **Comprehensive**: Include all relevant documents for that context
|
|
141
143
|
3. **Intuitive organization**: Use familiar categorization schemes
|
|
142
144
|
4. **Balanced depth**: Avoid overly deep or flat hierarchies
|
|
143
145
|
|
|
144
146
|
### Best Practices
|
|
147
|
+
|
|
145
148
|
- **Limit context count**: 3-7 contexts work best for cognitive load
|
|
146
149
|
- **Clear naming**: Use descriptive, action-oriented names
|
|
147
150
|
- **Consistent structure**: Maintain similar organization patterns
|
|
@@ -150,18 +153,21 @@ const MyComponent = () => {
|
|
|
150
153
|
## Performance Considerations
|
|
151
154
|
|
|
152
155
|
### Large Document Sets
|
|
156
|
+
|
|
153
157
|
- Use \`onLoadDocumentContent\` for lazy loading
|
|
154
158
|
- Implement virtual scrolling for 1000+ documents
|
|
155
159
|
- Consider pagination for very large sets
|
|
156
160
|
- Cache frequently accessed content
|
|
157
161
|
|
|
158
162
|
### Memory Management
|
|
163
|
+
|
|
159
164
|
- Unload content when switching contexts
|
|
160
165
|
- Implement cleanup in useEffect hooks
|
|
161
166
|
- Monitor memory usage in production
|
|
162
167
|
- Use React.memo for expensive renders
|
|
163
168
|
|
|
164
169
|
### Network Optimization
|
|
170
|
+
|
|
165
171
|
- Batch API requests when possible
|
|
166
172
|
- Implement request debouncing for search
|
|
167
173
|
- Use service workers for offline support
|
|
@@ -170,18 +176,21 @@ const MyComponent = () => {
|
|
|
170
176
|
## Accessibility Features
|
|
171
177
|
|
|
172
178
|
### Keyboard Navigation
|
|
179
|
+
|
|
173
180
|
- **Tab**: Navigate through interactive elements
|
|
174
181
|
- **Arrow keys**: Navigate tree structure
|
|
175
182
|
- **Space/Enter**: Select/expand items
|
|
176
183
|
- **Escape**: Close modals/dropdowns
|
|
177
184
|
|
|
178
185
|
### Screen Reader Support
|
|
186
|
+
|
|
179
187
|
- Semantic HTML structure
|
|
180
188
|
- ARIA labels and descriptions
|
|
181
189
|
- Focus management
|
|
182
190
|
- Status announcements
|
|
183
191
|
|
|
184
192
|
### Visual Accessibility
|
|
193
|
+
|
|
185
194
|
- High contrast mode support
|
|
186
195
|
- Respects \`prefers-reduced-motion\`
|
|
187
196
|
- Scalable text and icons
|
|
@@ -190,18 +199,21 @@ const MyComponent = () => {
|
|
|
190
199
|
## Testing Strategies
|
|
191
200
|
|
|
192
201
|
### Unit Tests
|
|
202
|
+
|
|
193
203
|
- Test document selection logic
|
|
194
204
|
- Verify context switching
|
|
195
205
|
- Mock API interactions
|
|
196
206
|
- Test keyboard navigation
|
|
197
207
|
|
|
198
208
|
### Integration Tests
|
|
209
|
+
|
|
199
210
|
- Test with real data sets
|
|
200
211
|
- Verify performance thresholds
|
|
201
212
|
- Test error boundary behavior
|
|
202
213
|
- Cross-browser compatibility
|
|
203
214
|
|
|
204
215
|
### User Experience Tests
|
|
216
|
+
|
|
205
217
|
- Usability testing with real users
|
|
206
218
|
- Performance testing with large datasets
|
|
207
219
|
- Accessibility audit compliance
|
|
@@ -212,30 +224,36 @@ const MyComponent = () => {
|
|
|
212
224
|
### Common Issues
|
|
213
225
|
|
|
214
226
|
**Documents not loading**
|
|
227
|
+
|
|
215
228
|
- Check context data structure
|
|
216
229
|
- Verify document URLs are accessible
|
|
217
230
|
- Check network connectivity
|
|
218
231
|
- Review console for errors
|
|
219
232
|
|
|
220
233
|
**Performance issues**
|
|
234
|
+
|
|
221
235
|
- Implement lazy loading
|
|
222
236
|
- Reduce initial data load
|
|
223
237
|
- Check for memory leaks
|
|
224
238
|
- Profile React components
|
|
225
239
|
|
|
226
240
|
**Accessibility problems**
|
|
241
|
+
|
|
227
242
|
- Run automated accessibility tests
|
|
228
243
|
- Test with screen readers
|
|
229
244
|
- Verify keyboard navigation
|
|
230
245
|
- Check color contrast ratios
|
|
231
246
|
|
|
232
247
|
### Debug Mode
|
|
248
|
+
|
|
233
249
|
Enable debug logging by setting:
|
|
250
|
+
|
|
234
251
|
\`\`\`typescript
|
|
235
252
|
window.__KNOWLEDGE_VIEW_DEBUG__ = true
|
|
236
253
|
\`\`\`
|
|
237
254
|
|
|
238
255
|
This will log:
|
|
256
|
+
|
|
239
257
|
- Context switching events
|
|
240
258
|
- Document selection changes
|
|
241
259
|
- API request timing
|
|
@@ -244,6 +262,7 @@ This will log:
|
|
|
244
262
|
## API Integration
|
|
245
263
|
|
|
246
264
|
### Expected Data Format
|
|
265
|
+
|
|
247
266
|
\`\`\`typescript
|
|
248
267
|
// Sample API response structure
|
|
249
268
|
{
|
|
@@ -273,7 +292,9 @@ This will log:
|
|
|
273
292
|
\`\`\`
|
|
274
293
|
|
|
275
294
|
### Error Handling
|
|
295
|
+
|
|
276
296
|
The component handles various error states:
|
|
297
|
+
|
|
277
298
|
- Network failures
|
|
278
299
|
- Invalid data structures
|
|
279
300
|
- Missing documents
|
|
@@ -284,12 +305,14 @@ Implement proper error boundaries and user feedback for production use.
|
|
|
284
305
|
## Future Enhancements
|
|
285
306
|
|
|
286
307
|
### Planned Features
|
|
308
|
+
|
|
287
309
|
- **Advanced search**: Full-text search with filters
|
|
288
310
|
- **Document versioning**: Track and compare versions
|
|
289
311
|
- **Collaborative features**: Comments and annotations
|
|
290
312
|
- **Analytics integration**: Usage tracking and insights
|
|
291
313
|
|
|
292
314
|
### Extension Points
|
|
315
|
+
|
|
293
316
|
- **Custom renderers**: For different document types
|
|
294
317
|
- **Plugin system**: For third-party integrations
|
|
295
318
|
- **Theme customization**: Beyond basic styling
|
|
@@ -300,7 +323,7 @@ Implement proper error boundaries and user feedback for production use.
|
|
|
300
323
|
## Related Components
|
|
301
324
|
|
|
302
325
|
- **DocumentPreview**: For detailed document viewing
|
|
303
|
-
- **SearchInterface**: Advanced search capabilities
|
|
326
|
+
- **SearchInterface**: Advanced search capabilities
|
|
304
327
|
- **DocumentEditor**: For content creation/editing
|
|
305
328
|
- **AnalyticsDashboard**: Usage insights and metrics
|
|
306
329
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type TeamSummary } from
|
|
2
|
-
import { type Team } from
|
|
1
|
+
import { type TeamSummary } from '../types';
|
|
2
|
+
import { type Team } from '../team-form';
|
|
3
3
|
interface TeamsIndexViewProps {
|
|
4
4
|
teams?: TeamSummary[];
|
|
5
|
-
onCreateTeam?: (team: Team) => void
|
|
5
|
+
onCreateTeam?: (team: Team) => Promise<void>;
|
|
6
6
|
onTeamOpen?: (team: TeamSummary) => void;
|
|
7
7
|
}
|
|
8
8
|
export default function TeamsIndexView({ teams, onCreateTeam, onTeamOpen, }: TeamsIndexViewProps): import("react/jsx-runtime").JSX.Element;
|