@elaraai/e3-ui 1.0.4 → 1.0.5
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/README.md +3 -2
- package/dist/src/data.d.ts +22 -1
- package/dist/src/data.d.ts.map +1 -1
- package/dist/src/data.js.map +1 -1
- package/dist/src/decision/bind.d.ts +4594 -0
- package/dist/src/decision/bind.d.ts.map +1 -0
- package/dist/src/decision/bind.js +156 -0
- package/dist/src/decision/bind.js.map +1 -0
- package/dist/src/decision/index.d.ts +1787 -0
- package/dist/src/decision/index.d.ts.map +1 -0
- package/dist/src/decision/index.js +36 -0
- package/dist/src/decision/index.js.map +1 -0
- package/dist/src/decision/journal.d.ts +405 -0
- package/dist/src/decision/journal.d.ts.map +1 -0
- package/dist/src/decision/journal.js +74 -0
- package/dist/src/decision/journal.js.map +1 -0
- package/dist/src/decision/queue.d.ts +2876 -0
- package/dist/src/decision/queue.d.ts.map +1 -0
- package/dist/src/decision/queue.js +166 -0
- package/dist/src/decision/queue.js.map +1 -0
- package/dist/src/decision/types.d.ts +1338 -0
- package/dist/src/decision/types.d.ts.map +1 -0
- package/dist/src/decision/types.js +389 -0
- package/dist/src/decision/types.js.map +1 -0
- package/dist/src/diff.d.ts +72 -0
- package/dist/src/diff.d.ts.map +1 -1
- package/dist/src/diff.js +6 -0
- package/dist/src/diff.js.map +1 -1
- package/dist/src/index.d.ts +27 -11
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +30 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +28 -0
- package/dist/src/internal.d.ts.map +1 -0
- package/dist/src/internal.js +28 -0
- package/dist/src/internal.js.map +1 -0
- package/dist/src/ontology.d.ts +205 -10
- package/dist/src/ontology.d.ts.map +1 -1
- package/dist/src/ontology.js +23 -4
- package/dist/src/ontology.js.map +1 -1
- package/dist/src/runtime/decision/journal.d.ts +29 -0
- package/dist/src/runtime/decision/journal.d.ts.map +1 -0
- package/dist/src/runtime/decision/journal.js +27 -0
- package/dist/src/runtime/decision/journal.js.map +1 -0
- package/dist/src/runtime/decision/queue.d.ts +47 -0
- package/dist/src/runtime/decision/queue.d.ts.map +1 -0
- package/dist/src/runtime/decision/queue.js +45 -0
- package/dist/src/runtime/decision/queue.js.map +1 -0
- package/dist/src/runtime/diff.d.ts +36 -0
- package/dist/src/runtime/diff.d.ts.map +1 -0
- package/dist/src/runtime/diff.js +34 -0
- package/dist/src/runtime/diff.js.map +1 -0
- package/dist/src/runtime/index.d.ts +15 -0
- package/dist/src/runtime/index.d.ts.map +1 -0
- package/dist/src/runtime/index.js +15 -0
- package/dist/src/runtime/index.js.map +1 -0
- package/dist/src/runtime/ontology.d.ts +36 -0
- package/dist/src/runtime/ontology.d.ts.map +1 -0
- package/dist/src/runtime/ontology.js +34 -0
- package/dist/src/runtime/ontology.js.map +1 -0
- package/dist/src/runtime/runtime.d.ts +7 -0
- package/dist/src/runtime/runtime.d.ts.map +1 -0
- package/dist/src/runtime/runtime.js +7 -0
- package/dist/src/runtime/runtime.js.map +1 -0
- package/dist/src/ui.d.ts +6 -6
- package/dist/src/ui.d.ts.map +1 -1
- package/dist/src/ui.js +9 -1
- package/dist/src/ui.js.map +1 -1
- package/dist/test/{data.examples.d.ts → data/data.examples.d.ts} +1 -0
- package/dist/test/data/data.examples.d.ts.map +1 -0
- package/dist/test/{data.examples.js → data/data.examples.js} +30 -68
- package/dist/test/data/data.examples.js.map +1 -0
- package/dist/test/decision/journal.examples.d.ts +266 -0
- package/dist/test/decision/journal.examples.d.ts.map +1 -0
- package/dist/test/decision/journal.examples.js +107 -0
- package/dist/test/decision/journal.examples.js.map +1 -0
- package/dist/test/decision/loop.examples.d.ts +455 -0
- package/dist/test/decision/loop.examples.d.ts.map +1 -0
- package/dist/test/decision/loop.examples.js +120 -0
- package/dist/test/decision/loop.examples.js.map +1 -0
- package/dist/test/decision/queue.examples.d.ts +269 -0
- package/dist/test/decision/queue.examples.d.ts.map +1 -0
- package/dist/test/decision/queue.examples.js +273 -0
- package/dist/test/decision/queue.examples.js.map +1 -0
- package/dist/test/{diff.examples.d.ts → diff/diff.examples.d.ts} +5 -4
- package/dist/test/diff/diff.examples.d.ts.map +1 -0
- package/dist/test/diff/diff.examples.js +582 -0
- package/dist/test/diff/diff.examples.js.map +1 -0
- package/dist/test/{ontology.examples.d.ts → ontology/ontology.examples.d.ts} +6 -4
- package/dist/test/ontology/ontology.examples.d.ts.map +1 -0
- package/dist/test/{ontology.examples.js → ontology/ontology.examples.js} +37 -57
- package/dist/test/ontology/ontology.examples.js.map +1 -0
- package/package.json +19 -19
- package/dist/test/data.examples.d.ts.map +0 -1
- package/dist/test/data.examples.js.map +0 -1
- package/dist/test/diff.examples.d.ts.map +0 -1
- package/dist/test/diff.examples.js +0 -964
- package/dist/test/diff.examples.js.map +0 -1
- package/dist/test/ontology.examples.d.ts.map +0 -1
- package/dist/test/ontology.examples.js.map +0 -1
|
@@ -0,0 +1,269 @@
|
|
|
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/east-ui */
|
|
6
|
+
/**
|
|
7
|
+
* `DecisionQueue` examples — *the* Decide surface. One queue over the
|
|
8
|
+
* handle; selecting a row opens one compact facet beneath it (Evidence ·
|
|
9
|
+
* Options · Judgement · Modify). The constraint contract is a by-name
|
|
10
|
+
* `VariantType` declared once beside the inputs (in a real solution, a
|
|
11
|
+
* shared module imported by the reasoning task too): a bounded float lever
|
|
12
|
+
* (`cho_hours_cap`) and a struct lever (`blackout` — person · from · to).
|
|
13
|
+
*
|
|
14
|
+
* The seeds are spelled out as plain values (`e3.input` defaults are plain
|
|
15
|
+
* values); in a real app the decisions input is a reasoning task's output
|
|
16
|
+
* bound with its own patch overlay.
|
|
17
|
+
*/
|
|
18
|
+
import { ArrayType, StructType, VariantType, StringType, FloatType, DateTimeType, NullType, IntegerType, variant } from '@elaraai/east';
|
|
19
|
+
import * as e3 from '@elaraai/e3';
|
|
20
|
+
export declare const RosterConstraint: VariantType<{
|
|
21
|
+
readonly cho_hours_cap: VariantType<{
|
|
22
|
+
readonly atMost: FloatType;
|
|
23
|
+
readonly atLeast: FloatType;
|
|
24
|
+
readonly between: StructType<{
|
|
25
|
+
readonly min: FloatType;
|
|
26
|
+
readonly max: FloatType;
|
|
27
|
+
}>;
|
|
28
|
+
}>;
|
|
29
|
+
readonly blackout: StructType<{
|
|
30
|
+
readonly person: StringType;
|
|
31
|
+
readonly from: DateTimeType;
|
|
32
|
+
readonly to: DateTimeType;
|
|
33
|
+
}>;
|
|
34
|
+
}>;
|
|
35
|
+
export declare const queueDecisions: e3.DatasetDef<ArrayType<StructType<{
|
|
36
|
+
readonly id: StringType;
|
|
37
|
+
readonly kind: StringType;
|
|
38
|
+
readonly title: StringType;
|
|
39
|
+
readonly urgency: VariantType<{
|
|
40
|
+
readonly overdue: NullType;
|
|
41
|
+
readonly due: NullType;
|
|
42
|
+
readonly routine: NullType;
|
|
43
|
+
}>;
|
|
44
|
+
readonly value: FloatType;
|
|
45
|
+
readonly deadline: import("@elaraai/east").OptionType<DateTimeType>;
|
|
46
|
+
readonly format: import("@elaraai/east").OptionType<VariantType<{
|
|
47
|
+
readonly number: import("@elaraai/east").StructType<{
|
|
48
|
+
readonly minimumFractionDigits: import("@elaraai/east").OptionType<IntegerType>;
|
|
49
|
+
readonly maximumFractionDigits: import("@elaraai/east").OptionType<IntegerType>;
|
|
50
|
+
readonly signDisplay: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
|
|
51
|
+
readonly auto: import("@elaraai/east").NullType;
|
|
52
|
+
readonly never: import("@elaraai/east").NullType;
|
|
53
|
+
readonly always: import("@elaraai/east").NullType;
|
|
54
|
+
readonly exceptZero: import("@elaraai/east").NullType;
|
|
55
|
+
}>>;
|
|
56
|
+
}>;
|
|
57
|
+
readonly currency: import("@elaraai/east").StructType<{
|
|
58
|
+
readonly currency: import("@elaraai/east").VariantType<{
|
|
59
|
+
readonly USD: import("@elaraai/east").NullType;
|
|
60
|
+
readonly EUR: import("@elaraai/east").NullType;
|
|
61
|
+
readonly GBP: import("@elaraai/east").NullType;
|
|
62
|
+
readonly JPY: import("@elaraai/east").NullType;
|
|
63
|
+
readonly CHF: import("@elaraai/east").NullType;
|
|
64
|
+
readonly CAD: import("@elaraai/east").NullType;
|
|
65
|
+
readonly AUD: import("@elaraai/east").NullType;
|
|
66
|
+
readonly NZD: import("@elaraai/east").NullType;
|
|
67
|
+
readonly CNY: import("@elaraai/east").NullType;
|
|
68
|
+
readonly HKD: import("@elaraai/east").NullType;
|
|
69
|
+
readonly SGD: import("@elaraai/east").NullType;
|
|
70
|
+
readonly KRW: import("@elaraai/east").NullType;
|
|
71
|
+
readonly INR: import("@elaraai/east").NullType;
|
|
72
|
+
readonly TWD: import("@elaraai/east").NullType;
|
|
73
|
+
readonly THB: import("@elaraai/east").NullType;
|
|
74
|
+
readonly MYR: import("@elaraai/east").NullType;
|
|
75
|
+
readonly IDR: import("@elaraai/east").NullType;
|
|
76
|
+
readonly PHP: import("@elaraai/east").NullType;
|
|
77
|
+
readonly VND: import("@elaraai/east").NullType;
|
|
78
|
+
readonly SEK: import("@elaraai/east").NullType;
|
|
79
|
+
readonly NOK: import("@elaraai/east").NullType;
|
|
80
|
+
readonly DKK: import("@elaraai/east").NullType;
|
|
81
|
+
readonly PLN: import("@elaraai/east").NullType;
|
|
82
|
+
readonly CZK: import("@elaraai/east").NullType;
|
|
83
|
+
readonly HUF: import("@elaraai/east").NullType;
|
|
84
|
+
readonly RUB: import("@elaraai/east").NullType;
|
|
85
|
+
readonly UAH: import("@elaraai/east").NullType;
|
|
86
|
+
readonly RON: import("@elaraai/east").NullType;
|
|
87
|
+
readonly MXN: import("@elaraai/east").NullType;
|
|
88
|
+
readonly BRL: import("@elaraai/east").NullType;
|
|
89
|
+
readonly ARS: import("@elaraai/east").NullType;
|
|
90
|
+
readonly CLP: import("@elaraai/east").NullType;
|
|
91
|
+
readonly COP: import("@elaraai/east").NullType;
|
|
92
|
+
readonly PEN: import("@elaraai/east").NullType;
|
|
93
|
+
readonly AED: import("@elaraai/east").NullType;
|
|
94
|
+
readonly SAR: import("@elaraai/east").NullType;
|
|
95
|
+
readonly ILS: import("@elaraai/east").NullType;
|
|
96
|
+
readonly ZAR: import("@elaraai/east").NullType;
|
|
97
|
+
readonly TRY: import("@elaraai/east").NullType;
|
|
98
|
+
readonly EGP: import("@elaraai/east").NullType;
|
|
99
|
+
readonly NGN: import("@elaraai/east").NullType;
|
|
100
|
+
readonly KES: import("@elaraai/east").NullType;
|
|
101
|
+
}>;
|
|
102
|
+
readonly display: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
|
|
103
|
+
readonly code: import("@elaraai/east").NullType;
|
|
104
|
+
readonly symbol: import("@elaraai/east").NullType;
|
|
105
|
+
readonly narrowSymbol: import("@elaraai/east").NullType;
|
|
106
|
+
readonly name: import("@elaraai/east").NullType;
|
|
107
|
+
}>>;
|
|
108
|
+
readonly compact: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
|
|
109
|
+
readonly short: import("@elaraai/east").NullType;
|
|
110
|
+
readonly long: import("@elaraai/east").NullType;
|
|
111
|
+
}>>;
|
|
112
|
+
readonly minimumFractionDigits: import("@elaraai/east").OptionType<IntegerType>;
|
|
113
|
+
readonly maximumFractionDigits: import("@elaraai/east").OptionType<IntegerType>;
|
|
114
|
+
}>;
|
|
115
|
+
readonly percent: import("@elaraai/east").StructType<{
|
|
116
|
+
readonly minimumFractionDigits: import("@elaraai/east").OptionType<IntegerType>;
|
|
117
|
+
readonly maximumFractionDigits: import("@elaraai/east").OptionType<IntegerType>;
|
|
118
|
+
readonly signDisplay: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
|
|
119
|
+
readonly auto: import("@elaraai/east").NullType;
|
|
120
|
+
readonly never: import("@elaraai/east").NullType;
|
|
121
|
+
readonly always: import("@elaraai/east").NullType;
|
|
122
|
+
readonly exceptZero: import("@elaraai/east").NullType;
|
|
123
|
+
}>>;
|
|
124
|
+
}>;
|
|
125
|
+
readonly compact: import("@elaraai/east").StructType<{
|
|
126
|
+
readonly display: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
|
|
127
|
+
readonly short: import("@elaraai/east").NullType;
|
|
128
|
+
readonly long: import("@elaraai/east").NullType;
|
|
129
|
+
}>>;
|
|
130
|
+
}>;
|
|
131
|
+
readonly unit: import("@elaraai/east").StructType<{
|
|
132
|
+
readonly unit: import("@elaraai/east").VariantType<{
|
|
133
|
+
readonly bit: import("@elaraai/east").NullType;
|
|
134
|
+
readonly byte: import("@elaraai/east").NullType;
|
|
135
|
+
readonly kilobit: import("@elaraai/east").NullType;
|
|
136
|
+
readonly kilobyte: import("@elaraai/east").NullType;
|
|
137
|
+
readonly megabit: import("@elaraai/east").NullType;
|
|
138
|
+
readonly megabyte: import("@elaraai/east").NullType;
|
|
139
|
+
readonly gigabit: import("@elaraai/east").NullType;
|
|
140
|
+
readonly gigabyte: import("@elaraai/east").NullType;
|
|
141
|
+
readonly terabit: import("@elaraai/east").NullType;
|
|
142
|
+
readonly terabyte: import("@elaraai/east").NullType;
|
|
143
|
+
readonly petabyte: import("@elaraai/east").NullType;
|
|
144
|
+
readonly nanosecond: import("@elaraai/east").NullType;
|
|
145
|
+
readonly microsecond: import("@elaraai/east").NullType;
|
|
146
|
+
readonly millisecond: import("@elaraai/east").NullType;
|
|
147
|
+
readonly second: import("@elaraai/east").NullType;
|
|
148
|
+
readonly minute: import("@elaraai/east").NullType;
|
|
149
|
+
readonly hour: import("@elaraai/east").NullType;
|
|
150
|
+
readonly day: import("@elaraai/east").NullType;
|
|
151
|
+
readonly week: import("@elaraai/east").NullType;
|
|
152
|
+
readonly month: import("@elaraai/east").NullType;
|
|
153
|
+
readonly year: import("@elaraai/east").NullType;
|
|
154
|
+
readonly millimeter: import("@elaraai/east").NullType;
|
|
155
|
+
readonly centimeter: import("@elaraai/east").NullType;
|
|
156
|
+
readonly meter: import("@elaraai/east").NullType;
|
|
157
|
+
readonly kilometer: import("@elaraai/east").NullType;
|
|
158
|
+
readonly inch: import("@elaraai/east").NullType;
|
|
159
|
+
readonly foot: import("@elaraai/east").NullType;
|
|
160
|
+
readonly yard: import("@elaraai/east").NullType;
|
|
161
|
+
readonly mile: import("@elaraai/east").NullType;
|
|
162
|
+
readonly gram: import("@elaraai/east").NullType;
|
|
163
|
+
readonly kilogram: import("@elaraai/east").NullType;
|
|
164
|
+
readonly milligram: import("@elaraai/east").NullType;
|
|
165
|
+
readonly ounce: import("@elaraai/east").NullType;
|
|
166
|
+
readonly pound: import("@elaraai/east").NullType;
|
|
167
|
+
readonly stone: import("@elaraai/east").NullType;
|
|
168
|
+
readonly celsius: import("@elaraai/east").NullType;
|
|
169
|
+
readonly fahrenheit: import("@elaraai/east").NullType;
|
|
170
|
+
readonly milliliter: import("@elaraai/east").NullType;
|
|
171
|
+
readonly liter: import("@elaraai/east").NullType;
|
|
172
|
+
readonly gallon: import("@elaraai/east").NullType;
|
|
173
|
+
readonly fluidOunce: import("@elaraai/east").NullType;
|
|
174
|
+
readonly acre: import("@elaraai/east").NullType;
|
|
175
|
+
readonly hectare: import("@elaraai/east").NullType;
|
|
176
|
+
readonly meterPerSecond: import("@elaraai/east").NullType;
|
|
177
|
+
readonly kilometerPerHour: import("@elaraai/east").NullType;
|
|
178
|
+
readonly milePerHour: import("@elaraai/east").NullType;
|
|
179
|
+
readonly percent: import("@elaraai/east").NullType;
|
|
180
|
+
readonly degree: import("@elaraai/east").NullType;
|
|
181
|
+
}>;
|
|
182
|
+
readonly display: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
|
|
183
|
+
readonly short: import("@elaraai/east").NullType;
|
|
184
|
+
readonly narrow: import("@elaraai/east").NullType;
|
|
185
|
+
readonly long: import("@elaraai/east").NullType;
|
|
186
|
+
}>>;
|
|
187
|
+
}>;
|
|
188
|
+
readonly scientific: import("@elaraai/east").NullType;
|
|
189
|
+
readonly engineering: import("@elaraai/east").NullType;
|
|
190
|
+
readonly date: import("@elaraai/east").StructType<{
|
|
191
|
+
readonly format: StringType;
|
|
192
|
+
}>;
|
|
193
|
+
readonly time: import("@elaraai/east").StructType<{
|
|
194
|
+
readonly format: StringType;
|
|
195
|
+
}>;
|
|
196
|
+
readonly datetime: import("@elaraai/east").StructType<{
|
|
197
|
+
readonly format: StringType;
|
|
198
|
+
}>;
|
|
199
|
+
}>>;
|
|
200
|
+
readonly summary: import("@elaraai/east").OptionType<StringType>;
|
|
201
|
+
readonly downside: import("@elaraai/east").OptionType<FloatType>;
|
|
202
|
+
readonly confidence: import("@elaraai/east").OptionType<FloatType>;
|
|
203
|
+
readonly detail: import("@elaraai/east").OptionType<StringType>;
|
|
204
|
+
readonly stakes: import("@elaraai/east").OptionType<VariantType<{
|
|
205
|
+
readonly low: NullType;
|
|
206
|
+
readonly medium: NullType;
|
|
207
|
+
readonly high: NullType;
|
|
208
|
+
readonly critical: NullType;
|
|
209
|
+
}>>;
|
|
210
|
+
readonly prompts: ArrayType<StructType<{
|
|
211
|
+
readonly id: StringType;
|
|
212
|
+
readonly text: StringType;
|
|
213
|
+
}>>;
|
|
214
|
+
readonly levers: ArrayType<StructType<{
|
|
215
|
+
readonly case: StringType;
|
|
216
|
+
readonly label: StringType;
|
|
217
|
+
}>>;
|
|
218
|
+
readonly evidence: ArrayType<StructType<{
|
|
219
|
+
readonly label: StringType;
|
|
220
|
+
readonly text: StringType;
|
|
221
|
+
readonly note: import("@elaraai/east").OptionType<StringType>;
|
|
222
|
+
}>>;
|
|
223
|
+
readonly alternatives: ArrayType<StructType<{
|
|
224
|
+
readonly id: import("@elaraai/east").OptionType<StringType>;
|
|
225
|
+
readonly label: StringType;
|
|
226
|
+
readonly value: FloatType;
|
|
227
|
+
readonly downside: import("@elaraai/east").OptionType<FloatType>;
|
|
228
|
+
readonly confidence: import("@elaraai/east").OptionType<FloatType>;
|
|
229
|
+
readonly note: import("@elaraai/east").OptionType<StringType>;
|
|
230
|
+
}>>;
|
|
231
|
+
}>>, [variant<"field", "inputs">, variant<"field", "queue_decisions">]>;
|
|
232
|
+
export declare const queueJudgements: e3.DatasetDef<import("@elaraai/east").DictType<StringType, StructType<{
|
|
233
|
+
readonly caseId: StringType;
|
|
234
|
+
readonly answers: import("@elaraai/east").DictType<StringType, VariantType<{
|
|
235
|
+
readonly yes: NullType;
|
|
236
|
+
readonly no: NullType;
|
|
237
|
+
readonly unknown: NullType;
|
|
238
|
+
}>>;
|
|
239
|
+
readonly knowledge: import("@elaraai/east").OptionType<StringType>;
|
|
240
|
+
readonly constraints: ArrayType<VariantType<{
|
|
241
|
+
readonly cho_hours_cap: VariantType<{
|
|
242
|
+
readonly atMost: FloatType;
|
|
243
|
+
readonly atLeast: FloatType;
|
|
244
|
+
readonly between: StructType<{
|
|
245
|
+
readonly min: FloatType;
|
|
246
|
+
readonly max: FloatType;
|
|
247
|
+
}>;
|
|
248
|
+
}>;
|
|
249
|
+
readonly blackout: StructType<{
|
|
250
|
+
readonly person: StringType;
|
|
251
|
+
readonly from: DateTimeType;
|
|
252
|
+
readonly to: DateTimeType;
|
|
253
|
+
}>;
|
|
254
|
+
}>>;
|
|
255
|
+
readonly verdict: import("@elaraai/east").OptionType<VariantType<{
|
|
256
|
+
readonly accepted: StringType;
|
|
257
|
+
readonly rejected: NullType;
|
|
258
|
+
readonly deferred: import("@elaraai/east").OptionType<StringType>;
|
|
259
|
+
readonly handoff: StringType;
|
|
260
|
+
}>>;
|
|
261
|
+
readonly resolvedAt: import("@elaraai/east").OptionType<DateTimeType>;
|
|
262
|
+
}>>, [variant<"field", "inputs">, variant<"field", "queue_judgements">]>;
|
|
263
|
+
export declare const decisionQueueCase: import("@elaraai/east").ExampleDef<[], any>;
|
|
264
|
+
export declare const decisionQueueJudgement: import("@elaraai/east").ExampleDef<[], any>;
|
|
265
|
+
export declare const decisionQueueOptions: import("@elaraai/east").ExampleDef<[], any>;
|
|
266
|
+
export declare const decisionQueueNarrow: import("@elaraai/east").ExampleDef<[], any>;
|
|
267
|
+
export declare const decisionQueueScroll: import("@elaraai/east").ExampleDef<[], any>;
|
|
268
|
+
export declare const decisionQueueSlice: import("@elaraai/east").ExampleDef<[], any>;
|
|
269
|
+
//# sourceMappingURL=queue.examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.examples.d.ts","sourceRoot":"","sources":["../../../test/decision/queue.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wCAAwC;AAExC;;;;;;;;;;;GAWG;AAEH,OAAO,EACG,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAC7E,QAAQ,EAAE,WAAW,EAAc,OAAO,EAC7C,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAQlC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;EAW3B,CAAC;AAeH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEAyF1B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAa3B,CAAC;AAMF,eAAO,MAAM,iBAAiB,6CAuD5B,CAAC;AAOH,eAAO,MAAM,sBAAsB,6CAuBjC,CAAC;AAMH,eAAO,MAAM,oBAAoB,6CAuB/B,CAAC;AAQH,eAAO,MAAM,mBAAmB,6CAyB9B,CAAC;AAMH,eAAO,MAAM,mBAAmB,6CAc9B,CAAC;AASH,eAAO,MAAM,kBAAkB,6CA0B7B,CAAC"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@elaraai/east-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/east-ui */
|
|
7
|
+
/**
|
|
8
|
+
* `DecisionQueue` examples — *the* Decide surface. One queue over the
|
|
9
|
+
* handle; selecting a row opens one compact facet beneath it (Evidence ·
|
|
10
|
+
* Options · Judgement · Modify). The constraint contract is a by-name
|
|
11
|
+
* `VariantType` declared once beside the inputs (in a real solution, a
|
|
12
|
+
* shared module imported by the reasoning task too): a bounded float lever
|
|
13
|
+
* (`cho_hours_cap`) and a struct lever (`blackout` — person · from · to).
|
|
14
|
+
*
|
|
15
|
+
* The seeds are spelled out as plain values (`e3.input` defaults are plain
|
|
16
|
+
* values); in a real app the decisions input is a reasoning task's output
|
|
17
|
+
* bound with its own patch overlay.
|
|
18
|
+
*/
|
|
19
|
+
import { East, ArrayType, StructType, VariantType, StringType, FloatType, DateTimeType, NullType, IntegerType, some, none, variant, example, } from '@elaraai/east';
|
|
20
|
+
import { Box, Chart, Field, Reactive, Slice, UIComponentType } from '@elaraai/east-ui';
|
|
21
|
+
import { Data, Decision, DecisionQueue } from '@elaraai/e3-ui';
|
|
22
|
+
import * as e3 from '@elaraai/e3';
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// The solution's constraint contract — declared ONCE (next to its inputs),
|
|
25
|
+
// imported by both the reasoning task and the surface. Lever payloads are
|
|
26
|
+
// arbitrary East types: bounded ops for numerics, structs for windows.
|
|
27
|
+
// ============================================================================
|
|
28
|
+
export const RosterConstraint = VariantType({
|
|
29
|
+
cho_hours_cap: VariantType({
|
|
30
|
+
atMost: FloatType,
|
|
31
|
+
atLeast: FloatType,
|
|
32
|
+
between: StructType({ min: FloatType, max: FloatType }),
|
|
33
|
+
}),
|
|
34
|
+
blackout: StructType({
|
|
35
|
+
person: StringType,
|
|
36
|
+
from: DateTimeType,
|
|
37
|
+
to: DateTimeType,
|
|
38
|
+
}),
|
|
39
|
+
});
|
|
40
|
+
const CURRENCY = variant('currency', {
|
|
41
|
+
currency: variant('USD', null),
|
|
42
|
+
display: none,
|
|
43
|
+
compact: some(variant('short', null)),
|
|
44
|
+
minimumFractionDigits: none,
|
|
45
|
+
maximumFractionDigits: none,
|
|
46
|
+
});
|
|
47
|
+
// ============================================================================
|
|
48
|
+
// Inputs — one queue (active cases with prompts / levers / evidence /
|
|
49
|
+
// alternatives, plus a routine tail) and the staged judgements.
|
|
50
|
+
// ============================================================================
|
|
51
|
+
export const queueDecisions = e3.input('queue_decisions', ArrayType(Decision.Types.Decision), [
|
|
52
|
+
{
|
|
53
|
+
id: 'ros-patel-cho',
|
|
54
|
+
kind: 'roster',
|
|
55
|
+
title: 'Move 3 SE shifts Patel → Cho',
|
|
56
|
+
urgency: variant('overdue', null),
|
|
57
|
+
value: 80000,
|
|
58
|
+
deadline: some(new Date(Date.now() - 2 * 3_600_000)),
|
|
59
|
+
format: some(CURRENCY),
|
|
60
|
+
summary: some('SE region · wk 09-16'),
|
|
61
|
+
downside: some(-8000),
|
|
62
|
+
confidence: some(0.82),
|
|
63
|
+
detail: some('Forecast SE demand +14% over the next two weeks; moving three shifts clears the gap without breaching the OT cap.'),
|
|
64
|
+
stakes: some(variant('high', null)),
|
|
65
|
+
prompts: [{ id: 'cho_told', text: 'Has Cho been told this is on the table?' }],
|
|
66
|
+
levers: [
|
|
67
|
+
{ case: 'cho_hours_cap', label: 'Cho weekly hours cap' },
|
|
68
|
+
{ case: 'blackout', label: 'Roster blackout window' },
|
|
69
|
+
],
|
|
70
|
+
evidence: [
|
|
71
|
+
{ label: 'forecast', text: 'SE region +14%', note: some('next 2 wks · holiday-demand driver') },
|
|
72
|
+
{ label: 'capacity', text: 'Cho +12h slack', note: some('Patel at 38h of 40') },
|
|
73
|
+
{ label: 'track', text: '5 / 5 similar moves', note: some('reduced OT, no SLA breach') },
|
|
74
|
+
],
|
|
75
|
+
alternatives: [
|
|
76
|
+
{ id: some('contractor'), label: 'Hire 1 contractor', value: 48000, downside: some(-15000), confidence: some(0.71), note: some('2 wk lead time · cost lock-in') },
|
|
77
|
+
{ id: some('do_nothing'), label: 'Do nothing', value: 0, downside: some(-140000), confidence: none, note: some('SLA breach wk 2') },
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: 'ord-sku-001',
|
|
82
|
+
kind: 'reorder',
|
|
83
|
+
title: 'SKU-001 · 2k units',
|
|
84
|
+
urgency: variant('due', null),
|
|
85
|
+
value: 42000,
|
|
86
|
+
deadline: some(new Date(new Date().setHours(16, 0, 0, 0))),
|
|
87
|
+
format: some(CURRENCY),
|
|
88
|
+
summary: some('supplier lead time 6 days'),
|
|
89
|
+
downside: some(-5000),
|
|
90
|
+
confidence: some(0.77),
|
|
91
|
+
detail: none,
|
|
92
|
+
stakes: some(variant('medium', null)),
|
|
93
|
+
prompts: [],
|
|
94
|
+
levers: [],
|
|
95
|
+
evidence: [{ label: 'demand', text: 'wk 10 forecast +9%', note: none }],
|
|
96
|
+
alternatives: [
|
|
97
|
+
{ id: some('wait'), label: 'Wait one week', value: 18000, downside: some(-21000), confidence: some(0.6), note: none },
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 'utl-riggs-tidy',
|
|
102
|
+
kind: 'roster',
|
|
103
|
+
title: 'Rebalance Riggs roster −6h',
|
|
104
|
+
urgency: variant('routine', null),
|
|
105
|
+
value: 1200,
|
|
106
|
+
deadline: none,
|
|
107
|
+
format: some(CURRENCY),
|
|
108
|
+
summary: none,
|
|
109
|
+
downside: none,
|
|
110
|
+
confidence: none,
|
|
111
|
+
detail: none,
|
|
112
|
+
stakes: none,
|
|
113
|
+
prompts: [],
|
|
114
|
+
levers: [],
|
|
115
|
+
evidence: [],
|
|
116
|
+
alternatives: [],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: 'cap-mw-trim',
|
|
120
|
+
kind: 'capacity',
|
|
121
|
+
title: 'Trim MW weekend cover',
|
|
122
|
+
urgency: variant('routine', null),
|
|
123
|
+
value: 800,
|
|
124
|
+
deadline: none,
|
|
125
|
+
format: some(CURRENCY),
|
|
126
|
+
summary: none,
|
|
127
|
+
downside: none,
|
|
128
|
+
confidence: none,
|
|
129
|
+
detail: none,
|
|
130
|
+
stakes: none,
|
|
131
|
+
prompts: [],
|
|
132
|
+
levers: [],
|
|
133
|
+
evidence: [],
|
|
134
|
+
alternatives: [],
|
|
135
|
+
},
|
|
136
|
+
]);
|
|
137
|
+
export const queueJudgements = e3.input('queue_judgements', Decision.Types.Judgements(RosterConstraint), new Map([
|
|
138
|
+
['ros-patel-cho', {
|
|
139
|
+
caseId: 'ros-patel-cho',
|
|
140
|
+
answers: new Map(),
|
|
141
|
+
knowledge: some('Patel mentioned a weekend preference for March.'),
|
|
142
|
+
constraints: [variant('cho_hours_cap', variant('atMost', 36))],
|
|
143
|
+
verdict: none,
|
|
144
|
+
resolvedAt: none,
|
|
145
|
+
}],
|
|
146
|
+
]));
|
|
147
|
+
// ============================================================================
|
|
148
|
+
// 1. Evidence facet open — the model's argument + the host's detail canvas.
|
|
149
|
+
// ============================================================================
|
|
150
|
+
export const decisionQueueCase = example({
|
|
151
|
+
keywords: ['DecisionQueue', 'Decide', 'queue', 'facet', 'evidence', 'detail', 'canvas', 'contract'],
|
|
152
|
+
description: 'The Decide surface — urgency-sorted queue; the overdue case expanded on the Evidence facet with the model’s argument and the host’s demand-vs-capacity detail canvas',
|
|
153
|
+
fn: East.function([], UIComponentType, (_$) => {
|
|
154
|
+
return (_jsx(Reactive, { children: $ => {
|
|
155
|
+
const decisions = $.let(Data.bind([ArrayType(Decision.Types.Decision)], queueDecisions.path, { mode: 'direct' }));
|
|
156
|
+
const judgements = $.let(Data.bind([Decision.Types.Judgements(RosterConstraint)], queueJudgements.path, { mode: 'direct' }));
|
|
157
|
+
const handle = $.let(Decision.bind([RosterConstraint], { decisions: [decisions], judgements }));
|
|
158
|
+
// "the overdue case" — a predicate, not an id or a position.
|
|
159
|
+
const urgent = $.let(decisions.read().firstMap(($, d) => d.urgency.hasTag('overdue').ifElse(() => some(d), () => none)));
|
|
160
|
+
const forecast = $.const([
|
|
161
|
+
{ week: 9n, demand: 82.0, capacity: 96.0 },
|
|
162
|
+
{ week: 10n, demand: 85.0, capacity: 96.0 },
|
|
163
|
+
{ week: 11n, demand: 88.0, capacity: 96.0 },
|
|
164
|
+
{ week: 12n, demand: 91.0, capacity: 96.0 },
|
|
165
|
+
{ week: 13n, demand: 95.0, capacity: 96.0 },
|
|
166
|
+
{ week: 14n, demand: 99.0, capacity: 96.0 },
|
|
167
|
+
{ week: 15n, demand: 104.0, capacity: 96.0 },
|
|
168
|
+
], ArrayType(StructType({ week: IntegerType, demand: FloatType, capacity: FloatType })));
|
|
169
|
+
return (_jsx(DecisionQueue, { handle: handle, heading: "Decisions waiting", defaultExpanded: urgent, modify: (decision, update) => (_jsx(Field.Slider, { label: "Uplift target", value: decision.value, min: 0, max: 120000, step: 1000, helperText: "Probe the recommendation \u2014 committing re-runs the optimizer against the revised target.", onChange: East.function([FloatType], NullType, ($, v) => {
|
|
170
|
+
$(update({ ...decision, value: v }));
|
|
171
|
+
}) })), detail: () => (_jsx(Chart, { layers: [
|
|
172
|
+
Chart.Area(forecast, { x: r => r.week, y: r => r.demand }, { color: 'teal.solid', fillOpacity: 0.25 }),
|
|
173
|
+
Chart.Line(forecast, { x: r => r.week, y: r => r.capacity }, { color: 'red.solid' }),
|
|
174
|
+
], grid: true, height: 160 })) }));
|
|
175
|
+
} }));
|
|
176
|
+
}),
|
|
177
|
+
inputs: [],
|
|
178
|
+
});
|
|
179
|
+
// ============================================================================
|
|
180
|
+
// 2. Judgement facet open — prompts, knowledge, the staged constraint chip,
|
|
181
|
+
// and the typed lever builder (bounded float + struct blackout).
|
|
182
|
+
// ============================================================================
|
|
183
|
+
export const decisionQueueJudgement = example({
|
|
184
|
+
keywords: ['DecisionQueue', 'Decide', 'judgement', 'lever', 'constraint', 'contract', 'gate'],
|
|
185
|
+
description: 'The Judgement facet — prompt gating Apply, knowledge capture, a staged constraint chip, and the typed lever builder derived from the solution’s constraint contract',
|
|
186
|
+
fn: East.function([], UIComponentType, (_$) => {
|
|
187
|
+
return (_jsx(Reactive, { children: $ => {
|
|
188
|
+
const decisions = $.let(Data.bind([ArrayType(Decision.Types.Decision)], queueDecisions.path, { mode: 'direct' }));
|
|
189
|
+
const judgements = $.let(Data.bind([Decision.Types.Judgements(RosterConstraint)], queueJudgements.path, { mode: 'direct' }));
|
|
190
|
+
const handle = $.let(Decision.bind([RosterConstraint], { decisions: [decisions], judgements }));
|
|
191
|
+
const urgent = $.let(decisions.read().firstMap(($, d) => d.urgency.hasTag('overdue').ifElse(() => some(d), () => none)));
|
|
192
|
+
return (_jsx(DecisionQueue, { handle: handle, heading: "Decisions waiting", defaultExpanded: urgent, defaultFacet: "judgement" }));
|
|
193
|
+
} }));
|
|
194
|
+
}),
|
|
195
|
+
inputs: [],
|
|
196
|
+
});
|
|
197
|
+
// ============================================================================
|
|
198
|
+
// 3. Options facet open — the ranked stack with zero-anchored bars.
|
|
199
|
+
// ============================================================================
|
|
200
|
+
export const decisionQueueOptions = example({
|
|
201
|
+
keywords: ['DecisionQueue', 'Decide', 'options', 'alternatives', 'ranked', 'bars'],
|
|
202
|
+
description: 'The Options facet — the recommendation and its alternatives ranked by uplift, downside and uplift bars sharing a zero anchor',
|
|
203
|
+
fn: East.function([], UIComponentType, (_$) => {
|
|
204
|
+
return (_jsx(Reactive, { children: $ => {
|
|
205
|
+
const decisions = $.let(Data.bind([ArrayType(Decision.Types.Decision)], queueDecisions.path, { mode: 'direct' }));
|
|
206
|
+
const judgements = $.let(Data.bind([Decision.Types.Judgements(RosterConstraint)], queueJudgements.path, { mode: 'direct' }));
|
|
207
|
+
const handle = $.let(Decision.bind([RosterConstraint], { decisions: [decisions], judgements }));
|
|
208
|
+
const urgent = $.let(decisions.read().firstMap(($, d) => d.urgency.hasTag('overdue').ifElse(() => some(d), () => none)));
|
|
209
|
+
return (_jsx(DecisionQueue, { handle: handle, heading: "Decisions waiting", defaultExpanded: urgent, defaultFacet: "options" }));
|
|
210
|
+
} }));
|
|
211
|
+
}),
|
|
212
|
+
inputs: [],
|
|
213
|
+
});
|
|
214
|
+
// ============================================================================
|
|
215
|
+
// 4. Narrow rail — the queue constrained to a ~360px container: rows wrap
|
|
216
|
+
// to two lines, the facet toggles become a full-width segment, Apply /
|
|
217
|
+
// Reject drop to their own line, and the Options facet stacks.
|
|
218
|
+
// ============================================================================
|
|
219
|
+
export const decisionQueueNarrow = example({
|
|
220
|
+
keywords: ['DecisionQueue', 'Decide', 'narrow', 'rail', 'responsive', 'wrap'],
|
|
221
|
+
description: 'The narrow variant — the same queue in a ~360px rail: two-line rows, full-width facet segment, stacked Options facet',
|
|
222
|
+
fn: East.function([], UIComponentType, (_$) => {
|
|
223
|
+
return (_jsx(Reactive, { children: $ => {
|
|
224
|
+
const decisions = $.let(Data.bind([ArrayType(Decision.Types.Decision)], queueDecisions.path, { mode: 'direct' }));
|
|
225
|
+
const judgements = $.let(Data.bind([Decision.Types.Judgements(RosterConstraint)], queueJudgements.path, { mode: 'direct' }));
|
|
226
|
+
const handle = $.let(Decision.bind([RosterConstraint], { decisions: [decisions], judgements }));
|
|
227
|
+
const urgent = $.let(decisions.read().firstMap(($, d) => d.urgency.hasTag('overdue').ifElse(() => some(d), () => none)));
|
|
228
|
+
return (_jsx(Box, { width: "360px", children: _jsx(DecisionQueue, { handle: handle, heading: "Decisions waiting", defaultExpanded: urgent, defaultFacet: "options" }) }));
|
|
229
|
+
} }));
|
|
230
|
+
}),
|
|
231
|
+
inputs: [],
|
|
232
|
+
});
|
|
233
|
+
// ============================================================================
|
|
234
|
+
// 5. Capped height — `maxHeight` pins the header and scrolls the rows.
|
|
235
|
+
// ============================================================================
|
|
236
|
+
export const decisionQueueScroll = example({
|
|
237
|
+
keywords: ['DecisionQueue', 'Decide', 'maxHeight', 'scroll', 'overflow'],
|
|
238
|
+
description: 'Queue capped with maxHeight — the header stays pinned while the rows scroll',
|
|
239
|
+
fn: East.function([], UIComponentType, (_$) => {
|
|
240
|
+
return (_jsx(Reactive, { children: $ => {
|
|
241
|
+
const decisions = $.let(Data.bind([ArrayType(Decision.Types.Decision)], queueDecisions.path, { mode: 'direct' }));
|
|
242
|
+
const judgements = $.let(Data.bind([Decision.Types.Judgements(RosterConstraint)], queueJudgements.path, { mode: 'direct' }));
|
|
243
|
+
const handle = $.let(Decision.bind([RosterConstraint], { decisions: [decisions], judgements }));
|
|
244
|
+
return _jsx(DecisionQueue, { handle: handle, heading: "Decisions waiting", maxHeight: "220px" });
|
|
245
|
+
} }));
|
|
246
|
+
}),
|
|
247
|
+
inputs: [],
|
|
248
|
+
});
|
|
249
|
+
// ============================================================================
|
|
250
|
+
// 7. The handle-owned slice — `Decision.bind` binds it (seeded with an
|
|
251
|
+
// initial kind filter); the queue's `slice` option only mounts the rail.
|
|
252
|
+
// The same seed with NO rail mounted is an invisible author scope.
|
|
253
|
+
// ============================================================================
|
|
254
|
+
export const decisionQueueSlice = example({
|
|
255
|
+
keywords: ['DecisionQueue', 'Decide', 'slice', 'bind', 'seed', 'rail', 'filter', 'search', 'operator'],
|
|
256
|
+
description: 'The handle-owned slice — Decision.bind seeds the initial state (kind = roster, shown as a removable chip); the queue\'s slice option mounts the rail; omitting the rail would make the same seed an invisible author scope',
|
|
257
|
+
fn: East.function([], UIComponentType, (_$) => {
|
|
258
|
+
return (_jsx(Reactive, { children: $ => {
|
|
259
|
+
const decisions = $.let(Data.bind([ArrayType(Decision.Types.Decision)], queueDecisions.path, { mode: 'direct' }));
|
|
260
|
+
const judgements = $.let(Data.bind([Decision.Types.Judgements(RosterConstraint)], queueJudgements.path, { mode: 'direct' }));
|
|
261
|
+
const handle = $.let(Decision.bind([RosterConstraint], {
|
|
262
|
+
decisions: [decisions],
|
|
263
|
+
judgements,
|
|
264
|
+
slice: Slice.state({
|
|
265
|
+
filters: [variant('string', { fieldId: 'kind', op: variant('eq', 'roster') })],
|
|
266
|
+
}),
|
|
267
|
+
}));
|
|
268
|
+
return (_jsx(DecisionQueue, { handle: handle, heading: "Decisions waiting", slice: ['filter', 'search'] }));
|
|
269
|
+
} }));
|
|
270
|
+
}),
|
|
271
|
+
inputs: [],
|
|
272
|
+
});
|
|
273
|
+
//# sourceMappingURL=queue.examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.examples.js","sourceRoot":"","sources":["../../../test/decision/queue.examples.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
+
/** @jsxImportSource @elaraai/e3-ui */
|
|
5
6
|
/**
|
|
6
7
|
* Diff component examples — realistic editing scenes that combine
|
|
7
|
-
* `Data.
|
|
8
|
+
* `Data.bind` with east-ui form components and a `<Diff>` panel
|
|
8
9
|
* surfacing the pending changes for sign-off.
|
|
9
10
|
*
|
|
10
11
|
* Coverage:
|
|
@@ -16,11 +17,11 @@
|
|
|
16
17
|
*
|
|
17
18
|
* Pattern:
|
|
18
19
|
* 1. Declare an `e3.input(name, type, default)` per editable scalar.
|
|
19
|
-
* 2. Inside
|
|
20
|
+
* 2. Inside `<Reactive>`, bind each via `Data.bind`.
|
|
20
21
|
* 3. Wire form components — `read()` for the current value,
|
|
21
22
|
* `write()` on change.
|
|
22
|
-
* 4. Close the scene with
|
|
23
|
-
*
|
|
23
|
+
* 4. Close the scene with `<Diff bindings={[...]} />` — Apply commits
|
|
24
|
+
* the merged batch; Discard drops the buffer.
|
|
24
25
|
*/
|
|
25
26
|
import { FloatType, IntegerType, StringType, BooleanType, DateTimeType, ArrayType, StructType, SetType, DictType, VariantType, NullType, variant } from "@elaraai/east";
|
|
26
27
|
import * as e3 from "@elaraai/e3";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.examples.d.ts","sourceRoot":"","sources":["../../../test/diff/diff.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AAEtC;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAEH,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EAIR,OAAO,EAEV,MAAM,eAAe,CAAC;AAMvB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAQlC,eAAO,MAAM,mBAAmB,8FAA6D,CAAC;AAC9F,eAAO,MAAM,sBAAsB,sGAA0D,CAAC;AAC9F,eAAO,MAAM,iBAAiB,sGAA+D,CAAC;AAC9F,eAAO,MAAM,mBAAmB,oGAA4D,CAAC;AAG7F,eAAO,MAAM,gBAAgB,2FAAwD,CAAC;AACtF,eAAO,MAAM,aAAa,wFAAmD,CAAC;AAC9E,eAAO,MAAM,cAAc,0FAAqD,CAAC;AACjF,eAAO,MAAM,WAAW,qFAAmE,CAAC;AAC5F,eAAO,MAAM,gBAAgB,6FAA8E,CAAC;AAU5G,eAAO,MAAM,WAAW;;;;;8DAKtB,CAAC;AAMH,eAAO,MAAM,mBAAmB,8FAAgD,CAAC;AAGjF,eAAO,MAAM,cAAc,wFAAyD,CAAC;AACrF,eAAO,MAAM,gBAAgB,0FAAsD,CAAC;AACpF,eAAO,MAAM,gBAAgB,6FAAoD,CAAC;AAClF,eAAO,MAAM,iBAAiB,4FAAsD,CAAC;AAGrF,eAAO,MAAM,iBAAiB,qGAI7B,CAAC;AAGF,eAAO,MAAM,mBAAmB,mHAS/B,CAAC;AASF,eAAO,MAAM,qBAAqB;;;;;wEAIjC,CAAC;AAMF,eAAO,MAAM,qBAAqB,6CA4ChC,CAAC;AAOH,eAAO,MAAM,iBAAiB,6CAyD5B,CAAC;AAQH,eAAO,MAAM,iBAAiB,6CAqE5B,CAAC;AAOH,eAAO,MAAM,kBAAkB,6CA4C7B,CAAC;AAOH,eAAO,MAAM,kBAAkB,6CAkE7B,CAAC;AAOH,eAAO,MAAM,qBAAqB,6CA6DhC,CAAC;AAOH,eAAO,MAAM,sBAAsB,6CA4BjC,CAAC;AAMH,eAAO,MAAM,YAAY,6CAYvB,CAAC;AAUH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,6CA2C5B,CAAC;AAQH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,6CA+BpC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,6CA+BtC,CAAC;AASH,eAAO,MAAM,wBAAwB,2HAIpC,CAAC;AAEF,eAAO,MAAM,wBAAwB,0HAIpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,iHAI5B,CAAC;AAWF,eAAO,MAAM,6BAA6B,gIASzC,CAAC;AAkBF,eAAO,MAAM,qBAAqB,uHAIjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,6CAyB9B,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,6CA+BtC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,6CA4B7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB,6CAsEnC,CAAC;AAUH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,6CA0BlC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,6CAoElC,CAAC"}
|