{
 "$comment": "Generated by scripts/build_www_capabilities.py from catalog/cure-capabilities.json. Do not edit by hand.",
 "generated": "2026-09-17",
 "grid": {
  "columns": 12,
  "col_span_range": [
   1,
   12
  ]
 },
 "totals": {
  "components": 59,
  "component_properties": 390,
  "workflow_nodes": 72,
  "ui_triggers": 32,
  "ui_actions": 17,
  "server_triggers": 6,
  "server_actions": 13
 },
 "component_groups": [
  {
   "key": "layout",
   "label_sv": "Layout",
   "label_en": "Layout",
   "components": [
    {
     "type": "CurePanel",
     "label": "Panel",
     "property_count": 18
    },
    {
     "type": "CureTabs",
     "label": "Flikar",
     "property_count": 13
    },
    {
     "type": "CureToolbar",
     "label": "Toolbar",
     "property_count": 18
    },
    {
     "type": "CureNavigation",
     "label": "Navigation",
     "property_count": 2
    },
    {
     "type": "CureButtonGroup",
     "label": "Button Group",
     "property_count": 0
    },
    {
     "type": "Heading",
     "label": "Rubrik",
     "property_count": 7
    },
    {
     "type": "TextLabel",
     "label": "Text",
     "property_count": 9
    },
    {
     "type": "CureText",
     "label": "Cure Text",
     "property_count": 2
    },
    {
     "type": "CureMarkdown",
     "label": "Markdown",
     "property_count": 2
    },
    {
     "type": "CureImage",
     "label": "Cure Image",
     "property_count": 27
    },
    {
     "type": "Divider",
     "label": "Avdelare",
     "property_count": 0
    }
   ]
  },
  {
   "key": "input",
   "label_sv": "Inmatning",
   "label_en": "Input",
   "components": [
    {
     "type": "UInput",
     "label": "Text Input",
     "property_count": 7
    },
    {
     "type": "UTextarea",
     "label": "Textarea",
     "property_count": 3
    },
    {
     "type": "UEditor",
     "label": "Rich Text Editor",
     "property_count": 1
    },
    {
     "type": "CureEditor",
     "label": "Cure Editor",
     "property_count": 9
    },
    {
     "type": "UInputNumber",
     "label": "Number Input",
     "property_count": 4
    },
    {
     "type": "UInputDate",
     "label": "Date Picker",
     "property_count": 2
    },
    {
     "type": "UInputTime",
     "label": "Time Picker",
     "property_count": 1
    },
    {
     "type": "CureDateTimeInput",
     "label": "Datum & Tid",
     "property_count": 3
    },
    {
     "type": "UCalendar",
     "label": "Calendar",
     "property_count": 0
    },
    {
     "type": "USlider",
     "label": "Slider",
     "property_count": 3
    },
    {
     "type": "USelect",
     "label": "Select Dropdown",
     "property_count": 8
    },
    {
     "type": "UTreeSelect",
     "label": "Tree Select",
     "property_count": 8
    },
    {
     "type": "UCheckbox",
     "label": "Checkbox",
     "property_count": 2
    },
    {
     "type": "UCheckboxGroup",
     "label": "Checkbox Group",
     "property_count": 3
    },
    {
     "type": "URadioGroup",
     "label": "Radio Group",
     "property_count": 3
    },
    {
     "type": "USwitch",
     "label": "Toggle Switch",
     "property_count": 3
    },
    {
     "type": "UInputTags",
     "label": "Tags Input",
     "property_count": 1
    },
    {
     "type": "UPinInput",
     "label": "PIN Input",
     "property_count": 3
    },
    {
     "type": "UColorPicker",
     "label": "Color Picker",
     "property_count": 0
    }
   ]
  },
  {
   "key": "fileManagement",
   "label_sv": "Filhantering",
   "label_en": "Files",
   "components": [
    {
     "type": "UFileUpload",
     "label": "File Upload",
     "property_count": 3
    },
    {
     "type": "CureFileBrowser",
     "label": "File Browser",
     "property_count": 3
    }
   ]
  },
  {
   "key": "recordSet",
   "label_sv": "Record set",
   "label_en": "Record set",
   "components": [
    {
     "type": "CureTable",
     "label": "Table",
     "property_count": 0
    },
    {
     "type": "CureProgressTable",
     "label": "Progress Table",
     "property_count": 9
    },
    {
     "type": "CureCalendar",
     "label": "Calendar",
     "property_count": 15
    },
    {
     "type": "CureMap",
     "label": "Map",
     "property_count": 21
    },
    {
     "type": "CureGantt",
     "label": "Gantt",
     "property_count": 20
    },
    {
     "type": "CureResourceScheduler",
     "label": "Resource Scheduler",
     "property_count": 26
    },
    {
     "type": "CureKanban",
     "label": "Kanban",
     "property_count": 26
    },
    {
     "type": "CureStatusFlow",
     "label": "Status Flow",
     "property_count": 14
    },
    {
     "type": "CureStatusTimeline",
     "label": "Status Timeline",
     "property_count": 9
    },
    {
     "type": "CurePanelForms",
     "label": "Panel Forms",
     "property_count": 20
    },
    {
     "type": "CureSvg",
     "label": "Scriptable SVG",
     "property_count": 5
    }
   ]
  },
  {
   "key": "visualization",
   "label_sv": "Visualisering",
   "label_en": "Visualisation",
   "components": [
    {
     "type": "CureMetrix",
     "label": "Metrix",
     "property_count": 6
    },
    {
     "type": "CureCharts",
     "label": "Charts",
     "property_count": 7
    },
    {
     "type": "CureCirclePacking",
     "label": "Circle Packing",
     "property_count": 7
    }
   ]
  },
  {
   "key": "display",
   "label_sv": "Visning",
   "label_en": "Display",
   "components": [
    {
     "type": "UBadge",
     "label": "Badge",
     "property_count": 1
    },
    {
     "type": "UAlert",
     "label": "Alert",
     "property_count": 4
    },
    {
     "type": "UAvatar",
     "label": "Avatar",
     "property_count": 3
    },
    {
     "type": "UProgress",
     "label": "Progress Bar",
     "property_count": 2
    },
    {
     "type": "UKbd",
     "label": "Keyboard Key",
     "property_count": 0
    },
    {
     "type": "USkeleton",
     "label": "Skeleton",
     "property_count": 0
    },
    {
     "type": "UChip",
     "label": "Chip",
     "property_count": 0
    },
    {
     "type": "CureMorphNumber",
     "label": "Morph Number",
     "property_count": 8
    },
    {
     "type": "CureStatCard",
     "label": "Stat Card",
     "property_count": 4
    },
    {
     "type": "CureStatSection",
     "label": "Stat Section",
     "property_count": 3
    },
    {
     "type": "CureSvg",
     "label": "Scriptable SVG",
     "property_count": 5
    }
   ]
  },
  {
   "key": "actions",
   "label_sv": "Åtgärder",
   "label_en": "Actions",
   "components": [
    {
     "type": "UButton",
     "label": "Button",
     "property_count": 5
    },
    {
     "type": "UFieldGroup",
     "label": "Button Group",
     "property_count": 0
    },
    {
     "type": "UDropdownMenu",
     "label": "Dropdown Menu",
     "property_count": 2
    }
   ]
  }
 ],
 "workflow": {
  "ui": {
   "trigger": [
    {
     "label": "After Modify",
     "template": "form.afterModify",
     "description": "Efter lyckad modify",
     "group": "Request & Window"
    },
    {
     "label": "After Submit",
     "template": "form.afterSubmit",
     "description": "Efter lyckad submit",
     "group": "Request & Window"
    },
    {
     "label": "Attachment Start/End",
     "template": "field.attachment",
     "description": "Bilaga start/slut",
     "group": "Field Events"
    },
    {
     "label": "Button/Menu",
     "template": "field.button",
     "description": "Knapp eller menyval",
     "group": "Field Events"
    },
    {
     "label": "Clear",
     "template": "field.clear",
     "description": "Fält rensas",
     "group": "Field Events"
    },
    {
     "label": "Collapse/Expand",
     "template": "field.collapseExpand",
     "description": "Panel kollaps/expand",
     "group": "Field Events"
    },
    {
     "label": "Content Change",
     "template": "field.contentChange",
     "description": "Innehåll ändras",
     "group": "Field Events"
    },
    {
     "label": "Display",
     "template": "form.display",
     "description": "Efter load innan visning",
     "group": "Request & Window"
    },
    {
     "label": "Drag",
     "template": "field.drag",
     "description": "Drag start",
     "group": "Field Events"
    },
    {
     "label": "Drop",
     "template": "field.drop",
     "description": "Släpp över droppable",
     "group": "Field Events"
    },
    {
     "label": "Event",
     "template": "window.event",
     "description": "Internt klient-event (anropbar från workflow/JS)",
     "group": "Request & Window"
    },
    {
     "label": "Gain Focus",
     "template": "field.focus",
     "description": "Fokus in på fält",
     "group": "Field Events"
    },
    {
     "label": "Hover",
     "template": "field.hover",
     "description": "Hover på fält/data/label",
     "group": "Field Events"
    },
    {
     "label": "Interval",
     "template": "window.interval",
     "description": "Periodiskt när fönster är öppet",
     "group": "Request & Window"
    },
    {
     "label": "Level Double Click",
     "template": "table.levelDouble",
     "description": "Drill-down i tree",
     "group": "Table Events"
    },
    {
     "label": "Lose Focus",
     "template": "field.blur",
     "description": "Fokus lämnar fält",
     "group": "Field Events"
    },
    {
     "label": "Menu Choice",
     "template": "field.menuChoice",
     "description": "Val i menyfält",
     "group": "Field Events"
    },
    {
     "label": "Modify",
     "template": "form.modify",
     "description": "Innan ändring skickas",
     "group": "Request & Window"
    },
    {
     "label": "Return",
     "template": "field.return",
     "description": "Enter/Shift-Enter",
     "group": "Field Events"
    },
    {
     "label": "Row Choice",
     "template": "table.rowChoice",
     "description": "Välj rad",
     "group": "Table Events"
    },
    {
     "label": "Row Collapse",
     "template": "table.rowCollapse",
     "description": "Rad kollapsar",
     "group": "Table Events"
    },
    {
     "label": "Row Double Click",
     "template": "table.rowDouble",
     "description": "Drill-down",
     "group": "Table Events"
    },
    {
     "label": "Row Expansion",
     "template": "table.rowExpand",
     "description": "Rad expanderas",
     "group": "Table Events"
    },
    {
     "label": "Row Unselect",
     "template": "table.rowUnselect",
     "description": "Rad avmarkeras",
     "group": "Table Events"
    },
    {
     "label": "Search",
     "template": "form.search",
     "description": "Innan sökning körs",
     "group": "Request & Window"
    },
    {
     "label": "Set Default",
     "template": "form.setDefault",
     "description": "När defaults sätts",
     "group": "Request & Window"
    },
    {
     "label": "Submit",
     "template": "form.submit",
     "description": "Innan ny request skickas",
     "group": "Request & Window"
    },
    {
     "label": "Table Refresh",
     "template": "table.refresh",
     "description": "När tabell laddas/refresh",
     "group": "Table Events"
    },
    {
     "label": "URL Click",
     "template": "field.urlClick",
     "description": "Länk klickad",
     "group": "Field Events"
    },
    {
     "label": "Un-Display",
     "template": "form.unDisplay",
     "description": "När request lämnar vyn",
     "group": "Request & Window"
    },
    {
     "label": "Window Closed",
     "template": "window.closed",
     "description": "När fönster stängs",
     "group": "Request & Window"
    },
    {
     "label": "Window Open",
     "template": "window.open",
     "description": "När fönster öppnas",
     "group": "Request & Window"
    }
   ],
   "action": [
    {
     "label": "Call Component Method",
     "template": "ui.callComponent",
     "description": "Anropa en publicerad metod på en komponentinstans",
     "group": "Actions"
    },
    {
     "label": "Call Process",
     "template": "ui.process",
     "description": "Kör extern process",
     "group": "Actions"
    },
    {
     "label": "Change Field",
     "template": "ui.changeField",
     "description": "Ändra UI-egenskaper",
     "group": "Actions"
    },
    {
     "label": "Close Page",
     "template": "ui.closePage",
     "description": "Stäng sida / modal",
     "group": "Actions"
    },
    {
     "label": "Commit Changes",
     "template": "ui.commit",
     "description": "Spara/commit ändringar",
     "group": "Actions"
    },
    {
     "label": "Create Folder",
     "template": "ui.fileFolderCreate",
     "description": "Skapa folder i File Browser",
     "group": "Actions"
    },
    {
     "label": "Delete Folder",
     "template": "ui.fileFolderDelete",
     "description": "Ta bort folder i File Browser",
     "group": "Actions"
    },
    {
     "label": "Fire Event",
     "template": "ui.fireEvent",
     "description": "Sänd internt event (window.event)",
     "group": "Actions"
    },
    {
     "label": "Goto",
     "template": "ui.goto",
     "description": "Hoppa i exekvering",
     "group": "Actions"
    },
    {
     "label": "Map Actions",
     "template": "ui.mapActions",
     "description": "Styr kartkomponent (pins, zoom, center)",
     "group": "Actions"
    },
    {
     "label": "Message",
     "template": "ui.message",
     "description": "Visa meddelande/stoppa",
     "group": "Actions"
    },
    {
     "label": "Open Page",
     "template": "ui.openPage",
     "description": "Öppna annat formulär",
     "group": "Actions"
    },
    {
     "label": "Post Submit",
     "template": "ui.postSubmit",
     "description": "Styr beteende efter submit (rensa/ladda)",
     "group": "Actions"
    },
    {
     "label": "Put Fields",
     "template": "ui.put",
     "description": "Skapa/uppdatera entries",
     "group": "Actions"
    },
    {
     "label": "Refresh Table",
     "template": "ui.refreshTable",
     "description": "Ladda om tabell-data",
     "group": "Actions"
    },
    {
     "label": "Set",
     "template": "ui.set",
     "description": "Sätt fältvärden",
     "group": "Actions"
    },
    {
     "label": "Validate Fields",
     "template": "ui.validateFields",
     "description": "Validera obligatoriska fält",
     "group": "Actions"
    }
   ],
   "condition": [
    {
     "label": "If",
     "template": "condition.if",
     "description": "Villkorad gren med true/false",
     "group": "Flow Control"
    },
    {
     "label": "Label",
     "template": "flow.label",
     "description": "Namngiven hoppunkt i flödet",
     "group": "Flow Control"
    }
   ]
  },
  "server": {
   "trigger": [
    {
     "label": "Create",
     "template": "record.created",
     "description": "Triggers when a new record is created",
     "group": "Triggers"
    },
    {
     "label": "Delete",
     "template": "record.delete",
     "description": "Triggers when a record is deleted by a user",
     "group": "Triggers"
    },
    {
     "label": "Get",
     "template": "record.get",
     "description": "Triggers when a record is fetched from server",
     "group": "Triggers"
    },
    {
     "label": "Process",
     "template": "process",
     "description": "Triggered when called as a subroutine from ui.process",
     "group": "Triggers"
    },
    {
     "label": "Schedule",
     "template": "schedule.cron",
     "description": "Run on a schedule (calendar or interval)",
     "group": "Triggers"
    },
    {
     "label": "Update",
     "template": "record.updated",
     "description": "Triggers when a record is updated",
     "group": "Triggers"
    }
   ],
   "action": [
    {
     "label": "CALL",
     "template": "flow.call",
     "description": "Invoke subflow and return",
     "group": ""
    },
    {
     "label": "CALL N8N",
     "template": "integration.n8n",
     "description": "Invoke n8n workflow and read response",
     "group": ""
    },
    {
     "label": "Create Folder",
     "template": "record.fileFolderCreate",
     "description": "Skapa folder för postens filyta",
     "group": ""
    },
    {
     "label": "Delete Folder",
     "template": "record.fileFolderDelete",
     "description": "Ta bort folder för postens filyta",
     "group": ""
    },
    {
     "label": "E-mail",
     "template": "communication.email",
     "description": "Skicka e-post med eventuella bifogade filer från appens filmetadata",
     "group": ""
    },
    {
     "label": "Exit",
     "template": "flow.exit",
     "description": "Terminate workflow (with/without commit)",
     "group": "Flow Control"
    },
    {
     "label": "Goto",
     "template": "flow.goto",
     "description": "Hoppa i exekvering",
     "group": "Flow Control"
    },
    {
     "label": "LOG",
     "template": "system.log",
     "description": "Write to audit/debug log",
     "group": ""
    },
    {
     "label": "MESSAGE",
     "template": "ui.message",
     "description": "Send message to client (info, warning, error)",
     "group": ""
    },
    {
     "label": "PUT",
     "template": "record.put",
     "description": "Create or update record in database",
     "group": ""
    },
    {
     "label": "Render document",
     "template": "document.render",
     "description": "Rendera ett formulär till PDF med Typst",
     "group": ""
    },
    {
     "label": "SET",
     "template": "record.set",
     "description": "Set field values (static, function, lookup, REST)",
     "group": ""
    },
    {
     "label": "Track Status Change",
     "template": "record.trackStatus",
     "description": "Spårar statusändring till {app}_statustransitions",
     "group": ""
    }
   ],
   "condition": [
    {
     "label": "If",
     "template": "condition.if",
     "description": "Conditional branching with true/false paths",
     "group": "Flow Control"
    },
    {
     "label": "Label",
     "template": "flow.label",
     "description": "Namngiven hoppunkt i flödet",
     "group": "Flow Control"
    }
   ]
  }
 },
 "component_aliases": {
  "USelectMenu": "USelect",
  "UTable": "CureTable",
  "CurePanel2Col": "CurePanel",
  "CurePanel3Col": "CurePanel",
  "CurePanel4Col": "CurePanel"
 }
}
