@elaraai/e3-ui 1.0.82 → 1.0.84
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/src/bind/record.d.ts +229 -4
- package/dist/src/bind/record.d.ts.map +1 -1
- package/dist/src/bind/record.js +245 -5
- package/dist/src/bind/record.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +2 -1
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +5 -1
- package/dist/src/internal.js.map +1 -1
- package/dist/src/studio/builder.d.ts +3123 -0
- package/dist/src/studio/builder.d.ts.map +1 -0
- package/dist/src/studio/builder.js +115 -0
- package/dist/src/studio/builder.js.map +1 -0
- package/dist/src/studio/canvas.d.ts +83 -0
- package/dist/src/studio/canvas.d.ts.map +1 -0
- package/dist/src/studio/canvas.js +71 -0
- package/dist/src/studio/canvas.js.map +1 -0
- package/dist/src/studio/component.d.ts +178 -0
- package/dist/src/studio/component.d.ts.map +1 -0
- package/dist/src/studio/component.js +189 -0
- package/dist/src/studio/component.js.map +1 -0
- package/dist/src/studio/index.d.ts +104 -0
- package/dist/src/studio/index.d.ts.map +1 -0
- package/dist/src/studio/index.js +75 -0
- package/dist/src/studio/index.js.map +1 -0
- package/dist/src/studio/inspector.d.ts +208 -0
- package/dist/src/studio/inspector.d.ts.map +1 -0
- package/dist/src/studio/inspector.js +155 -0
- package/dist/src/studio/inspector.js.map +1 -0
- package/dist/src/studio/library.d.ts +3506 -0
- package/dist/src/studio/library.d.ts.map +1 -0
- package/dist/src/studio/library.js +245 -0
- package/dist/src/studio/library.js.map +1 -0
- package/dist/src/studio/page.d.ts +305 -0
- package/dist/src/studio/page.d.ts.map +1 -0
- package/dist/src/studio/page.js +105 -0
- package/dist/src/studio/page.js.map +1 -0
- package/dist/src/studio/pages.d.ts +10929 -0
- package/dist/src/studio/pages.d.ts.map +1 -0
- package/dist/src/studio/pages.js +502 -0
- package/dist/src/studio/pages.js.map +1 -0
- package/dist/src/studio/palette.d.ts +179 -0
- package/dist/src/studio/palette.d.ts.map +1 -0
- package/dist/src/studio/palette.js +120 -0
- package/dist/src/studio/palette.js.map +1 -0
- package/dist/src/studio/publish.d.ts +397 -0
- package/dist/src/studio/publish.d.ts.map +1 -0
- package/dist/src/studio/publish.js +198 -0
- package/dist/src/studio/publish.js.map +1 -0
- package/dist/test/bind/record/record.examples.d.ts +65 -1
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +21 -3
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/studio/component.examples.d.ts +7 -0
- package/dist/test/studio/component.examples.d.ts.map +1 -0
- package/dist/test/studio/component.examples.js +46 -0
- package/dist/test/studio/component.examples.js.map +1 -0
- package/dist/test/studio/page.examples.d.ts +7 -0
- package/dist/test/studio/page.examples.d.ts.map +1 -0
- package/dist/test/studio/page.examples.js +64 -0
- package/dist/test/studio/page.examples.js.map +1 -0
- package/dist/test/studio/studio.examples.d.ts +1766 -0
- package/dist/test/studio/studio.examples.d.ts.map +1 -0
- package/dist/test/studio/studio.examples.js +354 -0
- package/dist/test/studio/studio.examples.js.map +1 -0
- package/package.json +9 -8
|
@@ -3,11 +3,75 @@
|
|
|
3
3
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
/** @jsxImportSource @elaraai/e3-ui */
|
|
6
|
-
import { IntegerType } from "@elaraai/east";
|
|
6
|
+
import { DictType, IntegerType, NullType, StringType, StructType } from "@elaraai/east";
|
|
7
7
|
export declare const counter: import("@elaraai/e3").RecordDef<IntegerType, [import("@elaraai/east").variant<"field", "records">, import("@elaraai/east").variant<"field", "counter">]>;
|
|
8
8
|
export declare const increment: import("@elaraai/e3").MutationDef<"increment", IntegerType, [IntegerType]>;
|
|
9
9
|
export declare const reset: import("@elaraai/e3").MutationDef<"reset", IntegerType, []>;
|
|
10
10
|
export declare const recordBindMutate: import("@elaraai/east").ExampleDef<[], any>;
|
|
11
11
|
export declare const recordBindStatus: import("@elaraai/east").ExampleDef<[], any>;
|
|
12
|
+
export declare const JobType: StructType<{
|
|
13
|
+
readonly task: StringType;
|
|
14
|
+
readonly qty: IntegerType;
|
|
15
|
+
}>;
|
|
16
|
+
export declare const jobs: import("@elaraai/e3").RecordDef<DictType<StringType, StructType<{
|
|
17
|
+
readonly task: StringType;
|
|
18
|
+
readonly qty: IntegerType;
|
|
19
|
+
}>>, [import("@elaraai/east").variant<"field", "records">, import("@elaraai/east").variant<"field", "jobs">]>;
|
|
20
|
+
export declare const jobsPatch: import("@elaraai/e3").MutationDef<"patch", DictType<StringType, StructType<{
|
|
21
|
+
readonly task: StringType;
|
|
22
|
+
readonly qty: IntegerType;
|
|
23
|
+
}>>, [import("@elaraai/east").VariantType<{
|
|
24
|
+
unchanged: NullType;
|
|
25
|
+
replace: StructType<{
|
|
26
|
+
before: DictType<StringType, StructType<{
|
|
27
|
+
readonly task: StringType;
|
|
28
|
+
readonly qty: IntegerType;
|
|
29
|
+
}>>;
|
|
30
|
+
after: DictType<StringType, StructType<{
|
|
31
|
+
readonly task: StringType;
|
|
32
|
+
readonly qty: IntegerType;
|
|
33
|
+
}>>;
|
|
34
|
+
}>;
|
|
35
|
+
patch: DictType<StringType, import("@elaraai/east").VariantType<{
|
|
36
|
+
delete: StructType<{
|
|
37
|
+
readonly task: StringType;
|
|
38
|
+
readonly qty: IntegerType;
|
|
39
|
+
}>;
|
|
40
|
+
insert: StructType<{
|
|
41
|
+
readonly task: StringType;
|
|
42
|
+
readonly qty: IntegerType;
|
|
43
|
+
}>;
|
|
44
|
+
update: import("@elaraai/east").VariantType<{
|
|
45
|
+
unchanged: NullType;
|
|
46
|
+
replace: StructType<{
|
|
47
|
+
before: StructType<{
|
|
48
|
+
readonly task: StringType;
|
|
49
|
+
readonly qty: IntegerType;
|
|
50
|
+
}>;
|
|
51
|
+
after: StructType<{
|
|
52
|
+
readonly task: StringType;
|
|
53
|
+
readonly qty: IntegerType;
|
|
54
|
+
}>;
|
|
55
|
+
}>;
|
|
56
|
+
patch: StructType<{
|
|
57
|
+
readonly task: import("@elaraai/east").VariantType<{
|
|
58
|
+
unchanged: NullType;
|
|
59
|
+
replace: StructType<{
|
|
60
|
+
before: StringType;
|
|
61
|
+
after: StringType;
|
|
62
|
+
}>;
|
|
63
|
+
}>;
|
|
64
|
+
readonly qty: import("@elaraai/east").VariantType<{
|
|
65
|
+
unchanged: NullType;
|
|
66
|
+
replace: StructType<{
|
|
67
|
+
before: IntegerType;
|
|
68
|
+
after: IntegerType;
|
|
69
|
+
}>;
|
|
70
|
+
}>;
|
|
71
|
+
}>;
|
|
72
|
+
}>;
|
|
73
|
+
}>>;
|
|
74
|
+
}>]>;
|
|
75
|
+
export declare const recordSheetApply: import("@elaraai/east").ExampleDef<[], any>;
|
|
12
76
|
export declare const recordBindHistory: import("@elaraai/east").ExampleDef<[], any>;
|
|
13
77
|
//# sourceMappingURL=record.examples.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.examples.d.ts","sourceRoot":"","sources":["../../../../test/bind/record/record.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EAAQ,WAAW,
|
|
1
|
+
{"version":3,"file":"record.examples.d.ts","sourceRoot":"","sources":["../../../../test/bind/record/record.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EAAE,QAAQ,EAAQ,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAW,MAAM,eAAe,CAAC;AAQvG,eAAO,MAAM,OAAO,0JAAwC,CAAC;AAC7D,eAAO,MAAM,SAAS,4EACsE,CAAC;AAC7F,eAAO,MAAM,KAAK,6DACgD,CAAC;AAEnE,eAAO,MAAM,gBAAgB,6CAwC3B,CAAC;AAEH,eAAO,MAAM,gBAAgB,6CAsB3B,CAAC;AAIH,eAAO,MAAM,OAAO;;;EAAqD,CAAC;AAC1E,eAAO,MAAM,IAAI;;;6GAA8D,CAAC;AAChF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA0B,CAAC;AAEjD,eAAO,MAAM,gBAAgB,6CAqB3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,6CAmB5B,CAAC"}
|
|
@@ -4,9 +4,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "@elaraai/e3-ui/jsx-runtime";
|
|
|
4
4
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
5
5
|
*/
|
|
6
6
|
/** @jsxImportSource @elaraai/e3-ui */
|
|
7
|
-
import { East, IntegerType, NullType, example } from "@elaraai/east";
|
|
8
|
-
import { Button, HStack, Reactive, Stat, Text, UIComponentType, VStack } from "@elaraai/east-ui";
|
|
9
|
-
import { Record } from "@elaraai/e3-ui";
|
|
7
|
+
import { DictType, East, IntegerType, NullType, StringType, StructType, example } from "@elaraai/east";
|
|
8
|
+
import { Button, HStack, Reactive, Sheet, Stat, Text, UIComponentType, VStack } from "@elaraai/east-ui";
|
|
9
|
+
import { Data, Record } from "@elaraai/e3-ui";
|
|
10
10
|
import e3 from "@elaraai/e3";
|
|
11
11
|
// The package-side record + mutation definitions. `Record.bind` takes the
|
|
12
12
|
// record def + its mutations — the state type, mutation names and arg types
|
|
@@ -57,6 +57,24 @@ export const recordBindStatus = example({
|
|
|
57
57
|
} }))),
|
|
58
58
|
inputs: [],
|
|
59
59
|
});
|
|
60
|
+
// A keyed record a Sheet edits — each job's key is its id — and its patch
|
|
61
|
+
// door, which every Apply commits through.
|
|
62
|
+
export const JobType = StructType({ task: StringType, qty: IntegerType });
|
|
63
|
+
export const jobs = e3.record("jobs", DictType(StringType, JobType), new Map());
|
|
64
|
+
export const jobsPatch = e3.mutation.patch(jobs);
|
|
65
|
+
export const recordSheetApply = example({
|
|
66
|
+
keywords: ["Record", "onApply", "Sheet", "Apply", "patch", "commit", "conflict", "discard", "bindPaged", "editing", "system of record"],
|
|
67
|
+
description: "A Sheet over a record: its rows paged from the record, each Apply one commit through the record's patch door — a stale Apply is a conflict naming the entry, and nothing is overwritten",
|
|
68
|
+
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
69
|
+
const rows = $.let(Data.bindPaged(jobs));
|
|
70
|
+
const record = $.let(Record.bind(jobs, [jobsPatch]));
|
|
71
|
+
return (_jsx(Sheet, { data: rows, columns: {
|
|
72
|
+
task: Sheet.column.text(JobType, { header: "Task", width: "220px" }),
|
|
73
|
+
qty: Sheet.column.integer(JobType, { header: "Qty", width: "96px" }),
|
|
74
|
+
}, onApply: Record.onApply(record), style: { height: "360px" } }));
|
|
75
|
+
} }))),
|
|
76
|
+
inputs: [],
|
|
77
|
+
});
|
|
60
78
|
export const recordBindHistory = example({
|
|
61
79
|
keywords: ["Record", "bind", "history", "audit", "commit", "chain"],
|
|
62
80
|
description: "Read the record's commit history (the audit trail) alongside its current value",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.examples.js","sourceRoot":"","sources":["../../../../test/bind/record/record.examples.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"record.examples.js","sourceRoot":"","sources":["../../../../test/bind/record/record.examples.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/** @jsxImportSource @elaraai/e3-ui */
|
|
6
|
+
export declare const studioComponent: import("@elaraai/east").ExampleDef<[], any>;
|
|
7
|
+
//# sourceMappingURL=component.examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.examples.d.ts","sourceRoot":"","sources":["../../../test/studio/component.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AAYtC,eAAO,MAAM,eAAe,6CAuC1B,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@elaraai/e3-ui/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
4
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
5
|
+
*/
|
|
6
|
+
/** @jsxImportSource @elaraai/e3-ui */
|
|
7
|
+
/**
|
|
8
|
+
* Studio components (#991) — a component is an East UI function written like a
|
|
9
|
+
* `ui()` body, declared once with what the palette shows; a page places it by
|
|
10
|
+
* its key.
|
|
11
|
+
*/
|
|
12
|
+
import { East, IntegerType, NullType, example, none, variant } from "@elaraai/east";
|
|
13
|
+
import { Box, Button, HStack, Reactive, State, Text, UIComponentType } from "@elaraai/east-ui";
|
|
14
|
+
import { Studio } from "@elaraai/e3-ui";
|
|
15
|
+
export const studioComponent = example({
|
|
16
|
+
keywords: [
|
|
17
|
+
"Studio", "component", "Studio.component", "Studio.Page", "palette", "placement", "self-contained",
|
|
18
|
+
"ui() body", "state", "shared state", "meta", "span", "category", "icon",
|
|
19
|
+
],
|
|
20
|
+
description: "A self-contained component — an East UI function written like a ui() body, declared once with what the palette shows — placed twice on a page, where the two placements share its own state",
|
|
21
|
+
fn: East.function([], UIComponentType, ($) => {
|
|
22
|
+
const counter = $.let(Studio.component("counter", {
|
|
23
|
+
name: "Counter", category: "Display", icon: "gauge-high", span: 6n, description: "Clicks so far",
|
|
24
|
+
}, East.function([], UIComponentType, _$ => (_jsx(Reactive, { children: $2 => {
|
|
25
|
+
const clicks = $2.let(State.bind([IntegerType], "studio-component.clicks", 0n));
|
|
26
|
+
const add = $2.const(East.function([], NullType, $3 => { $3(clicks.write(clicks.read().add(1n))); }));
|
|
27
|
+
return (_jsx(Box, { padding: "4", children: _jsxs(HStack, { gap: "3", align: "center", children: [_jsx(Text, { children: East.str `${East.print(clicks.read())} clicks` }), _jsx(Button, { size: "xs", onClick: add, children: "Add" })] }) }));
|
|
28
|
+
} })))));
|
|
29
|
+
const components = $.let([counter]);
|
|
30
|
+
const pages = $.let(new Map([
|
|
31
|
+
[{ project: "demo", page: "counters" }, variant("page", {
|
|
32
|
+
draft: {
|
|
33
|
+
title: "Counters",
|
|
34
|
+
cells: [
|
|
35
|
+
{ key: "c-one", row: "r1", span: 6n, height: none, align: variant("top", null), title: none, component: "counter", fingerprint: "" },
|
|
36
|
+
{ key: "c-two", row: "r1", span: 6n, height: none, align: variant("top", null), title: none, component: "counter", fingerprint: "" },
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
live: none,
|
|
40
|
+
})],
|
|
41
|
+
]), Studio.Types.Pages);
|
|
42
|
+
return _jsx(Studio.Page, { pages: pages, components: components, page: { project: "demo", page: "counters" }, version: "draft" });
|
|
43
|
+
}),
|
|
44
|
+
inputs: [],
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=component.examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.examples.js","sourceRoot":"","sources":["../../../test/studio/component.examples.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/** @jsxImportSource @elaraai/e3-ui */
|
|
6
|
+
export declare const studioPage: import("@elaraai/east").ExampleDef<[], any>;
|
|
7
|
+
//# sourceMappingURL=page.examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.examples.d.ts","sourceRoot":"","sources":["../../../test/studio/page.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AAgBtC,eAAO,MAAM,UAAU,6CA2DrB,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@elaraai/e3-ui/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
4
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
5
|
+
*/
|
|
6
|
+
/** @jsxImportSource @elaraai/e3-ui */
|
|
7
|
+
/**
|
|
8
|
+
* `<Studio.Page>` (#993) — a page as operators see it, read from the pages
|
|
9
|
+
* record's value.
|
|
10
|
+
*/
|
|
11
|
+
import { ArrayType, East, FloatType, StringType, StructType, example, none, some, variant, } from "@elaraai/east";
|
|
12
|
+
import { Chart, Format, HStack, Stat, UIComponentType } from "@elaraai/east-ui";
|
|
13
|
+
import { Studio } from "@elaraai/e3-ui";
|
|
14
|
+
export const studioPage = example({
|
|
15
|
+
keywords: [
|
|
16
|
+
"Studio", "Studio.Page", "page", "live", "draft", "published", "SnapGrid", "tiles", "component", "frame",
|
|
17
|
+
"Chart", "fill", "natural height",
|
|
18
|
+
],
|
|
19
|
+
description: "One page's published layout with no chrome: each placement its component's own UI on the snap grid — a frameless KPI rail, and charts that take a tile's natural height",
|
|
20
|
+
fn: East.function([], UIComponentType, ($) => {
|
|
21
|
+
const components = $.let([
|
|
22
|
+
Studio.component("kpi_rail", { name: "KPI rail", category: "Display", icon: "gauge-high", frame: "none" }, East.function([], UIComponentType, (_$) => (_jsxs(HStack, { gap: "3", align: "stretch", children: [_jsx(Stat, { label: "Revenue", value: 1280000.0, format: Format.Currency({ currency: "USD", compact: "short" }) }), _jsx(Stat, { label: "Orders", value: 8412.0, format: Format.Number() }), _jsx(Stat, { label: "Avg ticket", value: 152.0, format: Format.Currency({ currency: "USD", maximumFractionDigits: 0n }) }), _jsx(Stat, { label: "Fill rate", value: 0.94, format: Format.Percent() })] })))),
|
|
23
|
+
Studio.component("revenue_trend", { name: "Revenue trend", category: "Charts", icon: "chart-area", span: 8n }, East.function([], UIComponentType, ($2) => {
|
|
24
|
+
const days = $2.const([
|
|
25
|
+
{ day: "Mar 1", revenue: 2.61 }, { day: "Mar 8", revenue: 2.84 }, { day: "Mar 15", revenue: 3.02 },
|
|
26
|
+
{ day: "Mar 22", revenue: 2.95 }, { day: "Mar 29", revenue: 3.31 }, { day: "Apr 5", revenue: 3.48 },
|
|
27
|
+
], ArrayType(StructType({ day: StringType, revenue: FloatType })));
|
|
28
|
+
return _jsx(Chart, { height: "fill", grid: true, layers: Chart.Area(days, { x: r => r.day, y: r => r.revenue }) });
|
|
29
|
+
})),
|
|
30
|
+
Studio.component("breakdown_bars", { name: "Breakdown bars", category: "Display", icon: "chart-bar", span: 4n }, East.function([], UIComponentType, ($2) => {
|
|
31
|
+
const regions = $2.const([
|
|
32
|
+
{ region: "North", share: 42.0 }, { region: "South", share: 31.0 }, { region: "West", share: 27.0 },
|
|
33
|
+
], ArrayType(StructType({ region: StringType, share: FloatType })));
|
|
34
|
+
return _jsx(Chart, { height: "fill", grid: false, layers: Chart.Bar(regions, { x: r => r.share, y: r => r.region }) });
|
|
35
|
+
})),
|
|
36
|
+
]);
|
|
37
|
+
const pages = $.let(new Map([
|
|
38
|
+
[{ project: "ops", page: "overview" }, variant("page", {
|
|
39
|
+
draft: {
|
|
40
|
+
title: "Overview",
|
|
41
|
+
cells: [
|
|
42
|
+
{ key: "c-kpi", row: "r1", span: 12n, height: none, align: variant("top", null), title: none, component: "kpi_rail", fingerprint: "" },
|
|
43
|
+
{ key: "c-trend", row: "r2", span: 8n, height: none, align: variant("top", null), title: none, component: "revenue_trend", fingerprint: "" },
|
|
44
|
+
{ key: "c-bars", row: "r2", span: 4n, height: none, align: variant("top", null), title: none, component: "breakdown_bars", fingerprint: "" },
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
live: some({
|
|
48
|
+
version: 1n,
|
|
49
|
+
page: {
|
|
50
|
+
title: "Overview",
|
|
51
|
+
cells: [
|
|
52
|
+
{ key: "c-kpi", row: "r1", span: 12n, height: none, align: variant("top", null), title: none, component: "kpi_rail", fingerprint: "" },
|
|
53
|
+
{ key: "c-trend", row: "r2", span: 8n, height: none, align: variant("top", null), title: none, component: "revenue_trend", fingerprint: "" },
|
|
54
|
+
{ key: "c-bars", row: "r2", span: 4n, height: none, align: variant("top", null), title: some("Revenue by region"), component: "breakdown_bars", fingerprint: "" },
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
})],
|
|
59
|
+
]), Studio.Types.Pages);
|
|
60
|
+
return _jsx(Studio.Page, { pages: pages, components: components, page: { project: "ops", page: "overview" } });
|
|
61
|
+
}),
|
|
62
|
+
inputs: [],
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=page.examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.examples.js","sourceRoot":"","sources":["../../../test/studio/page.examples.tsx"],"names":[],"mappings":"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"}
|