@ttoss/components 2.14.20 → 2.14.22

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.
Files changed (74) hide show
  1. package/dist/Accordion/index.d.mts +157 -0
  2. package/dist/Accordion/index.mjs +175 -0
  3. package/dist/DatePicker/index.d.mts +26 -0
  4. package/dist/DatePicker/index.mjs +339 -0
  5. package/dist/Drawer/index.d.mts +17 -0
  6. package/dist/{esm/Drawer/index.js → Drawer/index.mjs} +21 -14
  7. package/dist/EnhancedTitle/{index.d.ts → index.d.mts} +57 -47
  8. package/dist/EnhancedTitle/index.mjs +234 -0
  9. package/dist/FileUploader/index.d.mts +77 -0
  10. package/dist/FileUploader/index.mjs +386 -0
  11. package/dist/InstallPwa/index.d.mts +13 -0
  12. package/dist/InstallPwa/index.mjs +64 -0
  13. package/dist/JsonEditor/index.d.mts +3 -0
  14. package/dist/{esm/JsonEditor/index.js → JsonEditor/index.mjs} +0 -3
  15. package/dist/JsonView/index.d.mts +3 -0
  16. package/dist/{esm/JsonView/index.js → JsonView/index.mjs} +0 -3
  17. package/dist/List/{index.d.ts → index.d.mts} +9 -6
  18. package/dist/List/index.mjs +34 -0
  19. package/dist/LockedOverlay/index.d.mts +162 -0
  20. package/dist/LockedOverlay/index.mjs +386 -0
  21. package/dist/Markdown/index.d.mts +16 -0
  22. package/dist/Markdown/index.mjs +26 -0
  23. package/dist/Menu/index.d.mts +16 -0
  24. package/dist/{esm/Menu/index.js → Menu/index.mjs} +56 -51
  25. package/dist/MetricCard/index.d.mts +153 -0
  26. package/dist/MetricCard/index.mjs +408 -0
  27. package/dist/Modal/index.d.mts +11 -0
  28. package/dist/{esm/Modal/index.js → Modal/index.mjs} +11 -12
  29. package/dist/NavList/index.d.mts +64 -0
  30. package/dist/{esm/NavList/index.js → NavList/index.mjs} +79 -73
  31. package/dist/NotificationCard/index.d.mts +22 -0
  32. package/dist/NotificationCard/index.mjs +173 -0
  33. package/dist/NotificationsMenu/index.d.mts +47 -0
  34. package/dist/NotificationsMenu/index.mjs +380 -0
  35. package/dist/Search/index.d.mts +18 -0
  36. package/dist/{esm/Search/index.js → Search/index.mjs} +11 -9
  37. package/dist/SpotlightCard/index.d.mts +36 -0
  38. package/dist/SpotlightCard/index.mjs +219 -0
  39. package/dist/Table/index.d.mts +17 -0
  40. package/dist/Table/index.mjs +64 -0
  41. package/dist/Tabs/index.d.mts +17 -0
  42. package/dist/{esm/Tabs/index.js → Tabs/index.mjs} +24 -12
  43. package/dist/Toast/index.d.mts +8 -0
  44. package/dist/Toast/index.mjs +43 -0
  45. package/package.json +15 -15
  46. package/dist/Accordion/index.d.ts +0 -148
  47. package/dist/DatePicker/index.d.ts +0 -20
  48. package/dist/Drawer/index.d.ts +0 -12
  49. package/dist/LockedOverlay/index.d.ts +0 -151
  50. package/dist/Markdown/index.d.ts +0 -11
  51. package/dist/Menu/index.d.ts +0 -11
  52. package/dist/MetricCard/index.d.ts +0 -148
  53. package/dist/Modal/index.d.ts +0 -10
  54. package/dist/NavList/index.d.ts +0 -55
  55. package/dist/NotificationCard/index.d.ts +0 -21
  56. package/dist/NotificationsMenu/index.d.ts +0 -36
  57. package/dist/Search/index.d.ts +0 -11
  58. package/dist/SpotlightCard/index.d.ts +0 -27
  59. package/dist/Table/index.d.ts +0 -16
  60. package/dist/esm/Accordion/index.js +0 -119
  61. package/dist/esm/DatePicker/index.js +0 -331
  62. package/dist/esm/EnhancedTitle/index.js +0 -190
  63. package/dist/esm/FileUploader/index.js +0 -401
  64. package/dist/esm/InstallPwa/index.js +0 -61
  65. package/dist/esm/List/index.js +0 -30
  66. package/dist/esm/LockedOverlay/index.js +0 -316
  67. package/dist/esm/Markdown/index.js +0 -23
  68. package/dist/esm/MetricCard/index.js +0 -327
  69. package/dist/esm/NotificationCard/index.js +0 -156
  70. package/dist/esm/NotificationsMenu/index.js +0 -359
  71. package/dist/esm/SpotlightCard/index.js +0 -212
  72. package/dist/esm/Table/index.js +0 -63
  73. package/dist/esm/Toast/index.js +0 -38
  74. package/dist/esm/chunk-V4MHYKRI.js +0 -7
@@ -1,331 +0,0 @@
1
- /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
- import { __name } from "../chunk-V4MHYKRI.js";
3
-
4
- // src/components/DatePicker/DatePicker.tsx
5
- import { Icon } from "@ttoss/react-icons";
6
- import { Box, Button, Flex, Label, Text } from "@ttoss/ui";
7
- import * as React from "react";
8
- import { DayPicker } from "react-day-picker";
9
- import { ptBR } from "react-day-picker/locale";
10
- var formatDate = /* @__PURE__ */__name(date => {
11
- return date.toLocaleDateString("pt-BR");
12
- }, "formatDate");
13
- var DatePicker = /* @__PURE__ */__name(({
14
- label,
15
- value,
16
- presets,
17
- onChange,
18
- disabled
19
- }) => {
20
- const [date, setDate] = React.useState(value);
21
- const [pickerSelection, setPickerSelection] = React.useState(value);
22
- const [isOpen, setIsOpen] = React.useState(false);
23
- const containerRef = React.useRef(null);
24
- const isResettingRangeRef = React.useRef(false);
25
- React.useEffect(() => {
26
- setDate(value);
27
- }, [value]);
28
- React.useEffect(() => {
29
- if (isOpen) {
30
- setPickerSelection(date);
31
- }
32
- }, [isOpen, date]);
33
- React.useEffect(() => {
34
- const handleClickOutside = /* @__PURE__ */__name(event => {
35
- if (containerRef.current && !containerRef.current.contains(event.target)) {
36
- setIsOpen(false);
37
- }
38
- }, "handleClickOutside");
39
- if (isOpen) {
40
- document.addEventListener("mousedown", handleClickOutside);
41
- }
42
- return () => {
43
- document.removeEventListener("mousedown", handleClickOutside);
44
- };
45
- }, [isOpen]);
46
- const commitSelection = /* @__PURE__ */__name(range => {
47
- setDate(range);
48
- onChange?.(range);
49
- }, "commitSelection");
50
- const handlePresetClick = /* @__PURE__ */__name(preset => {
51
- const range = preset.getValue();
52
- commitSelection(range);
53
- setIsOpen(false);
54
- }, "handlePresetClick");
55
- const handleDayPickerSelect = /* @__PURE__ */__name(selected => {
56
- if (isResettingRangeRef.current && !selected && pickerSelection?.from && !pickerSelection?.to) {
57
- commitSelection({
58
- from: pickerSelection.from,
59
- to: pickerSelection.from
60
- });
61
- setIsOpen(false);
62
- return;
63
- }
64
- isResettingRangeRef.current = false;
65
- const hadFullRange = date?.from && date?.to;
66
- const hadPartialPicker = pickerSelection?.from && !pickerSelection?.to;
67
- if (hadFullRange && !hadPartialPicker && selected?.from && selected?.to) {
68
- const clickedDay = selected.from.getTime() === date?.from?.getTime() ? selected.to : selected.from;
69
- setPickerSelection({
70
- from: clickedDay,
71
- to: void 0
72
- });
73
- return;
74
- }
75
- setPickerSelection(selected);
76
- if (selected?.from && selected?.to) {
77
- commitSelection(selected);
78
- setIsOpen(false);
79
- } else if (!selected?.from && !selected?.to) {
80
- commitSelection(void 0);
81
- }
82
- }, "handleDayPickerSelect");
83
- const handleDayClick = /* @__PURE__ */__name(day => {
84
- if (date?.from && date?.to) {
85
- isResettingRangeRef.current = true;
86
- setPickerSelection({
87
- from: day,
88
- to: void 0
89
- });
90
- }
91
- }, "handleDayClick");
92
- return /* @__PURE__ */React.createElement(Flex, {
93
- ref: containerRef,
94
- sx: {
95
- flexDirection: "column",
96
- gap: "1",
97
- position: "relative"
98
- }
99
- }, label && /* @__PURE__ */React.createElement(Label, null, label), /* @__PURE__ */React.createElement(Button, {
100
- disabled,
101
- variant: "secondary",
102
- onClick: /* @__PURE__ */__name(() => {
103
- return setIsOpen(!isOpen);
104
- }, "onClick"),
105
- sx: {
106
- width: "100%",
107
- justifyContent: "space-between",
108
- fontSize: ["14px", "14px"],
109
- fontWeight: 400,
110
- backgroundColor: "white",
111
- padding: "8px 12px",
112
- borderRadius: "lg",
113
- border: "md",
114
- borderColor: "display.border.muted.default",
115
- height: "40px",
116
- minWidth: ["auto", "240px"],
117
- "&:disabled": {
118
- borderColor: "display.border.muted.default"
119
- }
120
- }
121
- }, date?.from ? date.to ? /* @__PURE__ */React.createElement(Text, {
122
- sx: {
123
- fontSize: ["12px", "14px"],
124
- overflow: "hidden",
125
- textOverflow: "ellipsis",
126
- whiteSpace: "nowrap"
127
- }
128
- }, formatDate(date.from), " - ", formatDate(date.to)) : /* @__PURE__ */React.createElement(Text, {
129
- sx: {
130
- fontSize: ["12px", "14px"],
131
- overflow: "hidden",
132
- textOverflow: "ellipsis",
133
- whiteSpace: "nowrap"
134
- }
135
- }, formatDate(date.from)) : /* @__PURE__ */React.createElement(Text, {
136
- sx: {
137
- fontSize: ["12px", "14px"]
138
- }
139
- }, "Selecione o per\xEDodo")), isOpen && /* @__PURE__ */React.createElement(React.Fragment, null, /* @__PURE__ */React.createElement(Box, {
140
- sx: {
141
- display: ["block", "none"],
142
- position: "fixed",
143
- top: 0,
144
- left: 0,
145
- right: 0,
146
- bottom: 0,
147
- backgroundColor: "rgba(0, 0, 0, 0.5)",
148
- zIndex: 49
149
- },
150
- onClick: /* @__PURE__ */__name(() => {
151
- return setIsOpen(false);
152
- }, "onClick")
153
- }), /* @__PURE__ */React.createElement(Box, {
154
- sx: {
155
- position: ["fixed", "absolute"],
156
- top: ["auto", "calc(100% + 4px)"],
157
- bottom: ["0", "auto"],
158
- left: ["0", "0"],
159
- right: ["0", "auto"],
160
- width: ["100%", "auto"],
161
- maxWidth: ["100%", "650px"],
162
- zIndex: 50,
163
- backgroundColor: "white",
164
- border: "1px solid",
165
- borderColor: "display.border.muted.default",
166
- borderRadius: ["16px 16px 0 0", "8px"],
167
- boxShadow: ["0 -4px 6px -1px rgba(0, 0, 0, 0.1)", "0 4px 6px -1px rgba(0, 0, 0, 0.1)"],
168
- overflow: "hidden",
169
- maxHeight: ["80vh", "none"],
170
- display: "flex",
171
- flexDirection: "column"
172
- }
173
- }, /* @__PURE__ */React.createElement(Flex, {
174
- sx: {
175
- display: ["flex", "none"],
176
- justifyContent: "space-between",
177
- alignItems: "center",
178
- padding: "12px 16px",
179
- borderBottom: "1px solid",
180
- borderColor: "display.border.muted.default"
181
- }
182
- }, /* @__PURE__ */React.createElement(Text, {
183
- sx: {
184
- fontSize: "16px",
185
- fontWeight: 600
186
- }
187
- }, label || "Selecione o per\xEDodo"), /* @__PURE__ */React.createElement(Button, {
188
- variant: "ghost",
189
- onClick: /* @__PURE__ */__name(() => {
190
- return setIsOpen(false);
191
- }, "onClick"),
192
- sx: {
193
- padding: "4px",
194
- minWidth: "auto",
195
- width: "32px",
196
- height: "32px"
197
- }
198
- }, /* @__PURE__ */React.createElement(Icon, {
199
- icon: "mdi:close",
200
- size: 20
201
- }))), /* @__PURE__ */React.createElement(Flex, {
202
- sx: {
203
- minHeight: "300px",
204
- flexDirection: ["column", "row"],
205
- maxHeight: ["calc(80vh - 60px)", "none"],
206
- overflow: ["auto", "visible"]
207
- }
208
- }, presets && presets.length > 0 && /* @__PURE__ */React.createElement(Flex, {
209
- sx: {
210
- flexDirection: ["row", "column"],
211
- gap: "4px",
212
- padding: ["8px", "12px"],
213
- borderRight: ["none", "1px solid"],
214
- borderBottom: ["1px solid", "none"],
215
- borderColor: "display.border.muted.default",
216
- backgroundColor: "navigation.background.muted.default",
217
- minWidth: ["auto", "140px"],
218
- width: ["100%", "auto"],
219
- overflowX: ["auto", "visible"],
220
- overflowY: ["visible", "auto"],
221
- flexWrap: ["nowrap", "wrap"],
222
- "@media (max-width: 768px)": {
223
- "&::-webkit-scrollbar": {
224
- display: "none"
225
- },
226
- scrollbarWidth: "none"
227
- }
228
- }
229
- }, presets?.map(preset => {
230
- return /* @__PURE__ */React.createElement(Button, {
231
- key: preset.label,
232
- variant: "ghost",
233
- onClick: /* @__PURE__ */__name(() => {
234
- return handlePresetClick(preset);
235
- }, "onClick"),
236
- sx: {
237
- justifyContent: ["center", "flex-start"],
238
- fontSize: ["12px", "14px"],
239
- fontWeight: 400,
240
- padding: ["6px 8px", "8px 12px"],
241
- color: "display.text.secondary.default",
242
- backgroundColor: "transparent",
243
- whiteSpace: "nowrap",
244
- minWidth: ["auto", "auto"],
245
- flexShrink: 0,
246
- "&:hover": {
247
- backgroundColor: "input.background.muted.active"
248
- }
249
- }
250
- }, preset.label);
251
- })), /* @__PURE__ */React.createElement(Box, {
252
- sx: {
253
- padding: ["12px", "16px"],
254
- flex: 1,
255
- overflow: "auto",
256
- "& .rdp": {
257
- margin: 0
258
- },
259
- "& .rdp-month": {
260
- width: "100%"
261
- },
262
- "& .rdp-day_button": {
263
- borderRadius: "50% !important",
264
- border: "none",
265
- fontSize: ["12px", "14px"],
266
- width: ["32px", "36px"],
267
- height: ["32px", "36px"],
268
- cursor: "pointer"
269
- },
270
- "& .rdp-range_start .rdp-day_button": {
271
- backgroundColor: "action.background.accent.default",
272
- color: "black"
273
- },
274
- "& .rdp-range_end .rdp-day_button": {
275
- backgroundColor: "action.background.accent.default",
276
- color: "black"
277
- },
278
- "& .rdp-day_button:hover": {
279
- backgroundColor: "action.background.primary.default",
280
- color: "action.text.primary.default"
281
- },
282
- "& .rdp-day_selected": {
283
- backgroundColor: "action.background.accent.default",
284
- color: "white",
285
- fontWeight: 600
286
- },
287
- "& .rdp-day_range_middle": {
288
- backgroundColor: "action.background.accent.default",
289
- color: "white"
290
- },
291
- "& .rdp-day_range_start, & .rdp-day_range_end": {
292
- backgroundColor: "action.background.accent.default",
293
- color: "white",
294
- fontWeight: 600
295
- },
296
- "& .rdp-weekday": {
297
- fontSize: ["10px", "12px"],
298
- fontWeight: 500,
299
- color: "display.text.muted.default"
300
- },
301
- "& .rdp-month_caption": {
302
- fontSize: ["12px", "14px"],
303
- fontWeight: 600,
304
- marginBottom: ["12px", "16px"]
305
- },
306
- "@media (max-width: 768px)": {
307
- "& .rdp-caption": {
308
- marginBottom: "8px"
309
- },
310
- "& .rdp-table": {
311
- width: "100%"
312
- }
313
- }
314
- }
315
- }, /* @__PURE__ */React.createElement(DayPicker, {
316
- disabled,
317
- mode: "range",
318
- locale: ptBR,
319
- selected: pickerSelection?.from ? {
320
- from: pickerSelection.from,
321
- to: pickerSelection.to ?? pickerSelection.from
322
- } : void 0,
323
- onSelect: /* @__PURE__ */__name(selected => {
324
- return handleDayPickerSelect(selected);
325
- }, "onSelect"),
326
- onDayClick: handleDayClick,
327
- weekStartsOn: 1,
328
- showOutsideDays: true
329
- }))))));
330
- }, "DatePicker");
331
- export { DatePicker };
@@ -1,190 +0,0 @@
1
- /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
- import * as React from 'react';
3
- import { __name } from "../chunk-V4MHYKRI.js";
4
-
5
- // src/components/EnhancedTitle/EnhancedTitle.tsx
6
- import { Icon } from "@ttoss/react-icons";
7
- import { Badge, Flex, Heading, Stack, Text } from "@ttoss/ui";
8
-
9
- // src/components/EnhancedTitle/EnhancedTitle.styles.ts
10
- import { keyframes } from "@ttoss/ui";
11
- var gradientFlow = keyframes({
12
- "0%": {
13
- backgroundPosition: "0% 50%"
14
- },
15
- "50%": {
16
- backgroundPosition: "100% 50%"
17
- },
18
- "100%": {
19
- backgroundPosition: "0% 50%"
20
- }
21
- });
22
- var getAccentGradientBackground = /* @__PURE__ */__name(t => {
23
- const theme = t;
24
- const start = theme.colors?.action?.background?.accent?.default || theme.colors?.input?.background?.accent?.default;
25
- if (!start) return void 0;
26
- const middle = theme.colors?.action?.background?.accent?.active || theme.colors?.input?.background?.accent?.active || start;
27
- return `linear-gradient(270deg, ${start}, ${middle}, ${start})`;
28
- }, "getAccentGradientBackground");
29
- var getPrimaryGradientBackground = /* @__PURE__ */__name(t => {
30
- const theme = t;
31
- const start = theme.colors?.action?.background?.primary?.default;
32
- if (!start) return void 0;
33
- const middle = theme.colors?.action?.background?.secondary?.default || start;
34
- return `linear-gradient(270deg, ${start}, ${middle}, ${start})`;
35
- }, "getPrimaryGradientBackground");
36
- var getEnhancedTitleIconSx = /* @__PURE__ */__name(variant => {
37
- const variantStyles = {
38
- "spotlight-accent": {
39
- backgroundColor: "input.background.accent.default",
40
- color: "action.text.accent.default",
41
- borderColor: "display.border.muted.default",
42
- background: getAccentGradientBackground,
43
- backgroundSize: "400% 400%",
44
- animation: `${gradientFlow} 6s ease infinite`
45
- },
46
- "spotlight-primary": {
47
- backgroundColor: "action.background.primary.default",
48
- color: "display.text.accent.default",
49
- borderColor: "display.border.muted.default",
50
- background: getPrimaryGradientBackground,
51
- backgroundSize: "400% 400%",
52
- animation: `${gradientFlow} 6s ease infinite`
53
- },
54
- primary: {
55
- backgroundColor: "action.background.primary.default",
56
- color: "action.text.primary.default",
57
- borderColor: "display.border.muted.default"
58
- },
59
- secondary: {
60
- backgroundColor: "action.background.secondary.default",
61
- color: "action.text.primary.default",
62
- borderColor: "display.border.muted.default"
63
- },
64
- accent: {
65
- backgroundColor: "action.background.accent.default",
66
- color: "action.text.accent.default",
67
- borderColor: "display.border.muted.default"
68
- },
69
- positive: {
70
- backgroundColor: "display.bg.positive.boldest",
71
- color: "display.fg.positive.bolder",
72
- borderColor: "display.border.muted.default"
73
- },
74
- negative: {
75
- backgroundColor: "display.bg.negative.boldest",
76
- color: "display.fg.negative.bolder",
77
- borderColor: "display.border.muted.default"
78
- },
79
- informative: {
80
- backgroundColor: "display.bg.informative.boldest",
81
- color: "display.fg.informative.bolder",
82
- borderColor: "display.border.muted.default"
83
- },
84
- muted: {
85
- backgroundColor: "display.bg.muted.boldest",
86
- color: "display.fg.muted.bolder",
87
- borderColor: "display.border.muted.default"
88
- }
89
- };
90
- return {
91
- flexShrink: 0,
92
- alignItems: "center",
93
- justifyContent: "center",
94
- borderRadius: "2xl",
95
- border: "md",
96
- width: "56px",
97
- height: "56px",
98
- ...variantStyles[variant]
99
- };
100
- }, "getEnhancedTitleIconSx");
101
-
102
- // src/components/EnhancedTitle/EnhancedTitle.tsx
103
- var EnhancedTitle = /* @__PURE__ */__name(({
104
- variant = "spotlight-primary",
105
- icon,
106
- title,
107
- description,
108
- frontTitle,
109
- topBadges = [],
110
- bottomBadges = []
111
- }) => {
112
- return /* @__PURE__ */React.createElement(Stack, {
113
- sx: {
114
- paddingY: "6",
115
- paddingX: "6",
116
- width: "full"
117
- }
118
- }, /* @__PURE__ */React.createElement(Flex, {
119
- sx: {
120
- gap: "6",
121
- alignItems: "flex-start",
122
- flexDirection: ["column", "row"]
123
- }
124
- }, icon && /* @__PURE__ */React.createElement(Flex, {
125
- sx: getEnhancedTitleIconSx(variant)
126
- }, /* @__PURE__ */React.createElement(Icon, {
127
- icon,
128
- width: 24,
129
- height: 24
130
- })), /* @__PURE__ */React.createElement(Flex, {
131
- sx: {
132
- flexDirection: "column",
133
- gap: ["4", "5"],
134
- flex: 1
135
- }
136
- }, topBadges.length > 0 && /* @__PURE__ */React.createElement(Flex, {
137
- sx: {
138
- flexWrap: "wrap",
139
- gap: "2",
140
- alignItems: "center"
141
- }
142
- }, topBadges.map((badge, index) => {
143
- return /* @__PURE__ */React.createElement(Badge, {
144
- key: index,
145
- icon: badge.icon,
146
- variant: badge.variant ?? "muted",
147
- sx: {
148
- borderRadius: "full"
149
- }
150
- }, badge.label);
151
- })), /* @__PURE__ */React.createElement(Flex, {
152
- sx: {
153
- flexDirection: ["column", "row"],
154
- alignItems: ["flex-start", "baseline"],
155
- gap: ["1", "3"]
156
- }
157
- }, /* @__PURE__ */React.createElement(Heading, {
158
- as: "h2",
159
- sx: {
160
- fontSize: "4xl",
161
- fontWeight: "semibold",
162
- color: "display.text.primary.default"
163
- }
164
- }, title), frontTitle && /* @__PURE__ */React.createElement(Text, {
165
- sx: {
166
- fontSize: "xl",
167
- color: "display.text.secondary.default"
168
- }
169
- }, frontTitle)), description && /* @__PURE__ */React.createElement(Text, {
170
- sx: {
171
- fontSize: "md",
172
- color: "display.text.secondary.default"
173
- }
174
- }, description), bottomBadges.length > 0 && /* @__PURE__ */React.createElement(Flex, {
175
- sx: {
176
- flexWrap: "wrap",
177
- gap: "2"
178
- }
179
- }, bottomBadges.map((badge, index) => {
180
- return /* @__PURE__ */React.createElement(Badge, {
181
- key: index,
182
- icon: badge.icon ?? "fluent:checkmark-24-filled",
183
- variant: badge.variant ?? "muted",
184
- sx: {
185
- borderRadius: "full"
186
- }
187
- }, badge.label);
188
- })))));
189
- }, "EnhancedTitle");
190
- export { EnhancedTitle };