@ttoss/components 2.10.0 → 2.10.1

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.
@@ -1,156 +1,5 @@
1
1
  /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
- import { Icon } from "../chunk-2R7AUPJL.js";
3
- import { __name } from "../chunk-V4MHYKRI.js";
4
-
5
- // src/components/NotificationCard/NotificationCard.tsx
6
- import { Box, Card, CloseButton, Link, Tag, Text } from "@ttoss/ui";
7
- import * as React from "react";
8
- var NotificationCard = /* @__PURE__ */__name(props => {
9
- const sxMap = {
10
- success: {
11
- card: {
12
- backgroundColor: "feedback.background.positive.default",
13
- borderColor: "feedback.border.positive.default"
14
- }
15
- },
16
- error: {
17
- card: {
18
- backgroundColor: "feedback.background.negative.default",
19
- borderColor: "feedback.border.negative.default"
20
- }
21
- },
22
- warning: {
23
- card: {
24
- backgroundColor: "feedback.background.caution.default",
25
- borderColor: "feedback.border.caution.default"
26
- }
27
- },
28
- info: {
29
- card: {
30
- backgroundColor: "feedback.background.primary.default",
31
- borderColor: "feedback.border.primary.default"
32
- }
33
- },
34
- neutral: {
35
- card: {
36
- backgroundColor: "feedback.background.primary.default",
37
- borderColor: "feedback.border.primary.default"
38
- }
39
- }
40
- };
41
- const icon = {
42
- success: "success-circle",
43
- error: "error",
44
- warning: "warning-alt",
45
- info: "info",
46
- neutral: "info"
47
- };
48
- const hasCaption = Boolean(props.caption);
49
- const hasActions = Boolean(props.actions && props.actions.length > 0);
50
- const hasTitle = Boolean(props.title);
51
- const shouldCenterVerticallyWithoutTitle = !hasCaption && !hasActions && !hasTitle;
52
- const shouldCenterVerticallyWithTitle = !hasCaption && !hasActions && hasTitle;
53
- const shouldAddMinHeight = !hasCaption && !hasActions;
54
- return /* @__PURE__ */React.createElement(Card, {
55
- sx: {
56
- ...sxMap[props.type].card,
57
- width: "full"
58
- }
59
- }, props.title && /* @__PURE__ */React.createElement(Card.Title, {
60
- sx: {
61
- display: "flex",
62
- justifyContent: "space-between",
63
- alignItems: "center",
64
- fontSize: ["md", "xl"],
65
- paddingY: ["1", "2", "4"],
66
- paddingX: ["2", "4", "8"]
67
- }
68
- }, /* @__PURE__ */React.createElement(Text, {
69
- sx: {
70
- display: "inline-flex",
71
- alignItems: "flex-start",
72
- gap: "2",
73
- flexDirection: "row",
74
- flexWrap: "wrap"
75
- }
76
- }, /* @__PURE__ */React.createElement(Box, {
77
- sx: {
78
- display: "flex",
79
- alignItems: "center",
80
- gap: "2"
81
- }
82
- }, /* @__PURE__ */React.createElement(Icon, {
83
- icon: icon[props.type]
84
- }), props.title), props.tags && (Array.isArray(props.tags) ? props.tags.length > 0 : true) && (Array.isArray(props.tags) ? props.tags.map((tag, index) => {
85
- return /* @__PURE__ */React.createElement(Tag, {
86
- key: index
87
- }, tag);
88
- }) : /* @__PURE__ */React.createElement(Tag, null, props.tags))), props.onClose && /* @__PURE__ */React.createElement(Box, {
89
- sx: {
90
- marginLeft: "auto"
91
- }
92
- }, /* @__PURE__ */React.createElement(CloseButton, {
93
- onClick: props.onClose
94
- }))), /* @__PURE__ */React.createElement(Card.Body, {
95
- sx: {
96
- ...sxMap[props.type].card,
97
- display: "flex",
98
- flexDirection: "column",
99
- gap: "2",
100
- paddingY: ["1", "2", "4"],
101
- paddingX: ["2", "4", "8"]
102
- }
103
- }, /* @__PURE__ */React.createElement(Box, {
104
- sx: {
105
- display: "flex",
106
- justifyContent: "space-between",
107
- minHeight: shouldAddMinHeight ? "40px" : "auto",
108
- alignItems: shouldCenterVerticallyWithoutTitle ? "center" : shouldCenterVerticallyWithTitle ? "center" : "flex-start",
109
- width: "100%",
110
- gap: "4"
111
- }
112
- }, /* @__PURE__ */React.createElement(Box, {
113
- sx: {
114
- flex: 1
115
- }
116
- }, /* @__PURE__ */React.createElement(Text, {
117
- sx: {
118
- fontSize: ["sm", "md"]
119
- }
120
- }, props.message))), props.actions && props.actions.length > 0 && /* @__PURE__ */React.createElement(Box, {
121
- sx: {
122
- display: "flex",
123
- flexDirection: "column",
124
- gap: 2,
125
- mt: 2
126
- }
127
- }, props.actions.map((action, index) => {
128
- return action.action === "open_url" ? /* @__PURE__ */React.createElement(Link, {
129
- key: index,
130
- href: action.url,
131
- target: "_blank",
132
- rel: "noopener noreferrer",
133
- sx: {
134
- color: "action.text.accent.default",
135
- cursor: "pointer"
136
- }
137
- }, action.label || "Acessar") : null;
138
- })), props.caption && /* @__PURE__ */React.createElement(Box, {
139
- sx: {
140
- whiteSpace: "nowrap",
141
- mt: 6
142
- }
143
- }, /* @__PURE__ */React.createElement(Text, {
144
- sx: {
145
- fontSize: "xs",
146
- color: "text.secondary"
147
- }
148
- }, props.caption)), !props.title && props.onClose && /* @__PURE__ */React.createElement(Box, {
149
- sx: {
150
- alignSelf: "flex-end"
151
- }
152
- }, /* @__PURE__ */React.createElement(CloseButton, {
153
- onClick: props.onClose
154
- }))));
155
- }, "NotificationCard");
2
+ import { NotificationCard } from "../chunk-4GBVRL7E.js";
3
+ import "../chunk-2R7AUPJL.js";
4
+ import "../chunk-V4MHYKRI.js";
156
5
  export { NotificationCard };
@@ -1,164 +1,11 @@
1
1
  /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
+ import { NotificationCard } from "../chunk-4GBVRL7E.js";
2
3
  import { Icon } from "../chunk-2R7AUPJL.js";
3
4
  import { __name } from "../chunk-V4MHYKRI.js";
4
5
 
5
6
  // src/components/NotificationsMenu/NotificationsMenu.tsx
6
- import { Box as Box2, Button, Card as Card2, Flex, IconButton, Text as Text2 } from "@ttoss/ui";
7
- import * as React2 from "react";
8
-
9
- // src/components/NotificationCard/NotificationCard.tsx
10
- import { Box, Card, CloseButton, Link, Tag, Text } from "@ttoss/ui";
7
+ import { Box, Button, Card, Flex, IconButton, Text } from "@ttoss/ui";
11
8
  import * as React from "react";
12
- var NotificationCard = /* @__PURE__ */__name(props => {
13
- const sxMap = {
14
- success: {
15
- card: {
16
- backgroundColor: "feedback.background.positive.default",
17
- borderColor: "feedback.border.positive.default"
18
- }
19
- },
20
- error: {
21
- card: {
22
- backgroundColor: "feedback.background.negative.default",
23
- borderColor: "feedback.border.negative.default"
24
- }
25
- },
26
- warning: {
27
- card: {
28
- backgroundColor: "feedback.background.caution.default",
29
- borderColor: "feedback.border.caution.default"
30
- }
31
- },
32
- info: {
33
- card: {
34
- backgroundColor: "feedback.background.primary.default",
35
- borderColor: "feedback.border.primary.default"
36
- }
37
- },
38
- neutral: {
39
- card: {
40
- backgroundColor: "feedback.background.primary.default",
41
- borderColor: "feedback.border.primary.default"
42
- }
43
- }
44
- };
45
- const icon = {
46
- success: "success-circle",
47
- error: "error",
48
- warning: "warning-alt",
49
- info: "info",
50
- neutral: "info"
51
- };
52
- const hasCaption = Boolean(props.caption);
53
- const hasActions = Boolean(props.actions && props.actions.length > 0);
54
- const hasTitle = Boolean(props.title);
55
- const shouldCenterVerticallyWithoutTitle = !hasCaption && !hasActions && !hasTitle;
56
- const shouldCenterVerticallyWithTitle = !hasCaption && !hasActions && hasTitle;
57
- const shouldAddMinHeight = !hasCaption && !hasActions;
58
- return /* @__PURE__ */React.createElement(Card, {
59
- sx: {
60
- ...sxMap[props.type].card,
61
- width: "full"
62
- }
63
- }, props.title && /* @__PURE__ */React.createElement(Card.Title, {
64
- sx: {
65
- display: "flex",
66
- justifyContent: "space-between",
67
- alignItems: "center",
68
- fontSize: ["md", "xl"],
69
- paddingY: ["1", "2", "4"],
70
- paddingX: ["2", "4", "8"]
71
- }
72
- }, /* @__PURE__ */React.createElement(Text, {
73
- sx: {
74
- display: "inline-flex",
75
- alignItems: "flex-start",
76
- gap: "2",
77
- flexDirection: "row",
78
- flexWrap: "wrap"
79
- }
80
- }, /* @__PURE__ */React.createElement(Box, {
81
- sx: {
82
- display: "flex",
83
- alignItems: "center",
84
- gap: "2"
85
- }
86
- }, /* @__PURE__ */React.createElement(Icon, {
87
- icon: icon[props.type]
88
- }), props.title), props.tags && (Array.isArray(props.tags) ? props.tags.length > 0 : true) && (Array.isArray(props.tags) ? props.tags.map((tag, index) => {
89
- return /* @__PURE__ */React.createElement(Tag, {
90
- key: index
91
- }, tag);
92
- }) : /* @__PURE__ */React.createElement(Tag, null, props.tags))), props.onClose && /* @__PURE__ */React.createElement(Box, {
93
- sx: {
94
- marginLeft: "auto"
95
- }
96
- }, /* @__PURE__ */React.createElement(CloseButton, {
97
- onClick: props.onClose
98
- }))), /* @__PURE__ */React.createElement(Card.Body, {
99
- sx: {
100
- ...sxMap[props.type].card,
101
- display: "flex",
102
- flexDirection: "column",
103
- gap: "2",
104
- paddingY: ["1", "2", "4"],
105
- paddingX: ["2", "4", "8"]
106
- }
107
- }, /* @__PURE__ */React.createElement(Box, {
108
- sx: {
109
- display: "flex",
110
- justifyContent: "space-between",
111
- minHeight: shouldAddMinHeight ? "40px" : "auto",
112
- alignItems: shouldCenterVerticallyWithoutTitle ? "center" : shouldCenterVerticallyWithTitle ? "center" : "flex-start",
113
- width: "100%",
114
- gap: "4"
115
- }
116
- }, /* @__PURE__ */React.createElement(Box, {
117
- sx: {
118
- flex: 1
119
- }
120
- }, /* @__PURE__ */React.createElement(Text, {
121
- sx: {
122
- fontSize: ["sm", "md"]
123
- }
124
- }, props.message))), props.actions && props.actions.length > 0 && /* @__PURE__ */React.createElement(Box, {
125
- sx: {
126
- display: "flex",
127
- flexDirection: "column",
128
- gap: 2,
129
- mt: 2
130
- }
131
- }, props.actions.map((action, index) => {
132
- return action.action === "open_url" ? /* @__PURE__ */React.createElement(Link, {
133
- key: index,
134
- href: action.url,
135
- target: "_blank",
136
- rel: "noopener noreferrer",
137
- sx: {
138
- color: "action.text.accent.default",
139
- cursor: "pointer"
140
- }
141
- }, action.label || "Acessar") : null;
142
- })), props.caption && /* @__PURE__ */React.createElement(Box, {
143
- sx: {
144
- whiteSpace: "nowrap",
145
- mt: 6
146
- }
147
- }, /* @__PURE__ */React.createElement(Text, {
148
- sx: {
149
- fontSize: "xs",
150
- color: "text.secondary"
151
- }
152
- }, props.caption)), !props.title && props.onClose && /* @__PURE__ */React.createElement(Box, {
153
- sx: {
154
- alignSelf: "flex-end"
155
- }
156
- }, /* @__PURE__ */React.createElement(CloseButton, {
157
- onClick: props.onClose
158
- }))));
159
- }, "NotificationCard");
160
-
161
- // src/components/NotificationsMenu/NotificationsMenu.tsx
162
9
  var NotificationsMenu = /* @__PURE__ */__name(({
163
10
  notifications,
164
11
  defaultOpen = false,
@@ -169,12 +16,12 @@ var NotificationsMenu = /* @__PURE__ */__name(({
169
16
  onClose,
170
17
  onClearAll
171
18
  }) => {
172
- const [isOpen, setIsOpen] = React2.useState(defaultOpen);
173
- const [openToLeft, setOpenToLeft] = React2.useState(false);
174
- const buttonRef = React2.useRef(null);
175
- const containerRef = React2.useRef(null);
176
- const loadMoreRef = React2.useRef(null);
177
- const [showCount, setShowCount] = React2.useState(true);
19
+ const [isOpen, setIsOpen] = React.useState(defaultOpen);
20
+ const [openToLeft, setOpenToLeft] = React.useState(false);
21
+ const buttonRef = React.useRef(null);
22
+ const containerRef = React.useRef(null);
23
+ const loadMoreRef = React.useRef(null);
24
+ const [showCount, setShowCount] = React.useState(true);
178
25
  const togglePanel = /* @__PURE__ */__name(() => {
179
26
  setIsOpen(prev => {
180
27
  const next = !prev;
@@ -182,7 +29,7 @@ var NotificationsMenu = /* @__PURE__ */__name(({
182
29
  return next;
183
30
  });
184
31
  }, "togglePanel");
185
- React2.useEffect(() => {
32
+ React.useEffect(() => {
186
33
  if (!isOpen || !buttonRef.current) return;
187
34
  const rect = buttonRef.current.getBoundingClientRect();
188
35
  const spaceRight = window.innerWidth - rect.right;
@@ -190,7 +37,7 @@ var NotificationsMenu = /* @__PURE__ */__name(({
190
37
  setShowCount(false);
191
38
  setOpenToLeft(spaceRight < 500 && spaceLeft > spaceRight);
192
39
  }, [isOpen]);
193
- React2.useEffect(() => {
40
+ React.useEffect(() => {
194
41
  if (!hasMore || !onLoadMore || !loadMoreRef.current) return;
195
42
  const observer = new IntersectionObserver(entries => {
196
43
  if (entries[0].isIntersecting) {
@@ -208,7 +55,7 @@ var NotificationsMenu = /* @__PURE__ */__name(({
208
55
  }
209
56
  };
210
57
  }, [hasMore, onLoadMore, notifications.length]);
211
- React2.useEffect(() => {
58
+ React.useEffect(() => {
212
59
  if (!isOpen) return;
213
60
  const handleClickOutside = /* @__PURE__ */__name(event => {
214
61
  if (containerRef.current && !containerRef.current.contains(event.target) && buttonRef.current && !buttonRef.current.contains(event.target)) {
@@ -222,16 +69,16 @@ var NotificationsMenu = /* @__PURE__ */__name(({
222
69
  document.removeEventListener("mousedown", handleClickOutside);
223
70
  };
224
71
  }, [isOpen, onOpenChange, onClose]);
225
- return /* @__PURE__ */React2.createElement(Flex, {
72
+ return /* @__PURE__ */React.createElement(Flex, {
226
73
  sx: {
227
74
  position: "relative",
228
75
  justifyContent: "flex-start"
229
76
  }
230
- }, /* @__PURE__ */React2.createElement(Box2, {
77
+ }, /* @__PURE__ */React.createElement(Box, {
231
78
  sx: {
232
79
  position: "relative"
233
80
  }
234
- }, /* @__PURE__ */React2.createElement(IconButton, {
81
+ }, /* @__PURE__ */React.createElement(IconButton, {
235
82
  ref: buttonRef,
236
83
  variant: "ghost",
237
84
  sx: {
@@ -244,15 +91,15 @@ var NotificationsMenu = /* @__PURE__ */__name(({
244
91
  }
245
92
  },
246
93
  onClick: togglePanel
247
- }, /* @__PURE__ */React2.createElement(Box2, {
94
+ }, /* @__PURE__ */React.createElement(Box, {
248
95
  sx: {
249
96
  color: "display.text.muted.default"
250
97
  }
251
- }, /* @__PURE__ */React2.createElement(Icon, {
98
+ }, /* @__PURE__ */React.createElement(Icon, {
252
99
  icon: "mdi:bell-outline",
253
100
  width: 22,
254
101
  height: 22
255
- })), count > 0 && showCount && /* @__PURE__ */React2.createElement(Box2, {
102
+ })), count > 0 && showCount && /* @__PURE__ */React.createElement(Box, {
256
103
  sx: {
257
104
  position: "absolute",
258
105
  top: "-2px",
@@ -270,9 +117,9 @@ var NotificationsMenu = /* @__PURE__ */__name(({
270
117
  justifyContent: "center",
271
118
  lineHeight: 1
272
119
  }
273
- }, count > 99 ? "99+" : count)), isOpen && /* @__PURE__ */React2.createElement("div", {
120
+ }, count > 99 ? "99+" : count)), isOpen && /* @__PURE__ */React.createElement("div", {
274
121
  ref: containerRef
275
- }, /* @__PURE__ */React2.createElement(Card2, {
122
+ }, /* @__PURE__ */React.createElement(Card, {
276
123
  sx: {
277
124
  position: "absolute",
278
125
  top: "calc(100% + 8px)",
@@ -287,22 +134,22 @@ var NotificationsMenu = /* @__PURE__ */__name(({
287
134
  borderRadius: "2xl",
288
135
  backgroundColor: "display.background.secondary.default"
289
136
  }
290
- }, /* @__PURE__ */React2.createElement(Box2, {
137
+ }, /* @__PURE__ */React.createElement(Box, {
291
138
  sx: {
292
139
  width: "100%"
293
140
  }
294
- }, /* @__PURE__ */React2.createElement(Flex, {
141
+ }, /* @__PURE__ */React.createElement(Flex, {
295
142
  sx: {
296
143
  flexDirection: "column",
297
144
  gap: 4
298
145
  }
299
- }, notifications.length > 0 && onClearAll && /* @__PURE__ */React2.createElement(Flex, {
146
+ }, notifications.length > 0 && onClearAll && /* @__PURE__ */React.createElement(Flex, {
300
147
  sx: {
301
148
  justifyContent: "flex-end",
302
149
  p: 2,
303
150
  marginBottom: -2
304
151
  }
305
- }, /* @__PURE__ */React2.createElement(Button, {
152
+ }, /* @__PURE__ */React.createElement(Button, {
306
153
  variant: "ghost",
307
154
  sx: {
308
155
  borderRadius: "md",
@@ -323,24 +170,24 @@ var NotificationsMenu = /* @__PURE__ */__name(({
323
170
  }
324
171
  },
325
172
  onClick: onClearAll
326
- }, /* @__PURE__ */React2.createElement(Icon, {
173
+ }, /* @__PURE__ */React.createElement(Icon, {
327
174
  icon: "delete",
328
175
  width: 16,
329
176
  height: 16
330
- }), /* @__PURE__ */React2.createElement(Text2, {
177
+ }), /* @__PURE__ */React.createElement(Text, {
331
178
  sx: {
332
179
  ml: -1,
333
180
  marginTop: -0.4,
334
181
  fontSize: "sm"
335
182
  }
336
- }, "Limpar Tudo"))), notifications.length === 0 ? /* @__PURE__ */React2.createElement(Text2, {
183
+ }, "Limpar Tudo"))), notifications.length === 0 ? /* @__PURE__ */React.createElement(Text, {
337
184
  sx: {
338
185
  color: "display.text.muted.default",
339
186
  textAlign: "center",
340
187
  p: 4
341
188
  }
342
189
  }, "Nenhuma notifica\xE7\xE3o") : notifications.map(notification => {
343
- return /* @__PURE__ */React2.createElement(NotificationCard, {
190
+ return /* @__PURE__ */React.createElement(NotificationCard, {
344
191
  key: notification.id,
345
192
  ...notification,
346
193
  onClose: /* @__PURE__ */__name(() => {
@@ -348,7 +195,7 @@ var NotificationsMenu = /* @__PURE__ */__name(({
348
195
  onClose?.();
349
196
  }, "onClose")
350
197
  });
351
- }), hasMore && /* @__PURE__ */React2.createElement("div", {
198
+ }), hasMore && /* @__PURE__ */React.createElement("div", {
352
199
  ref: loadMoreRef,
353
200
  style: {
354
201
  height: 1
@@ -0,0 +1,156 @@
1
+ /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
+ import { Icon } from "./chunk-2R7AUPJL.js";
3
+ import { __name } from "./chunk-V4MHYKRI.js";
4
+
5
+ // src/components/NotificationCard/NotificationCard.tsx
6
+ import { Box, Card, CloseButton, Link, Tag, Text } from "@ttoss/ui";
7
+ import * as React from "react";
8
+ var NotificationCard = /* @__PURE__ */__name(props => {
9
+ const sxMap = {
10
+ success: {
11
+ card: {
12
+ backgroundColor: "feedback.background.positive.default",
13
+ borderColor: "feedback.border.positive.default"
14
+ }
15
+ },
16
+ error: {
17
+ card: {
18
+ backgroundColor: "feedback.background.negative.default",
19
+ borderColor: "feedback.border.negative.default"
20
+ }
21
+ },
22
+ warning: {
23
+ card: {
24
+ backgroundColor: "feedback.background.caution.default",
25
+ borderColor: "feedback.border.caution.default"
26
+ }
27
+ },
28
+ info: {
29
+ card: {
30
+ backgroundColor: "feedback.background.primary.default",
31
+ borderColor: "feedback.border.primary.default"
32
+ }
33
+ },
34
+ neutral: {
35
+ card: {
36
+ backgroundColor: "feedback.background.primary.default",
37
+ borderColor: "feedback.border.primary.default"
38
+ }
39
+ }
40
+ };
41
+ const icon = {
42
+ success: "success-circle",
43
+ error: "error",
44
+ warning: "warning-alt",
45
+ info: "info",
46
+ neutral: "info"
47
+ };
48
+ const hasCaption = Boolean(props.caption);
49
+ const hasActions = Boolean(props.actions && props.actions.length > 0);
50
+ const hasTitle = Boolean(props.title);
51
+ const shouldCenterVerticallyWithoutTitle = !hasCaption && !hasActions && !hasTitle;
52
+ const shouldCenterVerticallyWithTitle = !hasCaption && !hasActions && hasTitle;
53
+ const shouldAddMinHeight = !hasCaption && !hasActions;
54
+ return /* @__PURE__ */React.createElement(Card, {
55
+ sx: {
56
+ ...sxMap[props.type].card,
57
+ width: "full"
58
+ }
59
+ }, props.title && /* @__PURE__ */React.createElement(Card.Title, {
60
+ sx: {
61
+ display: "flex",
62
+ justifyContent: "space-between",
63
+ alignItems: "center",
64
+ fontSize: ["md", "xl"],
65
+ paddingY: ["1", "2", "4"],
66
+ paddingX: ["2", "4", "8"]
67
+ }
68
+ }, /* @__PURE__ */React.createElement(Text, {
69
+ sx: {
70
+ display: "inline-flex",
71
+ alignItems: "flex-start",
72
+ gap: "2",
73
+ flexDirection: "row",
74
+ flexWrap: "wrap"
75
+ }
76
+ }, /* @__PURE__ */React.createElement(Box, {
77
+ sx: {
78
+ display: "flex",
79
+ alignItems: "center",
80
+ gap: "2"
81
+ }
82
+ }, /* @__PURE__ */React.createElement(Icon, {
83
+ icon: icon[props.type]
84
+ }), props.title), props.tags && (Array.isArray(props.tags) ? props.tags.length > 0 : true) && (Array.isArray(props.tags) ? props.tags.map((tag, index) => {
85
+ return /* @__PURE__ */React.createElement(Tag, {
86
+ key: index
87
+ }, tag);
88
+ }) : /* @__PURE__ */React.createElement(Tag, null, props.tags))), props.onClose && /* @__PURE__ */React.createElement(Box, {
89
+ sx: {
90
+ marginLeft: "auto"
91
+ }
92
+ }, /* @__PURE__ */React.createElement(CloseButton, {
93
+ onClick: props.onClose
94
+ }))), /* @__PURE__ */React.createElement(Card.Body, {
95
+ sx: {
96
+ ...sxMap[props.type].card,
97
+ display: "flex",
98
+ flexDirection: "column",
99
+ gap: "2",
100
+ paddingY: ["1", "2", "4"],
101
+ paddingX: ["2", "4", "8"]
102
+ }
103
+ }, /* @__PURE__ */React.createElement(Box, {
104
+ sx: {
105
+ display: "flex",
106
+ justifyContent: "space-between",
107
+ minHeight: shouldAddMinHeight ? "40px" : "auto",
108
+ alignItems: shouldCenterVerticallyWithoutTitle ? "center" : shouldCenterVerticallyWithTitle ? "center" : "flex-start",
109
+ width: "100%",
110
+ gap: "4"
111
+ }
112
+ }, /* @__PURE__ */React.createElement(Box, {
113
+ sx: {
114
+ flex: 1
115
+ }
116
+ }, /* @__PURE__ */React.createElement(Text, {
117
+ sx: {
118
+ fontSize: ["sm", "md"]
119
+ }
120
+ }, props.message))), props.actions && props.actions.length > 0 && /* @__PURE__ */React.createElement(Box, {
121
+ sx: {
122
+ display: "flex",
123
+ flexDirection: "column",
124
+ gap: 2,
125
+ mt: 2
126
+ }
127
+ }, props.actions.map((action, index) => {
128
+ return action.action === "open_url" ? /* @__PURE__ */React.createElement(Link, {
129
+ key: index,
130
+ href: action.url,
131
+ target: "_blank",
132
+ rel: "noopener noreferrer",
133
+ sx: {
134
+ color: "action.text.accent.default",
135
+ cursor: "pointer"
136
+ }
137
+ }, action.label || "Acessar") : null;
138
+ })), props.caption && /* @__PURE__ */React.createElement(Box, {
139
+ sx: {
140
+ whiteSpace: "nowrap",
141
+ mt: 6
142
+ }
143
+ }, /* @__PURE__ */React.createElement(Text, {
144
+ sx: {
145
+ fontSize: "xs",
146
+ color: "text.secondary"
147
+ }
148
+ }, props.caption)), !props.title && props.onClose && /* @__PURE__ */React.createElement(Box, {
149
+ sx: {
150
+ alignSelf: "flex-end"
151
+ }
152
+ }, /* @__PURE__ */React.createElement(CloseButton, {
153
+ onClick: props.onClose
154
+ }))));
155
+ }, "NotificationCard");
156
+ export { NotificationCard };