Appearance
Custom Blocks
procedureLabel(text)
Creates a label fragment used in defineProcedure.
Output: A procedure fragment describing a label segment.
text: Static text shown in the custom block signature
Example:
ts
import { procedureLabel } from 'hikkaku/blocks'
procedureLabel('Hello')procedureBoolean(name)
Creates a boolean argument fragment used in defineProcedure.
Output: A procedure fragment describing a boolean input.
name: Argument name shown in the custom block signature
Example:
ts
import { procedureBoolean } from 'hikkaku/blocks'
procedureBoolean('flag')procedureStringOrNumber(name)
Creates a string/number argument fragment used in defineProcedure.
Output: A procedure fragment describing a string/number input.
name: Argument name shown in the custom block signature
Example:
ts
import { procedureStringOrNumber } from 'hikkaku/blocks'
procedureStringOrNumber('value')defineProcedure(proclist)
Defines a custom procedure and returns its definition block.
Output: A procedure definition block with reference metadata for safe calls.
proclist: List of procedure parts (labels and arguments) that define the procedure's signaturestack: Optional callback that composes the procedure body- Returnundefinedfrom this callback (implicit return is fine).warp: Iftrue, run the procedure without screen refresh until completion
Example:
ts
import { defineProcedure, procedureLabel, procedureStringOrNumber, say } from 'hikkaku/blocks'
const greet = defineProcedure(
[procedureLabel('greet'), procedureStringOrNumber('name')],
({ name }) => {
say(name.getter())
},
)callProcedure(proccodeOrReference, argumentIdsOrInputs, inputsOrWarp)
Calls a custom procedure.
Output: A procedures_call block.
proccodeOrReference: Procedure code or the definition/reference returned bydefineProcedure``argumentIdsOrInputs: Argument IDs for low-level calls, or argument inputs for reference-based callsinputsOrWarp: Optional low-level inputs object or a warp override for reference-based callswarp: Warp flag used by low-level calls
Example:
ts
import { callProcedure, defineProcedure, procedureLabel, procedureStringOrNumber } from 'hikkaku/blocks'
const greet = defineProcedure([
procedureLabel('greet'),
procedureStringOrNumber('name'),
])
callProcedure(greet, [
{ reference: greet.reference.arguments.name, value: 'Ada' },
])argumentReporterStringNumber(reference)
Creates a reporter block for a string/number procedure argument.
Output: A reporter block that reads the current argument value.
reference: String/number argument reference fromdefineProcedure``
Example:
ts
import { argumentReporterStringNumber } from 'hikkaku/blocks'
argumentReporterStringNumber({
isProcedureArgument: true,
name: 'value',
type: 'stringOrNumber',
id: 'var-id',
getter: () => valueBlock<HikkakuString | HikkakuNumber>('argument_reporter_string_number', { fields: { VALUE: ['value', null] } }),
})argumentReporterBoolean(reference)
Creates a reporter block for a boolean procedure argument.
Output: A reporter block that reads the current argument value.
reference: Boolean argument reference fromdefineProcedure``
Example:
ts
import { argumentReporterBoolean } from 'hikkaku/blocks'
argumentReporterBoolean({
isProcedureArgument: true,
name: 'flag',
type: 'boolean',
id: 'flag-id',
getter: () => valueBlock<HikkakuBool>('argument_reporter_boolean', { fields: { VALUE: ['flag', null] } }),
})