@xanui/ui 1.1.37 → 1.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Accordion/index.cjs +96 -0
- package/Accordion/index.cjs.map +1 -0
- package/Accordion/index.js +19 -21
- package/Accordion/index.js.map +1 -1
- package/Alert/index.cjs +121 -0
- package/Alert/index.cjs.map +1 -0
- package/Alert/index.js +33 -35
- package/Alert/index.js.map +1 -1
- package/Autocomplete/index.cjs +136 -0
- package/Autocomplete/index.cjs.map +1 -0
- package/Autocomplete/index.js +23 -25
- package/Autocomplete/index.js.map +1 -1
- package/Avatar/index.cjs +50 -0
- package/Avatar/index.cjs.map +1 -0
- package/Avatar/index.js +15 -17
- package/Avatar/index.js.map +1 -1
- package/Badge/index.cjs +109 -0
- package/Badge/index.cjs.map +1 -0
- package/Badge/index.js +12 -14
- package/Badge/index.js.map +1 -1
- package/Box/index.cjs +14 -0
- package/Box/index.cjs.map +1 -0
- package/Box/index.js +7 -9
- package/Box/index.js.map +1 -1
- package/Button/index.cjs +94 -0
- package/Button/index.cjs.map +1 -0
- package/Button/index.js +17 -19
- package/Button/index.js.map +1 -1
- package/ButtonGroup/index.cjs +58 -0
- package/ButtonGroup/index.cjs.map +1 -0
- package/ButtonGroup/index.js +12 -14
- package/ButtonGroup/index.js.map +1 -1
- package/Calendar/index.cjs +174 -0
- package/Calendar/index.cjs.map +1 -0
- package/Calendar/index.js +39 -41
- package/Calendar/index.js.map +1 -1
- package/CalendarInput/index.cjs +34 -0
- package/CalendarInput/index.cjs.map +1 -0
- package/CalendarInput/index.js +19 -21
- package/CalendarInput/index.js.map +1 -1
- package/Checkbox/index.cjs +58 -0
- package/Checkbox/index.cjs.map +1 -0
- package/Checkbox/index.js +14 -16
- package/Checkbox/index.js.map +1 -1
- package/Chip/index.cjs +76 -0
- package/Chip/index.cjs.map +1 -0
- package/Chip/index.js +12 -14
- package/Chip/index.js.map +1 -1
- package/CircleProgress/index.cjs +129 -0
- package/CircleProgress/index.cjs.map +1 -0
- package/CircleProgress/index.js +13 -15
- package/CircleProgress/index.js.map +1 -1
- package/ClickOutside/index.cjs +37 -0
- package/ClickOutside/index.cjs.map +1 -0
- package/ClickOutside/index.js +9 -11
- package/ClickOutside/index.js.map +1 -1
- package/Collaps/index.cjs +26 -0
- package/Collaps/index.cjs.map +1 -0
- package/Collaps/index.js +9 -11
- package/Collaps/index.js.map +1 -1
- package/Container/index.cjs +29 -0
- package/Container/index.cjs.map +1 -0
- package/Container/index.js +9 -11
- package/Container/index.js.map +1 -1
- package/DataFilter/index.cjs +78 -0
- package/DataFilter/index.cjs.map +1 -0
- package/DataFilter/index.js +30 -41
- package/DataFilter/index.js.map +1 -1
- package/DataFilter/options/DateFilter.cjs +32 -0
- package/DataFilter/options/DateFilter.cjs.map +1 -0
- package/DataFilter/options/DateFilter.js +16 -18
- package/DataFilter/options/DateFilter.js.map +1 -1
- package/DataFilter/options/DateRangeFilter.cjs +27 -0
- package/DataFilter/options/DateRangeFilter.cjs.map +1 -0
- package/DataFilter/options/DateRangeFilter.js +12 -14
- package/DataFilter/options/DateRangeFilter.js.map +1 -1
- package/DataFilter/options/MultiSelectFilter.cjs +38 -0
- package/DataFilter/options/MultiSelectFilter.cjs.map +1 -0
- package/DataFilter/options/MultiSelectFilter.js +20 -22
- package/DataFilter/options/MultiSelectFilter.js.map +1 -1
- package/DataFilter/options/NumberFilter.cjs +24 -0
- package/DataFilter/options/NumberFilter.cjs.map +1 -0
- package/DataFilter/options/NumberFilter.js +11 -13
- package/DataFilter/options/NumberFilter.js.map +1 -1
- package/DataFilter/options/NumberRangeFilter.cjs +29 -0
- package/DataFilter/options/NumberRangeFilter.cjs.map +1 -0
- package/DataFilter/options/NumberRangeFilter.js +12 -14
- package/DataFilter/options/NumberRangeFilter.js.map +1 -1
- package/DataFilter/options/SelectFilter.cjs +34 -0
- package/DataFilter/options/SelectFilter.cjs.map +1 -0
- package/DataFilter/options/SelectFilter.js +18 -20
- package/DataFilter/options/SelectFilter.js.map +1 -1
- package/DataFilter/options/TextFilter.cjs +24 -0
- package/DataFilter/options/TextFilter.cjs.map +1 -0
- package/DataFilter/options/TextFilter.js +11 -13
- package/DataFilter/options/TextFilter.js.map +1 -1
- package/Datatable/FilterBox.cjs +39 -0
- package/Datatable/FilterBox.cjs.map +1 -0
- package/Datatable/FilterBox.js +21 -23
- package/Datatable/FilterBox.js.map +1 -1
- package/Datatable/Row.cjs +59 -0
- package/Datatable/Row.cjs.map +1 -0
- package/Datatable/Row.js +19 -21
- package/Datatable/Row.js.map +1 -1
- package/Datatable/SelectedBox.cjs +21 -0
- package/Datatable/SelectedBox.cjs.map +1 -0
- package/Datatable/SelectedBox.js +10 -12
- package/Datatable/SelectedBox.js.map +1 -1
- package/Datatable/Table.cjs +23 -0
- package/Datatable/Table.cjs.map +1 -0
- package/Datatable/Table.js +8 -10
- package/Datatable/Table.js.map +1 -1
- package/Datatable/TableHead.cjs +61 -0
- package/Datatable/TableHead.cjs.map +1 -0
- package/Datatable/TableHead.js +18 -20
- package/Datatable/TableHead.js.map +1 -1
- package/Datatable/index.cjs +93 -0
- package/Datatable/index.cjs.map +1 -0
- package/Datatable/index.js +21 -23
- package/Datatable/index.js.map +1 -1
- package/Divider/index.cjs +31 -0
- package/Divider/index.cjs.map +1 -0
- package/Divider/index.js +8 -10
- package/Divider/index.js.map +1 -1
- package/Drawer/index.cjs +78 -0
- package/Drawer/index.cjs.map +1 -0
- package/Drawer/index.js +12 -14
- package/Drawer/index.js.map +1 -1
- package/Form/index.cjs +45 -0
- package/Form/index.cjs.map +1 -0
- package/Form/index.js +8 -10
- package/Form/index.js.map +1 -1
- package/GridContainer/index.cjs +19 -0
- package/GridContainer/index.cjs.map +1 -0
- package/GridContainer/index.js +7 -9
- package/GridContainer/index.js.map +1 -1
- package/GridItem/index.cjs +20 -0
- package/GridItem/index.cjs.map +1 -0
- package/GridItem/index.js +7 -9
- package/GridItem/index.js.map +1 -1
- package/IconButton/index.cjs +64 -0
- package/IconButton/index.cjs.map +1 -0
- package/IconButton/index.js +12 -14
- package/IconButton/index.js.map +1 -1
- package/Image/index.cjs +27 -0
- package/Image/index.cjs.map +1 -0
- package/Image/index.js +9 -11
- package/Image/index.js.map +1 -1
- package/Input/index.cjs +144 -0
- package/Input/index.cjs.map +1 -0
- package/Input/index.js +18 -20
- package/Input/index.js.map +1 -1
- package/InputNumber/index.cjs +32 -0
- package/InputNumber/index.cjs.map +1 -0
- package/InputNumber/index.js +6 -8
- package/InputNumber/index.js.map +1 -1
- package/Label/index.cjs +24 -0
- package/Label/index.cjs.map +1 -0
- package/Label/index.js +7 -9
- package/Label/index.js.map +1 -1
- package/Layer/index.cjs +62 -0
- package/Layer/index.cjs.map +1 -0
- package/Layer/index.js +19 -21
- package/Layer/index.js.map +1 -1
- package/LineProgress/index.cjs +59 -0
- package/LineProgress/index.cjs.map +1 -0
- package/LineProgress/index.js +11 -13
- package/LineProgress/index.js.map +1 -1
- package/List/ListContext.cjs +11 -0
- package/List/ListContext.cjs.map +1 -0
- package/List/ListContext.js +2 -5
- package/List/ListContext.js.map +1 -1
- package/List/index.cjs +63 -0
- package/List/index.cjs.map +1 -0
- package/List/index.js +12 -14
- package/List/index.js.map +1 -1
- package/ListItem/index.cjs +54 -0
- package/ListItem/index.cjs.map +1 -0
- package/ListItem/index.js +12 -14
- package/ListItem/index.js.map +1 -1
- package/LoadingBox/index.cjs +32 -0
- package/LoadingBox/index.cjs.map +1 -0
- package/LoadingBox/index.js +11 -13
- package/LoadingBox/index.js.map +1 -1
- package/Menu/index.cjs +150 -0
- package/Menu/index.cjs.map +1 -0
- package/Menu/index.js +18 -20
- package/Menu/index.js.map +1 -1
- package/Modal/index.cjs +59 -0
- package/Modal/index.cjs.map +1 -0
- package/Modal/index.js +15 -17
- package/Modal/index.js.map +1 -1
- package/NoSSR/index.cjs +15 -0
- package/NoSSR/index.cjs.map +1 -0
- package/NoSSR/index.js +4 -6
- package/NoSSR/index.js.map +1 -1
- package/Option/index.cjs +14 -0
- package/Option/index.cjs.map +1 -0
- package/Option/index.js +7 -9
- package/Option/index.js.map +1 -1
- package/Paper/index.cjs +15 -0
- package/Paper/index.cjs.map +1 -0
- package/Paper/index.js +8 -10
- package/Paper/index.js.map +1 -1
- package/Portal/index.cjs +27 -0
- package/Portal/index.cjs.map +1 -0
- package/Portal/index.js +9 -11
- package/Portal/index.js.map +1 -1
- package/Radio/index.cjs +16 -0
- package/Radio/index.cjs.map +1 -0
- package/Radio/index.js +9 -11
- package/Radio/index.js.map +1 -1
- package/Scrollbar/index.cjs +59 -0
- package/Scrollbar/index.cjs.map +1 -0
- package/Scrollbar/index.js +10 -12
- package/Scrollbar/index.js.map +1 -1
- package/Select/index.cjs +59 -0
- package/Select/index.cjs.map +1 -0
- package/Select/index.js +22 -24
- package/Select/index.js.map +1 -1
- package/Skeleton/index.cjs +60 -0
- package/Skeleton/index.cjs.map +1 -0
- package/Skeleton/index.js +7 -9
- package/Skeleton/index.js.map +1 -1
- package/Stack/index.cjs +17 -0
- package/Stack/index.cjs.map +1 -0
- package/Stack/index.js +7 -9
- package/Stack/index.js.map +1 -1
- package/Switch/index.cjs +79 -0
- package/Switch/index.cjs.map +1 -0
- package/Switch/index.js +12 -14
- package/Switch/index.js.map +1 -1
- package/Tab/index.cjs +17 -0
- package/Tab/index.cjs.map +1 -0
- package/Tab/index.js +9 -11
- package/Tab/index.js.map +1 -1
- package/Table/index.cjs +88 -0
- package/Table/index.cjs.map +1 -0
- package/Table/index.js +13 -15
- package/Table/index.js.map +1 -1
- package/TableBody/index.cjs +14 -0
- package/TableBody/index.cjs.map +1 -0
- package/TableBody/index.js +7 -9
- package/TableBody/index.js.map +1 -1
- package/TableCell/index.cjs +14 -0
- package/TableCell/index.cjs.map +1 -0
- package/TableCell/index.js +7 -9
- package/TableCell/index.js.map +1 -1
- package/TableFooter/index.cjs +14 -0
- package/TableFooter/index.cjs.map +1 -0
- package/TableFooter/index.js +7 -9
- package/TableFooter/index.js.map +1 -1
- package/TableHead/index.cjs +14 -0
- package/TableHead/index.cjs.map +1 -0
- package/TableHead/index.js +7 -9
- package/TableHead/index.js.map +1 -1
- package/TablePagination/index.cjs +59 -0
- package/TablePagination/index.cjs.map +1 -0
- package/TablePagination/index.js +21 -23
- package/TablePagination/index.js.map +1 -1
- package/TableRow/index.cjs +14 -0
- package/TableRow/index.cjs.map +1 -0
- package/TableRow/index.js +7 -9
- package/TableRow/index.js.map +1 -1
- package/Tabs/index.cjs +201 -0
- package/Tabs/index.cjs.map +1 -0
- package/Tabs/index.js +19 -21
- package/Tabs/index.js.map +1 -1
- package/Text/index.cjs +25 -0
- package/Text/index.cjs.map +1 -0
- package/Text/index.js +8 -10
- package/Text/index.js.map +1 -1
- package/Toast/index.cjs +120 -0
- package/Toast/index.cjs.map +1 -0
- package/Toast/index.js +18 -20
- package/Toast/index.js.map +1 -1
- package/Tooltip/index.cjs +40 -0
- package/Tooltip/index.cjs.map +1 -0
- package/Tooltip/index.js +11 -13
- package/Tooltip/index.js.map +1 -1
- package/ViewBox/index.cjs +32 -0
- package/ViewBox/index.cjs.map +1 -0
- package/ViewBox/index.js +11 -13
- package/ViewBox/index.js.map +1 -1
- package/index.cjs +134 -0
- package/index.cjs.map +1 -0
- package/index.js +64 -133
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/readme.md +4 -4
- package/useAlert/index.cjs +94 -0
- package/useAlert/index.cjs.map +1 -0
- package/useAlert/index.js +12 -14
- package/useAlert/index.js.map +1 -1
- package/useBlurCss/index.cjs +19 -0
- package/useBlurCss/index.cjs.map +1 -0
- package/useBlurCss/index.js +5 -7
- package/useBlurCss/index.js.map +1 -1
- package/useCorner/index.cjs +22 -0
- package/useCorner/index.cjs.map +1 -0
- package/useCorner/index.js +1 -3
- package/useCorner/index.js.map +1 -1
- package/useLayer/index.cjs +38 -0
- package/useLayer/index.cjs.map +1 -0
- package/useLayer/index.js +7 -9
- package/useLayer/index.js.map +1 -1
- package/useModal/index.cjs +37 -0
- package/useModal/index.cjs.map +1 -0
- package/useModal/index.js +8 -10
- package/useModal/index.js.map +1 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var tslib = require('tslib');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var core = require('@xanui/core');
|
|
8
|
+
var ExpandIcon = require('@xanui/icons/ExpandMore');
|
|
9
|
+
var index$2 = require('../Collaps/index.cjs');
|
|
10
|
+
var index = require('../List/index.cjs');
|
|
11
|
+
var index$1 = require('../ListItem/index.cjs');
|
|
12
|
+
|
|
13
|
+
const Accordion = React.forwardRef((_a, ref) => {
|
|
14
|
+
var { children, title, subtitle } = _a, rest = tslib.__rest(_a, ["children", "title", "subtitle"]);
|
|
15
|
+
const [_expand, setExpand] = React.useState(false);
|
|
16
|
+
let [_b] = core.useInterface("Accordion", rest, {
|
|
17
|
+
onClick: () => setExpand(!_expand),
|
|
18
|
+
color: "brand",
|
|
19
|
+
variant: "soft"
|
|
20
|
+
}), { expand, onClick, color, variant, hoverColor, hoverVariant, expandIcon, expandIconPlacement, startIcon, endIcon, expandAction, classNames, slotProps } = _b, rootProps = tslib.__rest(_b, ["expand", "onClick", "color", "variant", "hoverColor", "hoverVariant", "expandIcon", "expandIconPlacement", "startIcon", "endIcon", "expandAction", "classNames", "slotProps"]);
|
|
21
|
+
const _p = {};
|
|
22
|
+
if (title)
|
|
23
|
+
_p.title = title;
|
|
24
|
+
if (subtitle)
|
|
25
|
+
_p.subtitle = subtitle;
|
|
26
|
+
if (startIcon)
|
|
27
|
+
_p.startIcon = startIcon;
|
|
28
|
+
if (endIcon)
|
|
29
|
+
_p.endIcon = endIcon;
|
|
30
|
+
if (expandIcon)
|
|
31
|
+
_p.expandIcon = expandIcon;
|
|
32
|
+
if (expandIconPlacement)
|
|
33
|
+
_p.expandIconPlacement = expandIconPlacement;
|
|
34
|
+
if (expandAction)
|
|
35
|
+
_p.expandAction = expandAction;
|
|
36
|
+
if (color)
|
|
37
|
+
_p.color = color;
|
|
38
|
+
if (variant)
|
|
39
|
+
_p.variant = variant;
|
|
40
|
+
if (hoverColor)
|
|
41
|
+
_p.hoverColor = hoverColor;
|
|
42
|
+
if (hoverVariant)
|
|
43
|
+
_p.hoverVariant = hoverVariant;
|
|
44
|
+
const p = core.useBreakpointProps(_p);
|
|
45
|
+
title = p.title;
|
|
46
|
+
subtitle = p.subtitle;
|
|
47
|
+
startIcon = p.startIcon;
|
|
48
|
+
endIcon = p.endIcon;
|
|
49
|
+
expandIcon = p.expandIcon;
|
|
50
|
+
expandIconPlacement = p.expandIconPlacement;
|
|
51
|
+
expandAction = p.expandAction;
|
|
52
|
+
color = p.color;
|
|
53
|
+
variant = p.variant;
|
|
54
|
+
hoverColor = p.hoverColor;
|
|
55
|
+
hoverVariant = p.hoverVariant;
|
|
56
|
+
expand = expand === undefined ? _expand : expand;
|
|
57
|
+
expandIcon = expandIcon ? jsxRuntime.jsx(core.Tag, Object.assign({ cursor: "pointer" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.expandIconContainer, { onClick: expandAction === 'icon' && onClick ? () => onClick() : () => { }, className: 'expand-icon-container', children: expandIcon })) : jsxRuntime.jsx(core.Tag, Object.assign({ transform: `rotate(${expand ? 0 : -180}deg)`, transition: "transform .4s", cursor: "pointer" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.expandIconContainer, { onClick: expandAction === 'icon' && onClick ? () => onClick() : () => { }, className: 'expand-icon-container', children: jsxRuntime.jsx(ExpandIcon, {}) }));
|
|
58
|
+
let itemsx = {};
|
|
59
|
+
if (expandIconPlacement === 'start') {
|
|
60
|
+
itemsx = {
|
|
61
|
+
startIcon: jsxRuntime.jsxs(core.Tag, { className: 'start-icon-container', sxr: {
|
|
62
|
+
display: "flex",
|
|
63
|
+
flexDirection: "row",
|
|
64
|
+
alignItems: "center",
|
|
65
|
+
gap: 1
|
|
66
|
+
}, children: [expandIcon, startIcon] }),
|
|
67
|
+
endIcon
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
itemsx = {
|
|
72
|
+
endIcon: jsxRuntime.jsxs(core.Tag, { className: 'end-icon-container', sxr: {
|
|
73
|
+
display: "flex",
|
|
74
|
+
flexDirection: "row",
|
|
75
|
+
alignItems: "center",
|
|
76
|
+
gap: 1
|
|
77
|
+
}, children: [endIcon, expandIcon] }),
|
|
78
|
+
startIcon
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (expandAction === 'icon') {
|
|
82
|
+
itemsx.onClick = () => { };
|
|
83
|
+
itemsx.cursor = "initial!important";
|
|
84
|
+
}
|
|
85
|
+
return (jsxRuntime.jsx(core.Tag, Object.assign({}, rootProps, { sxr: {
|
|
86
|
+
bgcolor: "background.primary"
|
|
87
|
+
}, baseClass: 'accordion', classNames: [{ "accordion-expanded": expand }, ...(classNames || [])], ref: ref, children: jsxRuntime.jsxs(index, Object.assign({ component: 'div' }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.header, { color: color, variant: variant, hoverColor: hoverColor, hoverVariant: hoverVariant, className: 'accoutdion-header', children: [jsxRuntime.jsx(index$1, Object.assign({ minHeight: 55, radius: 0, component: 'div' }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.headerContent, itemsx, { subtitle: subtitle, selected: expand, onClick: () => onClick && onClick(), className: "accordion-header-content", children: title })), jsxRuntime.jsx(index$2, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.collaps, { open: expand, className: "accordion-collaps", children: jsxRuntime.jsx(core.Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.content, { sxr: {
|
|
88
|
+
color: "text.primary",
|
|
89
|
+
p: 2,
|
|
90
|
+
py: 1,
|
|
91
|
+
bgcolor: "background.primary"
|
|
92
|
+
}, baseClass: 'accordion-content', children: children })) }))] })) })));
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
module.exports = Accordion;
|
|
96
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/Accordion/index.tsx"],"sourcesContent":["'use client'\r\nimport React, { ReactElement, useState } from 'react';\r\nimport { Tag, TagProps, useInterface, UseColorTemplateColor, UseColorTemplateType, TagComponentType, useBreakpointPropsType, useBreakpointProps } from '@xanui/core';\r\nimport ExpandIcon from \"@xanui/icons/ExpandMore\";\r\nimport Collaps, { CollapsProps } from '../Collaps';\r\nimport List, { ListProps } from '../List';\r\nimport ListItem, { ListItemProps } from '../ListItem';\r\n\r\nexport type AccordionProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, \"color\"> & {\r\n expand?: boolean;\r\n onClick?: () => void;\r\n title: useBreakpointPropsType<ReactElement | string>;\r\n subtitle?: useBreakpointPropsType<ReactElement | string>;\r\n startIcon?: useBreakpointPropsType<ReactElement>;\r\n endIcon?: useBreakpointPropsType<ReactElement>;\r\n expandIcon?: useBreakpointPropsType<ReactElement>;\r\n expandIconPlacement?: useBreakpointPropsType<\"start\" | \"end\">;\r\n expandAction?: useBreakpointPropsType<\"header\" | \"icon\">;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n hoverColor?: useBreakpointPropsType<UseColorTemplateColor>;\r\n hoverVariant?: useBreakpointPropsType<UseColorTemplateType>;\r\n\r\n slotProps?: {\r\n header?: Omit<ListProps, \"children\" | \"color\" | \"variant\" | \"hoverColor\" | \"hoverVariant\" | \"className\">;\r\n headerContent?: Omit<ListItemProps, \"children\" | \"subtitle\" | \"selected\" | \"startIcon\" | \"endIcon\" | \"onClick\" | \"className\">\r\n collaps?: Omit<CollapsProps, \"children\" | \"in\">;\r\n content?: Omit<TagProps, \"children\">;\r\n expandIconContainer?: Omit<TagProps<\"div\">, 'children' | 'className'>;\r\n }\r\n}\r\n\r\nconst Accordion = React.forwardRef(<T extends TagComponentType = \"div\">({ children, title, subtitle, ...rest }: AccordionProps<T>, ref: React.Ref<any>) => {\r\n const [_expand, setExpand] = useState(false)\r\n let [{\r\n expand,\r\n onClick,\r\n color,\r\n variant,\r\n hoverColor,\r\n hoverVariant,\r\n expandIcon,\r\n expandIconPlacement,\r\n startIcon,\r\n endIcon,\r\n expandAction,\r\n classNames,\r\n slotProps,\r\n ...rootProps\r\n }] = useInterface<any>(\"Accordion\", rest, {\r\n onClick: () => setExpand(!_expand) as any,\r\n color: \"brand\",\r\n variant: \"soft\"\r\n })\r\n\r\n const _p: any = {}\r\n if (title) _p.title = title\r\n if (subtitle) _p.subtitle = subtitle\r\n if (startIcon) _p.startIcon = startIcon\r\n if (endIcon) _p.endIcon = endIcon\r\n if (expandIcon) _p.expandIcon = expandIcon\r\n if (expandIconPlacement) _p.expandIconPlacement = expandIconPlacement\r\n if (expandAction) _p.expandAction = expandAction\r\n if (color) _p.color = color\r\n if (variant) _p.variant = variant\r\n if (hoverColor) _p.hoverColor = hoverColor\r\n if (hoverVariant) _p.hoverVariant = hoverVariant\r\n\r\n const p: any = useBreakpointProps(_p)\r\n\r\n title = p.title\r\n subtitle = p.subtitle\r\n startIcon = p.startIcon\r\n endIcon = p.endIcon\r\n expandIcon = p.expandIcon\r\n expandIconPlacement = p.expandIconPlacement\r\n expandAction = p.expandAction\r\n color = p.color\r\n variant = p.variant\r\n hoverColor = p.hoverColor\r\n hoverVariant = p.hoverVariant\r\n\r\n expand = expand === undefined ? _expand : expand\r\n expandIcon = expandIcon ? <Tag\r\n cursor=\"pointer\"\r\n {...slotProps?.expandIconContainer}\r\n onClick={expandAction === 'icon' && onClick ? () => onClick() : () => { }}\r\n className='expand-icon-container'\r\n >\r\n {expandIcon}\r\n </Tag> : <Tag\r\n transform={`rotate(${expand ? 0 : -180}deg)`}\r\n transition=\"transform .4s\"\r\n cursor=\"pointer\"\r\n {...slotProps?.expandIconContainer}\r\n onClick={expandAction === 'icon' && onClick ? () => onClick() : () => { }}\r\n className='expand-icon-container'\r\n >\r\n <ExpandIcon />\r\n </Tag>\r\n\r\n let itemsx: any = {}\r\n\r\n if (expandIconPlacement === 'start') {\r\n itemsx = {\r\n startIcon: <Tag\r\n className='start-icon-container'\r\n sxr={{\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n gap: 1\r\n }}\r\n >\r\n {expandIcon}\r\n {startIcon}\r\n </Tag>,\r\n endIcon\r\n }\r\n\r\n } else {\r\n itemsx = {\r\n endIcon: <Tag\r\n className='end-icon-container'\r\n sxr={{\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n gap: 1\r\n }}\r\n >\r\n {endIcon}\r\n {expandIcon}\r\n </Tag>,\r\n startIcon\r\n }\r\n }\r\n\r\n if (expandAction === 'icon') {\r\n itemsx.onClick = () => { }\r\n itemsx.cursor = \"initial!important\"\r\n }\r\n\r\n return (\r\n <Tag\r\n {...rootProps}\r\n sxr={{\r\n bgcolor: \"background.primary\"\r\n }}\r\n baseClass='accordion'\r\n classNames={[{ \"accordion-expanded\": expand }, ...(classNames || [])]}\r\n ref={ref}\r\n >\r\n <List\r\n component='div'\r\n {...slotProps?.header}\r\n color={color}\r\n variant={variant}\r\n hoverColor={hoverColor}\r\n hoverVariant={hoverVariant}\r\n className='accoutdion-header'\r\n >\r\n <ListItem\r\n minHeight={55}\r\n radius={0}\r\n component='div'\r\n {...slotProps?.headerContent}\r\n {...itemsx}\r\n subtitle={subtitle}\r\n selected={expand}\r\n onClick={() => onClick && onClick()}\r\n className=\"accordion-header-content\"\r\n >{title}</ListItem>\r\n <Collaps\r\n {...slotProps?.collaps}\r\n open={expand}\r\n className=\"accordion-collaps\"\r\n >\r\n <Tag\r\n {...slotProps?.content}\r\n sxr={{\r\n color: \"text.primary\",\r\n p: 2,\r\n py: 1,\r\n bgcolor: \"background.primary\"\r\n }}\r\n baseClass='accordion-content'\r\n >\r\n {children}\r\n </Tag>\r\n </Collaps>\r\n </List>\r\n </Tag>\r\n )\r\n})\r\nexport default Accordion\r\n\r\n\r\n"],"names":[],"mappings":";;;;;;;;;;;;AAgCA;;;AAEI;;AAiBI;AACA;AACH;;AAGD;AAAW;AACX;AAAc;AACd;AAAe;AACf;AAAa;AACb;AAAgB;AAChB;AAAyB;AACzB;AAAkB;AAClB;AAAW;AACX;AAAa;AACb;AAAgB;AAChB;AAAkB;AAElB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;AAqBA;AACI;;AAIY;AACA;AACA;AACA;;;;;;AAUZ;;AAIY;AACA;AACA;AACA;;;;;AAUhB;AACI;AACA;;AAGJ;AAIY;AACH;AAiCe;AACA;AACA;AACA;;AAU5B;;"}
|
package/Accordion/index.js
CHANGED
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var index = require('../List/index.js');
|
|
11
|
-
var index$1 = require('../ListItem/index.js');
|
|
2
|
+
import { __rest } from 'tslib';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import React, { useState } from 'react';
|
|
5
|
+
import { useInterface, useBreakpointProps, Tag } from '@xanui/core';
|
|
6
|
+
import ExpandIcon from '@xanui/icons/ExpandMore';
|
|
7
|
+
import Collaps from '../Collaps/index.js';
|
|
8
|
+
import List from '../List/index.js';
|
|
9
|
+
import ListItem from '../ListItem/index.js';
|
|
12
10
|
|
|
13
11
|
const Accordion = React.forwardRef((_a, ref) => {
|
|
14
|
-
var { children, title, subtitle } = _a, rest =
|
|
15
|
-
const [_expand, setExpand] =
|
|
16
|
-
let [_b] =
|
|
12
|
+
var { children, title, subtitle } = _a, rest = __rest(_a, ["children", "title", "subtitle"]);
|
|
13
|
+
const [_expand, setExpand] = useState(false);
|
|
14
|
+
let [_b] = useInterface("Accordion", rest, {
|
|
17
15
|
onClick: () => setExpand(!_expand),
|
|
18
16
|
color: "brand",
|
|
19
17
|
variant: "soft"
|
|
20
|
-
}), { expand, onClick, color, variant, hoverColor, hoverVariant, expandIcon, expandIconPlacement, startIcon, endIcon, expandAction, classNames, slotProps } = _b, rootProps =
|
|
18
|
+
}), { expand, onClick, color, variant, hoverColor, hoverVariant, expandIcon, expandIconPlacement, startIcon, endIcon, expandAction, classNames, slotProps } = _b, rootProps = __rest(_b, ["expand", "onClick", "color", "variant", "hoverColor", "hoverVariant", "expandIcon", "expandIconPlacement", "startIcon", "endIcon", "expandAction", "classNames", "slotProps"]);
|
|
21
19
|
const _p = {};
|
|
22
20
|
if (title)
|
|
23
21
|
_p.title = title;
|
|
@@ -41,7 +39,7 @@ const Accordion = React.forwardRef((_a, ref) => {
|
|
|
41
39
|
_p.hoverColor = hoverColor;
|
|
42
40
|
if (hoverVariant)
|
|
43
41
|
_p.hoverVariant = hoverVariant;
|
|
44
|
-
const p =
|
|
42
|
+
const p = useBreakpointProps(_p);
|
|
45
43
|
title = p.title;
|
|
46
44
|
subtitle = p.subtitle;
|
|
47
45
|
startIcon = p.startIcon;
|
|
@@ -54,11 +52,11 @@ const Accordion = React.forwardRef((_a, ref) => {
|
|
|
54
52
|
hoverColor = p.hoverColor;
|
|
55
53
|
hoverVariant = p.hoverVariant;
|
|
56
54
|
expand = expand === undefined ? _expand : expand;
|
|
57
|
-
expandIcon = expandIcon ?
|
|
55
|
+
expandIcon = expandIcon ? jsx(Tag, Object.assign({ cursor: "pointer" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.expandIconContainer, { onClick: expandAction === 'icon' && onClick ? () => onClick() : () => { }, className: 'expand-icon-container', children: expandIcon })) : jsx(Tag, Object.assign({ transform: `rotate(${expand ? 0 : -180}deg)`, transition: "transform .4s", cursor: "pointer" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.expandIconContainer, { onClick: expandAction === 'icon' && onClick ? () => onClick() : () => { }, className: 'expand-icon-container', children: jsx(ExpandIcon, {}) }));
|
|
58
56
|
let itemsx = {};
|
|
59
57
|
if (expandIconPlacement === 'start') {
|
|
60
58
|
itemsx = {
|
|
61
|
-
startIcon:
|
|
59
|
+
startIcon: jsxs(Tag, { className: 'start-icon-container', sxr: {
|
|
62
60
|
display: "flex",
|
|
63
61
|
flexDirection: "row",
|
|
64
62
|
alignItems: "center",
|
|
@@ -69,7 +67,7 @@ const Accordion = React.forwardRef((_a, ref) => {
|
|
|
69
67
|
}
|
|
70
68
|
else {
|
|
71
69
|
itemsx = {
|
|
72
|
-
endIcon:
|
|
70
|
+
endIcon: jsxs(Tag, { className: 'end-icon-container', sxr: {
|
|
73
71
|
display: "flex",
|
|
74
72
|
flexDirection: "row",
|
|
75
73
|
alignItems: "center",
|
|
@@ -82,9 +80,9 @@ const Accordion = React.forwardRef((_a, ref) => {
|
|
|
82
80
|
itemsx.onClick = () => { };
|
|
83
81
|
itemsx.cursor = "initial!important";
|
|
84
82
|
}
|
|
85
|
-
return (
|
|
83
|
+
return (jsx(Tag, Object.assign({}, rootProps, { sxr: {
|
|
86
84
|
bgcolor: "background.primary"
|
|
87
|
-
}, baseClass: 'accordion', classNames: [{ "accordion-expanded": expand }, ...(classNames || [])], ref: ref, children:
|
|
85
|
+
}, baseClass: 'accordion', classNames: [{ "accordion-expanded": expand }, ...(classNames || [])], ref: ref, children: jsxs(List, Object.assign({ component: 'div' }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.header, { color: color, variant: variant, hoverColor: hoverColor, hoverVariant: hoverVariant, className: 'accoutdion-header', children: [jsx(ListItem, Object.assign({ minHeight: 55, radius: 0, component: 'div' }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.headerContent, itemsx, { subtitle: subtitle, selected: expand, onClick: () => onClick && onClick(), className: "accordion-header-content", children: title })), jsx(Collaps, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.collaps, { open: expand, className: "accordion-collaps", children: jsx(Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.content, { sxr: {
|
|
88
86
|
color: "text.primary",
|
|
89
87
|
p: 2,
|
|
90
88
|
py: 1,
|
|
@@ -92,5 +90,5 @@ const Accordion = React.forwardRef((_a, ref) => {
|
|
|
92
90
|
}, baseClass: 'accordion-content', children: children })) }))] })) })));
|
|
93
91
|
});
|
|
94
92
|
|
|
95
|
-
|
|
93
|
+
export { Accordion as default };
|
|
96
94
|
//# sourceMappingURL=index.js.map
|
package/Accordion/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/Accordion/index.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Accordion/index.tsx"],"sourcesContent":["'use client'\r\nimport React, { ReactElement, useState } from 'react';\r\nimport { Tag, TagProps, useInterface, UseColorTemplateColor, UseColorTemplateType, TagComponentType, useBreakpointPropsType, useBreakpointProps } from '@xanui/core';\r\nimport ExpandIcon from \"@xanui/icons/ExpandMore\";\r\nimport Collaps, { CollapsProps } from '../Collaps';\r\nimport List, { ListProps } from '../List';\r\nimport ListItem, { ListItemProps } from '../ListItem';\r\n\r\nexport type AccordionProps<T extends TagComponentType = \"div\"> = Omit<TagProps<T>, \"color\"> & {\r\n expand?: boolean;\r\n onClick?: () => void;\r\n title: useBreakpointPropsType<ReactElement | string>;\r\n subtitle?: useBreakpointPropsType<ReactElement | string>;\r\n startIcon?: useBreakpointPropsType<ReactElement>;\r\n endIcon?: useBreakpointPropsType<ReactElement>;\r\n expandIcon?: useBreakpointPropsType<ReactElement>;\r\n expandIconPlacement?: useBreakpointPropsType<\"start\" | \"end\">;\r\n expandAction?: useBreakpointPropsType<\"header\" | \"icon\">;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n hoverColor?: useBreakpointPropsType<UseColorTemplateColor>;\r\n hoverVariant?: useBreakpointPropsType<UseColorTemplateType>;\r\n\r\n slotProps?: {\r\n header?: Omit<ListProps, \"children\" | \"color\" | \"variant\" | \"hoverColor\" | \"hoverVariant\" | \"className\">;\r\n headerContent?: Omit<ListItemProps, \"children\" | \"subtitle\" | \"selected\" | \"startIcon\" | \"endIcon\" | \"onClick\" | \"className\">\r\n collaps?: Omit<CollapsProps, \"children\" | \"in\">;\r\n content?: Omit<TagProps, \"children\">;\r\n expandIconContainer?: Omit<TagProps<\"div\">, 'children' | 'className'>;\r\n }\r\n}\r\n\r\nconst Accordion = React.forwardRef(<T extends TagComponentType = \"div\">({ children, title, subtitle, ...rest }: AccordionProps<T>, ref: React.Ref<any>) => {\r\n const [_expand, setExpand] = useState(false)\r\n let [{\r\n expand,\r\n onClick,\r\n color,\r\n variant,\r\n hoverColor,\r\n hoverVariant,\r\n expandIcon,\r\n expandIconPlacement,\r\n startIcon,\r\n endIcon,\r\n expandAction,\r\n classNames,\r\n slotProps,\r\n ...rootProps\r\n }] = useInterface<any>(\"Accordion\", rest, {\r\n onClick: () => setExpand(!_expand) as any,\r\n color: \"brand\",\r\n variant: \"soft\"\r\n })\r\n\r\n const _p: any = {}\r\n if (title) _p.title = title\r\n if (subtitle) _p.subtitle = subtitle\r\n if (startIcon) _p.startIcon = startIcon\r\n if (endIcon) _p.endIcon = endIcon\r\n if (expandIcon) _p.expandIcon = expandIcon\r\n if (expandIconPlacement) _p.expandIconPlacement = expandIconPlacement\r\n if (expandAction) _p.expandAction = expandAction\r\n if (color) _p.color = color\r\n if (variant) _p.variant = variant\r\n if (hoverColor) _p.hoverColor = hoverColor\r\n if (hoverVariant) _p.hoverVariant = hoverVariant\r\n\r\n const p: any = useBreakpointProps(_p)\r\n\r\n title = p.title\r\n subtitle = p.subtitle\r\n startIcon = p.startIcon\r\n endIcon = p.endIcon\r\n expandIcon = p.expandIcon\r\n expandIconPlacement = p.expandIconPlacement\r\n expandAction = p.expandAction\r\n color = p.color\r\n variant = p.variant\r\n hoverColor = p.hoverColor\r\n hoverVariant = p.hoverVariant\r\n\r\n expand = expand === undefined ? _expand : expand\r\n expandIcon = expandIcon ? <Tag\r\n cursor=\"pointer\"\r\n {...slotProps?.expandIconContainer}\r\n onClick={expandAction === 'icon' && onClick ? () => onClick() : () => { }}\r\n className='expand-icon-container'\r\n >\r\n {expandIcon}\r\n </Tag> : <Tag\r\n transform={`rotate(${expand ? 0 : -180}deg)`}\r\n transition=\"transform .4s\"\r\n cursor=\"pointer\"\r\n {...slotProps?.expandIconContainer}\r\n onClick={expandAction === 'icon' && onClick ? () => onClick() : () => { }}\r\n className='expand-icon-container'\r\n >\r\n <ExpandIcon />\r\n </Tag>\r\n\r\n let itemsx: any = {}\r\n\r\n if (expandIconPlacement === 'start') {\r\n itemsx = {\r\n startIcon: <Tag\r\n className='start-icon-container'\r\n sxr={{\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n gap: 1\r\n }}\r\n >\r\n {expandIcon}\r\n {startIcon}\r\n </Tag>,\r\n endIcon\r\n }\r\n\r\n } else {\r\n itemsx = {\r\n endIcon: <Tag\r\n className='end-icon-container'\r\n sxr={{\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n gap: 1\r\n }}\r\n >\r\n {endIcon}\r\n {expandIcon}\r\n </Tag>,\r\n startIcon\r\n }\r\n }\r\n\r\n if (expandAction === 'icon') {\r\n itemsx.onClick = () => { }\r\n itemsx.cursor = \"initial!important\"\r\n }\r\n\r\n return (\r\n <Tag\r\n {...rootProps}\r\n sxr={{\r\n bgcolor: \"background.primary\"\r\n }}\r\n baseClass='accordion'\r\n classNames={[{ \"accordion-expanded\": expand }, ...(classNames || [])]}\r\n ref={ref}\r\n >\r\n <List\r\n component='div'\r\n {...slotProps?.header}\r\n color={color}\r\n variant={variant}\r\n hoverColor={hoverColor}\r\n hoverVariant={hoverVariant}\r\n className='accoutdion-header'\r\n >\r\n <ListItem\r\n minHeight={55}\r\n radius={0}\r\n component='div'\r\n {...slotProps?.headerContent}\r\n {...itemsx}\r\n subtitle={subtitle}\r\n selected={expand}\r\n onClick={() => onClick && onClick()}\r\n className=\"accordion-header-content\"\r\n >{title}</ListItem>\r\n <Collaps\r\n {...slotProps?.collaps}\r\n open={expand}\r\n className=\"accordion-collaps\"\r\n >\r\n <Tag\r\n {...slotProps?.content}\r\n sxr={{\r\n color: \"text.primary\",\r\n p: 2,\r\n py: 1,\r\n bgcolor: \"background.primary\"\r\n }}\r\n baseClass='accordion-content'\r\n >\r\n {children}\r\n </Tag>\r\n </Collaps>\r\n </List>\r\n </Tag>\r\n )\r\n})\r\nexport default Accordion\r\n\r\n\r\n"],"names":[],"mappings":";;;;;;;;;;AAgCA;;;AAEI;;AAiBI;AACA;AACH;;AAGD;AAAW;AACX;AAAc;AACd;AAAe;AACf;AAAa;AACb;AAAgB;AAChB;AAAyB;AACzB;AAAkB;AAClB;AAAW;AACX;AAAa;AACb;AAAgB;AAChB;AAAkB;AAElB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;AAqBA;AACI;;AAIY;AACA;AACA;AACA;;;;;;AAUZ;;AAIY;AACA;AACA;AACA;;;;;AAUhB;AACI;AACA;;AAGJ;AAIY;AACH;AAiCe;AACA;AACA;AACA;;AAU5B;;"}
|
package/Alert/index.cjs
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var tslib = require('tslib');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var core = require('@xanui/core');
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var index$1 = require('../Text/index.cjs');
|
|
9
|
+
var InfoIcon = require('@xanui/icons/Info');
|
|
10
|
+
var WarningIcon = require('@xanui/icons/Warning');
|
|
11
|
+
var SuccessIcon = require('@xanui/icons/CheckCircle');
|
|
12
|
+
var ErrorIcon = require('@xanui/icons/Cancel');
|
|
13
|
+
var Close = require('@xanui/icons/Close');
|
|
14
|
+
var index = require('../IconButton/index.cjs');
|
|
15
|
+
var index$2 = require('../useAlert/index.cjs');
|
|
16
|
+
|
|
17
|
+
const Alert = (_a) => {
|
|
18
|
+
var { children } = _a, rest = tslib.__rest(_a, ["children"]);
|
|
19
|
+
let [_b] = core.useInterface("Alert", rest, {
|
|
20
|
+
variant: "fill"
|
|
21
|
+
}), { title, variant, icon, color, direction, slotProps, onClose } = _b, _props = tslib.__rest(_b, ["title", "variant", "icon", "color", "direction", "slotProps", "onClose"]);
|
|
22
|
+
color !== null && color !== void 0 ? color : (color = "default");
|
|
23
|
+
direction !== null && direction !== void 0 ? direction : (direction = "row");
|
|
24
|
+
const _p = {};
|
|
25
|
+
if (title)
|
|
26
|
+
_p.title = title;
|
|
27
|
+
if (variant)
|
|
28
|
+
_p.variant = variant;
|
|
29
|
+
if (icon)
|
|
30
|
+
_p.icon = icon;
|
|
31
|
+
if (color)
|
|
32
|
+
_p.color = color;
|
|
33
|
+
if (direction)
|
|
34
|
+
_p.direction = direction;
|
|
35
|
+
const p = core.useBreakpointProps(_p);
|
|
36
|
+
title = p.title;
|
|
37
|
+
variant = p.variant;
|
|
38
|
+
icon = p.icon;
|
|
39
|
+
color = p.color;
|
|
40
|
+
direction = p.direction;
|
|
41
|
+
let isRow = direction === 'row';
|
|
42
|
+
const template = core.useColorTemplate(color, variant);
|
|
43
|
+
let iconsx = {
|
|
44
|
+
fontSize: isRow ? 22 : 40,
|
|
45
|
+
color: color === 'default' ? "text.primary" : template.primary.color
|
|
46
|
+
};
|
|
47
|
+
const icons = {
|
|
48
|
+
"info": jsxRuntime.jsx(InfoIcon, { sx: iconsx }),
|
|
49
|
+
"warning": jsxRuntime.jsx(WarningIcon, { sx: iconsx }),
|
|
50
|
+
"success": jsxRuntime.jsx(SuccessIcon, { sx: iconsx }),
|
|
51
|
+
"danger": jsxRuntime.jsx(ErrorIcon, { sx: iconsx })
|
|
52
|
+
};
|
|
53
|
+
let _icon = icons[icon] || icons[color];
|
|
54
|
+
return (jsxRuntime.jsxs(core.Tag, Object.assign({}, _props, { baseClass: "alert", sxr: Object.assign({ justifyContent: "flex-start", position: "relative", radius: 1, px: isRow ? (_icon ? .5 : 2) : 3, py: isRow ? .5 : 3, flexDirection: "column", display: 'flex' }, _props === null || _props === void 0 ? void 0 : _props.sx) }, template.primary, { children: [onClose && jsxRuntime.jsx(index, { color: color, variant: variant === 'fill' ? "fill" : "text", size: 25, sx: {
|
|
55
|
+
position: "absolute",
|
|
56
|
+
top: 5,
|
|
57
|
+
right: 5
|
|
58
|
+
}, onClick: onClose, className: "alert-close-button", children: jsxRuntime.jsx(Close, { fontSize: 18 }) }), jsxRuntime.jsxs(core.Tag, { sx: {
|
|
59
|
+
display: "flex",
|
|
60
|
+
gap: 1,
|
|
61
|
+
flexDirection: direction,
|
|
62
|
+
alignItems: isRow ? "flex-start" : "center"
|
|
63
|
+
}, baseClass: "alert-container", children: [_icon && jsxRuntime.jsx(core.Tag, { baseClass: "alert-icon", sxr: {
|
|
64
|
+
display: "flex",
|
|
65
|
+
alignItems: "center",
|
|
66
|
+
justifyContent: "center",
|
|
67
|
+
p: isRow ? 1 : 0,
|
|
68
|
+
"& svg": {
|
|
69
|
+
color: template.primary.color
|
|
70
|
+
}
|
|
71
|
+
}, children: _icon }), jsxRuntime.jsxs(core.Tag, { baseClass: "alert-content", sxr: {
|
|
72
|
+
display: "flex",
|
|
73
|
+
flexDirection: "column",
|
|
74
|
+
flex: 1,
|
|
75
|
+
color: template.primary.color,
|
|
76
|
+
py: 1,
|
|
77
|
+
textAlign: isRow ? "left" : "center",
|
|
78
|
+
gap: isRow ? 0 : 1
|
|
79
|
+
}, children: [title && jsxRuntime.jsx(jsxRuntime.Fragment, { children: React.isValidElement(title) ? jsxRuntime.jsx(core.Tag, { className: "alert-title", children: title }) : jsxRuntime.jsx(index$1, { className: "alert-title", variant: "text", sx: {
|
|
80
|
+
font: "text",
|
|
81
|
+
fontWeight: "bold!important",
|
|
82
|
+
color: template.primary.color
|
|
83
|
+
}, children: title }) }), jsxRuntime.jsx(core.Tag, { sxr: {
|
|
84
|
+
font: "button",
|
|
85
|
+
}, children: children })] })] })] })));
|
|
86
|
+
};
|
|
87
|
+
const ActionAlert = (props) => {
|
|
88
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
89
|
+
const ref = React.useRef(null);
|
|
90
|
+
const alert = index$2(Object.assign(Object.assign({}, props), { slotProps: Object.assign(Object.assign({}, props.slotProps), { modal: Object.assign(Object.assign({}, (_a = props.slotProps) === null || _a === void 0 ? void 0 : _a.modal), { slotProps: Object.assign(Object.assign({}, (_c = (_b = props.slotProps) === null || _b === void 0 ? void 0 : _b.modal) === null || _c === void 0 ? void 0 : _c.slotProps), { layer: Object.assign(Object.assign({}, (_f = (_e = (_d = props.slotProps) === null || _d === void 0 ? void 0 : _d.modal) === null || _e === void 0 ? void 0 : _e.slotProps) === null || _f === void 0 ? void 0 : _f.layer), { portal: Object.assign(Object.assign({}, (_k = (_j = (_h = (_g = props.slotProps) === null || _g === void 0 ? void 0 : _g.modal) === null || _h === void 0 ? void 0 : _h.slotProps) === null || _j === void 0 ? void 0 : _j.layer) === null || _k === void 0 ? void 0 : _k.portal), { container: ref.current || undefined }) }) }) }) }) }));
|
|
91
|
+
React.useEffect(() => {
|
|
92
|
+
if (props.open) {
|
|
93
|
+
alert.open();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
alert.close();
|
|
97
|
+
}
|
|
98
|
+
}, [props.open]);
|
|
99
|
+
return jsxRuntime.jsx(core.Tag, { ref: ref });
|
|
100
|
+
};
|
|
101
|
+
Alert.confirm = (props) => {
|
|
102
|
+
var _a;
|
|
103
|
+
const a = core.Renderar.render(ActionAlert, Object.assign(Object.assign({ open: true }, props), { slotProps: Object.assign(Object.assign({}, props.slotProps), { modal: Object.assign(Object.assign({}, (_a = props.slotProps) === null || _a === void 0 ? void 0 : _a.modal), { onClosed: () => {
|
|
104
|
+
var _a, _b, _c, _d;
|
|
105
|
+
a.unrender();
|
|
106
|
+
if ((_b = (_a = props === null || props === void 0 ? void 0 : props.slotProps) === null || _a === void 0 ? void 0 : _a.modal) === null || _b === void 0 ? void 0 : _b.onClosed) {
|
|
107
|
+
(_d = (_c = props.slotProps) === null || _c === void 0 ? void 0 : _c.modal) === null || _d === void 0 ? void 0 : _d.onClosed();
|
|
108
|
+
}
|
|
109
|
+
} }) }) }));
|
|
110
|
+
return {
|
|
111
|
+
open: () => {
|
|
112
|
+
a.updateProps({ open: true });
|
|
113
|
+
},
|
|
114
|
+
close: () => {
|
|
115
|
+
a.updateProps({ open: false });
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
module.exports = Alert;
|
|
121
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/Alert/index.tsx"],"sourcesContent":["'use client'\r\nimport { Tag, TagProps, useBreakpointProps, useColorTemplate, useInterface, useBreakpointPropsType, Renderar, UseColorTemplateType, UseColorTemplateColor } from \"@xanui/core\"\r\nimport React, { isValidElement, ReactElement, useEffect, useRef } from \"react\"\r\nimport Text from \"../Text\"\r\nimport InfoIcon from '@xanui/icons/Info';\r\nimport WarningIcon from '@xanui/icons/Warning';\r\nimport SuccessIcon from '@xanui/icons/CheckCircle';\r\nimport ErrorIcon from '@xanui/icons/Cancel';\r\nimport IconClose from '@xanui/icons/Close';\r\nimport IconButton from \"../IconButton\";\r\nimport useAlert, { UseAlerProps } from \"../useAlert\";\r\n\r\n\r\nexport type AlertProps = Omit<TagProps<\"div\">, \"content\" | \"title\" | \"direction\"> & {\r\n title?: useBreakpointPropsType<string | ReactElement>;\r\n direction?: useBreakpointPropsType<\"row\" | \"column\">;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n icon?: useBreakpointPropsType<\"info\" | \"warning\" | \"success\" | \"error\" | false | ReactElement>;\r\n onClose?: React.DOMAttributes<\"button\">['onClick'];\r\n}\r\n\r\nexport type AlertMesssageType = string | ReactElement | AlertProps\r\n\r\nconst Alert = ({ children, ...rest }: AlertProps) => {\r\n let [{\r\n title,\r\n variant,\r\n icon,\r\n color,\r\n direction,\r\n slotProps,\r\n onClose,\r\n ..._props\r\n }] = useInterface<any>(\"Alert\", rest, {\r\n variant: \"fill\"\r\n })\r\n color ??= \"default\"\r\n direction ??= \"row\"\r\n\r\n const _p: any = {}\r\n if (title) _p.title = title\r\n if (variant) _p.variant = variant\r\n if (icon) _p.icon = icon\r\n if (color) _p.color = color\r\n if (direction) _p.direction = direction\r\n\r\n const p: any = useBreakpointProps(_p)\r\n\r\n title = p.title\r\n variant = p.variant\r\n icon = p.icon\r\n color = p.color\r\n direction = p.direction\r\n\r\n let isRow = direction === 'row'\r\n\r\n\r\n const template = useColorTemplate(color, variant)\r\n\r\n let iconsx = {\r\n fontSize: isRow ? 22 : 40,\r\n color: color === 'default' ? \"text.primary\" : template.primary.color\r\n }\r\n\r\n const icons: any = {\r\n \"info\": <InfoIcon sx={iconsx} />,\r\n \"warning\": <WarningIcon sx={iconsx} />,\r\n \"success\": <SuccessIcon sx={iconsx} />,\r\n \"danger\": <ErrorIcon sx={iconsx} />\r\n }\r\n\r\n let _icon = icons[icon] || icons[color]\r\n\r\n return (\r\n <Tag\r\n {..._props}\r\n baseClass=\"alert\"\r\n sxr={{\r\n justifyContent: \"flex-start\",\r\n position: \"relative\",\r\n radius: 1,\r\n px: isRow ? (_icon ? .5 : 2) : 3,\r\n py: isRow ? .5 : 3,\r\n flexDirection: \"column\",\r\n display: 'flex',\r\n ..._props?.sx\r\n }}\r\n {...template.primary}\r\n >\r\n {\r\n onClose && <IconButton\r\n color={color}\r\n variant={variant === 'fill' ? \"fill\" : \"text\"}\r\n size={25}\r\n sx={{\r\n position: \"absolute\",\r\n top: 5,\r\n right: 5\r\n }}\r\n onClick={onClose}\r\n className=\"alert-close-button\"\r\n >\r\n <IconClose fontSize={18} />\r\n </IconButton>\r\n }\r\n <Tag\r\n sx={{\r\n display: \"flex\",\r\n gap: 1,\r\n flexDirection: direction,\r\n alignItems: isRow ? \"flex-start\" : \"center\"\r\n }}\r\n baseClass=\"alert-container\"\r\n >\r\n {\r\n _icon && <Tag\r\n baseClass=\"alert-icon\"\r\n sxr={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n p: isRow ? 1 : 0,\r\n \"& svg\": {\r\n color: template.primary.color\r\n }\r\n }}\r\n >\r\n {_icon}\r\n </Tag>\r\n }\r\n <Tag\r\n baseClass=\"alert-content\"\r\n sxr={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: 1,\r\n color: template.primary.color,\r\n py: 1,\r\n textAlign: isRow ? \"left\" : \"center\",\r\n gap: isRow ? 0 : 1\r\n }}\r\n >\r\n {title && <>\r\n {\r\n isValidElement(title) ? <Tag className=\"alert-title\">{title}</Tag> : <Text\r\n className=\"alert-title\"\r\n variant=\"text\"\r\n sx={{\r\n font: \"text\",\r\n fontWeight: \"bold!important\",\r\n color: template.primary.color\r\n }}\r\n >{title}</Text>\r\n }\r\n </>}\r\n <Tag\r\n sxr={{\r\n font: \"button\",\r\n }}\r\n >\r\n {children}\r\n </Tag>\r\n </Tag>\r\n </Tag>\r\n </Tag>\r\n )\r\n}\r\n\r\nconst ActionAlert = (props: UseAlerProps) => {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const alert = useAlert({\r\n ...props,\r\n slotProps: {\r\n ...props.slotProps,\r\n modal: {\r\n ...props.slotProps?.modal,\r\n slotProps: {\r\n ...props.slotProps?.modal?.slotProps,\r\n layer: {\r\n ...props.slotProps?.modal?.slotProps?.layer,\r\n portal: {\r\n ...props.slotProps?.modal?.slotProps?.layer?.portal,\r\n container: ref.current || undefined\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n if (props.open) {\r\n alert.open()\r\n } else {\r\n alert.close()\r\n }\r\n }, [props.open])\r\n return <Tag ref={ref}></Tag>\r\n}\r\n\r\nAlert.confirm = (props: UseAlerProps) => {\r\n const a = Renderar.render(ActionAlert as any, {\r\n open: true,\r\n ...props,\r\n slotProps: {\r\n ...props.slotProps,\r\n modal: {\r\n ...props.slotProps?.modal,\r\n onClosed: () => {\r\n a.unrender()\r\n if (props?.slotProps?.modal?.onClosed) {\r\n props.slotProps?.modal?.onClosed()\r\n }\r\n },\r\n }\r\n },\r\n })\r\n\r\n return {\r\n open: () => {\r\n a.updateProps({ open: true })\r\n },\r\n close: () => {\r\n a.updateProps({ open: false })\r\n },\r\n }\r\n}\r\n\r\nexport default Alert"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAwBA;AAAe;AACX;AAUI;;;;;AAMJ;AAAW;AACX;AAAa;AACb;AAAU;AACV;AAAW;AACX;AAAe;AAEf;AAEA;AACA;AACA;AACA;AACA;AAEA;;AAKA;;AAEI;;AAGJ;AACI;AACA;AACA;AACA;;;;AA2BgB;AACA;AACA;;AAUJ;AACA;AACA;;AAEH;AAOW;AACA;AACA;;AAEA;AACI;AACH;;AASL;AACA;AACA;AACA;AACA;;;AAGH;AAQe;AACA;AACA;;AAOR;AACH;AAQzB;AAEA;;AACI;AACA;;AAqBI;;;;;;AAKJ;AACA;AACJ;AAEA;;AACI;;;AASgB;;;AAGJ;;;;;;;;;AAahB;;"}
|
package/Alert/index.js
CHANGED
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var index = require('../IconButton/index.js');
|
|
15
|
-
var index$2 = require('../useAlert/index.js');
|
|
2
|
+
import { __rest } from 'tslib';
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
+
import { useInterface, useBreakpointProps, useColorTemplate, Tag, Renderar } from '@xanui/core';
|
|
5
|
+
import { isValidElement, useRef, useEffect } from 'react';
|
|
6
|
+
import Text from '../Text/index.js';
|
|
7
|
+
import InfoIcon from '@xanui/icons/Info';
|
|
8
|
+
import WarningIcon from '@xanui/icons/Warning';
|
|
9
|
+
import SuccessIcon from '@xanui/icons/CheckCircle';
|
|
10
|
+
import ErrorIcon from '@xanui/icons/Cancel';
|
|
11
|
+
import Close from '@xanui/icons/Close';
|
|
12
|
+
import IconButton from '../IconButton/index.js';
|
|
13
|
+
import useAlert from '../useAlert/index.js';
|
|
16
14
|
|
|
17
15
|
const Alert = (_a) => {
|
|
18
|
-
var { children } = _a, rest =
|
|
19
|
-
let [_b] =
|
|
16
|
+
var { children } = _a, rest = __rest(_a, ["children"]);
|
|
17
|
+
let [_b] = useInterface("Alert", rest, {
|
|
20
18
|
variant: "fill"
|
|
21
|
-
}), { title, variant, icon, color, direction, slotProps, onClose } = _b, _props =
|
|
19
|
+
}), { title, variant, icon, color, direction, slotProps, onClose } = _b, _props = __rest(_b, ["title", "variant", "icon", "color", "direction", "slotProps", "onClose"]);
|
|
22
20
|
color !== null && color !== void 0 ? color : (color = "default");
|
|
23
21
|
direction !== null && direction !== void 0 ? direction : (direction = "row");
|
|
24
22
|
const _p = {};
|
|
@@ -32,35 +30,35 @@ const Alert = (_a) => {
|
|
|
32
30
|
_p.color = color;
|
|
33
31
|
if (direction)
|
|
34
32
|
_p.direction = direction;
|
|
35
|
-
const p =
|
|
33
|
+
const p = useBreakpointProps(_p);
|
|
36
34
|
title = p.title;
|
|
37
35
|
variant = p.variant;
|
|
38
36
|
icon = p.icon;
|
|
39
37
|
color = p.color;
|
|
40
38
|
direction = p.direction;
|
|
41
39
|
let isRow = direction === 'row';
|
|
42
|
-
const template =
|
|
40
|
+
const template = useColorTemplate(color, variant);
|
|
43
41
|
let iconsx = {
|
|
44
42
|
fontSize: isRow ? 22 : 40,
|
|
45
43
|
color: color === 'default' ? "text.primary" : template.primary.color
|
|
46
44
|
};
|
|
47
45
|
const icons = {
|
|
48
|
-
"info":
|
|
49
|
-
"warning":
|
|
50
|
-
"success":
|
|
51
|
-
"danger":
|
|
46
|
+
"info": jsx(InfoIcon, { sx: iconsx }),
|
|
47
|
+
"warning": jsx(WarningIcon, { sx: iconsx }),
|
|
48
|
+
"success": jsx(SuccessIcon, { sx: iconsx }),
|
|
49
|
+
"danger": jsx(ErrorIcon, { sx: iconsx })
|
|
52
50
|
};
|
|
53
51
|
let _icon = icons[icon] || icons[color];
|
|
54
|
-
return (
|
|
52
|
+
return (jsxs(Tag, Object.assign({}, _props, { baseClass: "alert", sxr: Object.assign({ justifyContent: "flex-start", position: "relative", radius: 1, px: isRow ? (_icon ? .5 : 2) : 3, py: isRow ? .5 : 3, flexDirection: "column", display: 'flex' }, _props === null || _props === void 0 ? void 0 : _props.sx) }, template.primary, { children: [onClose && jsx(IconButton, { color: color, variant: variant === 'fill' ? "fill" : "text", size: 25, sx: {
|
|
55
53
|
position: "absolute",
|
|
56
54
|
top: 5,
|
|
57
55
|
right: 5
|
|
58
|
-
}, onClick: onClose, className: "alert-close-button", children:
|
|
56
|
+
}, onClick: onClose, className: "alert-close-button", children: jsx(Close, { fontSize: 18 }) }), jsxs(Tag, { sx: {
|
|
59
57
|
display: "flex",
|
|
60
58
|
gap: 1,
|
|
61
59
|
flexDirection: direction,
|
|
62
60
|
alignItems: isRow ? "flex-start" : "center"
|
|
63
|
-
}, baseClass: "alert-container", children: [_icon &&
|
|
61
|
+
}, baseClass: "alert-container", children: [_icon && jsx(Tag, { baseClass: "alert-icon", sxr: {
|
|
64
62
|
display: "flex",
|
|
65
63
|
alignItems: "center",
|
|
66
64
|
justifyContent: "center",
|
|
@@ -68,7 +66,7 @@ const Alert = (_a) => {
|
|
|
68
66
|
"& svg": {
|
|
69
67
|
color: template.primary.color
|
|
70
68
|
}
|
|
71
|
-
}, children: _icon }),
|
|
69
|
+
}, children: _icon }), jsxs(Tag, { baseClass: "alert-content", sxr: {
|
|
72
70
|
display: "flex",
|
|
73
71
|
flexDirection: "column",
|
|
74
72
|
flex: 1,
|
|
@@ -76,19 +74,19 @@ const Alert = (_a) => {
|
|
|
76
74
|
py: 1,
|
|
77
75
|
textAlign: isRow ? "left" : "center",
|
|
78
76
|
gap: isRow ? 0 : 1
|
|
79
|
-
}, children: [title &&
|
|
77
|
+
}, children: [title && jsx(Fragment, { children: isValidElement(title) ? jsx(Tag, { className: "alert-title", children: title }) : jsx(Text, { className: "alert-title", variant: "text", sx: {
|
|
80
78
|
font: "text",
|
|
81
79
|
fontWeight: "bold!important",
|
|
82
80
|
color: template.primary.color
|
|
83
|
-
}, children: title }) }),
|
|
81
|
+
}, children: title }) }), jsx(Tag, { sxr: {
|
|
84
82
|
font: "button",
|
|
85
83
|
}, children: children })] })] })] })));
|
|
86
84
|
};
|
|
87
85
|
const ActionAlert = (props) => {
|
|
88
86
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
89
|
-
const ref =
|
|
90
|
-
const alert =
|
|
91
|
-
|
|
87
|
+
const ref = useRef(null);
|
|
88
|
+
const alert = useAlert(Object.assign(Object.assign({}, props), { slotProps: Object.assign(Object.assign({}, props.slotProps), { modal: Object.assign(Object.assign({}, (_a = props.slotProps) === null || _a === void 0 ? void 0 : _a.modal), { slotProps: Object.assign(Object.assign({}, (_c = (_b = props.slotProps) === null || _b === void 0 ? void 0 : _b.modal) === null || _c === void 0 ? void 0 : _c.slotProps), { layer: Object.assign(Object.assign({}, (_f = (_e = (_d = props.slotProps) === null || _d === void 0 ? void 0 : _d.modal) === null || _e === void 0 ? void 0 : _e.slotProps) === null || _f === void 0 ? void 0 : _f.layer), { portal: Object.assign(Object.assign({}, (_k = (_j = (_h = (_g = props.slotProps) === null || _g === void 0 ? void 0 : _g.modal) === null || _h === void 0 ? void 0 : _h.slotProps) === null || _j === void 0 ? void 0 : _j.layer) === null || _k === void 0 ? void 0 : _k.portal), { container: ref.current || undefined }) }) }) }) }) }));
|
|
89
|
+
useEffect(() => {
|
|
92
90
|
if (props.open) {
|
|
93
91
|
alert.open();
|
|
94
92
|
}
|
|
@@ -96,11 +94,11 @@ const ActionAlert = (props) => {
|
|
|
96
94
|
alert.close();
|
|
97
95
|
}
|
|
98
96
|
}, [props.open]);
|
|
99
|
-
return
|
|
97
|
+
return jsx(Tag, { ref: ref });
|
|
100
98
|
};
|
|
101
99
|
Alert.confirm = (props) => {
|
|
102
100
|
var _a;
|
|
103
|
-
const a =
|
|
101
|
+
const a = Renderar.render(ActionAlert, Object.assign(Object.assign({ open: true }, props), { slotProps: Object.assign(Object.assign({}, props.slotProps), { modal: Object.assign(Object.assign({}, (_a = props.slotProps) === null || _a === void 0 ? void 0 : _a.modal), { onClosed: () => {
|
|
104
102
|
var _a, _b, _c, _d;
|
|
105
103
|
a.unrender();
|
|
106
104
|
if ((_b = (_a = props === null || props === void 0 ? void 0 : props.slotProps) === null || _a === void 0 ? void 0 : _a.modal) === null || _b === void 0 ? void 0 : _b.onClosed) {
|
|
@@ -117,5 +115,5 @@ Alert.confirm = (props) => {
|
|
|
117
115
|
};
|
|
118
116
|
};
|
|
119
117
|
|
|
120
|
-
|
|
118
|
+
export { Alert as default };
|
|
121
119
|
//# sourceMappingURL=index.js.map
|
package/Alert/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/Alert/index.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Alert/index.tsx"],"sourcesContent":["'use client'\r\nimport { Tag, TagProps, useBreakpointProps, useColorTemplate, useInterface, useBreakpointPropsType, Renderar, UseColorTemplateType, UseColorTemplateColor } from \"@xanui/core\"\r\nimport React, { isValidElement, ReactElement, useEffect, useRef } from \"react\"\r\nimport Text from \"../Text\"\r\nimport InfoIcon from '@xanui/icons/Info';\r\nimport WarningIcon from '@xanui/icons/Warning';\r\nimport SuccessIcon from '@xanui/icons/CheckCircle';\r\nimport ErrorIcon from '@xanui/icons/Cancel';\r\nimport IconClose from '@xanui/icons/Close';\r\nimport IconButton from \"../IconButton\";\r\nimport useAlert, { UseAlerProps } from \"../useAlert\";\r\n\r\n\r\nexport type AlertProps = Omit<TagProps<\"div\">, \"content\" | \"title\" | \"direction\"> & {\r\n title?: useBreakpointPropsType<string | ReactElement>;\r\n direction?: useBreakpointPropsType<\"row\" | \"column\">;\r\n variant?: useBreakpointPropsType<UseColorTemplateType>;\r\n color?: useBreakpointPropsType<UseColorTemplateColor>;\r\n icon?: useBreakpointPropsType<\"info\" | \"warning\" | \"success\" | \"error\" | false | ReactElement>;\r\n onClose?: React.DOMAttributes<\"button\">['onClick'];\r\n}\r\n\r\nexport type AlertMesssageType = string | ReactElement | AlertProps\r\n\r\nconst Alert = ({ children, ...rest }: AlertProps) => {\r\n let [{\r\n title,\r\n variant,\r\n icon,\r\n color,\r\n direction,\r\n slotProps,\r\n onClose,\r\n ..._props\r\n }] = useInterface<any>(\"Alert\", rest, {\r\n variant: \"fill\"\r\n })\r\n color ??= \"default\"\r\n direction ??= \"row\"\r\n\r\n const _p: any = {}\r\n if (title) _p.title = title\r\n if (variant) _p.variant = variant\r\n if (icon) _p.icon = icon\r\n if (color) _p.color = color\r\n if (direction) _p.direction = direction\r\n\r\n const p: any = useBreakpointProps(_p)\r\n\r\n title = p.title\r\n variant = p.variant\r\n icon = p.icon\r\n color = p.color\r\n direction = p.direction\r\n\r\n let isRow = direction === 'row'\r\n\r\n\r\n const template = useColorTemplate(color, variant)\r\n\r\n let iconsx = {\r\n fontSize: isRow ? 22 : 40,\r\n color: color === 'default' ? \"text.primary\" : template.primary.color\r\n }\r\n\r\n const icons: any = {\r\n \"info\": <InfoIcon sx={iconsx} />,\r\n \"warning\": <WarningIcon sx={iconsx} />,\r\n \"success\": <SuccessIcon sx={iconsx} />,\r\n \"danger\": <ErrorIcon sx={iconsx} />\r\n }\r\n\r\n let _icon = icons[icon] || icons[color]\r\n\r\n return (\r\n <Tag\r\n {..._props}\r\n baseClass=\"alert\"\r\n sxr={{\r\n justifyContent: \"flex-start\",\r\n position: \"relative\",\r\n radius: 1,\r\n px: isRow ? (_icon ? .5 : 2) : 3,\r\n py: isRow ? .5 : 3,\r\n flexDirection: \"column\",\r\n display: 'flex',\r\n ..._props?.sx\r\n }}\r\n {...template.primary}\r\n >\r\n {\r\n onClose && <IconButton\r\n color={color}\r\n variant={variant === 'fill' ? \"fill\" : \"text\"}\r\n size={25}\r\n sx={{\r\n position: \"absolute\",\r\n top: 5,\r\n right: 5\r\n }}\r\n onClick={onClose}\r\n className=\"alert-close-button\"\r\n >\r\n <IconClose fontSize={18} />\r\n </IconButton>\r\n }\r\n <Tag\r\n sx={{\r\n display: \"flex\",\r\n gap: 1,\r\n flexDirection: direction,\r\n alignItems: isRow ? \"flex-start\" : \"center\"\r\n }}\r\n baseClass=\"alert-container\"\r\n >\r\n {\r\n _icon && <Tag\r\n baseClass=\"alert-icon\"\r\n sxr={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n p: isRow ? 1 : 0,\r\n \"& svg\": {\r\n color: template.primary.color\r\n }\r\n }}\r\n >\r\n {_icon}\r\n </Tag>\r\n }\r\n <Tag\r\n baseClass=\"alert-content\"\r\n sxr={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: 1,\r\n color: template.primary.color,\r\n py: 1,\r\n textAlign: isRow ? \"left\" : \"center\",\r\n gap: isRow ? 0 : 1\r\n }}\r\n >\r\n {title && <>\r\n {\r\n isValidElement(title) ? <Tag className=\"alert-title\">{title}</Tag> : <Text\r\n className=\"alert-title\"\r\n variant=\"text\"\r\n sx={{\r\n font: \"text\",\r\n fontWeight: \"bold!important\",\r\n color: template.primary.color\r\n }}\r\n >{title}</Text>\r\n }\r\n </>}\r\n <Tag\r\n sxr={{\r\n font: \"button\",\r\n }}\r\n >\r\n {children}\r\n </Tag>\r\n </Tag>\r\n </Tag>\r\n </Tag>\r\n )\r\n}\r\n\r\nconst ActionAlert = (props: UseAlerProps) => {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const alert = useAlert({\r\n ...props,\r\n slotProps: {\r\n ...props.slotProps,\r\n modal: {\r\n ...props.slotProps?.modal,\r\n slotProps: {\r\n ...props.slotProps?.modal?.slotProps,\r\n layer: {\r\n ...props.slotProps?.modal?.slotProps?.layer,\r\n portal: {\r\n ...props.slotProps?.modal?.slotProps?.layer?.portal,\r\n container: ref.current || undefined\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n if (props.open) {\r\n alert.open()\r\n } else {\r\n alert.close()\r\n }\r\n }, [props.open])\r\n return <Tag ref={ref}></Tag>\r\n}\r\n\r\nAlert.confirm = (props: UseAlerProps) => {\r\n const a = Renderar.render(ActionAlert as any, {\r\n open: true,\r\n ...props,\r\n slotProps: {\r\n ...props.slotProps,\r\n modal: {\r\n ...props.slotProps?.modal,\r\n onClosed: () => {\r\n a.unrender()\r\n if (props?.slotProps?.modal?.onClosed) {\r\n props.slotProps?.modal?.onClosed()\r\n }\r\n },\r\n }\r\n },\r\n })\r\n\r\n return {\r\n open: () => {\r\n a.updateProps({ open: true })\r\n },\r\n close: () => {\r\n a.updateProps({ open: false })\r\n },\r\n }\r\n}\r\n\r\nexport default Alert"],"names":[],"mappings":";;;;;;;;;;;;;;AAwBA;AAAe;AACX;AAUI;;;;;AAMJ;AAAW;AACX;AAAa;AACb;AAAU;AACV;AAAW;AACX;AAAe;AAEf;AAEA;AACA;AACA;AACA;AACA;AAEA;;AAKA;;AAEI;;AAGJ;AACI;AACA;AACA;AACA;;;;AA2BgB;AACA;AACA;;AAUJ;AACA;AACA;;AAEH;AAOW;AACA;AACA;;AAEA;AACI;AACH;;AASL;AACA;AACA;AACA;AACA;;;AAGH;AAQe;AACA;AACA;;AAOR;AACH;AAQzB;AAEA;;AACI;AACA;;AAqBI;;;;;;AAKJ;AACA;AACJ;AAEA;;AACI;;;AASgB;;;AAGJ;;;;;;;;;AAahB;;"}
|