@multiplatform.one/frappe-ui 6.4.0 → 6.4.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/cjs/FrappeDashboard.cjs +12 -2
- package/dist/cjs/FrappeDashboard.native.js +12 -2
- package/dist/cjs/FrappeDashboard.native.js.map +1 -1
- package/dist/cjs/FrappeLikedBy.cjs +2 -1
- package/dist/cjs/FrappeLikedBy.native.js +3 -1
- package/dist/cjs/FrappeLikedBy.native.js.map +1 -1
- package/dist/cjs/FrappeListView.cjs +10 -1
- package/dist/cjs/FrappeListView.native.js +10 -1
- package/dist/cjs/FrappeListView.native.js.map +1 -1
- package/dist/cjs/fieldRegistry.cjs +1 -1
- package/dist/cjs/fieldRegistry.native.js +1 -1
- package/dist/cjs/fieldRegistry.native.js.map +1 -1
- package/dist/cjs/fields/MarkdownEditor/index.cjs +33 -108
- package/dist/cjs/fields/MarkdownEditor/index.native.js +3 -3
- package/dist/cjs/fields/MarkdownEditor/index.native.js.map +1 -1
- package/dist/esm/FrappeDashboard.mjs +13 -3
- package/dist/esm/FrappeDashboard.mjs.map +1 -1
- package/dist/esm/FrappeDashboard.native.js +13 -3
- package/dist/esm/FrappeDashboard.native.js.map +1 -1
- package/dist/esm/FrappeLikedBy.mjs +3 -2
- package/dist/esm/FrappeLikedBy.mjs.map +1 -1
- package/dist/esm/FrappeLikedBy.native.js +4 -2
- package/dist/esm/FrappeLikedBy.native.js.map +1 -1
- package/dist/esm/FrappeListView.mjs +11 -2
- package/dist/esm/FrappeListView.mjs.map +1 -1
- package/dist/esm/FrappeListView.native.js +11 -2
- package/dist/esm/FrappeListView.native.js.map +1 -1
- package/dist/esm/fieldRegistry.mjs +1 -1
- package/dist/esm/fieldRegistry.mjs.map +1 -1
- package/dist/esm/fieldRegistry.native.js +1 -1
- package/dist/esm/fieldRegistry.native.js.map +1 -1
- package/dist/esm/fields/MarkdownEditor/index.mjs +36 -100
- package/dist/esm/fields/MarkdownEditor/index.mjs.map +1 -1
- package/dist/esm/fields/MarkdownEditor/index.native.js.map +1 -1
- package/dist/jsx/FrappeDashboard.mjs +13 -3
- package/dist/jsx/FrappeDashboard.mjs.map +1 -1
- package/dist/jsx/FrappeDashboard.native.js +12 -2
- package/dist/jsx/FrappeDashboard.native.js.map +1 -1
- package/dist/jsx/FrappeLikedBy.mjs +3 -2
- package/dist/jsx/FrappeLikedBy.mjs.map +1 -1
- package/dist/jsx/FrappeLikedBy.native.js +3 -1
- package/dist/jsx/FrappeLikedBy.native.js.map +1 -1
- package/dist/jsx/FrappeListView.mjs +11 -2
- package/dist/jsx/FrappeListView.mjs.map +1 -1
- package/dist/jsx/FrappeListView.native.js +10 -1
- package/dist/jsx/FrappeListView.native.js.map +1 -1
- package/dist/jsx/fieldRegistry.mjs +1 -1
- package/dist/jsx/fieldRegistry.mjs.map +1 -1
- package/dist/jsx/fieldRegistry.native.js +1 -1
- package/dist/jsx/fieldRegistry.native.js.map +1 -1
- package/dist/jsx/fields/MarkdownEditor/index.mjs +36 -100
- package/dist/jsx/fields/MarkdownEditor/index.mjs.map +1 -1
- package/dist/jsx/fields/MarkdownEditor/index.native.js +3 -3
- package/dist/jsx/fields/MarkdownEditor/index.native.js.map +1 -1
- package/package.json +15 -15
- package/src/FrappeDashboard.tsx +2 -2
- package/src/FrappeLikedBy.tsx +13 -2
- package/src/FrappeListView.tsx +1 -1
- package/src/FrappeReportBuilder.tsx +1 -1
- package/src/FrappeTable.stories.tsx +91 -12
- package/src/FrappeTreeView.tsx +1 -1
- package/src/desk/DeskFormPage.tsx +1 -1
- package/src/desk/DeskListPage.tsx +1 -1
- package/src/fields/Date/index.tsx +47 -3
- package/types/FrappeDashboard.d.ts.map +1 -1
- package/types/FrappeLikedBy.d.ts.map +1 -1
- package/types/FrappeListView.d.ts.map +1 -1
- package/types/fieldRegistry.d.ts.map +1 -1
- package/types/fields/MarkdownEditor/index.d.ts +11 -5
- package/types/fields/MarkdownEditor/index.d.ts.map +1 -1
- package/types/fields/MarkdownEditor/index.native.d.ts +47 -0
- package/types/fields/MarkdownEditor/index.native.d.ts.map +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["index_native_exports","__export","MarkdownEditorField","module","exports","__toCommonJS","import_jsx_runtime","require","import_forms","import_react","import_react_i18next","import_tamagui","import_theme","import_EditorPreviewPanes","markdownRendererCache","useMarkdownRenderer","enabled","renderer","setRenderer","useState","useEffect","cancelled","then","mod","Markdown","catch","MarkdownPreview","param","value","compact","t","useTranslation","knobProps","useResolvedKnobs","Renderer","textSize","sizeToken","jsx","PreviewSurface","children","Paragraph","color","formCommonColors","muted","size","whiteSpace","name","form","formProp","validators","label","labelProps","helperText","error","required","disabled","readOnly","skeleton","id","idProp","defaultValue","onChange","onBlur","placeholder","minRows","maxRows","ariaLabel","_ref","_ref1","resolvedForm","useFormField","resolvedValidators","useResolvedValidators","inTableCell","useIsInTableCell","internalValue","setInternalValue","accessibleName","jsxs","YStack","gap","width","Skeleton","variant","height","renderSource","renderSource2","textValue","handleChange","hasError","TextArea","onChangeText","text","textAreaProps","fontFamily","autoCapitalize","autoCorrect","spellCheck","renderControl","renderControl2","EditorPreviewPanes","editor","preview","editTabLabel","previewTabLabel","defaultPreview","FieldLayout","Field","field","resolvedError","getFieldError","fieldValue","state","handleChange2","mergeFieldHandler"],"sources":["../../../../src/fields/MarkdownEditor/index.native.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/frappe-ui",
|
|
3
|
-
"version": "6.4.
|
|
3
|
+
"version": "6.4.2",
|
|
4
4
|
"description": "Pre-wired Tamagui components for Frappe doctypes with live data",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cross-platform",
|
|
@@ -78,17 +78,17 @@
|
|
|
78
78
|
"html5-qrcode": "^2.3.8",
|
|
79
79
|
"signature_pad": "^5.1.3",
|
|
80
80
|
"tamagui": "2.0.0-rc.41",
|
|
81
|
-
"@multiplatform.one/components": "6.4.
|
|
82
|
-
"@multiplatform.one/
|
|
83
|
-
"@multiplatform.one/
|
|
84
|
-
"@multiplatform.one/
|
|
85
|
-
"@multiplatform.one/
|
|
86
|
-
"@multiplatform.one/
|
|
87
|
-
"@multiplatform.one/
|
|
88
|
-
"@multiplatform.one/
|
|
89
|
-
"@multiplatform.one/table": "6.4.
|
|
90
|
-
"@multiplatform.one/theme": "6.4.
|
|
91
|
-
"@multiplatform.one/
|
|
81
|
+
"@multiplatform.one/components": "6.4.2",
|
|
82
|
+
"@multiplatform.one/desktop": "6.4.2",
|
|
83
|
+
"@multiplatform.one/i18n": "6.4.2",
|
|
84
|
+
"@multiplatform.one/platform": "6.4.2",
|
|
85
|
+
"@multiplatform.one/frappe": "6.4.2",
|
|
86
|
+
"@multiplatform.one/forms": "6.4.2",
|
|
87
|
+
"@multiplatform.one/rich-text": "6.4.2",
|
|
88
|
+
"@multiplatform.one/router": "6.4.2",
|
|
89
|
+
"@multiplatform.one/table": "6.4.2",
|
|
90
|
+
"@multiplatform.one/theme": "6.4.2",
|
|
91
|
+
"@multiplatform.one/store": "6.4.2"
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
94
|
"@tamagui/build": "2.0.0-rc.41",
|
|
@@ -101,9 +101,9 @@
|
|
|
101
101
|
"react-dom": "19.2.5",
|
|
102
102
|
"react-i18next": "^16.6.6",
|
|
103
103
|
"vitest": "^4.1.5",
|
|
104
|
-
"@multiplatform.one/config": "6.4.
|
|
105
|
-
"@multiplatform.one/test-utils": "6.4.
|
|
106
|
-
"@multiplatform.one/storybook": "6.4.
|
|
104
|
+
"@multiplatform.one/config": "6.4.2",
|
|
105
|
+
"@multiplatform.one/test-utils": "6.4.2",
|
|
106
|
+
"@multiplatform.one/storybook": "6.4.2"
|
|
107
107
|
},
|
|
108
108
|
"peerDependencies": {
|
|
109
109
|
"@react-native-community/datetimepicker": "^8.0.1",
|
package/src/FrappeDashboard.tsx
CHANGED
|
@@ -203,7 +203,7 @@ function LiveDashboardContent<TDoc extends { name: string; doctype: string }>({
|
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
return (
|
|
206
|
-
<YStack {...knobProps.
|
|
206
|
+
<YStack {...knobProps.containerRadius} flex={1} {...stackProps}>
|
|
207
207
|
{(title || showRefresh) && (
|
|
208
208
|
<XStack
|
|
209
209
|
{...knobProps.panelPadding}
|
|
@@ -316,7 +316,7 @@ export function FrappeDashboard<TDoc extends { name: string; doctype: string }>(
|
|
|
316
316
|
// Static widgets path (no live dataSource)
|
|
317
317
|
if (!dataSource || !connectionConfig) {
|
|
318
318
|
return (
|
|
319
|
-
<YStack {...knobProps.
|
|
319
|
+
<YStack {...knobProps.containerRadius} flex={1} {...stackProps}>
|
|
320
320
|
{(title || autoRefresh) && (
|
|
321
321
|
<XStack
|
|
322
322
|
{...knobProps.panelPadding}
|
package/src/FrappeLikedBy.tsx
CHANGED
|
@@ -17,7 +17,7 @@ import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
|
17
17
|
import { HeartIcon } from "@phosphor-icons/react";
|
|
18
18
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
19
19
|
import { useTranslation } from "react-i18next";
|
|
20
|
-
import { Button, Text, XStack, YStack, type YStackProps } from "tamagui";
|
|
20
|
+
import { Button, Text, XStack, YStack, isWeb, useTheme, type YStackProps } from "tamagui";
|
|
21
21
|
import { useFrappeConfig } from "./FrappeProvider";
|
|
22
22
|
import { FrappeReconnectIndicator } from "./FrappeReconnectIndicator";
|
|
23
23
|
import { useFrappeUsers } from "./frappeUsers";
|
|
@@ -108,6 +108,9 @@ function FrappeLikedByBody({
|
|
|
108
108
|
const config = useFrappeConfig();
|
|
109
109
|
const { t } = useTranslation();
|
|
110
110
|
const { knobProps } = useResolvedKnobs();
|
|
111
|
+
// Native SVG can't parse CSS color strings (`var(--red10)` / `currentColor`)
|
|
112
|
+
// — resolve concrete theme values there; web keeps the CSS vars.
|
|
113
|
+
const theme = useTheme();
|
|
111
114
|
const [pending, setPending] = useState(false);
|
|
112
115
|
const [actionError, setActionError] = useState<string | null>(null);
|
|
113
116
|
// Optimistic flip for the live (toggle_like) path — reverted on failure,
|
|
@@ -282,7 +285,15 @@ function FrappeLikedByBody({
|
|
|
282
285
|
<HeartIcon
|
|
283
286
|
size={16}
|
|
284
287
|
weight={liked ? "fill" : "regular"}
|
|
285
|
-
color={
|
|
288
|
+
color={
|
|
289
|
+
liked
|
|
290
|
+
? isWeb
|
|
291
|
+
? "var(--red10)"
|
|
292
|
+
: theme.red10?.val
|
|
293
|
+
: isWeb
|
|
294
|
+
? "currentColor"
|
|
295
|
+
: theme.color?.val
|
|
296
|
+
}
|
|
286
297
|
/>
|
|
287
298
|
}
|
|
288
299
|
/>
|
package/src/FrappeListView.tsx
CHANGED
|
@@ -647,7 +647,7 @@ export function FrappeListView<TDoc extends { name: string; doctype: string }>({
|
|
|
647
647
|
return (
|
|
648
648
|
<YStack
|
|
649
649
|
flex={1}
|
|
650
|
-
{...knobProps.
|
|
650
|
+
{...knobProps.containerRadius}
|
|
651
651
|
testID={`${doctype.toLowerCase()}-list`}
|
|
652
652
|
{...stackProps}
|
|
653
653
|
>
|
|
@@ -459,7 +459,7 @@ export function FrappeReportBuilder({
|
|
|
459
459
|
alignItems="center"
|
|
460
460
|
justifyContent="space-between"
|
|
461
461
|
padding="$2"
|
|
462
|
-
{...knobProps.
|
|
462
|
+
{...knobProps.containerRadius}
|
|
463
463
|
hoverStyle={{ backgroundColor: "$color2" }}
|
|
464
464
|
cursor="pointer"
|
|
465
465
|
onPress={() => handleLoadReport(report)}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { InMemoryFixtureProvider } from "@multiplatform.one/frappe";
|
|
2
2
|
import { action } from "@multiplatform.one/storybook";
|
|
3
3
|
import type { DataTableColumn } from "@multiplatform.one/table";
|
|
4
|
-
|
|
4
|
+
// Catalog Text (G-15 story honesty / D-05).
|
|
5
|
+
import { Text } from "@multiplatform.one/components";
|
|
5
6
|
import { FrappeTable } from "./FrappeTable";
|
|
6
7
|
import { FrappeProvider } from "./FrappeProvider";
|
|
7
8
|
import { FrappeStoryProvider } from "./frappeStoryTarget";
|
|
@@ -14,12 +15,88 @@ export default {
|
|
|
14
15
|
docs: {
|
|
15
16
|
description: {
|
|
16
17
|
component:
|
|
17
|
-
"Table over useFrappeCollection / useLiveQuery (client) or Frappe REST (serverSide).
|
|
18
|
+
"Table over useFrappeCollection / useLiveQuery (client) or Frappe REST (serverSide). Fixture stories are network-hermetic (G-15/D-05): documents come from InMemoryFixtureProvider and DocType meta from an in-story fetch mock, so nothing leaves the machine. The separately-named Live and ServerSide stories are the live-bench arm — they target STORYBOOK_FRAPPE_URL when reachable and fall back to fixtures otherwise.",
|
|
18
19
|
},
|
|
19
20
|
},
|
|
20
21
|
},
|
|
21
22
|
};
|
|
22
23
|
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Hermetic story host (G-15 story honesty / D-05, closes UX-P18).
|
|
26
|
+
//
|
|
27
|
+
// Fixture-backed stories previously pointed at https://demo.frappe.cloud. The
|
|
28
|
+
// fixture provider serves the *collection*, but FrappeTable still resolves
|
|
29
|
+
// DocType meta over HTTP — so every one of those stories fired a real
|
|
30
|
+
// cross-origin request that the browser rejected with a CORS error, poisoning
|
|
31
|
+
// the console for every automated probe. MOCK_HOST keeps the same code path
|
|
32
|
+
// (real fetch, real meta shape) without leaving the machine; ERR_HOST is the
|
|
33
|
+
// deliberate failure host for the error-state story.
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
|
|
36
|
+
const MOCK_HOST = "https://frappetable.mock.test";
|
|
37
|
+
const ERR_HOST = "https://forbidden.frappetable.mock.test";
|
|
38
|
+
|
|
39
|
+
function customerMetaRaw(name: string) {
|
|
40
|
+
return {
|
|
41
|
+
name,
|
|
42
|
+
module: "Selling",
|
|
43
|
+
title_field: "customer_name",
|
|
44
|
+
fields: [
|
|
45
|
+
{ fieldname: "customer_name", fieldtype: "Data", label: "Customer Name", in_list_view: 1 },
|
|
46
|
+
{
|
|
47
|
+
fieldname: "customer_type",
|
|
48
|
+
fieldtype: "Select",
|
|
49
|
+
label: "Customer Type",
|
|
50
|
+
options: "Company\nIndividual",
|
|
51
|
+
in_list_view: 1,
|
|
52
|
+
in_standard_filter: 1,
|
|
53
|
+
},
|
|
54
|
+
{ fieldname: "territory", fieldtype: "Data", label: "Territory", in_list_view: 1 },
|
|
55
|
+
{
|
|
56
|
+
fieldname: "status",
|
|
57
|
+
fieldtype: "Select",
|
|
58
|
+
label: "Status",
|
|
59
|
+
options: "Active\nInactive\nLead",
|
|
60
|
+
in_list_view: 1,
|
|
61
|
+
in_standard_filter: 1,
|
|
62
|
+
},
|
|
63
|
+
{ fieldname: "creation", fieldtype: "Date", label: "Created On" },
|
|
64
|
+
],
|
|
65
|
+
permissions: [{ role: "All", read: 1, write: 1, create: 1 }],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function jsonResponse(body: unknown, status = 200): Response {
|
|
70
|
+
return new Response(JSON.stringify(body), {
|
|
71
|
+
status,
|
|
72
|
+
headers: { "Content-Type": "application/json" },
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
(() => {
|
|
77
|
+
if (typeof window === "undefined") return;
|
|
78
|
+
const w = window as unknown as Record<string, unknown>;
|
|
79
|
+
if (w.__frappeTableMockFetch) return;
|
|
80
|
+
w.__frappeTableMockFetch = true;
|
|
81
|
+
const realFetch = window.fetch.bind(window);
|
|
82
|
+
window.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {
|
|
83
|
+
const urlStr =
|
|
84
|
+
typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
|
|
85
|
+
if (urlStr.startsWith(ERR_HOST)) return jsonResponse({ message: "Not permitted" }, 403);
|
|
86
|
+
if (urlStr.startsWith(MOCK_HOST)) {
|
|
87
|
+
const url = new URL(urlStr);
|
|
88
|
+
const metaMatch = url.pathname.match(/^\/api\/resource\/DocType\/(.+)$/);
|
|
89
|
+
if (metaMatch) return jsonResponse({ data: customerMetaRaw(decodeURIComponent(metaMatch[1])) });
|
|
90
|
+
if (url.pathname === "/api/resource/DocType") {
|
|
91
|
+
return jsonResponse({ data: [{ name: "Customer", module: "Selling" }] });
|
|
92
|
+
}
|
|
93
|
+
// Everything else (guest field-peek, counts): empty, never the network.
|
|
94
|
+
return jsonResponse({ data: [] });
|
|
95
|
+
}
|
|
96
|
+
return realFetch(input as RequestInfo, init);
|
|
97
|
+
};
|
|
98
|
+
})();
|
|
99
|
+
|
|
23
100
|
interface Customer {
|
|
24
101
|
name: string;
|
|
25
102
|
doctype: string;
|
|
@@ -135,7 +212,7 @@ const customerColumns: DataTableColumn<Partial<Customer>>[] = [
|
|
|
135
212
|
|
|
136
213
|
export const Default = () => (
|
|
137
214
|
<FrappeProvider
|
|
138
|
-
baseURL=
|
|
215
|
+
baseURL={MOCK_HOST}
|
|
139
216
|
fixtures={new InMemoryFixtureProvider({ Customer: customerFixtures })}
|
|
140
217
|
>
|
|
141
218
|
<FrappeTable<Customer>
|
|
@@ -159,7 +236,7 @@ Default.parameters = {
|
|
|
159
236
|
Default.storyName = "Main";
|
|
160
237
|
export const WithPagination = () => (
|
|
161
238
|
<FrappeProvider
|
|
162
|
-
baseURL=
|
|
239
|
+
baseURL={MOCK_HOST}
|
|
163
240
|
fixtures={new InMemoryFixtureProvider({ Customer: customerFixtures })}
|
|
164
241
|
>
|
|
165
242
|
<FrappeTable<Customer>
|
|
@@ -181,7 +258,7 @@ WithPagination.parameters = {
|
|
|
181
258
|
|
|
182
259
|
export const WithSavedFilters = () => (
|
|
183
260
|
<FrappeProvider
|
|
184
|
-
baseURL=
|
|
261
|
+
baseURL={MOCK_HOST}
|
|
185
262
|
fixtures={new InMemoryFixtureProvider({ Customer: customerFixtures })}
|
|
186
263
|
>
|
|
187
264
|
<FrappeTable<Customer>
|
|
@@ -298,7 +375,7 @@ class PendingFixtureProvider extends InMemoryFixtureProvider {
|
|
|
298
375
|
|
|
299
376
|
/** Collection stuck syncing: the built-in loading panel renders (W9 / DG-ST-02). */
|
|
300
377
|
export const Loading = () => (
|
|
301
|
-
<FrappeProvider baseURL=
|
|
378
|
+
<FrappeProvider baseURL={MOCK_HOST} fixtures={new PendingFixtureProvider()}>
|
|
302
379
|
<FrappeTable<Customer> doctype="Customer" columns={customerColumns} />
|
|
303
380
|
</FrappeProvider>
|
|
304
381
|
);
|
|
@@ -306,7 +383,7 @@ export const Loading = () => (
|
|
|
306
383
|
/** Zero documents, no filters, no failure — "No Customer records found" (empty ≠ error). */
|
|
307
384
|
export const Empty = () => (
|
|
308
385
|
<FrappeProvider
|
|
309
|
-
baseURL=
|
|
386
|
+
baseURL={MOCK_HOST}
|
|
310
387
|
fixtures={new InMemoryFixtureProvider({ Customer: [] })}
|
|
311
388
|
>
|
|
312
389
|
<FrappeTable<Customer> doctype="Customer" columns={customerColumns} />
|
|
@@ -320,7 +397,7 @@ export const Empty = () => (
|
|
|
320
397
|
*/
|
|
321
398
|
export const NoResults = () => (
|
|
322
399
|
<FrappeProvider
|
|
323
|
-
baseURL=
|
|
400
|
+
baseURL={MOCK_HOST}
|
|
324
401
|
fixtures={new InMemoryFixtureProvider({ Customer: customerFixtures })}
|
|
325
402
|
>
|
|
326
403
|
<FrappeTable<Customer>
|
|
@@ -341,13 +418,15 @@ export const NoResults = () => (
|
|
|
341
418
|
);
|
|
342
419
|
|
|
343
420
|
/**
|
|
344
|
-
*
|
|
345
|
-
*
|
|
421
|
+
* Collection that fails with no fixtures: the built-in error panel renders
|
|
422
|
+
* instead of empty chrome (DG-ST-01). The failure is served hermetically —
|
|
423
|
+
* the in-story mock answers ERR_HOST with 403, so the error state is
|
|
424
|
+
* reproducible offline instead of depending on a DNS miss. Note: no retry
|
|
346
425
|
* affordance exists on this panel — tracked as a component gap in
|
|
347
426
|
* p-results/state-triplet-coverage.md.
|
|
348
427
|
*/
|
|
349
428
|
export const LoadError = () => (
|
|
350
|
-
<FrappeProvider baseURL=
|
|
429
|
+
<FrappeProvider baseURL={ERR_HOST}>
|
|
351
430
|
<FrappeTable<Customer> doctype="Customer" columns={customerColumns} />
|
|
352
431
|
</FrappeProvider>
|
|
353
432
|
);
|
|
@@ -402,7 +481,7 @@ const customerFilterFields = [
|
|
|
402
481
|
*/
|
|
403
482
|
export const HiddenFieldFilters = () => (
|
|
404
483
|
<FrappeProvider
|
|
405
|
-
baseURL=
|
|
484
|
+
baseURL={MOCK_HOST}
|
|
406
485
|
fixtures={new InMemoryFixtureProvider({ Customer: customerFixtures })}
|
|
407
486
|
>
|
|
408
487
|
<FrappeTable<Customer>
|
package/src/FrappeTreeView.tsx
CHANGED
|
@@ -259,7 +259,7 @@ export function FrappeTreeView<TDoc extends { name: string; doctype: string }>({
|
|
|
259
259
|
<YStack {...knobProps.gap} flex={1} {...stackProps}>
|
|
260
260
|
<FrappeReconnectIndicator config={appConfig} />
|
|
261
261
|
<TreeView
|
|
262
|
-
{...knobProps.
|
|
262
|
+
{...knobProps.containerRadius}
|
|
263
263
|
nodes={treeNodes}
|
|
264
264
|
ariaLabel={t("{{doctype}} tree", { doctype })}
|
|
265
265
|
expandByDefault={expandByDefault}
|
|
@@ -79,7 +79,7 @@ export function DeskFormPage({ doctype, name, onNavigate }: DeskFormPageProps) {
|
|
|
79
79
|
alignItems="center"
|
|
80
80
|
justifyContent="center"
|
|
81
81
|
{...knobProps.panelPadding}
|
|
82
|
-
{...knobProps.
|
|
82
|
+
{...knobProps.containerRadius}
|
|
83
83
|
{...knobProps.gap}
|
|
84
84
|
>
|
|
85
85
|
<Text color="$color10" fontSize={knobProps.sizeToken} {...knobProps.body}>
|
|
@@ -57,7 +57,7 @@ export function DeskListPage({ doctype, onNavigate }: DeskListPageProps) {
|
|
|
57
57
|
alignItems="center"
|
|
58
58
|
justifyContent="center"
|
|
59
59
|
{...knobProps.panelPadding}
|
|
60
|
-
{...knobProps.
|
|
60
|
+
{...knobProps.containerRadius}
|
|
61
61
|
{...knobProps.gap}
|
|
62
62
|
>
|
|
63
63
|
<Text color="$color10" fontSize={knobProps.sizeToken} {...knobProps.body}>
|
|
@@ -40,6 +40,31 @@ export type DateProps<
|
|
|
40
40
|
inputProps?: Record<string, unknown>;
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
+
const pad2 = (n: number) => String(n).padStart(2, "0");
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Format a picked Date back into the Frappe wire shape for the fieldtype:
|
|
47
|
+
* `YYYY-MM-DD` (Date), `YYYY-MM-DD HH:mm:ss` (Datetime — the picker edits
|
|
48
|
+
* only the date part, so an existing time part on the previous value is
|
|
49
|
+
* preserved), `HH:mm:ss` (Time). Local date parts — Frappe date strings are
|
|
50
|
+
* timezone-naive (same contract as FrappeCalendar's toFrappeFieldValue).
|
|
51
|
+
*/
|
|
52
|
+
function toFrappeDateValue(
|
|
53
|
+
date: globalThis.Date,
|
|
54
|
+
type: "date" | "datetime" | "time",
|
|
55
|
+
previousValue: string | undefined,
|
|
56
|
+
): string {
|
|
57
|
+
const datePart = `${date.getFullYear()}-${pad2(date.getMonth() + 1)}-${pad2(date.getDate())}`;
|
|
58
|
+
if (type === "time") {
|
|
59
|
+
return `${pad2(date.getHours())}:${pad2(date.getMinutes())}:${pad2(date.getSeconds())}`;
|
|
60
|
+
}
|
|
61
|
+
if (type === "datetime") {
|
|
62
|
+
const previousTime = previousValue?.trim().split(/[ T]/)[1];
|
|
63
|
+
return `${datePart} ${previousTime ?? "00:00:00"}`;
|
|
64
|
+
}
|
|
65
|
+
return datePart;
|
|
66
|
+
}
|
|
67
|
+
|
|
43
68
|
export function Date<
|
|
44
69
|
TData extends Record<string, unknown> = Record<string, unknown>,
|
|
45
70
|
TName extends string = string,
|
|
@@ -51,11 +76,11 @@ export function Date<
|
|
|
51
76
|
mode,
|
|
52
77
|
name,
|
|
53
78
|
onBlur,
|
|
54
|
-
onChange
|
|
79
|
+
onChange,
|
|
55
80
|
preserveValue,
|
|
56
81
|
validators,
|
|
57
82
|
disabled,
|
|
58
|
-
value
|
|
83
|
+
value,
|
|
59
84
|
type = "date",
|
|
60
85
|
...fieldProps
|
|
61
86
|
} = useProps(props) as DateProps<TData, TName> & Record<string, unknown>;
|
|
@@ -65,7 +90,26 @@ export function Date<
|
|
|
65
90
|
name={name}
|
|
66
91
|
form={form}
|
|
67
92
|
validators={validators}
|
|
68
|
-
|
|
93
|
+
// Controlled pass-through: folding `value` into `defaultValue` was
|
|
94
|
+
// mount-only, so a value arriving after first paint (create-mode
|
|
95
|
+
// engine seeding) never displayed — and `onChange` was dropped, so
|
|
96
|
+
// picks never reached the consumer doc. `undefined` stays undefined so
|
|
97
|
+
// uncontrolled (defaultValue-only) use keeps its semantics.
|
|
98
|
+
value={value as string | undefined}
|
|
99
|
+
onChange={(date) => {
|
|
100
|
+
const emit = onChange as ((v: string) => void) | undefined;
|
|
101
|
+
if (!emit) return;
|
|
102
|
+
emit(
|
|
103
|
+
date
|
|
104
|
+
? toFrappeDateValue(
|
|
105
|
+
date,
|
|
106
|
+
type as "date" | "datetime" | "time",
|
|
107
|
+
value as string | undefined,
|
|
108
|
+
)
|
|
109
|
+
: "",
|
|
110
|
+
);
|
|
111
|
+
}}
|
|
112
|
+
defaultValue={defaultValue as string}
|
|
69
113
|
label={fieldProps.label}
|
|
70
114
|
labelProps={fieldProps.labelProps}
|
|
71
115
|
error={fieldProps.error}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeDashboard.d.ts","sourceRoot":"","sources":["../src/FrappeDashboard.tsx"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,cAAc,EAEnB,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAA4D,MAAM,OAAO,CAAC;AAGjF,OAAO,EAAgC,KAAK,WAAW,EAAM,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FrappeDashboard.d.ts","sourceRoot":"","sources":["../src/FrappeDashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeLikedBy.d.ts","sourceRoot":"","sources":["../src/FrappeLikedBy.tsx"],"names":[],"mappings":"AAmBA,OAAO,
|
|
1
|
+
{"version":3,"file":"FrappeLikedBy.d.ts","sourceRoot":"","sources":["../src/FrappeLikedBy.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAiD,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAU1F;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAanD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAKlC;AAYD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAAC;IAChF,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACxD;AA2PD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAMtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeListView.d.ts","sourceRoot":"","sources":["../src/FrappeListView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAoD,MAAM,OAAO,CAAC;AAGzE,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FrappeListView.d.ts","sourceRoot":"","sources":["../src/FrappeListView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAoD,MAAM,OAAO,CAAC;AAGzE,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AA4BjB,UAAU,eAAe;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,CAAC;CACpD;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,MAAM,WAAW,mBAAmB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAC/F,WAAW,EACX,UAAU,CACX;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxE,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAiED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC7E,OAAO,EACP,MAAM,EACN,OAAO,EACP,eAAwB,EACxB,WAAW,EACX,KAAK,EACL,OAAO,EACP,aAAa,EACb,WAAkB,EAClB,iBAAyB,EAEzB,kBAAkB,EAAE,mBAAmB,EACvC,OAAO,EACP,IAAI,EACJ,WAAW,EACX,GAAG,UAAU,EACd,EAAE,mBAAmB,CAAC,IAAI,CAAC,2CAyf3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRegistry.d.ts","sourceRoot":"","sources":["../src/fieldRegistry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fieldRegistry.d.ts","sourceRoot":"","sources":["../src/fieldRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MarkdownEditorField — dedicated renderer for the Frappe `Markdown Editor`
|
|
3
|
-
* fieldtype:
|
|
4
|
-
* (
|
|
5
|
-
*
|
|
3
|
+
* fieldtype: the canonical house rich text editor constrained to markdown
|
|
4
|
+
* capabilities (LC-52 MARKDOWN-EXPRESSIBLE-EDITING). WYSIWYG editing whose
|
|
5
|
+
* surface is exactly what GFM can express — no highlight, underline, text
|
|
6
|
+
* color, or alignment — with `value`/`onChange` staying markdown strings
|
|
7
|
+
* (Frappe stores markdown text for this fieldtype).
|
|
6
8
|
*
|
|
7
9
|
* Full field contract: three-branch render (skeleton → standalone →
|
|
8
10
|
* form-integrated), canonical `onChange(value)` (LC-14), FieldLayout slot
|
|
9
11
|
* order, chromeless inside table cells (useIsInTableCell).
|
|
12
|
+
*
|
|
13
|
+
* Native renders the markdown source + preview fallback (see
|
|
14
|
+
* `index.native.tsx`) — 10Tap cannot honestly express the capability
|
|
15
|
+
* constraint, and a lookalike would violate the honest-gating posture.
|
|
10
16
|
*/
|
|
11
17
|
import { type AnyFormApi } from "@multiplatform.one/forms";
|
|
12
18
|
import { type ReactNode } from "react";
|
|
@@ -32,9 +38,9 @@ export interface MarkdownEditorFieldProps {
|
|
|
32
38
|
onChange?: (value: string) => void;
|
|
33
39
|
onBlur?: (...args: any[]) => void;
|
|
34
40
|
placeholder?: string;
|
|
35
|
-
/** Minimum visible
|
|
41
|
+
/** Minimum visible content rows (default 6). */
|
|
36
42
|
minRows?: number;
|
|
37
|
-
/** Maximum
|
|
43
|
+
/** Maximum content rows before the editor scrolls (default 16). */
|
|
38
44
|
maxRows?: number;
|
|
39
45
|
"aria-label"?: string;
|
|
40
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/MarkdownEditor/index.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/MarkdownEditor/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EASL,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAMtD,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,IAAI,EAAE,QAAQ,EACd,UAAU,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,EAAE,EAAE,MAAM,EACV,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAW,EACX,OAAY,EACZ,YAAY,EAAE,SAAS,GACxB,EAAE,wBAAwB,2CA4H1B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MarkdownEditorField (NATIVE fallback) — markdown source pane with a live
|
|
3
|
+
* rendered preview (house `@multiplatform.one/markdown` renderer).
|
|
4
|
+
*
|
|
5
|
+
* The web tier renders the canonical rich text editor constrained to
|
|
6
|
+
* markdown capabilities (LC-52 MARKDOWN-EXPRESSIBLE-EDITING). On native the
|
|
7
|
+
* 10Tap WebView cannot express that constraint honestly tonight (extension
|
|
8
|
+
* gating + markdown serialization live in the web bundle), so this tier
|
|
9
|
+
* keeps plain markdown source editing — documented fallback, not a parallel
|
|
10
|
+
* WYSIWYG implementation.
|
|
11
|
+
*
|
|
12
|
+
* Full field contract: three-branch render (skeleton → standalone →
|
|
13
|
+
* form-integrated), canonical `onChange(value)` (LC-14), FieldLayout slot
|
|
14
|
+
* order, chromeless inside table cells (useIsInTableCell).
|
|
15
|
+
*/
|
|
16
|
+
import { type AnyFormApi } from "@multiplatform.one/forms";
|
|
17
|
+
import { type ReactNode } from "react";
|
|
18
|
+
import type { LabelProps, SizeTokens } from "tamagui";
|
|
19
|
+
export interface MarkdownEditorFieldProps {
|
|
20
|
+
name?: string;
|
|
21
|
+
form?: AnyFormApi;
|
|
22
|
+
validators?: Record<string, unknown>;
|
|
23
|
+
label?: ReactNode;
|
|
24
|
+
labelProps?: Omit<LabelProps, "htmlFor" | "ref">;
|
|
25
|
+
helperText?: string;
|
|
26
|
+
error?: string | boolean;
|
|
27
|
+
required?: boolean;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
readOnly?: boolean;
|
|
30
|
+
skeleton?: boolean;
|
|
31
|
+
compact?: boolean;
|
|
32
|
+
size?: SizeTokens;
|
|
33
|
+
id?: string;
|
|
34
|
+
value?: string;
|
|
35
|
+
defaultValue?: string;
|
|
36
|
+
/** Canonical change contract (LC-14): emits the markdown source string. */
|
|
37
|
+
onChange?: (value: string) => void;
|
|
38
|
+
onBlur?: (...args: any[]) => void;
|
|
39
|
+
placeholder?: string;
|
|
40
|
+
/** Minimum visible source rows (default 6). */
|
|
41
|
+
minRows?: number;
|
|
42
|
+
/** Maximum source rows before the textarea scrolls (default 16). */
|
|
43
|
+
maxRows?: number;
|
|
44
|
+
"aria-label"?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare function MarkdownEditorField({ name, form: formProp, validators, label, labelProps, helperText, error, required, disabled, readOnly, skeleton, compact, size, id: idProp, value, defaultValue, onChange, onBlur, placeholder, minRows, maxRows, "aria-label": ariaLabel, }: MarkdownEditorFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
//# sourceMappingURL=index.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/fields/MarkdownEditor/index.native.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAWL,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhF,OAAO,KAAK,EAAkB,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA6EtE,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,IAAI,EAAE,QAAQ,EACd,UAAU,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,EAAE,EAAE,MAAM,EACV,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAW,EACX,OAAY,EACZ,YAAY,EAAE,SAAS,GACxB,EAAE,wBAAwB,2CAoI1B"}
|