@vectoriox/iox-ui 5.46.0 → 5.48.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.
Files changed (32) hide show
  1. package/design-core/index.d.ts +5 -3
  2. package/fesm2022/vectoriox-iox-ui-design-core.mjs +7 -4
  3. package/fesm2022/vectoriox-iox-ui-design-core.mjs.map +1 -1
  4. package/fesm2022/vectoriox-iox-ui-generation-core.mjs +351 -78
  5. package/fesm2022/vectoriox-iox-ui-generation-core.mjs.map +1 -1
  6. package/fesm2022/vectoriox-iox-ui-harness-core.mjs +4179 -0
  7. package/fesm2022/vectoriox-iox-ui-harness-core.mjs.map +1 -0
  8. package/fesm2022/vectoriox-iox-ui.mjs +29 -1
  9. package/fesm2022/vectoriox-iox-ui.mjs.map +1 -1
  10. package/generation-core/index.d.ts +252 -18
  11. package/harness-core/index.d.ts +2498 -0
  12. package/harness-core/package.json +3 -0
  13. package/index.d.ts +22 -3
  14. package/package.json +5 -1
  15. package/src/design-core/design-apply.ts +8 -4
  16. package/src/generation-core/entrances.ts +110 -0
  17. package/src/generation-core/plan-data.ts +71 -0
  18. package/src/generation-core/public-api.ts +3 -0
  19. package/src/generation-core/shape-check.ts +92 -0
  20. package/src/generation-core/site-spec.generated.ts +131 -2
  21. package/src/generation-core/validate-site-plan.ts +9 -62
  22. package/src/harness-core/business-types.ts +141 -0
  23. package/src/harness-core/harness-spec.generated.ts +3528 -0
  24. package/src/harness-core/intake.ts +85 -0
  25. package/src/harness-core/lint.ts +94 -0
  26. package/src/harness-core/look.ts +32 -0
  27. package/src/harness-core/motion.ts +67 -0
  28. package/src/harness-core/needs.ts +42 -0
  29. package/src/harness-core/prompt-context.ts +91 -0
  30. package/src/harness-core/public-api.ts +19 -0
  31. package/src/harness-core/rank.ts +226 -0
  32. package/src/harness-core/site-analysis.ts +180 -0
@@ -14215,10 +14215,12 @@ interface DesignRevertSnapshot extends FlavorRevertSnapshot {
14215
14215
  * What an Apply of `plan` stores as its revert snapshot — the ONE rule the builder's Apply and the
14216
14216
  * server-side site build (W2) share: the whole pre-apply token set, what the apply writes into each row,
14217
14217
  * and where a revert goes back to — never a null flavor (a studio with no design row wore its design's
14218
- * defaults, so that is what it returns to). An apply that writes nothing keeps the previous snapshot:
14219
- * clobbering a useful one with "nothing changed" would be a lie.
14218
+ * defaults, so that is what it returns to). An apply that changes NOTHING keeps the previous snapshot:
14219
+ * clobbering a useful one with "nothing changed" would be a lie. A choice that lives in the config only
14220
+ * (Scrolling · How animated · Between pages) IS a change — pass `next` so a motion-only Apply gets its own
14221
+ * snapshot and Revert goes back to the motion worn just before it (vectoriox/iox-ui#28).
14220
14222
  */
14221
- declare function designApplySnapshot(previous: StoredDesign, previousConfig: ReadonlyArray<DesignConfigEntry> | null | undefined, existing: ReadonlyArray<StoredDesignTokenRow>, plan: FlavorSeedPlan, appliedAt: number): DesignRevertSnapshot | null;
14223
+ declare function designApplySnapshot(previous: StoredDesign, previousConfig: ReadonlyArray<DesignConfigEntry> | null | undefined, existing: ReadonlyArray<StoredDesignTokenRow>, plan: FlavorSeedPlan, appliedAt: number, next?: DesignChoices): DesignRevertSnapshot | null;
14222
14224
  /** The config a revert puts back: the snapshot's verbatim config, else (a snapshot older than `fromConfig`)
14223
14225
  * the identity it recorded. */
14224
14226
  declare function designRevertConfig(snapshot: DesignRevertSnapshot): DesignConfigEntry[];
@@ -18238,11 +18238,14 @@ function planDesignRevert(current, design) {
18238
18238
  * What an Apply of `plan` stores as its revert snapshot — the ONE rule the builder's Apply and the
18239
18239
  * server-side site build (W2) share: the whole pre-apply token set, what the apply writes into each row,
18240
18240
  * and where a revert goes back to — never a null flavor (a studio with no design row wore its design's
18241
- * defaults, so that is what it returns to). An apply that writes nothing keeps the previous snapshot:
18242
- * clobbering a useful one with "nothing changed" would be a lie.
18241
+ * defaults, so that is what it returns to). An apply that changes NOTHING keeps the previous snapshot:
18242
+ * clobbering a useful one with "nothing changed" would be a lie. A choice that lives in the config only
18243
+ * (Scrolling · How animated · Between pages) IS a change — pass `next` so a motion-only Apply gets its own
18244
+ * snapshot and Revert goes back to the motion worn just before it (vectoriox/iox-ui#28).
18243
18245
  */
18244
- function designApplySnapshot(previous, previousConfig, existing, plan, appliedAt) {
18245
- if (!plan.create.length && !plan.update.length)
18246
+ function designApplySnapshot(previous, previousConfig, existing, plan, appliedAt, next) {
18247
+ const wroteTokens = plan.create.length > 0 || plan.update.length > 0;
18248
+ if (!wroteTokens && (!next || sameDesignChoices(previous.choices, next)))
18246
18249
  return previous.revert;
18247
18250
  const origin = previous.storedFlavorId
18248
18251
  ? {