texteditorrefactor 0.0.5 → 0.0.12

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.
Files changed (102) hide show
  1. package/dist/components/Atoms/AssistantImageModal/ImageModal.js +2 -1
  2. package/dist/components/Atoms/AssistantImageModal/ImageModal.js.map +1 -1
  3. package/dist/components/Molecules/AccordianPay4/Accordian.d.ts +2 -13
  4. package/dist/components/Molecules/AccordianPay4/Accordian.js +13 -14
  5. package/dist/components/Molecules/AccordianPay4/Accordian.js.map +1 -1
  6. package/dist/components/Molecules/AccordianPay4/Accordian.stories.js.map +1 -1
  7. package/dist/components/Molecules/ActivityBanner/ActivityBanner.js +1 -1
  8. package/dist/components/Molecules/ActivityBanner/ActivityBanner.js.map +1 -1
  9. package/dist/components/Molecules/DescriptiveAnswer/DescriptiveAnswerV1.js +15 -4
  10. package/dist/components/Molecules/DescriptiveAnswer/DescriptiveAnswerV1.js.map +1 -1
  11. package/dist/components/Molecules/RecapNode/ContentView.d.ts +2 -0
  12. package/dist/components/Molecules/RecapNode/ContentView.js +43 -0
  13. package/dist/components/Molecules/RecapNode/ContentView.js.map +1 -0
  14. package/dist/components/Molecules/RecapNode/FlashcardNode.d.ts +0 -0
  15. package/dist/components/Molecules/RecapNode/FlashcardNode.js +2 -0
  16. package/dist/components/Molecules/RecapNode/FlashcardNode.js.map +1 -0
  17. package/dist/components/Molecules/RecapNode/Node.d.ts +3 -0
  18. package/dist/components/Molecules/RecapNode/Node.js +60 -0
  19. package/dist/components/Molecules/RecapNode/Node.js.map +1 -0
  20. package/dist/components/Molecules/RecapNode/Node.stories.d.ts +10 -0
  21. package/dist/components/Molecules/RecapNode/Node.stories.js +117 -0
  22. package/dist/components/Molecules/RecapNode/Node.stories.js.map +1 -0
  23. package/dist/components/Molecules/RecapNode/Node.styles.d.ts +11 -0
  24. package/dist/components/Molecules/RecapNode/Node.styles.js +53 -0
  25. package/dist/components/Molecules/RecapNode/Node.styles.js.map +1 -0
  26. package/dist/components/Molecules/RecapNode/SectionView.d.ts +6 -0
  27. package/dist/components/Molecules/RecapNode/SectionView.js +90 -0
  28. package/dist/components/Molecules/RecapNode/SectionView.js.map +1 -0
  29. package/dist/components/Molecules/RecapNode/VideoView.d.ts +5 -0
  30. package/dist/components/Molecules/RecapNode/VideoView.js +23 -0
  31. package/dist/components/Molecules/RecapNode/VideoView.js.map +1 -0
  32. package/dist/components/Molecules/SmartLearn/SmartLearn.js +7 -4
  33. package/dist/components/Molecules/SmartLearn/SmartLearn.js.map +1 -1
  34. package/dist/components/Molecules/SmartLearn/SmartLearn.stories.js +2 -0
  35. package/dist/components/Molecules/SmartLearn/SmartLearn.stories.js.map +1 -1
  36. package/dist/components/Molecules/SmartLearn/types.d.ts +16 -1
  37. package/dist/components/Molecules/VideoView/VideoModal.js +2 -2
  38. package/dist/components/Molecules/VideoView/VideoModal.js.map +1 -1
  39. package/dist/components/Molecules/comprehension/ComprehensionLayout.js +9 -5
  40. package/dist/components/Molecules/comprehension/ComprehensionLayout.js.map +1 -1
  41. package/dist/components/Organisms/D3Graphs/Reactflow.d.ts +1 -0
  42. package/dist/components/Organisms/D3Graphs/Reactflow.js +244 -0
  43. package/dist/components/Organisms/D3Graphs/Reactflow.js.map +1 -0
  44. package/dist/components/Organisms/FlashCardNode/AccordionChildItem.d.ts +1 -0
  45. package/dist/components/Organisms/FlashCardNode/AccordionChildItem.js +37 -0
  46. package/dist/components/Organisms/FlashCardNode/AccordionChildItem.js.map +1 -0
  47. package/dist/components/Organisms/FlashCardNode/FlashCardNode.d.ts +3 -0
  48. package/dist/components/Organisms/FlashCardNode/FlashCardNode.js +50 -0
  49. package/dist/components/Organisms/FlashCardNode/FlashCardNode.js.map +1 -0
  50. package/dist/components/Organisms/FlashCardNode/FlashcardContainer.d.ts +26 -0
  51. package/dist/components/Organisms/FlashCardNode/FlashcardContainer.js +54 -0
  52. package/dist/components/Organisms/FlashCardNode/FlashcardContainer.js.map +1 -0
  53. package/dist/components/Organisms/FlashCardNode/FlashcardNode.stories.d.ts +15 -0
  54. package/dist/components/Organisms/FlashCardNode/FlashcardNode.stories.js +301 -0
  55. package/dist/components/Organisms/FlashCardNode/FlashcardNode.stories.js.map +1 -0
  56. package/dist/components/Organisms/FlashCardNode/IconBar.d.ts +5 -0
  57. package/dist/components/Organisms/FlashCardNode/IconBar.js +22 -0
  58. package/dist/components/Organisms/FlashCardNode/IconBar.js.map +1 -0
  59. package/dist/components/Organisms/FlashCardNode/MobileAccordionView.d.ts +9 -0
  60. package/dist/components/Organisms/FlashCardNode/MobileAccordionView.js +127 -0
  61. package/dist/components/Organisms/FlashCardNode/MobileAccordionView.js.map +1 -0
  62. package/dist/components/Organisms/FlashCardNode/NodeHandles.d.ts +3 -0
  63. package/dist/components/Organisms/FlashCardNode/NodeHandles.js +22 -0
  64. package/dist/components/Organisms/FlashCardNode/NodeHandles.js.map +1 -0
  65. package/dist/components/Organisms/RecapGraph/Example.stories.d.ts +3 -0
  66. package/dist/components/Organisms/RecapGraph/Example.stories.js +36 -0
  67. package/dist/components/Organisms/RecapGraph/Example.stories.js.map +1 -0
  68. package/dist/components/Organisms/RecapGraph/FlashCardNode.d.ts +3 -0
  69. package/dist/components/Organisms/RecapGraph/FlashCardNode.js +48 -0
  70. package/dist/components/Organisms/RecapGraph/FlashCardNode.js.map +1 -0
  71. package/dist/components/Organisms/RecapGraph/IconBar.d.ts +5 -0
  72. package/dist/components/Organisms/RecapGraph/IconBar.js +19 -0
  73. package/dist/components/Organisms/RecapGraph/IconBar.js.map +1 -0
  74. package/dist/components/Organisms/RecapGraph/NodeHandles.d.ts +4 -0
  75. package/dist/components/Organisms/RecapGraph/NodeHandles.js +21 -0
  76. package/dist/components/Organisms/RecapGraph/NodeHandles.js.map +1 -0
  77. package/dist/components/Organisms/RecapGraph/Reactgraphflow.d.ts +10 -0
  78. package/dist/components/Organisms/RecapGraph/Reactgraphflow.js +261 -0
  79. package/dist/components/Organisms/RecapGraph/Reactgraphflow.js.map +1 -0
  80. package/dist/components/Organisms/ReviewComponent/ChatPresenter.js +2 -2
  81. package/dist/components/Organisms/ReviewComponent/ChatPresenter.js.map +1 -1
  82. package/dist/components/Organisms/ReviewComponent/Review.d.ts +2 -1
  83. package/dist/components/Organisms/ReviewComponent/Review.js +4 -4
  84. package/dist/components/Organisms/ReviewComponent/Review.js.map +1 -1
  85. package/dist/components/Organisms/ReviewComponent/ReviewPresenter.d.ts +3 -1
  86. package/dist/components/Organisms/ReviewComponent/ReviewPresenter.js +4 -3
  87. package/dist/components/Organisms/ReviewComponent/ReviewPresenter.js.map +1 -1
  88. package/dist/components/Organisms/StudentEditor/StudentEditor.stories.js +2 -2
  89. package/dist/components/Organisms/StudentEditor/StudentEditor.stories.js.map +1 -1
  90. package/dist/components/Organisms/StudentEditor/components/EditorComponent.js +4 -3
  91. package/dist/components/Organisms/StudentEditor/components/EditorComponent.js.map +1 -1
  92. package/dist/components/Organisms/StudentEditor/components/TextEditor.js +30 -9
  93. package/dist/components/Organisms/StudentEditor/components/TextEditor.js.map +1 -1
  94. package/dist/components/Organisms/TableComponent/TableComponent.js +1 -1
  95. package/dist/components/Organisms/TableComponent/TableComponent.js.map +1 -1
  96. package/dist/utils/RecapData.d.ts +213 -0
  97. package/dist/utils/RecapData.js +791 -0
  98. package/dist/utils/RecapData.js.map +1 -0
  99. package/dist/utils/contentUtils.d.ts +41 -0
  100. package/dist/utils/contentUtils.js +60 -0
  101. package/dist/utils/contentUtils.js.map +1 -0
  102. package/package.json +1 -1
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const jsx_runtime_1 = require("react/jsx-runtime");
27
+ const react_1 = __importStar(require("react"));
28
+ const reactflow_1 = __importStar(require("reactflow"));
29
+ require("reactflow/dist/style.css");
30
+ const RecapData_1 = require("../../../utils/RecapData");
31
+ const colors = [
32
+ '#FFD700', '#9B59B6', '#76D7C4', '#FF6B6B', '#4ECDC4',
33
+ '#45B7D1', '#FFA07A', '#98D8C8', '#F7DC6F', '#BB8FCE',
34
+ '#85C1E2', '#F8B88B', '#A9DFBF', '#F5B7B1', '#D7BDE2'
35
+ ];
36
+ const getRandomColor = (id) => {
37
+ let hash = 0;
38
+ for (let i = 0; i < id.length; i++) {
39
+ hash = ((hash << 5) - hash) + id.charCodeAt(i);
40
+ hash = hash & hash;
41
+ }
42
+ return colors[Math.abs(hash) % colors.length];
43
+ };
44
+ const getNodeStyle = (depth, color) => {
45
+ const sizes = {
46
+ 0: { width: 220, height: 70, fontSize: 13 },
47
+ 1: { width: 200, height: 60, fontSize: 12 },
48
+ 2: { width: 180, height: 55, fontSize: 11 },
49
+ 3: { width: 160, height: 50, fontSize: 10 },
50
+ 4: { width: 140, height: 45, fontSize: 9 },
51
+ };
52
+ const size = sizes[Math.min(depth, 4)];
53
+ return {
54
+ background: color,
55
+ border: `2px solid ${color}`,
56
+ borderRadius: '8px',
57
+ padding: '8px',
58
+ fontSize: `${size.fontSize}px`,
59
+ fontWeight: 'bold',
60
+ color: depth === 0 ? '#000' : '#fff',
61
+ textAlign: 'center',
62
+ display: 'flex',
63
+ alignItems: 'center',
64
+ justifyContent: 'center',
65
+ width: `${size.width}px`,
66
+ height: `${size.height}px`,
67
+ overflow: 'hidden',
68
+ textOverflow: 'ellipsis',
69
+ whiteSpace: 'pre-wrap',
70
+ wordBreak: 'break-word',
71
+ };
72
+ };
73
+ const truncateText = (text, maxLength = 40) => {
74
+ return text.length > maxLength ? text.substring(0, maxLength) + '...' : text;
75
+ };
76
+ // Function to merge content by ID
77
+ const mergeContentByID = (contentArrays) => {
78
+ const mergedContent = {};
79
+ contentArrays.forEach((contentObj) => {
80
+ Object.entries(contentObj).forEach(([id, content]) => {
81
+ console.log(`Merging content for ID: ${id}`, content);
82
+ if (!mergedContent[id]) {
83
+ mergedContent[id] = {
84
+ videos: [],
85
+ recap: null,
86
+ sections: {},
87
+ };
88
+ }
89
+ // Handle array content (videos)
90
+ if (Array.isArray(content)) {
91
+ console.log(`Adding videos to ${id}:`, content);
92
+ mergedContent[id].videos.push(...content);
93
+ }
94
+ // Handle object content (recap, sections)
95
+ else if (typeof content === 'object' && content !== null) {
96
+ if (content.sections) {
97
+ console.log(`Adding sections to ${id}:`, content.sections);
98
+ mergedContent[id].sections = {
99
+ ...mergedContent[id].sections,
100
+ ...content.sections,
101
+ };
102
+ }
103
+ else {
104
+ console.log(`Adding recap/other content to ${id}:`, content);
105
+ mergedContent[id].recap = content;
106
+ }
107
+ }
108
+ console.log(`Merged state for ${id}:`, mergedContent[id]);
109
+ });
110
+ });
111
+ return mergedContent;
112
+ };
113
+ const buildNodesAndEdges = (data, contentData = null) => {
114
+ const nodes = [];
115
+ const edges = [];
116
+ const nodeColorMap = {};
117
+ const nodeContentMap = {};
118
+ // Merge content if provided
119
+ let mergedContent = {};
120
+ if (contentData) {
121
+ mergedContent = mergeContentByID(contentData);
122
+ console.log('Final merged content:', mergedContent);
123
+ }
124
+ // First pass: collect all nodes and their depths
125
+ const nodeDepthMap = {};
126
+ const childrenCountMap = {};
127
+ const traverse = (node, depth = 0) => {
128
+ const nodeId = node._id;
129
+ const nodeColor = getRandomColor(nodeId);
130
+ nodeColorMap[nodeId] = nodeColor;
131
+ nodeDepthMap[nodeId] = depth;
132
+ // Check if this node has associated content
133
+ if (mergedContent[nodeId]) {
134
+ console.log(`Found content for node ID: ${nodeId}`, mergedContent[nodeId]);
135
+ nodeContentMap[nodeId] = mergedContent[nodeId];
136
+ }
137
+ nodes.push({
138
+ id: nodeId,
139
+ data: { label: truncateText(node.name) },
140
+ position: { x: 0, y: 0 },
141
+ depth,
142
+ color: nodeColor,
143
+ hasContent: !!mergedContent[nodeId],
144
+ });
145
+ if (node.children && node.children.length > 0) {
146
+ node.children.forEach((child) => {
147
+ edges.push({
148
+ id: `${nodeId}-${child._id}`,
149
+ source: nodeId,
150
+ target: child._id,
151
+ type: 'smoothstep',
152
+ });
153
+ traverse(child, depth + 1);
154
+ });
155
+ }
156
+ };
157
+ if (data && data.data && data.data.length > 0) {
158
+ traverse(data.data[0]);
159
+ }
160
+ // Second pass: calculate positions using improved spacing algorithm
161
+ const levelMap = {};
162
+ nodes.forEach((node) => {
163
+ const depth = nodeDepthMap[node.id];
164
+ if (!levelMap[depth]) {
165
+ levelMap[depth] = [];
166
+ }
167
+ levelMap[depth].push(node.id);
168
+ });
169
+ // Calculate proper spacing based on tree structure
170
+ const levelHeight = 200;
171
+ let maxNodesInLevel = 0;
172
+ Object.keys(levelMap).forEach((level) => {
173
+ maxNodesInLevel = Math.max(maxNodesInLevel, levelMap[level].length);
174
+ });
175
+ const baseHorizontalSpacing = Math.max(320, 250 + (maxNodesInLevel * 20));
176
+ // Position nodes level by level
177
+ Object.keys(levelMap).forEach((level) => {
178
+ const nodesInLevel = levelMap[level];
179
+ const levelIndex = parseInt(level);
180
+ // Calculate spacing for this level
181
+ const totalWidth = (nodesInLevel.length - 1) * baseHorizontalSpacing;
182
+ const startX = -totalWidth / 2;
183
+ nodesInLevel.forEach((nodeId, index) => {
184
+ const node = nodes.find((n) => n.id === nodeId);
185
+ if (node) {
186
+ node.position = {
187
+ x: startX + index * baseHorizontalSpacing,
188
+ y: levelIndex * levelHeight,
189
+ };
190
+ }
191
+ });
192
+ });
193
+ // Build final edges with styling
194
+ const finalEdges = edges.map((edge) => ({
195
+ ...edge,
196
+ style: {
197
+ stroke: nodeColorMap[edge.source],
198
+ strokeWidth: 2,
199
+ },
200
+ }));
201
+ // Build final nodes with styling
202
+ const finalNodes = nodes.map((node) => ({
203
+ id: node.id,
204
+ data: { label: node.data.label },
205
+ position: node.position,
206
+ style: getNodeStyle(node.depth, node.color),
207
+ }));
208
+ return { nodes: finalNodes, edges: finalEdges };
209
+ };
210
+ // Sample content arrays
211
+ const contentArrays = [
212
+ {
213
+ "640ae1d4db321523ed862422": ["video1.mp4", "video2.mp4"],
214
+ },
215
+ {
216
+ "640ae1d4db321523ed862422": {
217
+ sections: {
218
+ "summary": [
219
+ { "title": "Introduction", "description": "Overview" }
220
+ ]
221
+ }
222
+ },
223
+ },
224
+ {
225
+ "640ae29fdb321523ed86242a": ["video3.mp4", "video4.mp4"],
226
+ },
227
+ {
228
+ "640ae20fdb321523ed862426": {
229
+ sections: {
230
+ "detailed": [
231
+ { "title": "Types", "description": "Resource types explained" }
232
+ ]
233
+ }
234
+ },
235
+ }
236
+ ];
237
+ function KnowledgeCellFlowchart() {
238
+ const { nodes: initialNodes, edges: initialEdges } = (0, react_1.useMemo)(() => buildNodesAndEdges(RecapData_1.jsonData, contentArrays), []);
239
+ const [nodes] = (0, reactflow_1.useNodesState)(initialNodes);
240
+ const [edges] = (0, reactflow_1.useEdgesState)(initialEdges);
241
+ return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%', height: '100vh' }, children: (0, jsx_runtime_1.jsx)(reactflow_1.default, { nodes: nodes, edges: edges, fitView: true }) }));
242
+ }
243
+ exports.default = KnowledgeCellFlowchart;
244
+ //# sourceMappingURL=Reactflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reactflow.js","sourceRoot":"","sources":["../../../../src/components/Organisms/D3Graphs/Reactflow.jsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const jsx_runtime_1 = require("react/jsx-runtime");
27
+ const react_1 = __importStar(require("react"));
28
+ const icons_1 = require("@chakra-ui/icons");
29
+ const AccordionChildItem = (0, react_1.memo)(({ child, parentColor, index, isMobile }) => {
30
+ const [childExpanded, setChildExpanded] = (0, react_1.useState)(false);
31
+ return ((0, jsx_runtime_1.jsxs)(Box, { mb: "8px", pl: isMobile ? "12px" : "8px", borderLeft: `2px solid ${parentColor}40`, animation: "slideDown 0.3s ease-out", children: [(0, jsx_runtime_1.jsxs)(Flex, { align: "center", justify: "space-between", p: isMobile ? "12px" : "8px", bg: "#f8f8f8", borderRadius: "4px", cursor: "pointer", transition: "all 0.2s ease", minH: isMobile ? "44px" : "auto", children: [(0, jsx_runtime_1.jsx)(Text, { fontSize: isMobile ? "13px" : "12px", fontWeight: "500", flex: "1", color: "#333", children: child.label }), child.hasChildren && ((0, jsx_runtime_1.jsx)(Flex, { as: "button", onClick: (e) => {
32
+ e.stopPropagation();
33
+ setChildExpanded(!childExpanded);
34
+ }, bg: "none", border: "none", p: isMobile ? "8px" : "2px", cursor: "pointer", align: "center", color: "#666", minW: isMobile ? "44px" : "auto", minH: isMobile ? "44px" : "auto", justify: "center", children: childExpanded ? ((0, jsx_runtime_1.jsx)(icons_1.ChevronUpIcon, { boxSize: isMobile ? 5 : 3.5 })) : ((0, jsx_runtime_1.jsx)(icons_1.ChevronDownIcon, { boxSize: isMobile ? 5 : 3.5 })) }))] }), child.hasChildren && childExpanded && ((0, jsx_runtime_1.jsx)(Box, { mt: "6px", pl: isMobile ? "12px" : "8px", borderLeft: `2px solid ${parentColor}20`, children: (0, jsx_runtime_1.jsxs)(Flex, { fontSize: isMobile ? "12px" : "11px", p: isMobile ? "12px" : "6px 8px", bg: "#fafafa", borderRadius: "3px", color: "#666", minH: isMobile ? "44px" : "auto", align: "center", children: [child.childCount, " nested item(s)"] }) }))] }));
35
+ });
36
+ AccordionChildItem.displayName = 'AccordionChildItem';
37
+ //# sourceMappingURL=AccordionChildItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionChildItem.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/AccordionChildItem.jsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export default FlashcardNode;
2
+ declare const FlashcardNode: React.NamedExoticComponent<object>;
3
+ import React from "react";
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const jsx_runtime_1 = require("react/jsx-runtime");
30
+ const react_1 = __importStar(require("react"));
31
+ const NodeHandles_1 = require("./NodeHandles");
32
+ const contentUtils_1 = require("../../../utils/contentUtils");
33
+ const FlashcardContainer_1 = __importDefault(require("./FlashcardContainer"));
34
+ const FlashcardNode = (0, react_1.memo)(({ data, rootNodeId, onContentUpdate, isAdmin, onIconDataUpdate, isMobile, }) => {
35
+ const [currentVideoIdx, setCurrentVideoIdx] = (0, react_1.useState)(0);
36
+ const [isExpanded, setIsExpanded] = (0, react_1.useState)(false);
37
+ const { hasContent, level, hasMultipleChildren, color, label, icons = [], content, bgColor, colorKey, } = data;
38
+ const availableTypes = (0, contentUtils_1.getAvailableContentTypes)(content);
39
+ const [displayType, setDisplayType] = (0, react_1.useState)(null);
40
+ const availableIcons = icons.filter((icon) => availableTypes.includes(icon.type));
41
+ const handleIconClick = (iconType) => {
42
+ const newExpanded = displayType === iconType ? !isExpanded : true;
43
+ setDisplayType(iconType);
44
+ setIsExpanded(newExpanded);
45
+ };
46
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { width: "390px" }, children: [(0, jsx_runtime_1.jsx)(NodeHandles_1.NodeHandles, { level: level, hasMultipleChildren: hasMultipleChildren }), (0, jsx_runtime_1.jsx)(FlashcardContainer_1.default, { label: label, color: color, hasContent: hasContent, isExpanded: isExpanded, availableIcons: availableIcons, displayType: displayType, handleIconClick: handleIconClick, content: content, currentVideoIdx: currentVideoIdx, setCurrentVideoIdx: setCurrentVideoIdx, isAdmin: isAdmin, nodeId: data.id, rootNodeId: rootNodeId, onContentUpdate: onContentUpdate, onIconDataUpdate: onIconDataUpdate, level: level, bgColor: bgColor, colorKey: colorKey })] }));
47
+ });
48
+ FlashcardNode.displayName = "FlashcardNode";
49
+ exports.default = FlashcardNode;
50
+ //# sourceMappingURL=FlashCardNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashCardNode.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/FlashCardNode.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAC9C,+CAA4C;AAC5C,8DAAuE;AACvE,8EAAsD;AAEtD,MAAM,aAAa,GAAG,IAAA,YAAI,EACxB,CAAC,EACC,IAAI,EACJ,UAAU,EACV,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,EACJ,UAAU,EACV,KAAK,EACL,mBAAmB,EACnB,KAAK,EACL,KAAK,EACL,KAAK,GAAG,EAAE,EACV,OAAO,EACP,OAAO,EACP,QAAQ,GACT,GAAG,IAAI,CAAC;IAET,MAAM,cAAc,GAAG,IAAA,uCAAwB,EAAC,OAAO,CAAC,CAAC;IACzD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAErD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3C,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACnC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE;QACnC,MAAM,WAAW,GAAG,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzB,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACL,iCAAK,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAC5B,uBAAC,yBAAW,IAAC,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,GAAI,EAEvE,uBAAC,4BAAkB,IACjB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,IAAI,CAAC,EAAE,EACf,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GAClB,IACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC;AAE5C,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,26 @@
1
+ export default FlashcardContainer;
2
+ declare function FlashcardContainer({ label, color, hasContent, isExpanded, isNodeExpanded, isContentExpanded, availableIcons, displayType, handleIconClick, content, currentVideoIdx, setCurrentVideoIdx, isAdmin, onContentUpdate, nodeId, rootNodeId, onIconDataUpdate, isMobile, hasChildren, onChevronClick, level, colorKey, bgColor, }: {
3
+ label: any;
4
+ color: any;
5
+ hasContent: any;
6
+ isExpanded: any;
7
+ isNodeExpanded: any;
8
+ isContentExpanded: any;
9
+ availableIcons: any;
10
+ displayType: any;
11
+ handleIconClick: any;
12
+ content: any;
13
+ currentVideoIdx: any;
14
+ setCurrentVideoIdx: any;
15
+ isAdmin: any;
16
+ onContentUpdate: any;
17
+ nodeId: any;
18
+ rootNodeId: any;
19
+ onIconDataUpdate: any;
20
+ isMobile: any;
21
+ hasChildren: any;
22
+ onChevronClick: any;
23
+ level: any;
24
+ colorKey: any;
25
+ bgColor: any;
26
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_2 = require("@chakra-ui/react");
9
+ const IconBar_1 = require("./IconBar");
10
+ const ContentView_1 = require("../../Molecules/RecapNode/ContentView");
11
+ const icons_1 = require("@chakra-ui/icons");
12
+ const FlashcardContainer = ({ label, color, hasContent, isExpanded, isNodeExpanded, isContentExpanded, availableIcons, displayType, handleIconClick, content, currentVideoIdx, setCurrentVideoIdx, isAdmin, onContentUpdate, nodeId, rootNodeId, onIconDataUpdate, isMobile, hasChildren, onChevronClick, level, colorKey, bgColor, }) => {
13
+ const handleAddClick = () => {
14
+ onContentUpdate({
15
+ contentid: content?.contentid,
16
+ topicId: rootNodeId,
17
+ contentCellId: nodeId,
18
+ data: content,
19
+ });
20
+ };
21
+ const lightenedBg = bgColor;
22
+ // Determine if content should be shown
23
+ const shouldShowContent = isMobile ? isContentExpanded : isExpanded;
24
+ return ((0, jsx_runtime_1.jsxs)(react_2.Box, { p: "4px", bg: lightenedBg, borderRadius: "4px", border: `1px solid ${bgColor}`, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { bg: color, p: "8px 12px", align: "center", borderRadius: "4px", justify: "space-between", gap: "12px", children: [(0, jsx_runtime_1.jsx)(react_2.Box, { w: "100%", children: (0, jsx_runtime_1.jsx)(react_2.Text, { fontFamily: "Inter", fontWeight: "600", fontStyle: "semibold" // "Semi Bold" is controlled by fontWeight, not fontStyle
25
+ , fontSize: "14px", lineHeight: "150%", letterSpacing: "-0.019em" // -1.9% converted to em
26
+ , children: label }) }), hasContent && ((0, jsx_runtime_1.jsx)(IconBar_1.IconBar, { icons: availableIcons, displayType: displayType, onIconClick: handleIconClick, content: content })), isAdmin && ((0, jsx_runtime_1.jsx)(react_2.Button, { onClick: handleAddClick, sx: {
27
+ width: "28px",
28
+ height: "28px",
29
+ minWidth: "28px",
30
+ borderRadius: "50%",
31
+ background: "linear-gradient(135deg, #0f62fe, #0043ce)",
32
+ color: "#fff",
33
+ fontSize: "18px",
34
+ fontWeight: "600",
35
+ display: "flex",
36
+ alignItems: "center",
37
+ justifyContent: "center",
38
+ boxShadow: "0 4px 10px rgba(15, 98, 254, 0.35)",
39
+ transition: "all 0.2s ease-in-out",
40
+ "&:hover": {
41
+ background: "linear-gradient(135deg, #0043ce, #0f62fe)",
42
+ transform: "scale(1.05)",
43
+ boxShadow: "0 6px 16px rgba(15, 98, 254, 0.45)",
44
+ },
45
+ "&:active": {
46
+ transform: "scale(0.95)",
47
+ },
48
+ }, children: "+" })), isMobile && hasChildren && ((0, jsx_runtime_1.jsx)(react_2.Box, { cursor: "pointer", onClick: onChevronClick, ml: "4px", display: "flex", alignItems: "center", children: isNodeExpanded ? ((0, jsx_runtime_1.jsx)(icons_1.ChevronUpIcon, { w: "25px", h: "25px", color: "white" })) : ((0, jsx_runtime_1.jsx)(icons_1.ChevronDownIcon, { w: "25px", h: "25px", color: "white" })) }))] }), hasContent && shouldShowContent && ((0, jsx_runtime_1.jsx)(react_2.Box, { p: content.recap &&
49
+ ["definitions", "formula", "equations"].includes(displayType)
50
+ ? "0px"
51
+ : "12px", fontSize: "13px", lineHeight: "1.6", borderRadius: "4px", bg: "#fff", mt: "8px", maxWidth: isMobile ? "100%" : "390px", children: (0, jsx_runtime_1.jsx)(ContentView_1.ContentView, { displayType: displayType, content: content, currentVideoIdx: currentVideoIdx, setCurrentVideoIdx: setCurrentVideoIdx, isAdmin: isAdmin, nodeId: nodeId, rootNodeId: rootNodeId, onIconDataUpdate: onIconDataUpdate, colorKey: colorKey, isMobile: isMobile }) }))] }));
52
+ };
53
+ exports.default = FlashcardContainer;
54
+ //# sourceMappingURL=FlashcardContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashcardContainer.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/FlashcardContainer.jsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import FlashcardNode from './FlashCardNode';
3
+ import 'reactflow/dist/style.css';
4
+ declare const meta: Meta<typeof FlashcardNode>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof FlashcardNode>;
7
+ export declare const BasicNode: Story;
8
+ export declare const RootWithVideos: Story;
9
+ export declare const Level1WithDefinitions: Story;
10
+ export declare const Level2WithFormulas: Story;
11
+ export declare const Level2WithEquations: Story;
12
+ export declare const AllContentTypes: Story;
13
+ export declare const LiteratureNode: Story;
14
+ export declare const MultipleChildrenNode: Story;
15
+ export declare const EmptyContent: Story;