Förmågor

Allt Cure kan göra, på ett ställe.

Formulär, UI flow, server flow och det som ligger bakom dem. Listorna nedan är inte skrivna för hand — de genereras ur samma katalog som Studios egna editorer läses in i, så sidan kan inte tyst hamna efter produkten.

59
komponenter
390
egenskaper
49
UI flow-noder
19
server flow-noder

Genererad 2026-09-17 · Contract for design tools →

01 · Formulär

Ett rutnät och 59 komponenter.

Varje formulär ligger på ett rutnät med 12 kolumner. En komponent tar mellan 1 och 12 kolumner, och raden bryts automatiskt när de tar slut. Panelerna kan nästlas, så en layout byggs genom att lägga rutnät i rutnät snarare än genom att peka ut pixlar.

Layout

11
  • PanelCurePanel18 egenskaper
  • FlikarCureTabs13 egenskaper
  • ToolbarCureToolbar18 egenskaper
  • NavigationCureNavigation2 egenskaper
  • Button GroupCureButtonGroup
  • RubrikHeading7 egenskaper
  • TextTextLabel9 egenskaper
  • Cure TextCureText2 egenskaper
  • MarkdownCureMarkdown2 egenskaper
  • Cure ImageCureImage27 egenskaper
  • AvdelareDivider

Inmatning

19
  • Text InputUInput7 egenskaper
  • TextareaUTextarea3 egenskaper
  • Rich Text EditorUEditor1 egenskaper
  • Cure EditorCureEditor9 egenskaper
  • Number InputUInputNumber4 egenskaper
  • Date PickerUInputDate2 egenskaper
  • Time PickerUInputTime1 egenskaper
  • Datum & TidCureDateTimeInput3 egenskaper
  • CalendarUCalendar
  • SliderUSlider3 egenskaper
  • Select DropdownUSelect8 egenskaper
  • Tree SelectUTreeSelect8 egenskaper
  • CheckboxUCheckbox2 egenskaper
  • Checkbox GroupUCheckboxGroup3 egenskaper
  • Radio GroupURadioGroup3 egenskaper
  • Toggle SwitchUSwitch3 egenskaper
  • Tags InputUInputTags1 egenskaper
  • PIN InputUPinInput3 egenskaper
  • Color PickerUColorPicker

Filhantering

2
  • File UploadUFileUpload3 egenskaper
  • File BrowserCureFileBrowser3 egenskaper

Record set

11
  • TableCureTable
  • Progress TableCureProgressTable9 egenskaper
  • CalendarCureCalendar15 egenskaper
  • MapCureMap21 egenskaper
  • GanttCureGantt20 egenskaper
  • Resource SchedulerCureResourceScheduler26 egenskaper
  • KanbanCureKanban26 egenskaper
  • Status FlowCureStatusFlow14 egenskaper
  • Status TimelineCureStatusTimeline9 egenskaper
  • Panel FormsCurePanelForms20 egenskaper
  • Scriptable SVGCureSvg5 egenskaper

Visualisering

3
  • MetrixCureMetrix6 egenskaper
  • ChartsCureCharts7 egenskaper
  • Circle PackingCureCirclePacking7 egenskaper

Visning

11
  • BadgeUBadge1 egenskaper
  • AlertUAlert4 egenskaper
  • AvatarUAvatar3 egenskaper
  • Progress BarUProgress2 egenskaper
  • Keyboard KeyUKbd
  • SkeletonUSkeleton
  • ChipUChip
  • Morph NumberCureMorphNumber8 egenskaper
  • Stat CardCureStatCard4 egenskaper
  • Stat SectionCureStatSection3 egenskaper
  • Scriptable SVGCureSvg5 egenskaper

Åtgärder

3
  • ButtonUButton5 egenskaper
  • Button GroupUFieldGroup
  • Dropdown MenuUDropdownMenu2 egenskaper

Sju delade egenskapssektioner

Varje komponent ärver samma grupper: bindning till ett fält, visning och kolumnbredd, färg, variant och storlek, validering, behörighet per roll, tabellinställningar och formulärets yttre ram. Utöver dem har komponenterna sina egna.

Fälttyper som väljer komponent

Datatypen avgör vilken komponent ett fält får som standard — text, tal, datum, tid, val, boolean, fil eller referens till en annan post. Valet går att skriva över per fält.

Egen CSS per komponent

Alla komponenter tar en customCss-egenskap, och paneler har dessutom ram, rubrikrad, ikon, hopfällbarhet, bakgrundsfärg och elevation som vanliga inställningar.

Record set-komponenter

Tabell, kanban, gantt, kalender, karta, panelformulär och statusflöde söker själva ut en mängd poster ur en datakälla — den behöver inte vara formulärets egen.

Skriptbar SVG

När ingen komponent passar ritar CureSvg vad som helst ur en datakälla, med egen JavaScript i en avgränsad kontext.

Behörighet ända ned till fältet

Roller styr inte bara vem som ser en vy, utan vilka fält och vilka rader. Reglerna utvärderas på servern, inte i klienten.

02 · UI flow

32 triggar, 17 actions — i webbläsaren.

UI flow kör i det öppna formuläret och ser fälten som användaren ser dem. Det är här beteende hör hemma: villkorade fält, beräkningar medan man skriver, navigation mellan vyer, styrning av en kartkomponent. Ingenting av det behöver en rundtur till servern.

Triggar

32
After Modifyform.afterModifyEfter lyckad modify
After Submitform.afterSubmitEfter lyckad submit
Attachment Start/Endfield.attachmentBilaga start/slut
Button/Menufield.buttonKnapp eller menyval
Clearfield.clearFält rensas
Collapse/Expandfield.collapseExpandPanel kollaps/expand
Content Changefield.contentChangeInnehåll ändras
Displayform.displayEfter load innan visning
Dragfield.dragDrag start
Dropfield.dropSläpp över droppable
Eventwindow.eventInternt klient-event (anropbar från workflow/JS)
Gain Focusfield.focusFokus in på fält
Hoverfield.hoverHover på fält/data/label
Intervalwindow.intervalPeriodiskt när fönster är öppet
Level Double Clicktable.levelDoubleDrill-down i tree
Lose Focusfield.blurFokus lämnar fält
Menu Choicefield.menuChoiceVal i menyfält
Modifyform.modifyInnan ändring skickas
Returnfield.returnEnter/Shift-Enter
Row Choicetable.rowChoiceVälj rad
Row Collapsetable.rowCollapseRad kollapsar
Row Double Clicktable.rowDoubleDrill-down
Row Expansiontable.rowExpandRad expanderas
Row Unselecttable.rowUnselectRad avmarkeras
Searchform.searchInnan sökning körs
Set Defaultform.setDefaultNär defaults sätts
Submitform.submitInnan ny request skickas
Table Refreshtable.refreshNär tabell laddas/refresh
URL Clickfield.urlClickLänk klickad
Un-Displayform.unDisplayNär request lämnar vyn
Window Closedwindow.closedNär fönster stängs
Window Openwindow.openNär fönster öppnas

Actions

17
Call Component Methodui.callComponentAnropa en publicerad metod på en komponentinstans
Call Processui.processKör extern process
Change Fieldui.changeFieldÄndra UI-egenskaper
Close Pageui.closePageStäng sida / modal
Commit Changesui.commitSpara/commit ändringar
Create Folderui.fileFolderCreateSkapa folder i File Browser
Delete Folderui.fileFolderDeleteTa bort folder i File Browser
Fire Eventui.fireEventSänd internt event (window.event)
Gotoui.gotoHoppa i exekvering
Map Actionsui.mapActionsStyr kartkomponent (pins, zoom, center)
Messageui.messageVisa meddelande/stoppa
Open Pageui.openPageÖppna annat formulär
Post Submitui.postSubmitStyr beteende efter submit (rensa/ladda)
Put Fieldsui.putSkapa/uppdatera entries
Refresh Tableui.refreshTableLadda om tabell-data
Setui.setSätt fältvärden
Validate Fieldsui.validateFieldsValidera obligatoriska fält

Flöde

2
Ifcondition.ifVillkorad gren med true/false
Labelflow.labelNamngiven hoppunkt i flödet
03 · Server flow

6 triggar, 13 actions — bakom datat.

Server flow kör där posten sparas, och gäller oavsett vad som skrev den: ett formulär, integrations-API:et eller ett annat flöde. Regler som måste hålla alltid hör hemma här, inte i klienten.

Villkor skrivs mot tre namnrum: TR. är värdet som skickades in i transaktionen, DB. är värdet som ligger i databasen, och ett fält utan prefix är det flödet arbetar med just nu. Skillnaden mellan de två första är vad som gör ”ändrades statusen” möjligt att uttrycka.

Triggar

6
Createrecord.createdTriggers when a new record is created
Deleterecord.deleteTriggers when a record is deleted by a user
Getrecord.getTriggers when a record is fetched from server
ProcessprocessTriggered when called as a subroutine from ui.process
Scheduleschedule.cronRun on a schedule (calendar or interval)
Updaterecord.updatedTriggers when a record is updated

Actions

13
CALLflow.callInvoke subflow and return
CALL N8Nintegration.n8nInvoke n8n workflow and read response
Create Folderrecord.fileFolderCreateSkapa folder för postens filyta
Delete Folderrecord.fileFolderDeleteTa bort folder för postens filyta
E-mailcommunication.emailSkicka e-post med eventuella bifogade filer från appens filmetadata
Exitflow.exitTerminate workflow (with/without commit)
Gotoflow.gotoHoppa i exekvering
LOGsystem.logWrite to audit/debug log
MESSAGEui.messageSend message to client (info, warning, error)
PUTrecord.putCreate or update record in database
Render documentdocument.renderRendera ett formulär till PDF med Typst
SETrecord.setSet field values (static, function, lookup, REST)
Track Status Changerecord.trackStatusSpårar statusändring till {app}_statustransitions

Flöde

2
Ifcondition.ifConditional branching with true/false paths
Labelflow.labelNamngiven hoppunkt i flödet
04 · Data och integration

Sex sätt att hämta ett värde.

En SET-action i UI flow hämtar sitt värde ur en av sex källor. Samma sex oavsett var i formuläret värdet ska hamna.

currentVärden ur formuläret som är öppet just nu.
datasourceEn sökning mot en record definition, med filter, sortering, sidbrytning och en valmodal när träffarna är fler än en.
sqlEn SQL-fråga, med samma hantering av noll eller flera träffar.
restEtt REST-anrop mot en extern tjänst.
n8nEtt n8n-flöde som körs och vars svar läses tillbaka in i fälten.
server-functionEn egen serverfunktion — se avsnittet nedan.

n8n

Server flow har en egen CALL N8N-action som startar ett n8n-flöde och läser svaret. n8n kan köras som en del av installationen, både under Docker och i Kubernetes.

Integrations-API

Ett publikt REST-API för att läsa och skriva poster utifrån. Nycklar är tidsbegränsade, kan bindas till en enskild applikation, har en policy för vad de får röra och en egen anropsgräns.

MCP

Cure är en MCP-server. En AI-agent kan läsa katalogerna, bygga applikationer i en isolerad draft, rendera en preview till bild och aktivera resultatet — allt mot metadata, aldrig mot källkod.

Subflöden och processer

Server flow anropar andra flöden med CALL och returnerar. UI flow startar ett serverflöde som process och väntar på svaret.

05 · Serverfunktioner

Egen kod, där den behövs — och bara där.

När en regel inte går att uttrycka i ett flöde skriver man en serverfunktion: en Python-klass som deklarerar sin in- och utdata som scheman. Motorn bygger indata ur flödets kontext, kör funktionen och mappar tillbaka utdata genom samma SET-pipeline som allt annat. Funktionen får tenant, applikation, postens nya och gamla värden samt en tenant-isolerad databasåtkomst.

Plugins läses från en katalog på disk och kan avgränsas till en applikation, till en datakälla, eller vara fria funktioner. De laddas vid uppstart och kan stängas av helt med en inställning — en installation som inte vill köra egen kod kör ingen.

<CURE_SET_FUNCTIONS_ROOT>/
  <applikation>/
    datasource/<datakälla>/functions/min_funktion.py
    custom/functions/fristaende_funktion.py
06 · Plattform

Det som gäller för varje applikation.

Dokument till PDF

Server flow renderar ett formulär till PDF med Typst, inklusive tabellrader, med ett tak för hur många rader varje tabell får bidra med.

Filytor per post

Varje post har en filyta med mappar. Både UI flow och server flow kan skapa och ta bort mappar, och e-postactionen kan bifoga filerna därifrån.

Typade relationer

many-to-one, one-to-one och many-to-many blir riktiga främmande nycklar eller en kopplingstabell i Postgres när applikationen publiceras, med valbart beteende vid radering.

Status och attestflöden

Statusspårning skriver varje övergång till en egen tabell som statusflödes-komponenten läser. Attestbeslut lagras. Tidsstyrd eskalering finns inte ännu.

Versioner och livscykel

En applikation är draft, active eller maintenance. Runtime-tabellerna skapas när den går från draft. Versioner sparas som frysta ögonblicksbilder.

Schemalagda körningar

Server flow startar på kalender eller intervall, utan att någon behöver ha ett fönster öppet.

Cure kör som delad molntjänst, dedikerad kundmiljö, i er egen Kubernetes eller OpenShift, eller under Docker — samma produkt i samtliga fall. Läs om driftformerna →

Bygger du med en AI-agent?

Samma förmågor finns som ett maskinläsbart kontrakt, avsett att klistras in i verktyg som claude.ai/design.

Till designkontraktet →