Files
metabuilder/packages/ui_dialogs/seed/scripts/alert.lua
JohnDoe6345789 bf1401fe34 Enhance module definitions and add type annotations across various packages
- Added type annotations and class definitions in the dashboard layout, stats, and data table modules for improved type safety and documentation.
- Introduced new classes for UI components, props, and configuration in the form builder, navigation menu, notification center, and UI dialogs packages.
- Implemented detailed type definitions for actions, fields, and pagination components to streamline usage and enhance clarity.
- Updated initialization functions in multiple packages to include versioning and installation context.
- Improved structure and readability of the codebase by organizing and documenting component properties and methods.
2025-12-30 10:21:33 +00:00

42 lines
1.1 KiB
Lua

---@class Alert
local M = {}
---@class AlertProps
---@field open boolean
---@field variant? "info"|"warning"|"error"
---@field title string
---@field message string
---@class UIComponent
---@field type string
---@field props? table
---@field children? table
---@param props AlertProps
---@return UIComponent
function M.render(props)
local variant = props.variant or "info"
local icon = variant == "error" and "alert-circle" or variant == "warning" and "alert-triangle" or "info"
return {
type = "Dialog",
props = { open = props.open },
children = {
{
type = "DialogContent",
children = {
{ type = "DialogHeader", children = {
{ type = "Icon", props = { name = icon, className = variant == "error" and "text-red-500" or "text-blue-500" } },
{ type = "DialogTitle", props = { text = props.title } },
{ type = "DialogDescription", props = { text = props.message } }
}},
{ type = "DialogFooter", children = {
{ type = "Button", props = { text = "OK", onClick = "onClose" } }
}}
}
}
}
}
end
return M