Log inGet started
▣
module · drop-in viewer
asset⌬ modulemoduleprimary: init.luau·part ofmodule widgets.module·originates fromworld 07158574-5…

argForm

<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->

by◐lumi·posted 19d ago
What it does

argForm

<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->

TODO: describe this module.

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

conforms to

zero/source-extract/v2

module edui.argForm The typed argument form — a declared argument list becomes a form of REAL controls, and the filled form becomes the typed values a call takes. A person never types a Luau literal: strings get a text field, numbers a numeric field, booleans a checkbox, string-literal unions a chip row, colours a colour swatch, Vec3 three axis fields, and an options table expands one level into typed rows of its own. Only a type outside the model falls back to the literal field. The command palette renders every tool through this; the Inspector renders an asset type's operations through the same form, so any surface that knows a signature can offer it. require ~edui.argForm

parseSignature(sig: string) →

Parse a method signature string — `"(self, name: string, opts: T?)"` — into the argument list a form renders: `{ { name, type, optional } }`. A leading `self` is the receiver, not an argument, and is dropped. The arguments are the balanced parenthesised run at the head of the text, so a signature that goes on to declare what the call hands back — `"(self, name: string): boolean"` — renders the same form as one that stops at the arguments.

argtypedescription
sigstringThe signature text.

flush( ) → void

make(W: any) → any

Bind the form builder to the widgets barrel `W`. The barrel calls this once; consumers reach the result as `edui.argForm`.

argtypedescription
Wany

new(o: { [string]: any }) → any

A new form instance. `o.ns` (REQUIRED — the id namespace every control keys under), `o.typeDefs` (the schema's named definitions, `{ { name, definition } }`), `o.onSubmit` (fired when Enter lands in a text field — the run affordance), `o.onChanged` (fired after any control writes a value, for hosts that gate rebuilds on an epoch).

argtypedescription
o{ [string]: any }

reset(self: any) → void

argtypedescription
selfany

set(self: any, path: string, v: string?) → void

argtypedescription
selfany
pathstring
vstring?

get(self: any, path: string) → string

argtypedescription
selfany
pathstring

typeDefFor(self: any, name: string) → string

argtypedescription
selfany
namestring

enumOptions(self: any, t: string) → void

`"a" | "b" | "c"` (directly or through a named def) → its literals.

argtypedescription
selfany
tstring

tableFields(self: any, t: string) → void

`{ field: Type?, ... }` → its fields, top-level commas/newlines only.

argtypedescription
selfany
tstring

flush( ) → void

isVec3(self: any, t: string) → boolean

argtypedescription
selfany
tstring

isColorType(self: any, t: string, name: string?) → boolean

A colour: a type NAMED as one (`Color`, `shared.ColorInput`), or a plain numeric array whose field name says colour. Registry colours come in two channel ranges — `ColorInput` reads 0-255, everything else 0-1 — and `values` emits the range the type reads.

argtypedescription
selfany
tstring
namestring?

controlKind(self: any, t: string, name: string?) → string

What kind of control a type gets. The `path` keys the field's value; its last segment is the field name, which the colour rule reads.

argtypedescription
selfany
tstring
namestring?

fieldValue(self: any, path: string, t: string, optional: boolean) → void

One field's typed value from the stored state. Returns (ok, value | error).

argtypedescription
selfany
pathstring
tstring
optionalboolean

ch(h: string) → number

argtypedescription
hstring

values(self: any, args: { any }) → void

Assemble the positional values for `args` from the filled form. Returns `(true, values, n)` — `n` the last non-nil position for `table.unpack(values, 1, n)` — or `(false, message)`.

argtypedescription
selfany
args{ any }

numberField(self: any, path: string, placeholder: string) → any

One number field, 84px, parsed at values() time.

argtypedescription
selfany
pathstring
placeholderstring

onChange(v: ?) → void

argtypedescription
v?

onClick( ) → void

onChange(v: ?) → void

argtypedescription
v?

onSubmit(v: ?) → void

argtypedescription
v?

rows(self: any, args: { any }) → void

The rows for a whole argument list (each `{ name, type, optional, description? }`), in order.

argtypedescription
selfany
args{ any }

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

3items
·
other · born here
▤file
▲ 0↑ born
backing path · editor/edui.package/widgets.module/argForm.module

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

0problems
No problems reported. This asset, its contents, and its direct deps are clean as of the latest commit.
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.