@almadar/core 10.110.0 → 10.112.0
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/builders.d.ts +5 -5
- package/dist/builders.js +78 -9
- package/dist/builders.js.map +1 -1
- package/dist/{bus-CuAsuaHW.d.ts → bus-BZ9ekDiD.d.ts} +4 -2
- package/dist/{domain-Bf6sf9NR.d.ts → domain-DV8lmH3r.d.ts} +1857 -39
- package/dist/{effect-2JoKc8Zj.d.ts → effect-B9nMpTKN.d.ts} +27 -3
- package/dist/{entityAccess-CuKaSX0N.d.ts → entityAccess-Ak_ZvGXZ.d.ts} +3 -3
- package/dist/{expression-DhTTuu2W.d.ts → expression-Dz84kipC.d.ts} +4 -2
- package/dist/factory/index.d.ts +81 -7
- package/dist/factory/index.js +560 -16
- package/dist/factory/index.js.map +1 -1
- package/dist/factory-runtime/index.d.ts +5 -5
- package/dist/factory-runtime/index.js +78 -9
- package/dist/factory-runtime/index.js.map +1 -1
- package/dist/fixtures.d.ts +3 -3
- package/dist/fixtures.js +1 -1
- package/dist/fixtures.js.map +1 -1
- package/dist/i18n/index.js +36 -4
- package/dist/i18n/index.js.map +1 -1
- package/dist/{index-bC0n_h8G.d.ts → index-DmkUMeXz.d.ts} +79 -10
- package/dist/index.d.ts +71 -20
- package/dist/index.js +17101 -5233
- package/dist/index.js.map +1 -1
- package/dist/mock/index.d.ts +20 -7
- package/dist/mock/index.js +38 -11
- package/dist/mock/index.js.map +1 -1
- package/dist/patterns/component-mapping.json +1 -1
- package/dist/patterns/event-contracts.json +1 -1
- package/dist/patterns/index.d.ts +1042 -228
- package/dist/patterns/index.js +392 -13
- package/dist/patterns/index.js.map +1 -1
- package/dist/patterns/patterns-registry.json +382 -10
- package/dist/patterns/registry.json +382 -10
- package/dist/{schema-DqBoP7Ab.d.ts → schema-C-HLTS_Q.d.ts} +2969 -44
- package/dist/state-machine/index.d.ts +1 -1
- package/dist/state-machine/index.js +32 -7
- package/dist/state-machine/index.js.map +1 -1
- package/dist/themes/index.d.ts +1 -1
- package/dist/themes/index.js +16303 -5151
- package/dist/themes/index.js.map +1 -1
- package/dist/{trait-S5uhI089.d.ts → trait-CRgDZSy_.d.ts} +10 -2
- package/dist/types/index.d.ts +8 -8
- package/dist/types/index.js +115 -10
- package/dist/types/index.js.map +1 -1
- package/dist/{types-2uS2WfIo.d.ts → types-C3nlpTDW.d.ts} +2 -2
- package/package.json +1 -1
- package/themes/almadar-website.json +7 -0
- package/themes/almadar.json +16 -4
- package/themes/aqua.json +420 -0
- package/themes/arabesque.json +512 -0
- package/themes/art-deco.json +340 -0
- package/themes/art-nouveau.json +340 -0
- package/themes/atelier.json +43 -187
- package/themes/bauhaus.json +330 -0
- package/themes/bloomberg-dense.json +69 -213
- package/themes/blueprint.json +330 -0
- package/themes/clay.json +53 -188
- package/themes/comic.json +107 -146
- package/themes/constructivist.json +340 -0
- package/themes/corporate.json +62 -197
- package/themes/cyberpunk.json +418 -0
- package/themes/frutiger-aero.json +422 -0
- package/themes/game-adventure.json +46 -21
- package/themes/game-rpg.json +48 -22
- package/themes/game-sci-fi.json +47 -21
- package/themes/game-ui-pack.json +39 -17
- package/themes/gazette.json +50 -194
- package/themes/glass.json +78 -201
- package/themes/gothic.json +329 -0
- package/themes/ink-wash.json +512 -0
- package/themes/kawaii.json +512 -0
- package/themes/kiosk.json +70 -200
- package/themes/linear-clean.json +67 -202
- package/themes/luxury.json +322 -0
- package/themes/mac-classic.json +330 -0
- package/themes/material.json +328 -0
- package/themes/memphis.json +337 -0
- package/themes/mid-century.json +338 -0
- package/themes/minimalist.json +60 -204
- package/themes/mudcloth.json +512 -0
- package/themes/neon.json +51 -212
- package/themes/neumorphic.json +322 -0
- package/themes/newsprint.json +330 -0
- package/themes/notion-editorial.json +51 -186
- package/themes/pixel.json +321 -0
- package/themes/prism.json +66 -69
- package/themes/retro.json +126 -165
- package/themes/risograph.json +325 -0
- package/themes/scandi.json +512 -0
- package/themes/sketch.json +330 -0
- package/themes/solarpunk.json +512 -0
- package/themes/steampunk.json +327 -0
- package/themes/swiss.json +338 -0
- package/themes/terminal.json +86 -156
- package/themes/trait-wars.json +143 -184
- package/themes/ukiyo-e.json +512 -0
- package/themes/vaporwave.json +420 -0
- package/themes/victorian.json +337 -0
- package/themes/wabi-sabi.json +512 -0
- package/themes/win95.json +324 -0
- package/themes/wireframe.json +44 -179
- package/themes/zine.json +330 -0
package/dist/factory/index.js
CHANGED
|
@@ -30,6 +30,181 @@ function rehydrateKnobDefs(catalog) {
|
|
|
30
30
|
}
|
|
31
31
|
return catalog;
|
|
32
32
|
}
|
|
33
|
+
var JsonValueSchema = z.lazy(
|
|
34
|
+
() => z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(JsonValueSchema), z.record(JsonValueSchema)])
|
|
35
|
+
);
|
|
36
|
+
function isJsonObject(value) {
|
|
37
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// src/factory/merge.ts
|
|
41
|
+
function canonical(v) {
|
|
42
|
+
if (Array.isArray(v)) return `[${v.map(canonical).join(",")}]`;
|
|
43
|
+
if (isJsonObject(v)) return `{${Object.keys(v).sort().map((k) => `${JSON.stringify(k)}:${canonical(v[k] ?? null)}`).join(",")}}`;
|
|
44
|
+
return JSON.stringify(v);
|
|
45
|
+
}
|
|
46
|
+
var same = (a, b) => a === void 0 || b === void 0 ? a === b : canonical(a) === canonical(b);
|
|
47
|
+
function isIdList(v) {
|
|
48
|
+
return Array.isArray(v) && v.length > 0 && v.every((i) => isJsonObject(i) && typeof i["id"] === "string");
|
|
49
|
+
}
|
|
50
|
+
var idList = (v) => v === void 0 || Array.isArray(v) && v.length === 0 || isIdList(v);
|
|
51
|
+
function mergeParams(base, ours, theirs) {
|
|
52
|
+
const conflicts = [];
|
|
53
|
+
const merged = mergeValue([], base, ours, theirs, conflicts);
|
|
54
|
+
return { merged: merged === void 0 ? null : merged, conflicts };
|
|
55
|
+
}
|
|
56
|
+
function mergeValue(path, base, ours, theirs, conflicts) {
|
|
57
|
+
if (same(ours, theirs)) return ours;
|
|
58
|
+
if (same(base, ours)) return theirs;
|
|
59
|
+
if (same(base, theirs)) return ours;
|
|
60
|
+
if (ours !== void 0 && theirs !== void 0 && isJsonObject(ours) && isJsonObject(theirs) && (base === void 0 || isJsonObject(base))) {
|
|
61
|
+
return mergeObject(path, base, ours, theirs, conflicts);
|
|
62
|
+
}
|
|
63
|
+
if (ours !== void 0 && theirs !== void 0 && (isIdList(ours) || isIdList(theirs)) && idList(ours) && idList(theirs) && idList(base)) {
|
|
64
|
+
return mergeIdList(path, base ?? [], ours, theirs, conflicts);
|
|
65
|
+
}
|
|
66
|
+
conflicts.push({
|
|
67
|
+
path,
|
|
68
|
+
kind: ours === void 0 || theirs === void 0 ? "delete-vs-edit" : "both-changed",
|
|
69
|
+
base: base ?? null,
|
|
70
|
+
ours: ours ?? null,
|
|
71
|
+
theirs: theirs ?? null
|
|
72
|
+
});
|
|
73
|
+
return ours;
|
|
74
|
+
}
|
|
75
|
+
function mergeObject(path, base, ours, theirs, conflicts) {
|
|
76
|
+
const out = {};
|
|
77
|
+
const keys = [.../* @__PURE__ */ new Set([...Object.keys(base ?? {}), ...Object.keys(ours), ...Object.keys(theirs)])];
|
|
78
|
+
for (const key of keys) {
|
|
79
|
+
const value = mergeValue([...path, key], base?.[key], ours[key], theirs[key], conflicts);
|
|
80
|
+
if (value !== void 0) out[key] = value;
|
|
81
|
+
}
|
|
82
|
+
return out;
|
|
83
|
+
}
|
|
84
|
+
var idsOf = (list) => list.map((i) => i.id);
|
|
85
|
+
function mergeIdList(path, base, ours, theirs, conflicts) {
|
|
86
|
+
const byId = (list) => new Map(list.map((i) => [i.id, i]));
|
|
87
|
+
const b = byId(base);
|
|
88
|
+
const o = byId(ours);
|
|
89
|
+
const t = byId(theirs);
|
|
90
|
+
const result = /* @__PURE__ */ new Map();
|
|
91
|
+
for (const id of /* @__PURE__ */ new Set([...b.keys(), ...o.keys(), ...t.keys()])) {
|
|
92
|
+
const value = mergeValue([...path, id], b.get(id), o.get(id), t.get(id), conflicts);
|
|
93
|
+
if (value !== void 0) result.set(id, value);
|
|
94
|
+
}
|
|
95
|
+
const common = (list) => idsOf(list).filter((id) => b.has(id));
|
|
96
|
+
const reordered = (list) => canonical(common(list).filter((id) => o.has(id) && t.has(id))) !== canonical(idsOf(base).filter((id) => o.has(id) && t.has(id)));
|
|
97
|
+
const [primary, secondary] = reordered(ours) || !reordered(theirs) ? [ours, theirs] : [theirs, ours];
|
|
98
|
+
const order = idsOf(primary).filter((id) => result.has(id));
|
|
99
|
+
const secondaryIds = idsOf(secondary);
|
|
100
|
+
secondaryIds.forEach((id, index) => {
|
|
101
|
+
if (!result.has(id) || order.includes(id)) return;
|
|
102
|
+
const before = secondaryIds.slice(0, index).reverse().find((prev) => order.includes(prev));
|
|
103
|
+
order.splice(before === void 0 ? 0 : order.indexOf(before) + 1, 0, id);
|
|
104
|
+
});
|
|
105
|
+
for (const id of result.keys()) if (!order.includes(id)) order.push(id);
|
|
106
|
+
return order.map((id) => result.get(id) ?? null);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// src/factory/lolo-behavior-contracts.ts
|
|
110
|
+
var JS_TO_LOLO_TYPE = {
|
|
111
|
+
string: "string",
|
|
112
|
+
number: "number",
|
|
113
|
+
integer: "number",
|
|
114
|
+
boolean: "boolean",
|
|
115
|
+
array: "array",
|
|
116
|
+
object: "object"
|
|
117
|
+
};
|
|
118
|
+
function jsToLolo(t) {
|
|
119
|
+
return JS_TO_LOLO_TYPE[t ?? ""] ?? (t || "string");
|
|
120
|
+
}
|
|
121
|
+
function inferConfigType(spec) {
|
|
122
|
+
if (spec === void 0 || !isJsonObject(spec)) return void 0;
|
|
123
|
+
const explicit = spec["type"];
|
|
124
|
+
if (typeof explicit === "string" && explicit.length > 0) return explicit;
|
|
125
|
+
const d = spec["default"];
|
|
126
|
+
if (Array.isArray(d)) return "array";
|
|
127
|
+
if (d === null || d === void 0) return void 0;
|
|
128
|
+
return typeof d;
|
|
129
|
+
}
|
|
130
|
+
function sortKeysDeep(v) {
|
|
131
|
+
if (Array.isArray(v)) return v.map(sortKeysDeep);
|
|
132
|
+
if (isJsonObject(v)) {
|
|
133
|
+
const out = {};
|
|
134
|
+
for (const k of Object.keys(v).sort()) out[k] = sortKeysDeep(v[k] ?? null);
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
return v;
|
|
138
|
+
}
|
|
139
|
+
var objectsOf = (v) => Array.isArray(v) ? v.filter(isJsonObject) : [];
|
|
140
|
+
var objectOf = (v) => v !== void 0 && isJsonObject(v) ? v : {};
|
|
141
|
+
var stringsOf = (v) => Array.isArray(v) ? v.filter((x) => typeof x === "string") : [];
|
|
142
|
+
function configTypes(config) {
|
|
143
|
+
const out = {};
|
|
144
|
+
for (const [key, spec] of Object.entries(objectOf(config))) out[key] = jsToLolo(inferConfigType(spec));
|
|
145
|
+
return out;
|
|
146
|
+
}
|
|
147
|
+
function buildLoloBehaviorContracts(catalogs, orbs) {
|
|
148
|
+
const behaviors = {};
|
|
149
|
+
const entryFor = (name) => behaviors[name] ?? (behaviors[name] = { traits: {}, pages: [], orbitals: {}, appConfig: {} });
|
|
150
|
+
for (const raw of catalogs) {
|
|
151
|
+
const catalog = rehydrateKnobDefs(raw);
|
|
152
|
+
for (const s of catalog.signatures) {
|
|
153
|
+
if (!s.organism) continue;
|
|
154
|
+
const entry = entryFor(s.organism);
|
|
155
|
+
for (const t of s.traits) {
|
|
156
|
+
if (t.name in entry.traits) continue;
|
|
157
|
+
const config = {};
|
|
158
|
+
for (const ck of t.overridableConfigKeys ?? []) {
|
|
159
|
+
if (ck?.key) config[ck.key] = jsToLolo(ck.type);
|
|
160
|
+
}
|
|
161
|
+
entry.traits[t.name] = { requires: [...t.entityContract?.requires ?? []], config };
|
|
162
|
+
}
|
|
163
|
+
for (const p of s.pages) {
|
|
164
|
+
if (p?.name && !entry.pages.includes(p.name)) entry.pages.push(p.name);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
for (const entry of Object.values(behaviors)) entry.pages.sort();
|
|
169
|
+
for (const { name, orb } of orbs) {
|
|
170
|
+
if (behaviors[name]) continue;
|
|
171
|
+
const traits = {};
|
|
172
|
+
const pages = [];
|
|
173
|
+
for (const orbital of objectsOf(objectOf(orb)["orbitals"])) {
|
|
174
|
+
for (const t of objectsOf(orbital["traits"])) {
|
|
175
|
+
const traitName = t["name"];
|
|
176
|
+
if (typeof traitName !== "string") continue;
|
|
177
|
+
traits[traitName] = { requires: stringsOf(objectOf(t["entityContract"])["requires"]), config: configTypes(t["config"]) };
|
|
178
|
+
}
|
|
179
|
+
for (const p of objectsOf(orbital["pages"])) {
|
|
180
|
+
if (typeof p["name"] === "string" && p["name"]) pages.push(p["name"]);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
behaviors[name] = { traits, pages, orbitals: {}, appConfig: {} };
|
|
184
|
+
}
|
|
185
|
+
for (const { name, orb } of orbs) {
|
|
186
|
+
const target = entryFor(name);
|
|
187
|
+
const doc = objectOf(orb);
|
|
188
|
+
Object.assign(target.appConfig, configTypes(doc["config"]));
|
|
189
|
+
for (const orbital of objectsOf(doc["orbitals"])) {
|
|
190
|
+
const orbitalName = orbital["name"];
|
|
191
|
+
if (typeof orbitalName !== "string" || !orbitalName) continue;
|
|
192
|
+
target.orbitals[orbitalName] = { config: configTypes(orbital["config"]) };
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return behaviors;
|
|
196
|
+
}
|
|
197
|
+
function serializeLoloBehaviorContracts(behaviors) {
|
|
198
|
+
const doc = {};
|
|
199
|
+
for (const [name, b] of Object.entries(behaviors)) {
|
|
200
|
+
const traits = {};
|
|
201
|
+
for (const [t, c] of Object.entries(b.traits)) traits[t] = { requires: c.requires, config: c.config };
|
|
202
|
+
const orbitals = {};
|
|
203
|
+
for (const [o, c] of Object.entries(b.orbitals)) orbitals[o] = { config: c.config };
|
|
204
|
+
doc[name] = { traits, pages: b.pages, orbitals, appConfig: b.appConfig };
|
|
205
|
+
}
|
|
206
|
+
return JSON.stringify(sortKeysDeep({ behaviors: doc }));
|
|
207
|
+
}
|
|
33
208
|
|
|
34
209
|
// src/factory/questions/generate.ts
|
|
35
210
|
function generateQuestions(plan, catalog, ruleOverlay, _userPrompt) {
|
|
@@ -500,10 +675,10 @@ function applyEntityFields(binding, signature, params) {
|
|
|
500
675
|
params.entityFields = [...binding.entityFields];
|
|
501
676
|
return;
|
|
502
677
|
}
|
|
503
|
-
const
|
|
678
|
+
const canonical2 = new Set(signature.entities[0].fields.map((f) => f.name));
|
|
504
679
|
const extras = [];
|
|
505
680
|
for (const f of binding.entityFields) {
|
|
506
|
-
if (f.name &&
|
|
681
|
+
if (f.name && canonical2.has(f.name)) continue;
|
|
507
682
|
extras.push(f);
|
|
508
683
|
}
|
|
509
684
|
if (extras.length > 0) params.entityFields = extras;
|
|
@@ -1201,6 +1376,12 @@ var patterns_registry_default = {
|
|
|
1201
1376
|
types: [
|
|
1202
1377
|
"function"
|
|
1203
1378
|
]
|
|
1379
|
+
},
|
|
1380
|
+
when: {
|
|
1381
|
+
types: [
|
|
1382
|
+
"sexpr",
|
|
1383
|
+
"function"
|
|
1384
|
+
]
|
|
1204
1385
|
}
|
|
1205
1386
|
},
|
|
1206
1387
|
required: [
|
|
@@ -1316,6 +1497,12 @@ var patterns_registry_default = {
|
|
|
1316
1497
|
"string"
|
|
1317
1498
|
],
|
|
1318
1499
|
kind: "event"
|
|
1500
|
+
},
|
|
1501
|
+
when: {
|
|
1502
|
+
types: [
|
|
1503
|
+
"sexpr",
|
|
1504
|
+
"function"
|
|
1505
|
+
]
|
|
1319
1506
|
}
|
|
1320
1507
|
},
|
|
1321
1508
|
required: [
|
|
@@ -1636,6 +1823,12 @@ var patterns_registry_default = {
|
|
|
1636
1823
|
types: [
|
|
1637
1824
|
"function"
|
|
1638
1825
|
]
|
|
1826
|
+
},
|
|
1827
|
+
when: {
|
|
1828
|
+
types: [
|
|
1829
|
+
"sexpr",
|
|
1830
|
+
"function"
|
|
1831
|
+
]
|
|
1639
1832
|
}
|
|
1640
1833
|
},
|
|
1641
1834
|
required: [
|
|
@@ -2133,6 +2326,12 @@ var patterns_registry_default = {
|
|
|
2133
2326
|
types: [
|
|
2134
2327
|
"string"
|
|
2135
2328
|
]
|
|
2329
|
+
},
|
|
2330
|
+
when: {
|
|
2331
|
+
types: [
|
|
2332
|
+
"sexpr",
|
|
2333
|
+
"function"
|
|
2334
|
+
]
|
|
2136
2335
|
}
|
|
2137
2336
|
},
|
|
2138
2337
|
required: [
|
|
@@ -2470,6 +2669,12 @@ var patterns_registry_default = {
|
|
|
2470
2669
|
"ghost",
|
|
2471
2670
|
"danger"
|
|
2472
2671
|
]
|
|
2672
|
+
},
|
|
2673
|
+
when: {
|
|
2674
|
+
types: [
|
|
2675
|
+
"sexpr",
|
|
2676
|
+
"function"
|
|
2677
|
+
]
|
|
2473
2678
|
}
|
|
2474
2679
|
},
|
|
2475
2680
|
required: [
|
|
@@ -2527,6 +2732,12 @@ var patterns_registry_default = {
|
|
|
2527
2732
|
"ghost",
|
|
2528
2733
|
"danger"
|
|
2529
2734
|
]
|
|
2735
|
+
},
|
|
2736
|
+
when: {
|
|
2737
|
+
types: [
|
|
2738
|
+
"sexpr",
|
|
2739
|
+
"function"
|
|
2740
|
+
]
|
|
2530
2741
|
}
|
|
2531
2742
|
},
|
|
2532
2743
|
propertyRequired: [
|
|
@@ -2740,6 +2951,13 @@ var patterns_registry_default = {
|
|
|
2740
2951
|
],
|
|
2741
2952
|
description: "Page title - accepts string or number from generated code accessing dynamic entity data"
|
|
2742
2953
|
},
|
|
2954
|
+
icon: {
|
|
2955
|
+
types: [
|
|
2956
|
+
"icon",
|
|
2957
|
+
"string"
|
|
2958
|
+
],
|
|
2959
|
+
description: "Icon shown before the title."
|
|
2960
|
+
},
|
|
2743
2961
|
subtitle: {
|
|
2744
2962
|
types: [
|
|
2745
2963
|
"string",
|
|
@@ -4827,6 +5045,7 @@ var patterns_registry_default = {
|
|
|
4827
5045
|
tier: "molecules",
|
|
4828
5046
|
family: "core",
|
|
4829
5047
|
description: "Search input with events",
|
|
5048
|
+
minUsableWidth: 160,
|
|
4830
5049
|
suggestedFor: [
|
|
4831
5050
|
"search functionality",
|
|
4832
5051
|
"quick filters"
|
|
@@ -7338,6 +7557,13 @@ var patterns_registry_default = {
|
|
|
7338
7557
|
"full-screen"
|
|
7339
7558
|
],
|
|
7340
7559
|
default: "centered-card"
|
|
7560
|
+
},
|
|
7561
|
+
contained: {
|
|
7562
|
+
types: [
|
|
7563
|
+
"boolean"
|
|
7564
|
+
],
|
|
7565
|
+
description: "Render inside the nearest positioned ancestor (a preview frame) instead of portaling over the whole window; page scroll is left alone.",
|
|
7566
|
+
default: false
|
|
7341
7567
|
}
|
|
7342
7568
|
}
|
|
7343
7569
|
},
|
|
@@ -7362,6 +7588,21 @@ var patterns_registry_default = {
|
|
|
7362
7588
|
description: "Whether the drawer is open (defaults to true when rendered by slot wrapper)",
|
|
7363
7589
|
default: true
|
|
7364
7590
|
},
|
|
7591
|
+
onExited: {
|
|
7592
|
+
types: [
|
|
7593
|
+
"function"
|
|
7594
|
+
],
|
|
7595
|
+
description: "Fires after the exit animation completes (the drawer is about to unmount).",
|
|
7596
|
+
kind: "callback",
|
|
7597
|
+
callbackArgs: []
|
|
7598
|
+
},
|
|
7599
|
+
contained: {
|
|
7600
|
+
types: [
|
|
7601
|
+
"boolean"
|
|
7602
|
+
],
|
|
7603
|
+
description: "Render inside the nearest positioned ancestor (a preview frame) instead of over the window.",
|
|
7604
|
+
default: false
|
|
7605
|
+
},
|
|
7365
7606
|
onClose: {
|
|
7366
7607
|
types: [
|
|
7367
7608
|
"function"
|
|
@@ -7471,6 +7712,14 @@ var patterns_registry_default = {
|
|
|
7471
7712
|
kind: "callback",
|
|
7472
7713
|
callbackArgs: []
|
|
7473
7714
|
},
|
|
7715
|
+
onExited: {
|
|
7716
|
+
types: [
|
|
7717
|
+
"function"
|
|
7718
|
+
],
|
|
7719
|
+
description: "Fires after the exit animation completes (the dialog is about to unmount).",
|
|
7720
|
+
kind: "callback",
|
|
7721
|
+
callbackArgs: []
|
|
7722
|
+
},
|
|
7474
7723
|
onConfirm: {
|
|
7475
7724
|
types: [
|
|
7476
7725
|
"function"
|
|
@@ -15417,6 +15666,19 @@ var patterns_registry_default = {
|
|
|
15417
15666
|
description: 'Format X-axis labels as time (ISO date in \u2192 "Mar 2026"-style label out)',
|
|
15418
15667
|
default: false
|
|
15419
15668
|
},
|
|
15669
|
+
period: {
|
|
15670
|
+
types: [
|
|
15671
|
+
"string"
|
|
15672
|
+
],
|
|
15673
|
+
description: 'Bucket granularity of a time axis \u2014 labels read "Oct 2", "Week of Sep 28", "Oct 2026", "Q4 2026" or "2026"',
|
|
15674
|
+
enumValues: [
|
|
15675
|
+
"day",
|
|
15676
|
+
"week",
|
|
15677
|
+
"month",
|
|
15678
|
+
"quarter",
|
|
15679
|
+
"year"
|
|
15680
|
+
]
|
|
15681
|
+
},
|
|
15420
15682
|
drillEvent: {
|
|
15421
15683
|
types: [
|
|
15422
15684
|
"string"
|
|
@@ -18744,6 +19006,52 @@ var patterns_registry_default = {
|
|
|
18744
19006
|
}
|
|
18745
19007
|
]
|
|
18746
19008
|
},
|
|
19009
|
+
onTransitionClick: {
|
|
19010
|
+
types: [
|
|
19011
|
+
"function"
|
|
19012
|
+
],
|
|
19013
|
+
description: "Direct transition-click callback, for React hosts (e.g. a canvas node).",
|
|
19014
|
+
kind: "callback",
|
|
19015
|
+
callbackArgs: [
|
|
19016
|
+
{
|
|
19017
|
+
name: "transition",
|
|
19018
|
+
type: "object",
|
|
19019
|
+
schema: {
|
|
19020
|
+
types: [
|
|
19021
|
+
"object"
|
|
19022
|
+
],
|
|
19023
|
+
properties: {
|
|
19024
|
+
index: {
|
|
19025
|
+
types: [
|
|
19026
|
+
"number"
|
|
19027
|
+
]
|
|
19028
|
+
},
|
|
19029
|
+
event: {
|
|
19030
|
+
types: [
|
|
19031
|
+
"string"
|
|
19032
|
+
]
|
|
19033
|
+
},
|
|
19034
|
+
from: {
|
|
19035
|
+
types: [
|
|
19036
|
+
"string"
|
|
19037
|
+
]
|
|
19038
|
+
},
|
|
19039
|
+
to: {
|
|
19040
|
+
types: [
|
|
19041
|
+
"string"
|
|
19042
|
+
]
|
|
19043
|
+
}
|
|
19044
|
+
},
|
|
19045
|
+
required: [
|
|
19046
|
+
"index",
|
|
19047
|
+
"event",
|
|
19048
|
+
"from",
|
|
19049
|
+
"to"
|
|
19050
|
+
]
|
|
19051
|
+
}
|
|
19052
|
+
}
|
|
19053
|
+
]
|
|
19054
|
+
},
|
|
18747
19055
|
selectedState: {
|
|
18748
19056
|
types: [
|
|
18749
19057
|
"string"
|
|
@@ -20024,6 +20332,7 @@ var patterns_registry_default = {
|
|
|
20024
20332
|
description: "DataGrid \u2014 structured records grid rendering rows over configurable columns, with sort, select, and drag-reorder.",
|
|
20025
20333
|
capabilities: "admin table, records grid, user list, CRUD list, manage-records view, spreadsheet-style data grid, sortable columns",
|
|
20026
20334
|
fieldsContract: "display",
|
|
20335
|
+
minUsableWidth: 200,
|
|
20027
20336
|
suggestedFor: [
|
|
20028
20337
|
"data",
|
|
20029
20338
|
"grid",
|
|
@@ -20079,6 +20388,47 @@ var patterns_registry_default = {
|
|
|
20079
20388
|
],
|
|
20080
20389
|
description: "Mark this container as the DnD root for its subtree \u2014 descendant zones share one DndContext (cross-container drag). Use on an outer container whose own items are not draggable."
|
|
20081
20390
|
},
|
|
20391
|
+
emptyIcon: {
|
|
20392
|
+
types: [
|
|
20393
|
+
"icon",
|
|
20394
|
+
"string"
|
|
20395
|
+
],
|
|
20396
|
+
description: "Domain icon for the empty state."
|
|
20397
|
+
},
|
|
20398
|
+
emptyTitle: {
|
|
20399
|
+
types: [
|
|
20400
|
+
"string"
|
|
20401
|
+
],
|
|
20402
|
+
description: 'Specific title ("No orders yet").'
|
|
20403
|
+
},
|
|
20404
|
+
emptyDescription: {
|
|
20405
|
+
types: [
|
|
20406
|
+
"string"
|
|
20407
|
+
],
|
|
20408
|
+
description: "What will appear here once rows exist."
|
|
20409
|
+
},
|
|
20410
|
+
emptyAction: {
|
|
20411
|
+
types: [
|
|
20412
|
+
"object"
|
|
20413
|
+
],
|
|
20414
|
+
description: "Create-the-first-item action.",
|
|
20415
|
+
properties: {
|
|
20416
|
+
label: {
|
|
20417
|
+
types: [
|
|
20418
|
+
"string"
|
|
20419
|
+
]
|
|
20420
|
+
},
|
|
20421
|
+
event: {
|
|
20422
|
+
types: [
|
|
20423
|
+
"string"
|
|
20424
|
+
],
|
|
20425
|
+
kind: "event"
|
|
20426
|
+
}
|
|
20427
|
+
},
|
|
20428
|
+
propertyRequired: [
|
|
20429
|
+
"label"
|
|
20430
|
+
]
|
|
20431
|
+
},
|
|
20082
20432
|
entity: {
|
|
20083
20433
|
types: [
|
|
20084
20434
|
"object",
|
|
@@ -20269,6 +20619,12 @@ var patterns_registry_default = {
|
|
|
20269
20619
|
"ghost",
|
|
20270
20620
|
"danger"
|
|
20271
20621
|
]
|
|
20622
|
+
},
|
|
20623
|
+
when: {
|
|
20624
|
+
types: [
|
|
20625
|
+
"sexpr",
|
|
20626
|
+
"function"
|
|
20627
|
+
]
|
|
20272
20628
|
}
|
|
20273
20629
|
},
|
|
20274
20630
|
required: [
|
|
@@ -20532,6 +20888,7 @@ var patterns_registry_default = {
|
|
|
20532
20888
|
family: "core",
|
|
20533
20889
|
description: "DataList component",
|
|
20534
20890
|
fieldsContract: "display",
|
|
20891
|
+
minUsableWidth: 200,
|
|
20535
20892
|
suggestedFor: [
|
|
20536
20893
|
"data",
|
|
20537
20894
|
"list",
|
|
@@ -20588,6 +20945,47 @@ var patterns_registry_default = {
|
|
|
20588
20945
|
],
|
|
20589
20946
|
description: "Mark this container as the DnD root for its subtree \u2014 descendant zones share one DndContext (cross-container drag). Use on an outer container whose own items are not draggable."
|
|
20590
20947
|
},
|
|
20948
|
+
emptyIcon: {
|
|
20949
|
+
types: [
|
|
20950
|
+
"icon",
|
|
20951
|
+
"string"
|
|
20952
|
+
],
|
|
20953
|
+
description: "Domain icon for the empty state."
|
|
20954
|
+
},
|
|
20955
|
+
emptyTitle: {
|
|
20956
|
+
types: [
|
|
20957
|
+
"string"
|
|
20958
|
+
],
|
|
20959
|
+
description: 'Specific title ("No orders yet").'
|
|
20960
|
+
},
|
|
20961
|
+
emptyDescription: {
|
|
20962
|
+
types: [
|
|
20963
|
+
"string"
|
|
20964
|
+
],
|
|
20965
|
+
description: "What will appear here once rows exist."
|
|
20966
|
+
},
|
|
20967
|
+
emptyAction: {
|
|
20968
|
+
types: [
|
|
20969
|
+
"object"
|
|
20970
|
+
],
|
|
20971
|
+
description: "Create-the-first-item action.",
|
|
20972
|
+
properties: {
|
|
20973
|
+
label: {
|
|
20974
|
+
types: [
|
|
20975
|
+
"string"
|
|
20976
|
+
]
|
|
20977
|
+
},
|
|
20978
|
+
event: {
|
|
20979
|
+
types: [
|
|
20980
|
+
"string"
|
|
20981
|
+
],
|
|
20982
|
+
kind: "event"
|
|
20983
|
+
}
|
|
20984
|
+
},
|
|
20985
|
+
propertyRequired: [
|
|
20986
|
+
"label"
|
|
20987
|
+
]
|
|
20988
|
+
},
|
|
20591
20989
|
entity: {
|
|
20592
20990
|
types: [
|
|
20593
20991
|
"object",
|
|
@@ -20753,6 +21151,12 @@ var patterns_registry_default = {
|
|
|
20753
21151
|
"ghost",
|
|
20754
21152
|
"danger"
|
|
20755
21153
|
]
|
|
21154
|
+
},
|
|
21155
|
+
when: {
|
|
21156
|
+
types: [
|
|
21157
|
+
"sexpr",
|
|
21158
|
+
"function"
|
|
21159
|
+
]
|
|
20756
21160
|
}
|
|
20757
21161
|
},
|
|
20758
21162
|
required: [
|
|
@@ -22777,14 +23181,19 @@ var patterns_registry_default = {
|
|
|
22777
23181
|
],
|
|
22778
23182
|
eventPayloadBrand: true,
|
|
22779
23183
|
payloadFor: "event"
|
|
23184
|
+
},
|
|
23185
|
+
when: {
|
|
23186
|
+
types: [
|
|
23187
|
+
"sexpr",
|
|
23188
|
+
"function"
|
|
23189
|
+
]
|
|
22780
23190
|
}
|
|
22781
23191
|
},
|
|
22782
23192
|
required: [
|
|
22783
23193
|
"label",
|
|
22784
23194
|
"event"
|
|
22785
23195
|
]
|
|
22786
|
-
}
|
|
22787
|
-
default: []
|
|
23196
|
+
}
|
|
22788
23197
|
},
|
|
22789
23198
|
rightActions: {
|
|
22790
23199
|
types: [
|
|
@@ -22832,14 +23241,19 @@ var patterns_registry_default = {
|
|
|
22832
23241
|
],
|
|
22833
23242
|
eventPayloadBrand: true,
|
|
22834
23243
|
payloadFor: "event"
|
|
23244
|
+
},
|
|
23245
|
+
when: {
|
|
23246
|
+
types: [
|
|
23247
|
+
"sexpr",
|
|
23248
|
+
"function"
|
|
23249
|
+
]
|
|
22835
23250
|
}
|
|
22836
23251
|
},
|
|
22837
23252
|
required: [
|
|
22838
23253
|
"label",
|
|
22839
23254
|
"event"
|
|
22840
23255
|
]
|
|
22841
|
-
}
|
|
22842
|
-
default: []
|
|
23256
|
+
}
|
|
22843
23257
|
},
|
|
22844
23258
|
threshold: {
|
|
22845
23259
|
types: [
|
|
@@ -23876,6 +24290,12 @@ var patterns_registry_default = {
|
|
|
23876
24290
|
propertyRequired: [
|
|
23877
24291
|
"enabled"
|
|
23878
24292
|
]
|
|
24293
|
+
},
|
|
24294
|
+
pageKey: {
|
|
24295
|
+
types: [
|
|
24296
|
+
"string"
|
|
24297
|
+
],
|
|
24298
|
+
description: "The current page (path or name). When set, the main slot's content animates in on every page change (`PageTransition`); a layout's own content region claims the transition so its chrome stays still."
|
|
23879
24299
|
}
|
|
23880
24300
|
}
|
|
23881
24301
|
},
|
|
@@ -34387,6 +34807,7 @@ var patterns_registry_default = {
|
|
|
34387
34807
|
description: "TableView \u2014 sortable, selectable data table rendering rows over configurable columns, with inline row actions and grouping.",
|
|
34388
34808
|
capabilities: "admin console table, records list, CRUD data table, user list, manage-users grid, sortable columns, row selection with bulk actions, grouped list view",
|
|
34389
34809
|
fieldsContract: "display",
|
|
34810
|
+
minUsableWidth: 240,
|
|
34390
34811
|
suggestedFor: [
|
|
34391
34812
|
"table",
|
|
34392
34813
|
"view",
|
|
@@ -34442,6 +34863,47 @@ var patterns_registry_default = {
|
|
|
34442
34863
|
],
|
|
34443
34864
|
description: "Mark this container as the DnD root for its subtree \u2014 descendant zones share one DndContext (cross-container drag). Use on an outer container whose own items are not draggable."
|
|
34444
34865
|
},
|
|
34866
|
+
emptyIcon: {
|
|
34867
|
+
types: [
|
|
34868
|
+
"icon",
|
|
34869
|
+
"string"
|
|
34870
|
+
],
|
|
34871
|
+
description: "Domain icon for the empty state."
|
|
34872
|
+
},
|
|
34873
|
+
emptyTitle: {
|
|
34874
|
+
types: [
|
|
34875
|
+
"string"
|
|
34876
|
+
],
|
|
34877
|
+
description: 'Specific title ("No orders yet").'
|
|
34878
|
+
},
|
|
34879
|
+
emptyDescription: {
|
|
34880
|
+
types: [
|
|
34881
|
+
"string"
|
|
34882
|
+
],
|
|
34883
|
+
description: "What will appear here once rows exist."
|
|
34884
|
+
},
|
|
34885
|
+
emptyAction: {
|
|
34886
|
+
types: [
|
|
34887
|
+
"object"
|
|
34888
|
+
],
|
|
34889
|
+
description: "Create-the-first-item action.",
|
|
34890
|
+
properties: {
|
|
34891
|
+
label: {
|
|
34892
|
+
types: [
|
|
34893
|
+
"string"
|
|
34894
|
+
]
|
|
34895
|
+
},
|
|
34896
|
+
event: {
|
|
34897
|
+
types: [
|
|
34898
|
+
"string"
|
|
34899
|
+
],
|
|
34900
|
+
kind: "event"
|
|
34901
|
+
}
|
|
34902
|
+
},
|
|
34903
|
+
propertyRequired: [
|
|
34904
|
+
"label"
|
|
34905
|
+
]
|
|
34906
|
+
},
|
|
34445
34907
|
entity: {
|
|
34446
34908
|
types: [
|
|
34447
34909
|
"object",
|
|
@@ -34671,6 +35133,12 @@ var patterns_registry_default = {
|
|
|
34671
35133
|
"ghost",
|
|
34672
35134
|
"danger"
|
|
34673
35135
|
]
|
|
35136
|
+
},
|
|
35137
|
+
when: {
|
|
35138
|
+
types: [
|
|
35139
|
+
"sexpr",
|
|
35140
|
+
"function"
|
|
35141
|
+
]
|
|
34674
35142
|
}
|
|
34675
35143
|
},
|
|
34676
35144
|
required: [
|
|
@@ -47754,6 +48222,37 @@ var patterns_registry_default = {
|
|
|
47754
48222
|
],
|
|
47755
48223
|
typicalSize: "small",
|
|
47756
48224
|
propsSchema: {
|
|
48225
|
+
animation: {
|
|
48226
|
+
types: [
|
|
48227
|
+
"string"
|
|
48228
|
+
],
|
|
48229
|
+
description: "Which motion preset to use (maps to `animate-<name>-in/out`).",
|
|
48230
|
+
required: true,
|
|
48231
|
+
enumValues: [
|
|
48232
|
+
"modal",
|
|
48233
|
+
"overlay",
|
|
48234
|
+
"slide-up",
|
|
48235
|
+
"drawer",
|
|
48236
|
+
"popover",
|
|
48237
|
+
"toast",
|
|
48238
|
+
"fade",
|
|
48239
|
+
"page"
|
|
48240
|
+
]
|
|
48241
|
+
},
|
|
48242
|
+
animate: {
|
|
48243
|
+
types: [
|
|
48244
|
+
"boolean"
|
|
48245
|
+
],
|
|
48246
|
+
description: "Per-instance opt-out. Global opt-out is `--motion-enable` / reduced-motion. @default true"
|
|
48247
|
+
},
|
|
48248
|
+
onExited: {
|
|
48249
|
+
types: [
|
|
48250
|
+
"function"
|
|
48251
|
+
],
|
|
48252
|
+
description: "Fired after the exit animation completes (before unmount).",
|
|
48253
|
+
kind: "callback",
|
|
48254
|
+
callbackArgs: []
|
|
48255
|
+
},
|
|
47757
48256
|
show: {
|
|
47758
48257
|
types: [
|
|
47759
48258
|
"boolean"
|
|
@@ -47794,7 +48293,7 @@ var patterns_registry_default = {
|
|
|
47794
48293
|
types: [
|
|
47795
48294
|
"string"
|
|
47796
48295
|
],
|
|
47797
|
-
description: "Value that changes on navigation (
|
|
48296
|
+
description: "Value that changes on navigation (a page path).",
|
|
47798
48297
|
required: true
|
|
47799
48298
|
},
|
|
47800
48299
|
children: {
|
|
@@ -51331,9 +51830,10 @@ var patterns_registry_default = {
|
|
|
51331
51830
|
},
|
|
51332
51831
|
children: {
|
|
51333
51832
|
types: [
|
|
51334
|
-
"node"
|
|
51833
|
+
"node",
|
|
51834
|
+
"function"
|
|
51335
51835
|
],
|
|
51336
|
-
description: "Compiled mode: render children directly instead of resolving from context"
|
|
51836
|
+
description: "Compiled mode: render children directly instead of resolving from context. A function receives the slot's presence \u2014 compiled self-overlaying content (Modal / ConfirmDialog) takes it as `isOpen`/`onExited` to play its exit."
|
|
51337
51837
|
},
|
|
51338
51838
|
pattern: {
|
|
51339
51839
|
types: [
|
|
@@ -52583,14 +53083,15 @@ var patterns_registry_default = {
|
|
|
52583
53083
|
types: [
|
|
52584
53084
|
"string"
|
|
52585
53085
|
],
|
|
52586
|
-
description: "What made this version (a user save, an agent turn, a restore, an undo/redo, a snapshot).",
|
|
53086
|
+
description: "What made this version (a user save, an agent turn, a restore, an undo/redo, a snapshot, a merge of a teammate's work).",
|
|
52587
53087
|
enumValues: [
|
|
52588
53088
|
"user",
|
|
52589
53089
|
"agent",
|
|
52590
53090
|
"restore",
|
|
52591
53091
|
"undo",
|
|
52592
53092
|
"redo",
|
|
52593
|
-
"snapshot"
|
|
53093
|
+
"snapshot",
|
|
53094
|
+
"merge"
|
|
52594
53095
|
]
|
|
52595
53096
|
},
|
|
52596
53097
|
additions: {
|
|
@@ -53014,6 +53515,52 @@ var patterns_registry_default = {
|
|
|
53014
53515
|
}
|
|
53015
53516
|
]
|
|
53016
53517
|
},
|
|
53518
|
+
onTransitionClick: {
|
|
53519
|
+
types: [
|
|
53520
|
+
"function"
|
|
53521
|
+
],
|
|
53522
|
+
description: "Direct transition-click callback, for React hosts (e.g. a canvas node).",
|
|
53523
|
+
kind: "callback",
|
|
53524
|
+
callbackArgs: [
|
|
53525
|
+
{
|
|
53526
|
+
name: "transition",
|
|
53527
|
+
type: "object",
|
|
53528
|
+
schema: {
|
|
53529
|
+
types: [
|
|
53530
|
+
"object"
|
|
53531
|
+
],
|
|
53532
|
+
properties: {
|
|
53533
|
+
index: {
|
|
53534
|
+
types: [
|
|
53535
|
+
"number"
|
|
53536
|
+
]
|
|
53537
|
+
},
|
|
53538
|
+
event: {
|
|
53539
|
+
types: [
|
|
53540
|
+
"string"
|
|
53541
|
+
]
|
|
53542
|
+
},
|
|
53543
|
+
from: {
|
|
53544
|
+
types: [
|
|
53545
|
+
"string"
|
|
53546
|
+
]
|
|
53547
|
+
},
|
|
53548
|
+
to: {
|
|
53549
|
+
types: [
|
|
53550
|
+
"string"
|
|
53551
|
+
]
|
|
53552
|
+
}
|
|
53553
|
+
},
|
|
53554
|
+
required: [
|
|
53555
|
+
"index",
|
|
53556
|
+
"event",
|
|
53557
|
+
"from",
|
|
53558
|
+
"to"
|
|
53559
|
+
]
|
|
53560
|
+
}
|
|
53561
|
+
}
|
|
53562
|
+
]
|
|
53563
|
+
},
|
|
53017
53564
|
selectedState: {
|
|
53018
53565
|
types: [
|
|
53019
53566
|
"string"
|
|
@@ -53174,9 +53721,6 @@ var patterns_registry_default = {
|
|
|
53174
53721
|
}
|
|
53175
53722
|
}
|
|
53176
53723
|
}};
|
|
53177
|
-
var JsonValueSchema = z.lazy(
|
|
53178
|
-
() => z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(JsonValueSchema), z.record(JsonValueSchema)])
|
|
53179
|
-
);
|
|
53180
53724
|
|
|
53181
53725
|
// src/patterns/helpers/prompt-helpers.ts
|
|
53182
53726
|
function getAllPatternTypes() {
|
|
@@ -53585,7 +54129,7 @@ var SExprAtomSchema = z.union([
|
|
|
53585
54129
|
var SExprSchema = z.lazy(
|
|
53586
54130
|
() => z.union([
|
|
53587
54131
|
SExprAtomSchema,
|
|
53588
|
-
z.array(
|
|
54132
|
+
z.array(SExprDataSchema).min(1).refine(
|
|
53589
54133
|
(arr) => typeof arr[0] === "string",
|
|
53590
54134
|
{ message: "S-expression array must have a string operator as first element" }
|
|
53591
54135
|
)
|
|
@@ -54165,6 +54709,6 @@ var PAGE_OVERRIDE_SCHEMA = {
|
|
|
54165
54709
|
}
|
|
54166
54710
|
};
|
|
54167
54711
|
|
|
54168
|
-
export { answerToMutations, answersToMutations, applyFactoryCallPlanMutation, assertNoUnsatisfiableEnum, deriveInputType, diffFactoryCalls, generateQuestions, rehydrateKnobDefs, signatureToParamsSchema, translateOverlaysToParams };
|
|
54712
|
+
export { answerToMutations, answersToMutations, applyFactoryCallPlanMutation, assertNoUnsatisfiableEnum, buildLoloBehaviorContracts, deriveInputType, diffFactoryCalls, generateQuestions, inferConfigType, mergeParams, rehydrateKnobDefs, serializeLoloBehaviorContracts, signatureToParamsSchema, sortKeysDeep, translateOverlaysToParams };
|
|
54169
54713
|
//# sourceMappingURL=index.js.map
|
|
54170
54714
|
//# sourceMappingURL=index.js.map
|