create-lykomi-app 0.11.0 → 0.12.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 (52) hide show
  1. package/README.md +8 -0
  2. package/package.json +1 -1
  3. package/presets/foundry-iq/files/AGENTS.md +6 -0
  4. package/presets/foundry-iq/files/README.md +20 -0
  5. package/presets/foundry-iq/files/src/main.tsx +2 -1
  6. package/presets/neo4j/files/AGENTS.md +6 -0
  7. package/presets/neo4j/files/README.md +20 -0
  8. package/presets/neo4j/files/src/main.tsx +2 -1
  9. package/presets/neo4j/manifest.json +1 -1
  10. package/template/AGENTS.md +6 -0
  11. package/template/README.md +21 -4
  12. package/template/_agents/skills/lykomi-author-chat-module/SKILL.md +57 -0
  13. package/template/_agents/skills/lykomi-author-chat-module/references/PROCESS_GUIDE.md +203 -0
  14. package/template/_agents/skills/lykomi-author-chat-module/references/form-ux.md +579 -0
  15. package/template/_agents/skills/lykomi-build-agent-forms/SKILL.md +36 -0
  16. package/template/_agents/skills/lykomi-build-agent-forms/references/PROCESS_GUIDE.md +203 -0
  17. package/template/_agents/skills/lykomi-build-agent-forms/references/form-ux.md +579 -0
  18. package/template/_agents/skills/lykomi-build-workbench/SKILL.md +37 -0
  19. package/template/_agents/skills/lykomi-build-workbench/references/PROCESS_GUIDE.md +203 -0
  20. package/template/_agents/skills/lykomi-build-workbench/references/form-ux.md +579 -0
  21. package/template/_agents/skills/lykomi-verify-agent-apis/SKILL.md +42 -0
  22. package/template/_agents/skills/lykomi-verify-agent-apis/references/PROCESS_GUIDE.md +203 -0
  23. package/template/_agents/skills/lykomi-verify-agent-apis/references/form-ux.md +579 -0
  24. package/template/_agents/skills/lykomi-verify-ui/SKILL.md +31 -0
  25. package/template/_claude/skills/lykomi-author-chat-module/SKILL.md +57 -0
  26. package/template/_claude/skills/lykomi-author-chat-module/references/PROCESS_GUIDE.md +203 -0
  27. package/template/_claude/skills/lykomi-author-chat-module/references/form-ux.md +579 -0
  28. package/template/_claude/skills/lykomi-build-agent-forms/SKILL.md +36 -0
  29. package/template/_claude/skills/lykomi-build-agent-forms/references/PROCESS_GUIDE.md +203 -0
  30. package/template/_claude/skills/lykomi-build-agent-forms/references/form-ux.md +579 -0
  31. package/template/_claude/skills/lykomi-build-workbench/SKILL.md +37 -0
  32. package/template/_claude/skills/lykomi-build-workbench/references/PROCESS_GUIDE.md +203 -0
  33. package/template/_claude/skills/lykomi-build-workbench/references/form-ux.md +579 -0
  34. package/template/_claude/skills/lykomi-verify-agent-apis/SKILL.md +42 -0
  35. package/template/_claude/skills/lykomi-verify-agent-apis/references/PROCESS_GUIDE.md +203 -0
  36. package/template/_claude/skills/lykomi-verify-agent-apis/references/form-ux.md +579 -0
  37. package/template/_claude/skills/lykomi-verify-ui/SKILL.md +31 -0
  38. package/template/package.json +5 -5
  39. package/template/src/main.tsx +2 -1
  40. package/template/src/pages/starter-prompts.tsx +9 -2
  41. package/template/src/showcase/context-inspector.tsx +110 -0
  42. package/template/src/showcase/dashboard-example.tsx +157 -0
  43. package/template/src/showcase/feedback-example.tsx +135 -0
  44. package/template/src/showcase/form-example.tsx +171 -0
  45. package/template/src/showcase/form-model.ts +38 -0
  46. package/template/src/showcase/module.tsx +47 -0
  47. package/template/src/showcase/process-example.tsx +118 -0
  48. package/template/src/showcase/showcase-page.tsx +212 -0
  49. package/template/src/showcase/source-panel.tsx +50 -0
  50. package/template/src/showcase/table-example.tsx +133 -0
  51. package/template/src/showcase/use-context-preview.ts +55 -0
  52. package/template/src/showcase/windows-example.tsx +106 -0
@@ -0,0 +1,203 @@
1
+ <!-- Generated from docs/FORM_UX.md; do not edit. -->
2
+
3
+ ## Wizards and process guidance
4
+
5
+ Use `ProcessSteps` for a connected status rail and `ProcessGuide` for that rail
6
+ plus a focused guidance/action panel. This section is the maintained component
7
+ contract; the standalone process guide and skill resources are generated from it.
8
+ Use a wizard for sequential input and a process overview for resumable work;
9
+ independent tasks belong in a task list rather than a misleading sequence.
10
+
11
+ - Start with `variant="compact"` and expanded guidance for an active task.
12
+ Collapse only genuinely secondary help; do not hide the required next action. Use `framed` to make the rail and guidance read as
13
+ one component; omit a duplicate frame inside an existing panel. Vertical
14
+ rails center as a group while labels remain aligned to the start.
15
+ - Highlight the inspected compact step with a subtle primary fill and primary
16
+ label; other steps use a quiet neutral surface. Keep the guidance unfilled,
17
+ with a primary step label identifying its owner. The compact horizontal rail
18
+ sits above the labels: completed segments and outlined checks use primary,
19
+ unfinished segments stay neutral. Vertical connectors advance only between
20
+ two completed steps. Reserve semantic warning/error colors for those states;
21
+ inspection never changes status. Overview steps retain their selected border.
22
+ - Separate actual progress (`currentStepId`) from the inspected step
23
+ (`selectedStepId`). Allow explicit navigation to completed steps so users can
24
+ revise earlier inputs. Supply Back actions when useful. The host owns
25
+ validation, persistence, permissions and invalidation of dependent results.
26
+ - Author the panel's `content` and `actions` with standard forms and Buttons.
27
+ Use filled Buttons for the main forward transaction; outlined Buttons for
28
+ revising completed input and Back. The component must not invent actions,
29
+ choose their variants, or silently run jobs when a step is inspected.
30
+ - Announce actual current-step status changes even while an earlier step is
31
+ inspected; do not announce whole forms or every progress tick. Running work
32
+ needs honest task-specific progress rather than a percentage inferred from
33
+ the step count. Use a task list for work without a meaningful sequence.
34
+ - Use explicit complete/ready/running/blocked/error/skipped/pending statuses.
35
+ Compact locked steps use a short status; a `message` explains prerequisites
36
+ on hover and keyboard focus, in detailed view and unfolded guidance. Errors
37
+ remain visible. Do not communicate state through color alone.
38
+ - Preserve unsaved values while guidance is folded. Hosts persist drafts when
39
+ navigating between steps; folding is not saving. Use theme semantic tokens,
40
+ the accessible disclosure and reduced-motion behavior provided by the component.
41
+ - Native TypeScript verifies published installed-package exports. Stored JSX
42
+ separately verifies the deployed renderer scope. New framework APIs must be
43
+ published before downstream production consumers import them.
44
+
45
+ ### Shared process and chat context
46
+
47
+ Opt in with `ProcessGuide agentContext={{ id, label, sourcePage, active }}`. Use a stable process-instance ID scoped by its canonical source page; use a readable process label. `active` is required: the host must set it to `false` for inactive tabs, background panels and builder previews, or unmount the guide. A mounted guide without this prop remains presentation-only. With multiple active guides, pointer or keyboard interaction determines which process the With control highlights; all active process snapshots remain available to the agent.
48
+
49
+ The same committed host props supply the guide, the With control and the next AG-UI request. Context carries `currentStepId` (execution position), `selectedStepId` (inspected guidance) and each step's identity, status, optionality, selectability, description and blocker. Plain string description/message values are included automatically; for JSX, provide `contextText={{ description, message }}` with the equivalent plain-text guidance. React nodes, input values and callbacks are never scraped or serialized. Expose relevant form data through the normal field/context APIs.
50
+
51
+ `ui_process_get_context` reads current active processes and identifies the focused process. `ui_process_select_step` takes `processId`, `sourcePage` and `stepId`, validates the live registration and explicit selectability, then calls the same selection handler as a user click. Its `requested` result acknowledges dispatch, not a completed host transition: read live context afterward. It never executes, skips, approves, publishes or completes work. Those transactions remain host-owned, permission-checked tools. The existing `ui_get_context` includes process references too.
52
+
53
+ Context is refreshed on each user request and by the live read tools; it is not a continuous stream of browser changes into a response already being generated. After navigation or an action, refresh context before giving the next guidance. Sent-message context retains the original snapshot. Automatic live process context is separate from optional user pins and survives the user switching into chat, while inactive/unmounted guides are excluded.
54
+
55
+ ### Status symbols, selection and optionality
56
+
57
+ Use these exact `ProcessStepStatus` values; do not infer execution state from selection or optionality.
58
+
59
+ | `status` | Default label | Symbol | Meaning |
60
+ | ---------- | --------------- | --------------------- | --------------------------------------------------------------------------------------------------- |
61
+ | `pending` | Waiting | Outlined clock | Awaiting availability or scheduling; not ready yet. Use `blocked` for a known preventing condition. |
62
+ | `ready` | Ready | Open circle | Available to start, but not started. The inspected ready step adds a centered dot. |
63
+ | `running` | In progress | Spinner | Execution has actually started; honor reduced motion. |
64
+ | `complete` | Completed | Outlined check-circle | Work was completed and accepted by the host. |
65
+ | `blocked` | Blocked | Standalone lock | A prerequisite or permission prevents execution; explain it with `message`. |
66
+ | `error` | Needs attention | Outlined alert-circle | Failure or invalid result requires correction or retry; keep `message` visible. |
67
+ | `skipped` | Skipped | Outlined minus-circle | The host recorded an explicit skip decision; do not present it as completed work. |
68
+
69
+ `currentStepId` is the actual process position. `selectedStepId` is the step being inspected; its surface highlights which guidance belongs to it. The dot is an additional selection cue only for `ready`: inspecting a completed, running, blocked or skipped step preserves its status symbol. Without a valid selection, the component inspects the current step. Avoid an ambiguous `active` or `disabled` boolean for these distinct concepts.
70
+
71
+ `selectable` explicitly permits inspection when `onStepSelect` is provided. It never means executable: a host can allow inspection of a blocked step without permitting its action. Status and `optional` never authorize navigation by themselves.
72
+
73
+ Set `optional: true` independently of status. Unstarted optional steps use a dashed-circle marker in place of the pending clock or ready open circle. Running, completed, blocked, failed and skipped steps keep their status symbols. The default visible label is `Optional`; localize it using `optionalLabel`. It remains visible at compact density and is included in interactive accessible names. An optional step can still be blocked. Provide host-owned Skip/Back actions through the guidance `actions` slot: the host checks policy, persists the decision, sets `status: "skipped"`, and chooses the new `currentStepId`. There is no automatic skip, persistence or prerequisite resolution in this component. Completion accepts both `complete` and `skipped`, but neither selection nor optionality alone marks a process finished.
74
+
75
+ ### Shared component API for builders
76
+
77
+ This self-contained contract is available in the bundled skill reference;
78
+ no framework repository checkout is needed. Verify the installed/deployed API
79
+ before authoring because a host may expose an earlier version.
80
+
81
+ `ProcessSteps` accepts `steps`, `currentStepId`, `selectedStepId`,
82
+ `onStepSelect(id)`, `variant` (`compact` or `overview`, default `compact`),
83
+ `orientation` (`responsive`, `vertical` or `horizontal`, default `responsive`),
84
+ `density` (`comfortable` or `compact`, default `comfortable`), optional
85
+ `showChevrons` (boolean, default false) and an accessible
86
+ `label` (default `Process progress`). Each step has a stable unique string `id`,
87
+ string `label`, and explicit `status`: `pending`, `ready`, `running`, `complete`,
88
+ `blocked`, `error` or `skipped`. Optional fields are `statusLabel` (localized text),
89
+ `description`, `message`, `selectable`, `optional` and `optionalLabel`. Only explicitly selectable steps with
90
+ an `onStepSelect` callback navigate; callbacks never advance actual progress.
91
+ A non-selectable blocked step with a message exposes a focusable tooltip.
92
+
93
+ `showChevrons` adds decorative separators only to horizontal `compact` navigation.
94
+ Their size and reserved gap follow `density`; the progress track stays above the
95
+ steps. Responsive narrow or explicitly vertical layouts retain their connected vertical
96
+ track, and `overview` is unchanged. Chevrons convey sequence, never status.
97
+
98
+ Horizontal rails retain readable minimum step widths and scroll inside their own viewport when needed. Overflow alone reveals previous/next buttons and subtle edge fades; swiping, trackpad scrolling and keyboard navigation also work. Scrolling never selects a step or advances progress. Selecting or focusing a step brings it into the rail viewport without scrolling the host page. Manual scrolling is not snapped back to the selected step. Buttons respect reduced motion and RTL. Localize their names with `scrollLabels={{ previous: "Previous steps", next: "Next steps" }}`.
99
+
100
+ Keep default `orientation="responsive"` for a full wizard: it stacks vertically in narrow containers. Use `orientation="horizontal"` for an embedded progress strip that should remain horizontal even on mobile. Guidance and host content remain outside the scroll viewport. Do not hide steps, truncate essential labels or make the entire page scroll sideways.
101
+
102
+ Use standalone `ProcessSteps density="compact"` for progress-only display: one
103
+ marker and label per step, with accessible status text. There is no guidance
104
+ panel. `onStepSelect(id)` is entirely host-owned: open a document picker,
105
+ navigate to a page or trigger another permitted action; it need not inspect
106
+ inline guidance. Omit the callback for a passive progress indicator.
107
+
108
+ `ProcessGuide` accepts the same props and adds per-step `title` (text), plus `content` and
109
+ `actions` (React nodes), plus these guide-level props:
110
+
111
+ | Prop | Contract |
112
+ | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
113
+ | `framed` | Optional themed frame; default false. |
114
+ | `headingLevel` | 2, 3 or 4; default 3. |
115
+ | `guidance` | `expanded` (default) or `collapsible`. |
116
+ | `defaultGuidanceOpen` | Initial uncontrolled disclosure state; default false. |
117
+ | `guidanceOpen`, `onGuidanceOpenChange(open)` | Optional host-controlled disclosure state. |
118
+ | `guidanceToggleLabel` | Localized disclosure text; default `Guidance & actions`. |
119
+ | `guidanceTogglePlacement` | `guidance` (default) or `step`; compact collapsible guides can place the disclosure in the inspected step. Explicit step selection opens guidance, including reselection. Initial open state remains configurable. |
120
+ | `showPosition` | Optional numeric position in guidance; default false. The owning step label remains when the task title differs. |
121
+ | `formatPosition(index, total)` | Localized position text when `showPosition` is true; index is one-based. |
122
+ | `completion` | Content shown only when no step is inspected/current and every step is complete or skipped. |
123
+
124
+ The selected step falls back to the current step if its ID is absent/invalid.
125
+ Changing inspected steps remounts their content; hosts must retain drafts outside
126
+ that content. Folding guidance keeps the same inputs mounted. Empty arrays render
127
+ nothing. The component never fetches, saves, authorizes, validates or runs a job.
128
+
129
+ Example composition, after availability is verified:
130
+
131
+ ```jsx
132
+ <ProcessGuide
133
+ framed
134
+ variant="compact"
135
+ guidance="expanded"
136
+ currentStepId="review"
137
+ selectedStepId={inspectedStep}
138
+ onStepSelect={setInspectedStep}
139
+ steps={[
140
+ {
141
+ id: "documents",
142
+ label: "Documents",
143
+ status: "complete",
144
+ selectable: true,
145
+ title: "Select the source documents",
146
+ content: documentFields,
147
+ actions: (
148
+ <Button type="button" variant="outline" onClick={openDocumentEditor}>
149
+ Change documents
150
+ </Button>
151
+ ),
152
+ },
153
+ {
154
+ id: "review",
155
+ label: "Review",
156
+ status: "ready",
157
+ selectable: true,
158
+ description: "Check the findings before confirming.",
159
+ content: reviewFields,
160
+ actions: (
161
+ <Button type="button" onClick={validateAndSaveReview}>
162
+ Confirm review
163
+ </Button>
164
+ ),
165
+ },
166
+ ]}
167
+ />
168
+ ```
169
+
170
+ The host supplies the fields and handlers in this example, including saving
171
+ changes and invalidating results after source edits. In native TypeScript import
172
+ from the published package and its stylesheet. In stored JSX use only verified
173
+ scope symbols without imports.
174
+
175
+ ### Design references
176
+
177
+ - [USWDS step indicator](https://designsystem.digital.gov/components/step-indicator/):
178
+ distinguish current/completed/pending and keep explicit headings/navigation.
179
+ - [GOV.UK multiple tasks](https://design-system.service.gov.uk/patterns/complete-multiple-tasks/):
180
+ resumable work needs clear task statuses and prerequisites.
181
+ - [Carbon progress indicator](https://www.carbondesignsystem.com/building-blocks/core/components/progress-indicator/guidelines):
182
+ a stable sequence and validation are prerequisites for linear task guidance.
183
+ - [WAI disclosure pattern](https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/):
184
+ keyboard operation and expanded state for unfolding guidance.
185
+
186
+ These inform the design; usability with real users still needs validation.
187
+
188
+ ### List toolbar control density
189
+
190
+ List toolbars use the shared `Button size="sm"` density for New, grouping,
191
+ Filters, Columns and other text actions. Authored `DataTableToolbar actions`
192
+ use the same primitive and size; do not mix the default-height button into that
193
+ row. Let the button primitive own font family, weight, size, control radius,
194
+ outline surface and interaction states. Table controls must not restyle ordinary
195
+ outline buttons with a different radius, translucent fill or shadow reset.
196
+ Retain meaningful states such as active filters, dashed facet boundaries and
197
+ pressed grouping. Icon-only toolbar controls share the same height and focus
198
+ behavior. Menus and badges retain their own semantic surface treatment.
199
+
200
+ Verify the rendered toolbar in light/dark themes and at narrow widths. Compare
201
+ computed height, font, weight and radius of authored actions with built-in
202
+ Filters/Columns; using the same component name alone does not establish parity.
203
+ Use CSS and shared primitive variants, without observers or per-button requests.