@xeplr/ui-factory 1.7.2 → 1.7.3
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xeplr/ui-factory",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.3",
|
|
4
4
|
"description": "Design data-entry screens on @xeplr/ui-canvas, save them as JSON, run them as auto-saving forms with lists of saved records — built for Claude to draft and people to refine",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -84,7 +84,7 @@ export default function FlowDesignerSample({ ctrl, step, events, catalog, tab, o
|
|
|
84
84
|
onChange={(e) => ctrl.setStep(step.stepKey, { label: e.target.value })}
|
|
85
85
|
aria-label="Step name"
|
|
86
86
|
/>
|
|
87
|
-
<span className="xeplr-factory-fd-step-screen">Shows
|
|
87
|
+
<span className="xeplr-factory-fd-step-screen">Shows the form “{screenName(ctrl, step.screen)}”</span>
|
|
88
88
|
<button type="button" className="xeplr-factory-fd-remove" onClick={() => ctrl.removeStep(step.stepKey)}>Remove step</button>
|
|
89
89
|
</div>
|
|
90
90
|
<div className="xeplr-factory-fd-tabs" role="tablist">
|
|
@@ -239,7 +239,7 @@ function EventsPanel({ step, events, catalog }) {
|
|
|
239
239
|
|
|
240
240
|
/** Where this step goes once its screen is saved: a screen, a function's choice, or the end. */
|
|
241
241
|
function NavigationPanel({ step, ctrl, catalog }) {
|
|
242
|
-
const nav =
|
|
242
|
+
const nav = ctrl.navigationOf(step)
|
|
243
243
|
const others = ctrl.flow.steps.filter((s) => s.stepKey !== step.stepKey)
|
|
244
244
|
const deciders = catalog.forEvent(DECIDE_EVENT)
|
|
245
245
|
const set = (patch) => ctrl.setNavigation(step.stepKey, { ...nav, ...patch })
|
|
@@ -338,10 +338,6 @@ function NavigationPanel({ step, ctrl, catalog }) {
|
|
|
338
338
|
)
|
|
339
339
|
}
|
|
340
340
|
|
|
341
|
-
function navigationOfStep(ctrl, step) {
|
|
342
|
-
return ctrl.navigationOf(step)
|
|
343
|
-
}
|
|
344
|
-
|
|
345
341
|
/** "→ Contract", "→ routeByAmount decides", "Finishes" — under each step in the list. */
|
|
346
342
|
function nextInWords(ctrl, step) {
|
|
347
343
|
const nav = ctrl.navigationOf(step)
|
|
@@ -349,6 +345,9 @@ function nextInWords(ctrl, step) {
|
|
|
349
345
|
if (nav.mode === 'decide') return nav.decide ? `→ ${nav.decide} decides` : '→ a function decides'
|
|
350
346
|
if (nav.mode === 'branches') return `→ ${step.transitions.length} branches`
|
|
351
347
|
if (nav.mode === 'end') return 'Finishes the journey'
|
|
348
|
+
// No arrows on the LAST step is the engine's own end of the journey.
|
|
349
|
+
const last = ctrl.flow.steps[ctrl.flow.steps.length - 1]
|
|
350
|
+
if (last && last.stepKey === step.stepKey) return 'Finishes the journey'
|
|
352
351
|
return 'Where next?'
|
|
353
352
|
}
|
|
354
353
|
|
package/src/designs/factory.css
CHANGED
|
@@ -575,7 +575,6 @@
|
|
|
575
575
|
.xeplr-factory-fd-step-name { font-size: 18px; font-weight: 650; background: transparent; border-color: transparent; padding: 4px 8px; margin-left: -8px; min-width: 220px; }
|
|
576
576
|
.xeplr-factory-fd-step-name:hover { border-color: var(--xf-border); }
|
|
577
577
|
.xeplr-factory-fd-step-screen { color: var(--xf-muted); }
|
|
578
|
-
.xeplr-factory-fd-step-screen code { color: var(--xf-ink); }
|
|
579
578
|
.xeplr-factory-fd-remove { margin-left: auto; font: inherit; font-size: 12px; color: var(--xf-danger); background: none; border: none; cursor: pointer; padding: 4px 6px; border-radius: 6px; }
|
|
580
579
|
.xeplr-factory-fd-remove:hover { background: color-mix(in srgb, var(--xf-danger) 10%, transparent); }
|
|
581
580
|
.xeplr-factory-fd-tabs { display: flex; gap: 4px; padding: 10px 20px 0; border-bottom: 1px solid var(--xf-border); }
|