@alpaca-editor/core 1.0.4000 → 1.0.4008
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/client-components/index.d.ts +1 -0
- package/dist/client-components/index.js +1 -0
- package/dist/client-components/index.js.map +1 -1
- package/dist/components/ui/calendar.d.ts +7 -0
- package/dist/components/ui/calendar.js +62 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/config/config.js +11 -0
- package/dist/config/config.js.map +1 -1
- package/dist/editor/ContentTree.d.ts +2 -1
- package/dist/editor/ContentTree.js +2 -2
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/FieldList.js +37 -10
- package/dist/editor/FieldList.js.map +1 -1
- package/dist/editor/FieldListField.js +21 -10
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/client/EditorClient.js +5 -3
- package/dist/editor/client/EditorClient.js.map +1 -1
- package/dist/editor/client/itemsRepository.js +57 -9
- package/dist/editor/client/itemsRepository.js.map +1 -1
- package/dist/editor/client/pageModelBuilder.js +1 -1
- package/dist/editor/client/pageModelBuilder.js.map +1 -1
- package/dist/editor/commands/itemCommands.js +1 -1
- package/dist/editor/commands/itemCommands.js.map +1 -1
- package/dist/editor/field-types/DateFieldEditor.d.ts +5 -0
- package/dist/editor/field-types/DateFieldEditor.js +93 -0
- package/dist/editor/field-types/DateFieldEditor.js.map +1 -0
- package/dist/editor/field-types/ImageFieldEditor.js +1 -1
- package/dist/editor/field-types/ImageFieldEditor.js.map +1 -1
- package/dist/editor/field-types/InternalLinkFieldEditor.js +1 -1
- package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -1
- package/dist/editor/field-types/LinkFieldEditor.js +1 -1
- package/dist/editor/field-types/LinkFieldEditor.js.map +1 -1
- package/dist/editor/field-types/MultiLineText.js +3 -1
- package/dist/editor/field-types/MultiLineText.js.map +1 -1
- package/dist/editor/field-types/PictureFieldEditor.js +1 -1
- package/dist/editor/field-types/PictureFieldEditor.js.map +1 -1
- package/dist/editor/field-types/SingleLineText.js +3 -1
- package/dist/editor/field-types/SingleLineText.js.map +1 -1
- package/dist/editor/field-types/TreeListEditor.js +71 -6
- package/dist/editor/field-types/TreeListEditor.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
- package/dist/editor/fieldTypes.d.ts +1 -1
- package/dist/editor/media-selector/AiImageSearch.js +2 -1
- package/dist/editor/media-selector/AiImageSearch.js.map +1 -1
- package/dist/editor/media-selector/AiImageSearchPrompt.js +2 -1
- package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
- package/dist/editor/page-viewer/DeviceToolbar.js +3 -2
- package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
- package/dist/editor/page-viewer/MiniMap.js +6 -1
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +9 -1
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/sidebar/Insert.js +1 -1
- package/dist/editor/sidebar/Insert.js.map +1 -1
- package/dist/editor/sidebar/MainContentTree.d.ts +1 -1
- package/dist/editor/sidebar/MainContentTree.js +19 -7
- package/dist/editor/sidebar/MainContentTree.js.map +1 -1
- package/dist/editor/ui/Icons.js +1 -1
- package/dist/editor/ui/Icons.js.map +1 -1
- package/dist/editor/ui/ItemNameDialogNew.js +14 -10
- package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
- package/dist/editor/ui/PerfectTree.d.ts +2 -0
- package/dist/editor/ui/PerfectTree.js +1 -1
- package/dist/editor/ui/PerfectTree.js.map +1 -1
- package/dist/editor/ui/Spinner.js +1 -1
- package/dist/editor/ui/Spinner.js.map +1 -1
- package/dist/page-wizard/steps/ContentStep.js +56 -17
- package/dist/page-wizard/steps/ContentStep.js.map +1 -1
- package/dist/page-wizard/steps/FindItemsStep.d.ts +2 -0
- package/dist/page-wizard/steps/FindItemsStep.js +293 -0
- package/dist/page-wizard/steps/FindItemsStep.js.map +1 -0
- package/dist/page-wizard/steps/ImagesStep.js +9 -1
- package/dist/page-wizard/steps/ImagesStep.js.map +1 -1
- package/dist/page-wizard/steps/LayoutStep.js +24 -14
- package/dist/page-wizard/steps/LayoutStep.js.map +1 -1
- package/dist/page-wizard/steps/MetaDataStep.js +21 -11
- package/dist/page-wizard/steps/MetaDataStep.js.map +1 -1
- package/dist/page-wizard/steps/SelectStep.js +38 -31
- package/dist/page-wizard/steps/SelectStep.js.map +1 -1
- package/dist/page-wizard/steps/StructureStep.d.ts +2 -0
- package/dist/page-wizard/steps/StructureStep.js +156 -0
- package/dist/page-wizard/steps/StructureStep.js.map +1 -0
- package/dist/page-wizard/utils/dataAccessor.d.ts +39 -0
- package/dist/page-wizard/utils/dataAccessor.js +222 -0
- package/dist/page-wizard/utils/dataAccessor.js.map +1 -0
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/RecentPages.js +14 -3
- package/dist/splash-screen/RecentPages.js.map +1 -1
- package/dist/styles.css +178 -0
- package/package.json +3 -1
- package/src/client-components/index.ts +1 -3
- package/src/components/ui/calendar.tsx +175 -0
- package/src/config/config.tsx +11 -1
- package/src/editor/ContentTree.tsx +4 -1
- package/src/editor/FieldList.tsx +44 -18
- package/src/editor/FieldListField.tsx +98 -23
- package/src/editor/client/EditorClient.tsx +6 -3
- package/src/editor/client/itemsRepository.ts +74 -10
- package/src/editor/client/pageModelBuilder.ts +1 -1
- package/src/editor/commands/itemCommands.tsx +2 -3
- package/src/editor/field-types/DateFieldEditor.tsx +132 -0
- package/src/editor/field-types/ImageFieldEditor.tsx +1 -1
- package/src/editor/field-types/InternalLinkFieldEditor.tsx +2 -2
- package/src/editor/field-types/LinkFieldEditor.tsx +2 -2
- package/src/editor/field-types/MultiLineText.tsx +5 -1
- package/src/editor/field-types/PictureFieldEditor.tsx +1 -1
- package/src/editor/field-types/SingleLineText.tsx +5 -1
- package/src/editor/field-types/TreeListEditor.tsx +136 -50
- package/src/editor/field-types/richtext/components/ReactSlate.tsx +5 -0
- package/src/editor/fieldTypes.ts +1 -1
- package/src/editor/media-selector/AiImageSearch.tsx +2 -1
- package/src/editor/media-selector/AiImageSearchPrompt.tsx +2 -1
- package/src/editor/page-viewer/DeviceToolbar.tsx +17 -5
- package/src/editor/page-viewer/MiniMap.tsx +7 -2
- package/src/editor/services/aiService.ts +10 -1
- package/src/editor/sidebar/Insert.tsx +1 -1
- package/src/editor/sidebar/MainContentTree.tsx +26 -14
- package/src/editor/ui/Icons.tsx +16 -5
- package/src/editor/ui/ItemNameDialogNew.tsx +42 -30
- package/src/editor/ui/PerfectTree.tsx +3 -1
- package/src/editor/ui/Spinner.tsx +3 -1
- package/src/page-wizard/steps/ContentStep.tsx +68 -20
- package/src/page-wizard/steps/FindItemsStep.tsx +546 -0
- package/src/page-wizard/steps/ImagesStep.tsx +13 -1
- package/src/page-wizard/steps/LayoutStep.tsx +27 -16
- package/src/page-wizard/steps/MetaDataStep.tsx +26 -13
- package/src/page-wizard/steps/SelectStep.tsx +61 -32
- package/src/page-wizard/steps/StructureStep.tsx +350 -0
- package/src/page-wizard/utils/dataAccessor.ts +275 -0
- package/src/revision.ts +2 -2
- package/src/splash-screen/RecentPages.tsx +22 -3
- package/dist/editor/ai/GhostWriter.d.ts +0 -1
- package/dist/editor/ai/GhostWriter.js +0 -347
- package/dist/editor/ai/GhostWriter.js.map +0 -1
- package/dist/editor/component-designer/ComponentDesignerAiTerminal.d.ts +0 -1
- package/dist/editor/component-designer/ComponentDesignerAiTerminal.js +0 -7
- package/dist/editor/component-designer/ComponentDesignerAiTerminal.js.map +0 -1
- /package/src/editor/ai/{GhostWriter.tsx → GhostWriter.tsx_} +0 -0
- /package/src/editor/component-designer/{ComponentDesignerAiTerminal.tsx → ComponentDesignerAiTerminal.tsx_} +0 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for flexible data access in wizard steps
|
|
3
|
+
* Allows both simple property names and JavaScript expressions
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Safely evaluates JavaScript expressions or property accessors against a data object
|
|
7
|
+
* @param inputProperties - Either a simple property name, a JavaScript expression, or multiple expressions separated by newlines
|
|
8
|
+
* @param data - The data object to evaluate against
|
|
9
|
+
* @returns The evaluated value(s) or undefined with an error message
|
|
10
|
+
*/
|
|
11
|
+
export function evaluateDataExpression(inputProperties, data) {
|
|
12
|
+
if (!inputProperties) {
|
|
13
|
+
return { value: undefined };
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
// Split by newlines and filter out empty lines
|
|
17
|
+
const expressionLines = inputProperties
|
|
18
|
+
.split("\n")
|
|
19
|
+
.map((line) => line.trim())
|
|
20
|
+
.filter((line) => line.length > 0);
|
|
21
|
+
// If no valid expressions found, return undefined
|
|
22
|
+
if (expressionLines.length === 0) {
|
|
23
|
+
return { value: undefined };
|
|
24
|
+
}
|
|
25
|
+
// If only one expression, return single result
|
|
26
|
+
if (expressionLines.length === 1) {
|
|
27
|
+
const firstExpression = expressionLines[0];
|
|
28
|
+
if (firstExpression) {
|
|
29
|
+
return evaluateSingleExpression(firstExpression, data);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Multiple expressions - evaluate each and collect results
|
|
33
|
+
const results = [];
|
|
34
|
+
const errors = [];
|
|
35
|
+
for (const expression of expressionLines) {
|
|
36
|
+
const result = evaluateSingleExpression(expression, data);
|
|
37
|
+
if (result.error) {
|
|
38
|
+
errors.push(`Line "${expression}": ${result.error}`);
|
|
39
|
+
}
|
|
40
|
+
else if (result.value !== undefined) {
|
|
41
|
+
// Only add non-undefined results
|
|
42
|
+
if (Array.isArray(result.value)) {
|
|
43
|
+
results.push(...result.value);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
results.push(result.value);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Return combined results or errors
|
|
51
|
+
if (errors.length > 0 && results.length === 0) {
|
|
52
|
+
return {
|
|
53
|
+
value: undefined,
|
|
54
|
+
error: `All expressions failed:\n${errors.join("\n")}`,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
value: results,
|
|
59
|
+
error: errors.length > 0
|
|
60
|
+
? `Some expressions failed:\n${errors.join("\n")}`
|
|
61
|
+
: undefined,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
return {
|
|
66
|
+
value: undefined,
|
|
67
|
+
error: `Failed to evaluate expressions "${inputProperties}": ${error instanceof Error ? error.message : String(error)}`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Evaluates expressions and maps them to object properties
|
|
73
|
+
* Supports explicit property names (name:expression) and implicit property names (derived from expression)
|
|
74
|
+
* @param inputProperties - Multiple expressions separated by newlines, optionally with explicit property names
|
|
75
|
+
* @param data - The data object to evaluate against
|
|
76
|
+
* @returns Object with properties mapped from expressions
|
|
77
|
+
*/
|
|
78
|
+
export function evaluateDataExpressionToObject(inputProperties, data) {
|
|
79
|
+
if (!inputProperties || !inputProperties.trim()) {
|
|
80
|
+
return { value: {} };
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
// Split by newlines and filter out empty lines
|
|
84
|
+
const expressionLines = inputProperties
|
|
85
|
+
.split("\n")
|
|
86
|
+
.map((line) => line.trim())
|
|
87
|
+
.filter((line) => line.length > 0);
|
|
88
|
+
if (expressionLines.length === 0) {
|
|
89
|
+
return { value: {} };
|
|
90
|
+
}
|
|
91
|
+
const result = {};
|
|
92
|
+
const errors = [];
|
|
93
|
+
for (const line of expressionLines) {
|
|
94
|
+
// Check if line contains explicit property name (name:expression format)
|
|
95
|
+
const colonIndex = line.indexOf(":");
|
|
96
|
+
let propertyName;
|
|
97
|
+
let expression;
|
|
98
|
+
if (colonIndex > 0 && colonIndex < line.length - 1) {
|
|
99
|
+
// Explicit property name format: "name:expression"
|
|
100
|
+
propertyName = line.substring(0, colonIndex).trim();
|
|
101
|
+
expression = line.substring(colonIndex + 1).trim();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// Implicit property name - derive from expression
|
|
105
|
+
expression = line;
|
|
106
|
+
propertyName = derivePropertyNameFromExpression(expression);
|
|
107
|
+
}
|
|
108
|
+
// Evaluate the expression
|
|
109
|
+
const evalResult = evaluateSingleExpression(expression, data);
|
|
110
|
+
if (evalResult.error) {
|
|
111
|
+
errors.push(`Property "${propertyName}" (${expression}): ${evalResult.error}`);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
result[propertyName] = evalResult.value;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
value: result,
|
|
119
|
+
error: errors.length > 0 ? errors.join("\n") : undefined,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
return {
|
|
124
|
+
value: {},
|
|
125
|
+
error: `Failed to evaluate expressions "${inputProperties}": ${error instanceof Error ? error.message : String(error)}`,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Derives a property name from an expression
|
|
131
|
+
* Examples:
|
|
132
|
+
* - "selectedItems" -> "selectedItems"
|
|
133
|
+
* - "data.selectedItems" -> "selectedItems"
|
|
134
|
+
* - "data.user.profile.name" -> "name"
|
|
135
|
+
* - "data.items.filter(x => x.active)" -> "items"
|
|
136
|
+
*/
|
|
137
|
+
function derivePropertyNameFromExpression(expression) {
|
|
138
|
+
// Remove "data." prefix if present
|
|
139
|
+
let cleaned = expression.replace(/^data\./, "");
|
|
140
|
+
// For method calls like "items.filter(...)", take the base property
|
|
141
|
+
const methodMatch = cleaned.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)\./);
|
|
142
|
+
if (methodMatch && methodMatch[1]) {
|
|
143
|
+
return methodMatch[1];
|
|
144
|
+
}
|
|
145
|
+
// For property access like "user.profile.name", take the last property
|
|
146
|
+
const parts = cleaned.split(".");
|
|
147
|
+
const lastPart = parts[parts.length - 1];
|
|
148
|
+
if (lastPart) {
|
|
149
|
+
// Extract just the property name (before any method calls or array access)
|
|
150
|
+
const propertyMatch = lastPart.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)/);
|
|
151
|
+
if (propertyMatch && propertyMatch[1]) {
|
|
152
|
+
return propertyMatch[1];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Fallback to the first valid identifier in the expression
|
|
156
|
+
const identifierMatch = cleaned.match(/([a-zA-Z_$][a-zA-Z0-9_$]*)/);
|
|
157
|
+
return identifierMatch && identifierMatch[1] ? identifierMatch[1] : "result";
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Evaluates a single expression
|
|
161
|
+
*/
|
|
162
|
+
function evaluateSingleExpression(expression, data) {
|
|
163
|
+
try {
|
|
164
|
+
// Check if it's a simple property name (no special characters that would indicate JS code)
|
|
165
|
+
const isSimpleProperty = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(expression);
|
|
166
|
+
if (isSimpleProperty) {
|
|
167
|
+
// Simple property access
|
|
168
|
+
return { value: data[expression] };
|
|
169
|
+
}
|
|
170
|
+
// It's a JavaScript expression
|
|
171
|
+
// If it doesn't start with "data.", prepend it automatically
|
|
172
|
+
let processedExpression = expression;
|
|
173
|
+
if (!expression.trim().startsWith("data.")) {
|
|
174
|
+
processedExpression = `data.${expression}`;
|
|
175
|
+
}
|
|
176
|
+
// Create a safe evaluation context
|
|
177
|
+
const evalFunction = new Function("data", `
|
|
178
|
+
try {
|
|
179
|
+
return ${processedExpression};
|
|
180
|
+
} catch (error) {
|
|
181
|
+
throw new Error('Expression evaluation failed: ' + error.message);
|
|
182
|
+
}
|
|
183
|
+
`);
|
|
184
|
+
const result = evalFunction(data);
|
|
185
|
+
return { value: result };
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
return {
|
|
189
|
+
value: undefined,
|
|
190
|
+
error: `Failed to evaluate expression "${expression}": ${error instanceof Error ? error.message : String(error)}`,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Sets a value in the data object using either a simple property name or a path
|
|
196
|
+
* For now, this only supports simple property names since setting via expressions is complex
|
|
197
|
+
* @param propertyName - The property name to set
|
|
198
|
+
* @param value - The value to set
|
|
199
|
+
* @param data - The current data object
|
|
200
|
+
* @returns Updated data object
|
|
201
|
+
*/
|
|
202
|
+
export function setDataProperty(propertyName, value, data) {
|
|
203
|
+
// For now, only support simple property names for setting
|
|
204
|
+
const isSimpleProperty = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(propertyName);
|
|
205
|
+
if (!isSimpleProperty) {
|
|
206
|
+
console.warn(`Setting data via expressions is not supported yet. Using property name as-is: ${propertyName}`);
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
...data,
|
|
210
|
+
[propertyName]: value,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Hook for using flexible data access in wizard steps
|
|
215
|
+
* @param expression - The expression or property name to read from
|
|
216
|
+
* @param data - The current data object
|
|
217
|
+
* @returns Object with the evaluated value and any error
|
|
218
|
+
*/
|
|
219
|
+
export function useDataExpression(expression, data) {
|
|
220
|
+
return evaluateDataExpression(expression, data);
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=dataAccessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataAccessor.js","sourceRoot":"","sources":["../../../src/page-wizard/utils/dataAccessor.ts"],"names":[],"mappings":"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"}
|
package/dist/revision.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "1.0.
|
|
2
|
-
export declare const buildDate = "2025-07-
|
|
1
|
+
export declare const version = "1.0.4008";
|
|
2
|
+
export declare const buildDate = "2025-07-18 01:54:14";
|
package/dist/revision.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export const version = "1.0.
|
|
2
|
-
export const buildDate = "2025-07-
|
|
1
|
+
export const version = "1.0.4008";
|
|
2
|
+
export const buildDate = "2025-07-18 01:54:14";
|
|
3
3
|
//# sourceMappingURL=revision.js.map
|
|
@@ -6,12 +6,23 @@ import { Card } from "../components/ui/card";
|
|
|
6
6
|
export function RecentPages() {
|
|
7
7
|
const editContext = useEditContext();
|
|
8
8
|
const [history, setHistory] = useState();
|
|
9
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
9
10
|
const [selectedPage, setSelectedPage] = useState(null);
|
|
10
11
|
const recentPages = editContext?.browseHistory || [];
|
|
11
12
|
useEffect(() => {
|
|
12
13
|
const fetchItems = async () => {
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
if (recentPages.length === 0) {
|
|
15
|
+
setHistory([]);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
setIsLoading(true);
|
|
19
|
+
try {
|
|
20
|
+
const pages = await editContext?.itemsRepository.getItems(recentPages);
|
|
21
|
+
setHistory(pages);
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
setIsLoading(false);
|
|
25
|
+
}
|
|
15
26
|
};
|
|
16
27
|
fetchItems();
|
|
17
28
|
}, [editContext?.itemsRepository, recentPages]);
|
|
@@ -40,6 +51,6 @@ export function RecentPages() {
|
|
|
40
51
|
const d = new Date(date);
|
|
41
52
|
return d.toLocaleDateString();
|
|
42
53
|
};
|
|
43
|
-
return (_jsx(Card, { icon: _jsx("i", { className: "pi pi-history text-sm" }), title: "Recent Pages/Items", description: "Quick access to your recently viewed pages", className: "flex h-full flex-col", children: _jsx("div", { className: "relative flex min-h-0 flex-1 flex-col", children: _jsxs("div", { className: "absolute inset-0 overflow-auto", children: [_jsx("table", { className: "w-full text-xs", children: _jsx("tbody", { children: history?.map((page, index) => (_jsxs("tr", { onMouseOver: () => handlePageSelect(page), onClick: () => handlePageLoad(page), className: "cursor-pointer border-b border-gray-100 hover:bg-gray-50", children: [_jsx("td", { className: "py-3", children: _jsx("div", { className: "flex items-center gap-2", children: _jsxs("div", { className: "min-w-0 flex-1 pl-1", children: [_jsx("div", { className: "font-medium text-gray-900", children: page.name }), _jsx("div", { className: "text-xs break-all text-gray-500", children: page.path })] }) }) }), _jsx("td", { className: "hidden p-3 text-gray-700 md:table-cell", children: _jsx("div", { className: "truncate", children: page.templateName || "—" }) }), _jsx("td", { className: "p-3", children: _jsx("span", { className: "inline-flex items-center truncate rounded-full bg-blue-100 px-2 py-1 text-xs font-medium text-blue-800", children: page.workflowState || "Draft" }) }), _jsx("td", { className: "hidden p-3 text-gray-700 md:table-cell", children: page.versions || 0 })] }, page.id || index))) }) }), (!history || history.length === 0) && (_jsx("div", { className: "p-6 text-center text-sm text-gray-500", children: "No recent pages found" }))] }) }) }));
|
|
54
|
+
return (_jsx(Card, { icon: _jsx("i", { className: "pi pi-history text-sm" }), title: "Recent Pages/Items", description: "Quick access to your recently viewed pages", className: "flex h-full flex-col", children: _jsx("div", { className: "relative flex min-h-0 flex-1 flex-col", children: _jsxs("div", { className: "absolute inset-0 overflow-auto", children: [_jsx("table", { className: "w-full text-xs", children: _jsx("tbody", { children: history?.map((page, index) => (_jsxs("tr", { onMouseOver: () => handlePageSelect(page), onClick: () => handlePageLoad(page), className: "cursor-pointer border-b border-gray-100 hover:bg-gray-50", children: [_jsx("td", { className: "py-3", children: _jsx("div", { className: "flex items-center gap-2", children: _jsxs("div", { className: "min-w-0 flex-1 pl-1", children: [_jsx("div", { className: "font-medium text-gray-900", children: page.name }), _jsx("div", { className: "text-xs break-all text-gray-500", children: page.path })] }) }) }), _jsx("td", { className: "hidden p-3 text-gray-700 md:table-cell", children: _jsx("div", { className: "truncate", children: page.templateName || "—" }) }), _jsx("td", { className: "p-3", children: _jsx("span", { className: "inline-flex items-center truncate rounded-full bg-blue-100 px-2 py-1 text-xs font-medium text-blue-800", children: page.workflowState || "Draft" }) }), _jsx("td", { className: "hidden p-3 text-gray-700 md:table-cell", children: page.versions || 0 })] }, page.id || index))) }) }), isLoading && (_jsxs("div", { className: "flex h-full flex-col items-center justify-center p-6 text-center", children: [_jsx("i", { className: "pi pi-spin pi-spinner text-lg text-gray-400" }), _jsx("div", { className: "mt-2 text-sm text-gray-500", children: "Loading recent pages..." })] })), !isLoading && (!history || history.length === 0) && (_jsx("div", { className: "p-6 text-center text-sm text-gray-500", children: "No recent pages found" }))] }) }) }));
|
|
44
55
|
}
|
|
45
56
|
//# sourceMappingURL=RecentPages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecentPages.js","sourceRoot":"","sources":["../../src/splash-screen/RecentPages.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,MAAM,UAAU,WAAW;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAc,CAAC;IACrD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,WAAW,EAAE,aAAa,IAAI,EAAE,CAAC;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"RecentPages.js","sourceRoot":"","sources":["../../src/splash-screen/RecentPages.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,MAAM,UAAU,WAAW;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAc,CAAC;IACrD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,WAAW,EAAE,aAAa,IAAI,EAAE,CAAC;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,UAAU,CAAC,EAAE,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACvE,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QACF,UAAU,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhD,MAAM,gBAAgB,GAAG,CAAC,IAAkB,EAAE,EAAE;QAC9C,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,IAAoB,EAAE,EAAE;QAC9C,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW;iBACR,QAAQ,CAAC;gBACR,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;gBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE;gBACT,sDAAsD;gBACtD,WAAW,CAAC,UAAU,CACpB,WAAW,CAAC,iBAAiB,EAAE,SAAS;oBACtC,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,gBAAgB,CACrB,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,IAAoB,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IACH,IAAI,EAAE,YAAG,SAAS,EAAC,uBAAuB,GAAK,EAC/C,KAAK,EAAC,oBAAoB,EAC1B,WAAW,EAAC,4CAA4C,EACxD,SAAS,EAAC,sBAAsB,YAEhC,cAAK,SAAS,EAAC,uCAAuC,YACpD,eAAK,SAAS,EAAC,gCAAgC,aAC7C,gBAAO,SAAS,EAAC,gBAAgB,YAC/B,0BACG,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC7B,cAEE,WAAW,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACzC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EACnC,SAAS,EAAC,0DAA0D,aAEpE,aAAI,SAAS,EAAC,MAAM,YAClB,cAAK,SAAS,EAAC,yBAAyB,YAUtC,eAAK,SAAS,EAAC,qBAAqB,aAClC,cAAK,SAAS,EAAC,2BAA2B,YACvC,IAAI,CAAC,IAAI,GACN,EACN,cAAK,SAAS,EAAC,iCAAiC,YAC7C,IAAI,CAAC,IAAI,GACN,IACF,GACF,GACH,EACL,aAAI,SAAS,EAAC,wCAAwC,YACpD,cAAK,SAAS,EAAC,UAAU,YAAE,IAAI,CAAC,YAAY,IAAI,GAAG,GAAO,GACvD,EACL,aAAI,SAAS,EAAC,KAAK,YACjB,eAAM,SAAS,EAAC,wGAAwG,YACrH,IAAI,CAAC,aAAa,IAAI,OAAO,GACzB,GACJ,EACL,aAAI,SAAS,EAAC,wCAAwC,YACnD,IAAI,CAAC,QAAQ,IAAI,CAAC,GAChB,KApCA,IAAI,CAAC,EAAE,IAAI,KAAK,CAqClB,CACN,CAAC,GACI,GACF,EACP,SAAS,IAAI,CACZ,eAAK,SAAS,EAAC,kEAAkE,aAC/E,YAAG,SAAS,EAAC,6CAA6C,GAAK,EAC/D,cAAK,SAAS,EAAC,4BAA4B,wCAErC,IACF,CACP,EACA,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CACnD,cAAK,SAAS,EAAC,uCAAuC,sCAEhD,CACP,IACG,GACF,GACD,CACR,CAAC;AACJ,CAAC"}
|