mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 22:34:56 +00:00
- 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.
42 lines
1.1 KiB
Lua
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
|