@tecsinapse/cortex-react 1.16.0-beta.6 → 1.16.1-beta.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.
Files changed (55) hide show
  1. package/dist/cjs/components/Accordion/Trigger.js +6 -6
  2. package/dist/cjs/components/Avatar.js +1 -1
  3. package/dist/cjs/components/Breadcrumbs/BreadcrumbItem.js +1 -1
  4. package/dist/cjs/components/Calendar/CalendarGrid.js +1 -1
  5. package/dist/cjs/components/ColorPicker.js +9 -18
  6. package/dist/cjs/components/Kanban.js +1 -1
  7. package/dist/cjs/components/Popover/Content.js +1 -1
  8. package/dist/cjs/components/Select/Popover.js +1 -1
  9. package/dist/cjs/components/Skeleton.js +1 -1
  10. package/dist/cjs/components/Stepper/Root.js +1 -1
  11. package/dist/cjs/components/TimePicker/TimePickerInput.js +1 -1
  12. package/dist/cjs/components/Uploader/Dropzone.js +3 -3
  13. package/dist/cjs/components/Uploader/Files.js +1 -1
  14. package/dist/cjs/components/Uploader/Manager.js +2 -2
  15. package/dist/cjs/components/Uploader/Modal.js +1 -1
  16. package/dist/cjs/components/Uploader/Upload.js +2 -2
  17. package/dist/cjs/hooks/useFileUpload.js +10 -3
  18. package/dist/cjs/styles/calendar-cell.js +2 -2
  19. package/dist/cjs/styles/date-picker-input-base.js +1 -1
  20. package/dist/cjs/styles/date-segment.js +2 -2
  21. package/dist/cjs/styles/groupButton.js +3 -3
  22. package/dist/cjs/styles/menubar.js +8 -8
  23. package/dist/cjs/styles/progressBar.js +1 -1
  24. package/dist/cjs/styles/stepNodeVariants.js +2 -2
  25. package/dist/cjs/styles/time-field-input.js +1 -1
  26. package/dist/esm/components/Accordion/Trigger.js +6 -6
  27. package/dist/esm/components/Avatar.js +1 -1
  28. package/dist/esm/components/Breadcrumbs/BreadcrumbItem.js +1 -1
  29. package/dist/esm/components/Calendar/CalendarGrid.js +1 -1
  30. package/dist/esm/components/ColorPicker.js +9 -18
  31. package/dist/esm/components/Kanban.js +1 -1
  32. package/dist/esm/components/Popover/Content.js +1 -1
  33. package/dist/esm/components/Select/Popover.js +1 -1
  34. package/dist/esm/components/Skeleton.js +1 -1
  35. package/dist/esm/components/Stepper/Root.js +1 -1
  36. package/dist/esm/components/TimePicker/TimePickerInput.js +1 -1
  37. package/dist/esm/components/Uploader/Dropzone.js +3 -3
  38. package/dist/esm/components/Uploader/Files.js +1 -1
  39. package/dist/esm/components/Uploader/Manager.js +2 -2
  40. package/dist/esm/components/Uploader/Modal.js +1 -1
  41. package/dist/esm/components/Uploader/Upload.js +2 -2
  42. package/dist/esm/hooks/useFileUpload.js +10 -3
  43. package/dist/esm/styles/calendar-cell.js +2 -2
  44. package/dist/esm/styles/date-picker-input-base.js +1 -1
  45. package/dist/esm/styles/date-segment.js +2 -2
  46. package/dist/esm/styles/groupButton.js +3 -3
  47. package/dist/esm/styles/menubar.js +8 -8
  48. package/dist/esm/styles/progressBar.js +1 -1
  49. package/dist/esm/styles/stepNodeVariants.js +2 -2
  50. package/dist/esm/styles/time-field-input.js +1 -1
  51. package/dist/types/components/Uploader/Manager.d.ts +1 -1
  52. package/dist/types/components/Uploader/index.d.ts +1 -1
  53. package/dist/types/components/Uploader/types.d.ts +1 -1
  54. package/dist/types/hooks/useFileUpload.d.ts +2 -2
  55. package/package.json +3 -3
@@ -35,7 +35,7 @@ const AccordionTrigger = ({
35
35
  "div",
36
36
  {
37
37
  className: clsx(
38
- "flex justify-between align-center border-content-minimal cursor-pointer",
38
+ "flex justify-between align-center border-secondary-light cursor-pointer",
39
39
  { "mr-deca": floating && direction === "horizontal" },
40
40
  { "mb-deca": floating && direction === "vertical" },
41
41
  { "border-r flex-col px-mili": direction === "horizontal" },
@@ -47,12 +47,12 @@ const AccordionTrigger = ({
47
47
  "div",
48
48
  {
49
49
  className: clsx(
50
- "rounded-mili border border-content-minimal flex align-center justify-center p-micro",
50
+ "rounded-mili border border-secondary-light flex align-center justify-center p-micro",
51
51
  {
52
- "absolute -translate-x-micro translate-y-deca bg-surface-overlay": floating && direction === "horizontal"
52
+ "absolute -translate-x-micro translate-y-deca bg-white": floating && direction === "horizontal"
53
53
  },
54
54
  {
55
- "absolute -translate-y-micro translate-x-deca bg-surface-overlay": floating && direction === "vertical"
55
+ "absolute -translate-y-micro translate-x-deca bg-white": floating && direction === "vertical"
56
56
  },
57
57
  className
58
58
  ),
@@ -60,7 +60,7 @@ const AccordionTrigger = ({
60
60
  lia.LiaAngleRightSolid,
61
61
  {
62
62
  className: clsx(
63
- "text-content-low transition-transform duration-200",
63
+ "text-secondary-medium transition-transform duration-200",
64
64
  {
65
65
  "rotate-180": invertedArrow ? !open : open
66
66
  }
@@ -70,7 +70,7 @@ const AccordionTrigger = ({
70
70
  lia.LiaAngleDownSolid,
71
71
  {
72
72
  className: clsx(
73
- "text-content-low transition-transform duration-200",
73
+ "text-secondary-medium transition-transform duration-200",
74
74
  {
75
75
  "rotate-180": invertedArrow ? !open : open
76
76
  }
@@ -16,7 +16,7 @@ const Avatar = ({ src, name, className, ...rest }) => {
16
16
  {
17
17
  ...rest,
18
18
  className: clsx(
19
- "rounded-pill bg-content-medium h-mega flex items-center justify-center cursor-pointer aspect-square",
19
+ "rounded-pill bg-secondary-dark h-mega flex items-center justify-center cursor-pointer aspect-square",
20
20
  className
21
21
  ),
22
22
  children: src && !hasError ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -17,7 +17,7 @@ const BreadcrumbItem = ({
17
17
  {
18
18
  className: clsx(
19
19
  "no-underline",
20
- isLast ? "text-content-low cursor-default" : "text-content-medium cursor-pointer"
20
+ isLast ? "text-secondary-medium cursor-default" : "text-secondary-xdark cursor-pointer"
21
21
  ),
22
22
  children: title
23
23
  }
@@ -23,7 +23,7 @@ const CalendarGrid = ({ state }) => {
23
23
  return /* @__PURE__ */ jsxRuntime.jsx(
24
24
  "div",
25
25
  {
26
- className: "bg-surface-overlay rounded-micro px-deca py-mili",
26
+ className: "bg-white rounded-micro px-deca py-mili",
27
27
  "data-testid": "calendar-grid",
28
28
  children: /* @__PURE__ */ jsxRuntime.jsxs("table", { ...gridProps, className: "border-separate border-spacing-y-nano", children: [
29
29
  /* @__PURE__ */ jsxRuntime.jsx("thead", { ...headerProps, children: /* @__PURE__ */ jsxRuntime.jsx(CalendarGridHeaderRow.CalendarGridHeaderRow, { weekDays }) }),
@@ -6,28 +6,19 @@ var React = require('react');
6
6
 
7
7
  const Box = React.forwardRef((props, ref) => {
8
8
  const { id, className, ...rest } = props;
9
- return /* @__PURE__ */ jsxRuntime.jsx(
10
- "div",
9
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx("w-tera h-kilo border overflow-hidden relative", className), children: /* @__PURE__ */ jsxRuntime.jsx(
10
+ "input",
11
11
  {
12
- className: clsx(
13
- "w-tera h-kilo border overflow-hidden relative",
14
- className
15
- ),
16
- children: /* @__PURE__ */ jsxRuntime.jsx(
17
- "input",
18
- {
19
- ...rest,
20
- id,
21
- type: "color",
22
- className: "bg-transparent cursor-pointer disabled:opacity-50 disabled:cursor-default absolute -top-1.5 -right-1 w-peta h-giga",
23
- ref
24
- }
25
- )
12
+ ...rest,
13
+ id,
14
+ type: "color",
15
+ className: "bg-transparent cursor-pointer disabled:opacity-50 disabled:cursor-default absolute -top-1.5 -right-1 w-peta h-giga",
16
+ ref
26
17
  }
27
- );
18
+ ) });
28
19
  });
29
20
  const Face = ({ children }) => {
30
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-mili p-mili shadow-default bg-default flex flex-row items-center gap-2", children });
21
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-mili p-mili shadow-default bg-white flex flex-row items-center gap-2", children });
31
22
  };
32
23
  const Label = ({
33
24
  children,
@@ -9,7 +9,7 @@ const Root = ({ children, className, ...rest }) => {
9
9
  {
10
10
  ...rest,
11
11
  className: clsx.clsx(
12
- "border border-dashed border-content-low rounded-mili bg-content-inverse overflow-hidden",
12
+ "border border-dashed border-secondary-medium rounded-mili bg-secondary-xlight overflow-hidden",
13
13
  className
14
14
  ),
15
15
  children
@@ -28,7 +28,7 @@ const PopoverContent = ({
28
28
  ref: refs.setFloating,
29
29
  ...getFloatingProps(),
30
30
  className: clsx(
31
- "border border-gray-200 bg-surface-inverse p-0 rounded-md shadow-default z-popover",
31
+ "border border-gray-200 bg-black p-[0px] rounded-md shadow-default z-popover",
32
32
  className
33
33
  ),
34
34
  style: {
@@ -11,7 +11,7 @@ const SelectPopover = ({ children }) => {
11
11
  return /* @__PURE__ */ jsxRuntime.jsx(react.FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
12
12
  index.Popover.Content,
13
13
  {
14
- className: "bg-surface-overlay max-h-[30vh] overflow-y-auto gap-y-mili flex flex-col p-0",
14
+ className: "bg-white max-h-[30vh] overflow-y-auto gap-y-mili flex flex-col p-0",
15
15
  style: {
16
16
  width: triggerWidth ? `${triggerWidth}px` : "auto",
17
17
  zIndex: 9999
@@ -9,7 +9,7 @@ const Skeleton = ({ className, children, ...rest }) => {
9
9
  {
10
10
  ...rest,
11
11
  "data-testid": "skeleton",
12
- className: clsx("animate-pulse bg-content-minimal", className),
12
+ className: clsx("animate-pulse bg-secondary-light", className),
13
13
  children
14
14
  }
15
15
  );
@@ -58,7 +58,7 @@ const Root = ({
58
58
  "div",
59
59
  {
60
60
  className: clsx(
61
- "flex w-full space-x-2 bg-surface-overlay p-4 pb-2 rounded-mili",
61
+ "flex w-full space-x-2 bg-white p-4 pb-2 rounded-mili",
62
62
  className
63
63
  ),
64
64
  children: React.Children.map(children, renderNode)
@@ -62,7 +62,7 @@ const TimePickerInputWithPopover = (props) => {
62
62
  /* @__PURE__ */ jsxRuntime.jsx(
63
63
  index.Popover.Content,
64
64
  {
65
- className: "bg-surface-overlay shadow-default border-none p-deca flex flex-col",
65
+ className: "bg-white shadow-default border-none p-deca flex flex-col",
66
66
  initialFocus: -1,
67
67
  children: /* @__PURE__ */ jsxRuntime.jsx(
68
68
  TimePickerSelector.TimePickerSelector,
@@ -19,7 +19,7 @@ const Dropzone = ({
19
19
  {
20
20
  ...getRootProps(),
21
21
  className: clsx(
22
- "bg-surface-overlay w-full border-dashed border-2 p-deca flex flex-col justify-center rounded-mili overflow-auto h-[18rem]",
22
+ "bg-white w-full border-dashed border-2 p-deca flex flex-col justify-center rounded-mili overflow-auto h-[18rem]",
23
23
  {
24
24
  "border-success-medium bg-gray-100": isDragActive
25
25
  }
@@ -27,7 +27,7 @@ const Dropzone = ({
27
27
  children: [
28
28
  /* @__PURE__ */ jsxRuntime.jsx("input", { ...getInputProps() }),
29
29
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center text-center items-center", children: [
30
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center", children: [
30
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
31
31
  /* @__PURE__ */ jsxRuntime.jsx(
32
32
  hi2.HiOutlineCloudArrowUp,
33
33
  {
@@ -38,7 +38,7 @@ const Dropzone = ({
38
38
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-semibold", "data-testid": "select-dropzone", children: selectFileText })
39
39
  ] }),
40
40
  hasButton ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-centi", children: [
41
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-content-low", children: dropText }),
41
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-secondary-medium", children: dropText }),
42
42
  isFileLimitReached ? /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { text: "Voc\xEA s\xF3 pode selecionar um \xFAnico arquivo.", children: /* @__PURE__ */ jsxRuntime.jsx(
43
43
  "button",
44
44
  {
@@ -8,7 +8,7 @@ const Files = ({
8
8
  onDelete,
9
9
  uploadProgressText = "Upload(s) in progress"
10
10
  }) => {
11
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-surface-overlay w-full border-2 p-deca flex flex-col overflow-y-auto rounded-mili h-[18rem]", children: [
11
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white w-full border-2 p-deca flex flex-col overflow-y-auto rounded-mili h-[18rem]", children: [
12
12
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-mili items-center mb-deca", children: [
13
13
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center w-deca h-deca bg-primary-medium rounded-full text-micro text-white", children: `${files.length}` }),
14
14
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-md font-semibold", "data-testid": "upload-progress", children: uploadProgressText })
@@ -15,7 +15,7 @@ const Manager = ({
15
15
  files,
16
16
  onDelete,
17
17
  uploadProgressText = "Upload(s) in progress",
18
- uploadSuccessText = "Upload(s) completed",
18
+ uploadResultText = "Upload(s) completed",
19
19
  onClose
20
20
  }) => {
21
21
  const {
@@ -47,7 +47,7 @@ const Manager = ({
47
47
  children: min ? /* @__PURE__ */ jsxRuntime.jsx(io5.IoChevronUp, {}) : /* @__PURE__ */ jsxRuntime.jsx(io5.IoChevronDown, {})
48
48
  }
49
49
  ),
50
- /* @__PURE__ */ jsxRuntime.jsx("h3", { "data-testid": "upload-progress", className: "font-bold text-h4", children: isLoading ? uploadProgressText : uploadSuccessText }),
50
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { "data-testid": "upload-progress", children: isLoading ? uploadProgressText : uploadResultText }),
51
51
  /* @__PURE__ */ jsxRuntime.jsx(
52
52
  Button.Button,
53
53
  {
@@ -18,7 +18,7 @@ const Modal = ({
18
18
  {
19
19
  open,
20
20
  onClose,
21
- className: "flex flex-col bg-surface-base rounded-mili min-w-[70vw] max-w-[95vh] max-h-[95vh] overflow-auto text-default",
21
+ className: "flex flex-col bg-secondary-xlight rounded-mili min-w-[70vw] max-w-[95vh] max-h-[95vh] overflow-auto",
22
22
  children: [
23
23
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between mb-deca", children: [
24
24
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-deca font-semibold ml-tera flex-1 text-center", children: title }),
@@ -105,8 +105,8 @@ const Folder = ({ name, subItems }) => {
105
105
  );
106
106
  const intent = React.useMemo(() => {
107
107
  if (loading) return "info";
108
- if ((subItems ?? []).some((item) => item.status === "error") && (subItems ?? []).some((item) => item.status === "success")) {
109
- return "warning";
108
+ if ((subItems ?? []).some((item) => item.status === "error")) {
109
+ return "error";
110
110
  }
111
111
  return "success";
112
112
  }, [subItems]);
@@ -30,7 +30,7 @@ const useFileUpload = ({
30
30
  noClick = false,
31
31
  ignoreRejections = false,
32
32
  uploadProgressText,
33
- uploadSuccessText
33
+ uploadResultText
34
34
  }) => {
35
35
  const {
36
36
  showManager,
@@ -100,10 +100,17 @@ const useFileUpload = ({
100
100
  onClose: closeManager,
101
101
  onDelete: handleRemoveFile,
102
102
  uploadProgressText,
103
- uploadSuccessText
103
+ uploadResultText
104
104
  });
105
105
  }
106
- }, [handleRemoveFile, closeManager]);
106
+ }, [
107
+ showManager,
108
+ handleRemoveFile,
109
+ closeManager,
110
+ uploadProgressText,
111
+ uploadResultText,
112
+ hasManager
113
+ ]);
107
114
  const addMimeTypes = (key, acc) => {
108
115
  types.AcceptSpecificMap[key].forEach((mimeType) => {
109
116
  acc[mimeType] = [];
@@ -4,7 +4,7 @@ var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const calendarCell = tailwindVariants.tv({
6
6
  slots: {
7
- cell: "text-center rounded-mili hover:bg-primary-light",
7
+ cell: "text-center rounded-mili text-black hover:bg-primary-light",
8
8
  button: "flex aspect-square items-center justify-center"
9
9
  },
10
10
  variants: {
@@ -35,7 +35,7 @@ const calendarCell = tailwindVariants.tv({
35
35
  },
36
36
  isDisabled: {
37
37
  true: {
38
- cell: "text-content-minimal cursor-default hover:bg-surface-overlay",
38
+ cell: "text-secondary-light cursor-default hover:bg-white-500",
39
39
  button: "cursor-default"
40
40
  }
41
41
  }
@@ -9,7 +9,7 @@ const datePickerInputBase = tailwindVariants.tv({
9
9
  variants: {
10
10
  disabled: {
11
11
  true: {
12
- icon: "text-content-minimal cursor-default"
12
+ icon: "text-secondary-light cursor-default"
13
13
  }
14
14
  }
15
15
  }
@@ -4,12 +4,12 @@ var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const dateSegment = tailwindVariants.tv({
6
6
  slots: {
7
- base: "focus:outline-none focus:bg-content-minimal"
7
+ base: "focus:outline-none focus:bg-secondary-light"
8
8
  },
9
9
  variants: {
10
10
  disabled: {
11
11
  true: {
12
- base: "text-content-minimal"
12
+ base: "text-secondary-light"
13
13
  }
14
14
  }
15
15
  }
@@ -4,12 +4,12 @@ var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const groupButton = tailwindVariants.tv({
6
6
  slots: {
7
- button: "border-[1px] border-content-low px-centi py-mili items-center flex text-sub font-bold",
8
- inactive: "bg-surface-overlay text-content-low disabled:bg-content-minimal",
7
+ button: "border-[1px] border-secondary-medium px-centi py-mili items-center flex text-sub font-bold",
8
+ inactive: "bg-white text-secondary-medium disabled:bg-secondary-light",
9
9
  firstButton: "first:rounded-l-mili first:border-r-0",
10
10
  lastButton: "last:rounded-r-mili last:border-l-0",
11
11
  container: "flex flex-row h-[2rem]",
12
- active: "text-white bg-content-low"
12
+ active: "text-white bg-secondary-medium"
13
13
  }
14
14
  });
15
15
 
@@ -4,10 +4,10 @@ var tailwindVariants = require('tailwind-variants');
4
4
 
5
5
  const menubar = tailwindVariants.tv({
6
6
  slots: {
7
- header: "relative w-screen px-kilo py-deca flex flex-row md:justify-between bg-surface-overlay z-header sm:justify-start",
7
+ header: "relative w-screen px-kilo py-deca flex flex-row md:justify-between bg-white z-header sm:justify-start",
8
8
  left: "flex items-center w-fit",
9
9
  right: "flex items-center gap-x-deca hidden sm:flex",
10
- dropdown: "w-full bg-surface-overlay flex-1 shadow-default z-popover px-[8vw] absolute"
10
+ dropdown: "w-full bg-white flex-1 shadow-default z-popover px-[8vw] absolute"
11
11
  },
12
12
  variants: {
13
13
  show: {
@@ -21,7 +21,7 @@ const menubar = tailwindVariants.tv({
21
21
  const mostUsed = tailwindVariants.tv({
22
22
  slots: {
23
23
  container: "mb-kilo",
24
- label: "font-bold mb-centi text-default",
24
+ label: "font-bold mb-centi",
25
25
  containerList: "gap-x-kilo flex flex-row"
26
26
  }
27
27
  });
@@ -29,26 +29,26 @@ const mostUsedItem = tailwindVariants.tv({
29
29
  slots: {
30
30
  container: "flex-1 py-mili",
31
31
  title: "text-primary-medium font-bold text-base",
32
- category: "text-content-low text-label"
32
+ category: "text-secondary-medium text-label"
33
33
  }
34
34
  });
35
35
  const item = tailwindVariants.tv({
36
36
  slots: {
37
- container: "flex flex-row gap-x-deca items-center text-content-medium hover:cursor-pointer text-base",
37
+ container: "flex flex-row gap-x-deca items-center text-secondary-dark hover:cursor-pointer text-base",
38
38
  textBehavior: "hover:text-primary-medium",
39
39
  icon: "text-primary-medium hover:cursor-pointer"
40
40
  }
41
41
  });
42
42
  const category = tailwindVariants.tv({
43
43
  slots: {
44
- text: "mb-mili font-bold text-default",
45
- hr: "mb-mili border-0 h-px bg-content-high",
44
+ text: "mb-mili font-bold",
45
+ hr: "mb-mili border-0 h-px bg-secondary-light",
46
46
  container: "flex flex-col gap-y-mili"
47
47
  }
48
48
  });
49
49
  const subItem = tailwindVariants.tv({
50
50
  slots: {
51
- container: "pl-deca text-sub border-l-[1px] border-primary-medium text-content-medium hover:text-primary-medium cursor-pointer"
51
+ container: "pl-deca text-sub border-l-[1px] border-primary-medium text-secondary-dark hover:text-primary-medium cursor-pointer"
52
52
  }
53
53
  });
54
54
  const animate = tailwindVariants.tv({
@@ -5,7 +5,7 @@ var tailwindVariants = require('tailwind-variants');
5
5
  const ProgressVariants = tailwindVariants.tv({
6
6
  slots: {
7
7
  container: "relative",
8
- bar: "h-1.5 w-full overflow-hidden bg-content-inverse",
8
+ bar: "h-1.5 w-full overflow-hidden bg-secondary-xlight",
9
9
  progress: "w-full h-full rounded-mili"
10
10
  },
11
11
  variants: {
@@ -30,8 +30,8 @@ const StepNodeVariants = tailwindVariants.tv({
30
30
  content: "font-bold"
31
31
  },
32
32
  false: {
33
- content: "text-content-low",
34
- separator: "bg-content-minimal"
33
+ content: "text-secondary-medium",
34
+ separator: "bg-secondary-light"
35
35
  }
36
36
  },
37
37
  selected: {
@@ -9,7 +9,7 @@ const timePickerInputBase = tailwindVariants.tv({
9
9
  variants: {
10
10
  disabled: {
11
11
  true: {
12
- icon: "text-content-minimal cursor-default"
12
+ icon: "text-secondary-light cursor-default"
13
13
  }
14
14
  }
15
15
  }
@@ -33,7 +33,7 @@ const AccordionTrigger = ({
33
33
  "div",
34
34
  {
35
35
  className: clsx(
36
- "flex justify-between align-center border-content-minimal cursor-pointer",
36
+ "flex justify-between align-center border-secondary-light cursor-pointer",
37
37
  { "mr-deca": floating && direction === "horizontal" },
38
38
  { "mb-deca": floating && direction === "vertical" },
39
39
  { "border-r flex-col px-mili": direction === "horizontal" },
@@ -45,12 +45,12 @@ const AccordionTrigger = ({
45
45
  "div",
46
46
  {
47
47
  className: clsx(
48
- "rounded-mili border border-content-minimal flex align-center justify-center p-micro",
48
+ "rounded-mili border border-secondary-light flex align-center justify-center p-micro",
49
49
  {
50
- "absolute -translate-x-micro translate-y-deca bg-surface-overlay": floating && direction === "horizontal"
50
+ "absolute -translate-x-micro translate-y-deca bg-white": floating && direction === "horizontal"
51
51
  },
52
52
  {
53
- "absolute -translate-y-micro translate-x-deca bg-surface-overlay": floating && direction === "vertical"
53
+ "absolute -translate-y-micro translate-x-deca bg-white": floating && direction === "vertical"
54
54
  },
55
55
  className
56
56
  ),
@@ -58,7 +58,7 @@ const AccordionTrigger = ({
58
58
  LiaAngleRightSolid,
59
59
  {
60
60
  className: clsx(
61
- "text-content-low transition-transform duration-200",
61
+ "text-secondary-medium transition-transform duration-200",
62
62
  {
63
63
  "rotate-180": invertedArrow ? !open : open
64
64
  }
@@ -68,7 +68,7 @@ const AccordionTrigger = ({
68
68
  LiaAngleDownSolid,
69
69
  {
70
70
  className: clsx(
71
- "text-content-low transition-transform duration-200",
71
+ "text-secondary-medium transition-transform duration-200",
72
72
  {
73
73
  "rotate-180": invertedArrow ? !open : open
74
74
  }
@@ -14,7 +14,7 @@ const Avatar = ({ src, name, className, ...rest }) => {
14
14
  {
15
15
  ...rest,
16
16
  className: clsx(
17
- "rounded-pill bg-content-medium h-mega flex items-center justify-center cursor-pointer aspect-square",
17
+ "rounded-pill bg-secondary-dark h-mega flex items-center justify-center cursor-pointer aspect-square",
18
18
  className
19
19
  ),
20
20
  children: src && !hasError ? /* @__PURE__ */ jsx(
@@ -15,7 +15,7 @@ const BreadcrumbItem = ({
15
15
  {
16
16
  className: clsx(
17
17
  "no-underline",
18
- isLast ? "text-content-low cursor-default" : "text-content-medium cursor-pointer"
18
+ isLast ? "text-secondary-medium cursor-default" : "text-secondary-xdark cursor-pointer"
19
19
  ),
20
20
  children: title
21
21
  }
@@ -21,7 +21,7 @@ const CalendarGrid = ({ state }) => {
21
21
  return /* @__PURE__ */ jsx(
22
22
  "div",
23
23
  {
24
- className: "bg-surface-overlay rounded-micro px-deca py-mili",
24
+ className: "bg-white rounded-micro px-deca py-mili",
25
25
  "data-testid": "calendar-grid",
26
26
  children: /* @__PURE__ */ jsxs("table", { ...gridProps, className: "border-separate border-spacing-y-nano", children: [
27
27
  /* @__PURE__ */ jsx("thead", { ...headerProps, children: /* @__PURE__ */ jsx(CalendarGridHeaderRow, { weekDays }) }),
@@ -4,28 +4,19 @@ import { forwardRef } from 'react';
4
4
 
5
5
  const Box = forwardRef((props, ref) => {
6
6
  const { id, className, ...rest } = props;
7
- return /* @__PURE__ */ jsx(
8
- "div",
7
+ return /* @__PURE__ */ jsx("div", { className: clsx("w-tera h-kilo border overflow-hidden relative", className), children: /* @__PURE__ */ jsx(
8
+ "input",
9
9
  {
10
- className: clsx(
11
- "w-tera h-kilo border overflow-hidden relative",
12
- className
13
- ),
14
- children: /* @__PURE__ */ jsx(
15
- "input",
16
- {
17
- ...rest,
18
- id,
19
- type: "color",
20
- className: "bg-transparent cursor-pointer disabled:opacity-50 disabled:cursor-default absolute -top-1.5 -right-1 w-peta h-giga",
21
- ref
22
- }
23
- )
10
+ ...rest,
11
+ id,
12
+ type: "color",
13
+ className: "bg-transparent cursor-pointer disabled:opacity-50 disabled:cursor-default absolute -top-1.5 -right-1 w-peta h-giga",
14
+ ref
24
15
  }
25
- );
16
+ ) });
26
17
  });
27
18
  const Face = ({ children }) => {
28
- return /* @__PURE__ */ jsx("div", { className: "rounded-mili p-mili shadow-default bg-default flex flex-row items-center gap-2", children });
19
+ return /* @__PURE__ */ jsx("div", { className: "rounded-mili p-mili shadow-default bg-white flex flex-row items-center gap-2", children });
29
20
  };
30
21
  const Label = ({
31
22
  children,
@@ -7,7 +7,7 @@ const Root = ({ children, className, ...rest }) => {
7
7
  {
8
8
  ...rest,
9
9
  className: clsx(
10
- "border border-dashed border-content-low rounded-mili bg-content-inverse overflow-hidden",
10
+ "border border-dashed border-secondary-medium rounded-mili bg-secondary-xlight overflow-hidden",
11
11
  className
12
12
  ),
13
13
  children
@@ -26,7 +26,7 @@ const PopoverContent = ({
26
26
  ref: refs.setFloating,
27
27
  ...getFloatingProps(),
28
28
  className: clsx(
29
- "border border-gray-200 bg-surface-inverse p-0 rounded-md shadow-default z-popover",
29
+ "border border-gray-200 bg-black p-[0px] rounded-md shadow-default z-popover",
30
30
  className
31
31
  ),
32
32
  style: {
@@ -9,7 +9,7 @@ const SelectPopover = ({ children }) => {
9
9
  return /* @__PURE__ */ jsx(FloatingPortal, { children: /* @__PURE__ */ jsx(
10
10
  Popover.Content,
11
11
  {
12
- className: "bg-surface-overlay max-h-[30vh] overflow-y-auto gap-y-mili flex flex-col p-0",
12
+ className: "bg-white max-h-[30vh] overflow-y-auto gap-y-mili flex flex-col p-0",
13
13
  style: {
14
14
  width: triggerWidth ? `${triggerWidth}px` : "auto",
15
15
  zIndex: 9999
@@ -7,7 +7,7 @@ const Skeleton = ({ className, children, ...rest }) => {
7
7
  {
8
8
  ...rest,
9
9
  "data-testid": "skeleton",
10
- className: clsx("animate-pulse bg-content-minimal", className),
10
+ className: clsx("animate-pulse bg-secondary-light", className),
11
11
  children
12
12
  }
13
13
  );
@@ -56,7 +56,7 @@ const Root = ({
56
56
  "div",
57
57
  {
58
58
  className: clsx(
59
- "flex w-full space-x-2 bg-surface-overlay p-4 pb-2 rounded-mili",
59
+ "flex w-full space-x-2 bg-white p-4 pb-2 rounded-mili",
60
60
  className
61
61
  ),
62
62
  children: React.Children.map(children, renderNode)
@@ -60,7 +60,7 @@ const TimePickerInputWithPopover = (props) => {
60
60
  /* @__PURE__ */ jsx(
61
61
  Popover.Content,
62
62
  {
63
- className: "bg-surface-overlay shadow-default border-none p-deca flex flex-col",
63
+ className: "bg-white shadow-default border-none p-deca flex flex-col",
64
64
  initialFocus: -1,
65
65
  children: /* @__PURE__ */ jsx(
66
66
  TimePickerSelector,
@@ -17,7 +17,7 @@ const Dropzone = ({
17
17
  {
18
18
  ...getRootProps(),
19
19
  className: clsx(
20
- "bg-surface-overlay w-full border-dashed border-2 p-deca flex flex-col justify-center rounded-mili overflow-auto h-[18rem]",
20
+ "bg-white w-full border-dashed border-2 p-deca flex flex-col justify-center rounded-mili overflow-auto h-[18rem]",
21
21
  {
22
22
  "border-success-medium bg-gray-100": isDragActive
23
23
  }
@@ -25,7 +25,7 @@ const Dropzone = ({
25
25
  children: [
26
26
  /* @__PURE__ */ jsx("input", { ...getInputProps() }),
27
27
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center text-center items-center", children: [
28
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
28
+ /* @__PURE__ */ jsxs("div", { children: [
29
29
  /* @__PURE__ */ jsx(
30
30
  HiOutlineCloudArrowUp,
31
31
  {
@@ -36,7 +36,7 @@ const Dropzone = ({
36
36
  /* @__PURE__ */ jsx("p", { className: "text-lg font-semibold", "data-testid": "select-dropzone", children: selectFileText })
37
37
  ] }),
38
38
  hasButton ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-centi", children: [
39
- /* @__PURE__ */ jsx("p", { className: "text-sm text-content-low", children: dropText }),
39
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-secondary-medium", children: dropText }),
40
40
  isFileLimitReached ? /* @__PURE__ */ jsx(Tooltip, { text: "Voc\xEA s\xF3 pode selecionar um \xFAnico arquivo.", children: /* @__PURE__ */ jsx(
41
41
  "button",
42
42
  {
@@ -6,7 +6,7 @@ const Files = ({
6
6
  onDelete,
7
7
  uploadProgressText = "Upload(s) in progress"
8
8
  }) => {
9
- return /* @__PURE__ */ jsxs("div", { className: "bg-surface-overlay w-full border-2 p-deca flex flex-col overflow-y-auto rounded-mili h-[18rem]", children: [
9
+ return /* @__PURE__ */ jsxs("div", { className: "bg-white w-full border-2 p-deca flex flex-col overflow-y-auto rounded-mili h-[18rem]", children: [
10
10
  /* @__PURE__ */ jsxs("div", { className: "flex gap-mili items-center mb-deca", children: [
11
11
  /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-deca h-deca bg-primary-medium rounded-full text-micro text-white", children: `${files.length}` }),
12
12
  /* @__PURE__ */ jsx("h2", { className: "text-md font-semibold", "data-testid": "upload-progress", children: uploadProgressText })
@@ -13,7 +13,7 @@ const Manager = ({
13
13
  files,
14
14
  onDelete,
15
15
  uploadProgressText = "Upload(s) in progress",
16
- uploadSuccessText = "Upload(s) completed",
16
+ uploadResultText = "Upload(s) completed",
17
17
  onClose
18
18
  }) => {
19
19
  const {
@@ -45,7 +45,7 @@ const Manager = ({
45
45
  children: min ? /* @__PURE__ */ jsx(IoChevronUp, {}) : /* @__PURE__ */ jsx(IoChevronDown, {})
46
46
  }
47
47
  ),
48
- /* @__PURE__ */ jsx("h3", { "data-testid": "upload-progress", className: "font-bold text-h4", children: isLoading ? uploadProgressText : uploadSuccessText }),
48
+ /* @__PURE__ */ jsx("h3", { "data-testid": "upload-progress", children: isLoading ? uploadProgressText : uploadResultText }),
49
49
  /* @__PURE__ */ jsx(
50
50
  Button,
51
51
  {
@@ -16,7 +16,7 @@ const Modal = ({
16
16
  {
17
17
  open,
18
18
  onClose,
19
- className: "flex flex-col bg-surface-base rounded-mili min-w-[70vw] max-w-[95vh] max-h-[95vh] overflow-auto text-default",
19
+ className: "flex flex-col bg-secondary-xlight rounded-mili min-w-[70vw] max-w-[95vh] max-h-[95vh] overflow-auto",
20
20
  children: [
21
21
  /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between mb-deca", children: [
22
22
  /* @__PURE__ */ jsx("h2", { className: "text-deca font-semibold ml-tera flex-1 text-center", children: title }),
@@ -103,8 +103,8 @@ const Folder = ({ name, subItems }) => {
103
103
  );
104
104
  const intent = useMemo(() => {
105
105
  if (loading) return "info";
106
- if ((subItems ?? []).some((item) => item.status === "error") && (subItems ?? []).some((item) => item.status === "success")) {
107
- return "warning";
106
+ if ((subItems ?? []).some((item) => item.status === "error")) {
107
+ return "error";
108
108
  }
109
109
  return "success";
110
110
  }, [subItems]);
@@ -28,7 +28,7 @@ const useFileUpload = ({
28
28
  noClick = false,
29
29
  ignoreRejections = false,
30
30
  uploadProgressText,
31
- uploadSuccessText
31
+ uploadResultText
32
32
  }) => {
33
33
  const {
34
34
  showManager,
@@ -98,10 +98,17 @@ const useFileUpload = ({
98
98
  onClose: closeManager,
99
99
  onDelete: handleRemoveFile,
100
100
  uploadProgressText,
101
- uploadSuccessText
101
+ uploadResultText
102
102
  });
103
103
  }
104
- }, [handleRemoveFile, closeManager]);
104
+ }, [
105
+ showManager,
106
+ handleRemoveFile,
107
+ closeManager,
108
+ uploadProgressText,
109
+ uploadResultText,
110
+ hasManager
111
+ ]);
105
112
  const addMimeTypes = (key, acc) => {
106
113
  AcceptSpecificMap[key].forEach((mimeType) => {
107
114
  acc[mimeType] = [];
@@ -2,7 +2,7 @@ import { tv } from 'tailwind-variants';
2
2
 
3
3
  const calendarCell = tv({
4
4
  slots: {
5
- cell: "text-center rounded-mili hover:bg-primary-light",
5
+ cell: "text-center rounded-mili text-black hover:bg-primary-light",
6
6
  button: "flex aspect-square items-center justify-center"
7
7
  },
8
8
  variants: {
@@ -33,7 +33,7 @@ const calendarCell = tv({
33
33
  },
34
34
  isDisabled: {
35
35
  true: {
36
- cell: "text-content-minimal cursor-default hover:bg-surface-overlay",
36
+ cell: "text-secondary-light cursor-default hover:bg-white-500",
37
37
  button: "cursor-default"
38
38
  }
39
39
  }
@@ -7,7 +7,7 @@ const datePickerInputBase = tv({
7
7
  variants: {
8
8
  disabled: {
9
9
  true: {
10
- icon: "text-content-minimal cursor-default"
10
+ icon: "text-secondary-light cursor-default"
11
11
  }
12
12
  }
13
13
  }
@@ -2,12 +2,12 @@ import { tv } from 'tailwind-variants';
2
2
 
3
3
  const dateSegment = tv({
4
4
  slots: {
5
- base: "focus:outline-none focus:bg-content-minimal"
5
+ base: "focus:outline-none focus:bg-secondary-light"
6
6
  },
7
7
  variants: {
8
8
  disabled: {
9
9
  true: {
10
- base: "text-content-minimal"
10
+ base: "text-secondary-light"
11
11
  }
12
12
  }
13
13
  }
@@ -2,12 +2,12 @@ import { tv } from 'tailwind-variants';
2
2
 
3
3
  const groupButton = tv({
4
4
  slots: {
5
- button: "border-[1px] border-content-low px-centi py-mili items-center flex text-sub font-bold",
6
- inactive: "bg-surface-overlay text-content-low disabled:bg-content-minimal",
5
+ button: "border-[1px] border-secondary-medium px-centi py-mili items-center flex text-sub font-bold",
6
+ inactive: "bg-white text-secondary-medium disabled:bg-secondary-light",
7
7
  firstButton: "first:rounded-l-mili first:border-r-0",
8
8
  lastButton: "last:rounded-r-mili last:border-l-0",
9
9
  container: "flex flex-row h-[2rem]",
10
- active: "text-white bg-content-low"
10
+ active: "text-white bg-secondary-medium"
11
11
  }
12
12
  });
13
13
 
@@ -2,10 +2,10 @@ import { tv } from 'tailwind-variants';
2
2
 
3
3
  const menubar = tv({
4
4
  slots: {
5
- header: "relative w-screen px-kilo py-deca flex flex-row md:justify-between bg-surface-overlay z-header sm:justify-start",
5
+ header: "relative w-screen px-kilo py-deca flex flex-row md:justify-between bg-white z-header sm:justify-start",
6
6
  left: "flex items-center w-fit",
7
7
  right: "flex items-center gap-x-deca hidden sm:flex",
8
- dropdown: "w-full bg-surface-overlay flex-1 shadow-default z-popover px-[8vw] absolute"
8
+ dropdown: "w-full bg-white flex-1 shadow-default z-popover px-[8vw] absolute"
9
9
  },
10
10
  variants: {
11
11
  show: {
@@ -19,7 +19,7 @@ const menubar = tv({
19
19
  const mostUsed = tv({
20
20
  slots: {
21
21
  container: "mb-kilo",
22
- label: "font-bold mb-centi text-default",
22
+ label: "font-bold mb-centi",
23
23
  containerList: "gap-x-kilo flex flex-row"
24
24
  }
25
25
  });
@@ -27,26 +27,26 @@ const mostUsedItem = tv({
27
27
  slots: {
28
28
  container: "flex-1 py-mili",
29
29
  title: "text-primary-medium font-bold text-base",
30
- category: "text-content-low text-label"
30
+ category: "text-secondary-medium text-label"
31
31
  }
32
32
  });
33
33
  const item = tv({
34
34
  slots: {
35
- container: "flex flex-row gap-x-deca items-center text-content-medium hover:cursor-pointer text-base",
35
+ container: "flex flex-row gap-x-deca items-center text-secondary-dark hover:cursor-pointer text-base",
36
36
  textBehavior: "hover:text-primary-medium",
37
37
  icon: "text-primary-medium hover:cursor-pointer"
38
38
  }
39
39
  });
40
40
  const category = tv({
41
41
  slots: {
42
- text: "mb-mili font-bold text-default",
43
- hr: "mb-mili border-0 h-px bg-content-high",
42
+ text: "mb-mili font-bold",
43
+ hr: "mb-mili border-0 h-px bg-secondary-light",
44
44
  container: "flex flex-col gap-y-mili"
45
45
  }
46
46
  });
47
47
  const subItem = tv({
48
48
  slots: {
49
- container: "pl-deca text-sub border-l-[1px] border-primary-medium text-content-medium hover:text-primary-medium cursor-pointer"
49
+ container: "pl-deca text-sub border-l-[1px] border-primary-medium text-secondary-dark hover:text-primary-medium cursor-pointer"
50
50
  }
51
51
  });
52
52
  const animate = tv({
@@ -3,7 +3,7 @@ import { tv } from 'tailwind-variants';
3
3
  const ProgressVariants = tv({
4
4
  slots: {
5
5
  container: "relative",
6
- bar: "h-1.5 w-full overflow-hidden bg-content-inverse",
6
+ bar: "h-1.5 w-full overflow-hidden bg-secondary-xlight",
7
7
  progress: "w-full h-full rounded-mili"
8
8
  },
9
9
  variants: {
@@ -28,8 +28,8 @@ const StepNodeVariants = tv({
28
28
  content: "font-bold"
29
29
  },
30
30
  false: {
31
- content: "text-content-low",
32
- separator: "bg-content-minimal"
31
+ content: "text-secondary-medium",
32
+ separator: "bg-secondary-light"
33
33
  }
34
34
  },
35
35
  selected: {
@@ -7,7 +7,7 @@ const timePickerInputBase = tv({
7
7
  variants: {
8
8
  disabled: {
9
9
  true: {
10
- icon: "text-content-minimal cursor-default"
10
+ icon: "text-secondary-light cursor-default"
11
11
  }
12
12
  }
13
13
  }
@@ -1,2 +1,2 @@
1
1
  import { ManagerProps } from './types';
2
- export declare const Manager: <T>({ open, files, onDelete, uploadProgressText, uploadSuccessText, onClose, }: ManagerProps<T>) => any;
2
+ export declare const Manager: <T>({ open, files, onDelete, uploadProgressText, uploadResultText, onClose, }: ManagerProps<T>) => any;
@@ -5,5 +5,5 @@ export declare const Uploader: {
5
5
  Files: <T>({ files, onDelete, uploadProgressText, }: import("./types").FilesProps<T>) => import("react/jsx-runtime").JSX.Element;
6
6
  Modal: ({ open, onClose, children, title, }: import("./types").ModalProps) => any;
7
7
  Root: <T>({ open, onClose, dropzoneProps, selectFileText, dropText, buttonText, titleModal, onDelete, uploadProgressText, files, }: import("./types").RootUploaderProps<T>) => import("react/jsx-runtime").JSX.Element;
8
- Manager: <T>({ open, files, onDelete, uploadProgressText, uploadSuccessText, onClose, }: import("./types").ManagerProps<T>) => any;
8
+ Manager: <T>({ open, files, onDelete, uploadProgressText, uploadResultText, onClose, }: import("./types").ManagerProps<T>) => any;
9
9
  };
@@ -87,7 +87,7 @@ export interface ManagerProps<T> {
87
87
  files?: FileUpload<T>[];
88
88
  onDelete?: (index: number) => void;
89
89
  uploadProgressText?: string;
90
- uploadSuccessText?: string;
90
+ uploadResultText?: string;
91
91
  onClose?: () => void;
92
92
  }
93
93
  export declare const AcceptSpecificMap: {
@@ -18,11 +18,11 @@ interface UseFileUploadOptions {
18
18
  hasManager?: boolean;
19
19
  isFolder?: boolean;
20
20
  uploadProgressText?: string;
21
- uploadSuccessText?: string;
21
+ uploadResultText?: string;
22
22
  noClick?: boolean;
23
23
  ignoreRejections?: boolean;
24
24
  }
25
- export declare const useFileUpload: <T>({ accept, onAccept, onOpenManager, onFileRejected, maxSize, allowMultiple, preventDuplicates, onDuplicate, hasManager, isFolder, noClick, ignoreRejections, uploadProgressText, uploadSuccessText, }: UseFileUploadOptions) => {
25
+ export declare const useFileUpload: <T>({ accept, onAccept, onOpenManager, onFileRejected, maxSize, allowMultiple, preventDuplicates, onDuplicate, hasManager, isFolder, noClick, ignoreRejections, uploadProgressText, uploadResultText, }: UseFileUploadOptions) => {
26
26
  onOpen: () => void;
27
27
  onClose: () => void;
28
28
  onDelete: (index: number) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tecsinapse/cortex-react",
3
- "version": "1.16.0-beta.6",
3
+ "version": "1.16.1-beta.1",
4
4
  "description": "React components based in @tecsinapse/cortex-core",
5
5
  "license": "MIT",
6
6
  "main": "dist/esm/index.js",
@@ -20,7 +20,7 @@
20
20
  "dependencies": {
21
21
  "@floating-ui/react": "^0.26.18",
22
22
  "@internationalized/date": "3.7.0",
23
- "@tecsinapse/cortex-core": "1.3.0-beta.6",
23
+ "@tecsinapse/cortex-core": "1.2.0",
24
24
  "clsx": "2.1.1",
25
25
  "currency.js": "2.0.4",
26
26
  "embla-carousel-autoplay": "^8.0.0",
@@ -48,5 +48,5 @@
48
48
  "react-icons": ">=5.2.0",
49
49
  "tailwind": ">=3.3.0"
50
50
  },
51
- "gitHead": "0c43136aeff2c19f5dfe1f410b4566dec107097b"
51
+ "gitHead": "19993e4ec773245422cc7f61cef0c6863c647045"
52
52
  }