@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.
Files changed (141) hide show
  1. package/dist/client-components/index.d.ts +1 -0
  2. package/dist/client-components/index.js +1 -0
  3. package/dist/client-components/index.js.map +1 -1
  4. package/dist/components/ui/calendar.d.ts +7 -0
  5. package/dist/components/ui/calendar.js +62 -0
  6. package/dist/components/ui/calendar.js.map +1 -0
  7. package/dist/config/config.js +11 -0
  8. package/dist/config/config.js.map +1 -1
  9. package/dist/editor/ContentTree.d.ts +2 -1
  10. package/dist/editor/ContentTree.js +2 -2
  11. package/dist/editor/ContentTree.js.map +1 -1
  12. package/dist/editor/FieldList.js +37 -10
  13. package/dist/editor/FieldList.js.map +1 -1
  14. package/dist/editor/FieldListField.js +21 -10
  15. package/dist/editor/FieldListField.js.map +1 -1
  16. package/dist/editor/client/EditorClient.js +5 -3
  17. package/dist/editor/client/EditorClient.js.map +1 -1
  18. package/dist/editor/client/itemsRepository.js +57 -9
  19. package/dist/editor/client/itemsRepository.js.map +1 -1
  20. package/dist/editor/client/pageModelBuilder.js +1 -1
  21. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  22. package/dist/editor/commands/itemCommands.js +1 -1
  23. package/dist/editor/commands/itemCommands.js.map +1 -1
  24. package/dist/editor/field-types/DateFieldEditor.d.ts +5 -0
  25. package/dist/editor/field-types/DateFieldEditor.js +93 -0
  26. package/dist/editor/field-types/DateFieldEditor.js.map +1 -0
  27. package/dist/editor/field-types/ImageFieldEditor.js +1 -1
  28. package/dist/editor/field-types/ImageFieldEditor.js.map +1 -1
  29. package/dist/editor/field-types/InternalLinkFieldEditor.js +1 -1
  30. package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -1
  31. package/dist/editor/field-types/LinkFieldEditor.js +1 -1
  32. package/dist/editor/field-types/LinkFieldEditor.js.map +1 -1
  33. package/dist/editor/field-types/MultiLineText.js +3 -1
  34. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  35. package/dist/editor/field-types/PictureFieldEditor.js +1 -1
  36. package/dist/editor/field-types/PictureFieldEditor.js.map +1 -1
  37. package/dist/editor/field-types/SingleLineText.js +3 -1
  38. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  39. package/dist/editor/field-types/TreeListEditor.js +71 -6
  40. package/dist/editor/field-types/TreeListEditor.js.map +1 -1
  41. package/dist/editor/field-types/richtext/components/ReactSlate.js +1 -1
  42. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  43. package/dist/editor/fieldTypes.d.ts +1 -1
  44. package/dist/editor/media-selector/AiImageSearch.js +2 -1
  45. package/dist/editor/media-selector/AiImageSearch.js.map +1 -1
  46. package/dist/editor/media-selector/AiImageSearchPrompt.js +2 -1
  47. package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
  48. package/dist/editor/page-viewer/DeviceToolbar.js +3 -2
  49. package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
  50. package/dist/editor/page-viewer/MiniMap.js +6 -1
  51. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  52. package/dist/editor/services/aiService.d.ts +9 -1
  53. package/dist/editor/services/aiService.js.map +1 -1
  54. package/dist/editor/sidebar/Insert.js +1 -1
  55. package/dist/editor/sidebar/Insert.js.map +1 -1
  56. package/dist/editor/sidebar/MainContentTree.d.ts +1 -1
  57. package/dist/editor/sidebar/MainContentTree.js +19 -7
  58. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  59. package/dist/editor/ui/Icons.js +1 -1
  60. package/dist/editor/ui/Icons.js.map +1 -1
  61. package/dist/editor/ui/ItemNameDialogNew.js +14 -10
  62. package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
  63. package/dist/editor/ui/PerfectTree.d.ts +2 -0
  64. package/dist/editor/ui/PerfectTree.js +1 -1
  65. package/dist/editor/ui/PerfectTree.js.map +1 -1
  66. package/dist/editor/ui/Spinner.js +1 -1
  67. package/dist/editor/ui/Spinner.js.map +1 -1
  68. package/dist/page-wizard/steps/ContentStep.js +56 -17
  69. package/dist/page-wizard/steps/ContentStep.js.map +1 -1
  70. package/dist/page-wizard/steps/FindItemsStep.d.ts +2 -0
  71. package/dist/page-wizard/steps/FindItemsStep.js +293 -0
  72. package/dist/page-wizard/steps/FindItemsStep.js.map +1 -0
  73. package/dist/page-wizard/steps/ImagesStep.js +9 -1
  74. package/dist/page-wizard/steps/ImagesStep.js.map +1 -1
  75. package/dist/page-wizard/steps/LayoutStep.js +24 -14
  76. package/dist/page-wizard/steps/LayoutStep.js.map +1 -1
  77. package/dist/page-wizard/steps/MetaDataStep.js +21 -11
  78. package/dist/page-wizard/steps/MetaDataStep.js.map +1 -1
  79. package/dist/page-wizard/steps/SelectStep.js +38 -31
  80. package/dist/page-wizard/steps/SelectStep.js.map +1 -1
  81. package/dist/page-wizard/steps/StructureStep.d.ts +2 -0
  82. package/dist/page-wizard/steps/StructureStep.js +156 -0
  83. package/dist/page-wizard/steps/StructureStep.js.map +1 -0
  84. package/dist/page-wizard/utils/dataAccessor.d.ts +39 -0
  85. package/dist/page-wizard/utils/dataAccessor.js +222 -0
  86. package/dist/page-wizard/utils/dataAccessor.js.map +1 -0
  87. package/dist/revision.d.ts +2 -2
  88. package/dist/revision.js +2 -2
  89. package/dist/splash-screen/RecentPages.js +14 -3
  90. package/dist/splash-screen/RecentPages.js.map +1 -1
  91. package/dist/styles.css +178 -0
  92. package/package.json +3 -1
  93. package/src/client-components/index.ts +1 -3
  94. package/src/components/ui/calendar.tsx +175 -0
  95. package/src/config/config.tsx +11 -1
  96. package/src/editor/ContentTree.tsx +4 -1
  97. package/src/editor/FieldList.tsx +44 -18
  98. package/src/editor/FieldListField.tsx +98 -23
  99. package/src/editor/client/EditorClient.tsx +6 -3
  100. package/src/editor/client/itemsRepository.ts +74 -10
  101. package/src/editor/client/pageModelBuilder.ts +1 -1
  102. package/src/editor/commands/itemCommands.tsx +2 -3
  103. package/src/editor/field-types/DateFieldEditor.tsx +132 -0
  104. package/src/editor/field-types/ImageFieldEditor.tsx +1 -1
  105. package/src/editor/field-types/InternalLinkFieldEditor.tsx +2 -2
  106. package/src/editor/field-types/LinkFieldEditor.tsx +2 -2
  107. package/src/editor/field-types/MultiLineText.tsx +5 -1
  108. package/src/editor/field-types/PictureFieldEditor.tsx +1 -1
  109. package/src/editor/field-types/SingleLineText.tsx +5 -1
  110. package/src/editor/field-types/TreeListEditor.tsx +136 -50
  111. package/src/editor/field-types/richtext/components/ReactSlate.tsx +5 -0
  112. package/src/editor/fieldTypes.ts +1 -1
  113. package/src/editor/media-selector/AiImageSearch.tsx +2 -1
  114. package/src/editor/media-selector/AiImageSearchPrompt.tsx +2 -1
  115. package/src/editor/page-viewer/DeviceToolbar.tsx +17 -5
  116. package/src/editor/page-viewer/MiniMap.tsx +7 -2
  117. package/src/editor/services/aiService.ts +10 -1
  118. package/src/editor/sidebar/Insert.tsx +1 -1
  119. package/src/editor/sidebar/MainContentTree.tsx +26 -14
  120. package/src/editor/ui/Icons.tsx +16 -5
  121. package/src/editor/ui/ItemNameDialogNew.tsx +42 -30
  122. package/src/editor/ui/PerfectTree.tsx +3 -1
  123. package/src/editor/ui/Spinner.tsx +3 -1
  124. package/src/page-wizard/steps/ContentStep.tsx +68 -20
  125. package/src/page-wizard/steps/FindItemsStep.tsx +546 -0
  126. package/src/page-wizard/steps/ImagesStep.tsx +13 -1
  127. package/src/page-wizard/steps/LayoutStep.tsx +27 -16
  128. package/src/page-wizard/steps/MetaDataStep.tsx +26 -13
  129. package/src/page-wizard/steps/SelectStep.tsx +61 -32
  130. package/src/page-wizard/steps/StructureStep.tsx +350 -0
  131. package/src/page-wizard/utils/dataAccessor.ts +275 -0
  132. package/src/revision.ts +2 -2
  133. package/src/splash-screen/RecentPages.tsx +22 -3
  134. package/dist/editor/ai/GhostWriter.d.ts +0 -1
  135. package/dist/editor/ai/GhostWriter.js +0 -347
  136. package/dist/editor/ai/GhostWriter.js.map +0 -1
  137. package/dist/editor/component-designer/ComponentDesignerAiTerminal.d.ts +0 -1
  138. package/dist/editor/component-designer/ComponentDesignerAiTerminal.js +0 -7
  139. package/dist/editor/component-designer/ComponentDesignerAiTerminal.js.map +0 -1
  140. /package/src/editor/ai/{GhostWriter.tsx → GhostWriter.tsx_} +0 -0
  141. /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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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.0.4000";
2
- export declare const buildDate = "2025-07-15 11:11:51";
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.4000";
2
- export const buildDate = "2025-07-15 11:11:51";
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
- const pages = await editContext?.itemsRepository.getItems(recentPages);
14
- setHistory(pages);
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":"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"}
1
+ {"version":3,"file":"RecentPages.js","sourceRoot":"","sources":["../../src/splash-screen/RecentPages.tsx"],"names":[],"mappings":"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"}