@elaraai/e3-ui 1.0.83 → 1.0.85

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 (121) hide show
  1. package/dist/src/bind/data.d.ts +4 -3
  2. package/dist/src/bind/data.d.ts.map +1 -1
  3. package/dist/src/bind/data.js +4 -3
  4. package/dist/src/bind/data.js.map +1 -1
  5. package/dist/src/bind/record.d.ts +234 -6
  6. package/dist/src/bind/record.d.ts.map +1 -1
  7. package/dist/src/bind/record.js +250 -7
  8. package/dist/src/bind/record.js.map +1 -1
  9. package/dist/src/bind/sources.d.ts +148 -0
  10. package/dist/src/bind/sources.d.ts.map +1 -0
  11. package/dist/src/bind/sources.js +116 -0
  12. package/dist/src/bind/sources.js.map +1 -0
  13. package/dist/src/index.d.ts +4 -1
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +9 -1
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/internal.d.ts +4 -1
  18. package/dist/src/internal.d.ts.map +1 -1
  19. package/dist/src/internal.js +11 -1
  20. package/dist/src/internal.js.map +1 -1
  21. package/dist/src/query/builder.d.ts +3257 -0
  22. package/dist/src/query/builder.d.ts.map +1 -0
  23. package/dist/src/query/builder.js +126 -0
  24. package/dist/src/query/builder.js.map +1 -0
  25. package/dist/src/query/index.d.ts +108 -0
  26. package/dist/src/query/index.d.ts.map +1 -0
  27. package/dist/src/query/index.js +76 -0
  28. package/dist/src/query/index.js.map +1 -0
  29. package/dist/src/query/library.d.ts +3241 -0
  30. package/dist/src/query/library.d.ts.map +1 -0
  31. package/dist/src/query/library.js +114 -0
  32. package/dist/src/query/library.js.map +1 -0
  33. package/dist/src/query/queries.d.ts +4696 -0
  34. package/dist/src/query/queries.d.ts.map +1 -0
  35. package/dist/src/query/queries.js +129 -0
  36. package/dist/src/query/queries.js.map +1 -0
  37. package/dist/src/query/saved.d.ts +72 -0
  38. package/dist/src/query/saved.d.ts.map +1 -0
  39. package/dist/src/query/saved.js +84 -0
  40. package/dist/src/query/saved.js.map +1 -0
  41. package/dist/src/query/steps.d.ts +613 -0
  42. package/dist/src/query/steps.d.ts.map +1 -0
  43. package/dist/src/query/steps.js +316 -0
  44. package/dist/src/query/steps.js.map +1 -0
  45. package/dist/src/query/types.d.ts +444 -0
  46. package/dist/src/query/types.d.ts.map +1 -0
  47. package/dist/src/query/types.js +113 -0
  48. package/dist/src/query/types.js.map +1 -0
  49. package/dist/src/studio/builder.d.ts +3123 -0
  50. package/dist/src/studio/builder.d.ts.map +1 -0
  51. package/dist/src/studio/builder.js +115 -0
  52. package/dist/src/studio/builder.js.map +1 -0
  53. package/dist/src/studio/canvas.d.ts +83 -0
  54. package/dist/src/studio/canvas.d.ts.map +1 -0
  55. package/dist/src/studio/canvas.js +71 -0
  56. package/dist/src/studio/canvas.js.map +1 -0
  57. package/dist/src/studio/component.d.ts +178 -0
  58. package/dist/src/studio/component.d.ts.map +1 -0
  59. package/dist/src/studio/component.js +189 -0
  60. package/dist/src/studio/component.js.map +1 -0
  61. package/dist/src/studio/index.d.ts +104 -0
  62. package/dist/src/studio/index.d.ts.map +1 -0
  63. package/dist/src/studio/index.js +75 -0
  64. package/dist/src/studio/index.js.map +1 -0
  65. package/dist/src/studio/inspector.d.ts +208 -0
  66. package/dist/src/studio/inspector.d.ts.map +1 -0
  67. package/dist/src/studio/inspector.js +155 -0
  68. package/dist/src/studio/inspector.js.map +1 -0
  69. package/dist/src/studio/library.d.ts +3506 -0
  70. package/dist/src/studio/library.d.ts.map +1 -0
  71. package/dist/src/studio/library.js +245 -0
  72. package/dist/src/studio/library.js.map +1 -0
  73. package/dist/src/studio/page.d.ts +305 -0
  74. package/dist/src/studio/page.d.ts.map +1 -0
  75. package/dist/src/studio/page.js +105 -0
  76. package/dist/src/studio/page.js.map +1 -0
  77. package/dist/src/studio/pages.d.ts +10929 -0
  78. package/dist/src/studio/pages.d.ts.map +1 -0
  79. package/dist/src/studio/pages.js +502 -0
  80. package/dist/src/studio/pages.js.map +1 -0
  81. package/dist/src/studio/palette.d.ts +179 -0
  82. package/dist/src/studio/palette.d.ts.map +1 -0
  83. package/dist/src/studio/palette.js +120 -0
  84. package/dist/src/studio/palette.js.map +1 -0
  85. package/dist/src/studio/publish.d.ts +397 -0
  86. package/dist/src/studio/publish.d.ts.map +1 -0
  87. package/dist/src/studio/publish.js +198 -0
  88. package/dist/src/studio/publish.js.map +1 -0
  89. package/dist/src/ui.d.ts +16 -3
  90. package/dist/src/ui.d.ts.map +1 -1
  91. package/dist/src/ui.js +21 -1
  92. package/dist/src/ui.js.map +1 -1
  93. package/dist/test/bind/data/data.examples.d.ts +76 -1
  94. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  95. package/dist/test/bind/data/data.examples.js +176 -3
  96. package/dist/test/bind/data/data.examples.js.map +1 -1
  97. package/dist/test/bind/func/func.examples.d.ts +8 -0
  98. package/dist/test/bind/func/func.examples.d.ts.map +1 -1
  99. package/dist/test/bind/func/func.examples.js +4 -3
  100. package/dist/test/bind/func/func.examples.js.map +1 -1
  101. package/dist/test/bind/record/record.examples.d.ts +65 -1
  102. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  103. package/dist/test/bind/record/record.examples.js +21 -3
  104. package/dist/test/bind/record/record.examples.js.map +1 -1
  105. package/dist/test/query/query.examples.d.ts +5022 -0
  106. package/dist/test/query/query.examples.d.ts.map +1 -0
  107. package/dist/test/query/query.examples.js +467 -0
  108. package/dist/test/query/query.examples.js.map +1 -0
  109. package/dist/test/studio/component.examples.d.ts +7 -0
  110. package/dist/test/studio/component.examples.d.ts.map +1 -0
  111. package/dist/test/studio/component.examples.js +46 -0
  112. package/dist/test/studio/component.examples.js.map +1 -0
  113. package/dist/test/studio/page.examples.d.ts +7 -0
  114. package/dist/test/studio/page.examples.d.ts.map +1 -0
  115. package/dist/test/studio/page.examples.js +64 -0
  116. package/dist/test/studio/page.examples.js.map +1 -0
  117. package/dist/test/studio/studio.examples.d.ts +1766 -0
  118. package/dist/test/studio/studio.examples.d.ts.map +1 -0
  119. package/dist/test/studio/studio.examples.js +354 -0
  120. package/dist/test/studio/studio.examples.js.map +1 -0
  121. package/package.json +9 -8
@@ -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":";AAAA;;;GAGG;AACH,sCAAsC;AAEtC;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;IACnC,QAAQ,EAAE;QACN,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB;QAClG,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;KAC3E;IACD,WAAW,EAAE,6LAA6L;IAC1M,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE;YAC9C,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,eAAe;SACnG,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CACxC,KAAC,QAAQ,cAAE,EAAE,CAAC,EAAE;gBACZ,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,yBAAyB,EAAE,EAAE,CAAC,CAAC,CAAC;gBAChF,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtG,OAAO,CACH,KAAC,GAAG,IAAC,OAAO,EAAC,GAAG,YACZ,MAAC,MAAM,IAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,QAAQ,aAC1B,KAAC,IAAI,cAAE,IAAI,CAAC,GAAG,CAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,GAAQ,EAC5D,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,oBAAc,IACvC,GACP,CACT,CAAC;YACN,CAAC,GAAY,CAChB,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;YACxB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE;oBACpD,KAAK,EAAE;wBACH,KAAK,EAAE,UAAU;wBACjB,KAAK,EAAE;4BACH,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;4BACpI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;yBACvI;qBACJ;oBACD,IAAI,EAAE,IAAI;iBACb,CAAC,CAAC;SACN,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,KAAC,MAAM,CAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAC,OAAO,GAAG,CAAC;IAC9H,CAAC,CAAC;IACF,MAAM,EAAE,EAAE;CACb,CAAC,CAAC"}
@@ -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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"}