atenea-components 1.4.17

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 (167) hide show
  1. package/dist/components/atoms/ActionDropdown.d.ts +20 -0
  2. package/dist/components/atoms/ActionDropdown.js +56 -0
  3. package/dist/components/atoms/Button.d.ts +10 -0
  4. package/dist/components/atoms/Button.js +55 -0
  5. package/dist/components/atoms/Checkbox.d.ts +13 -0
  6. package/dist/components/atoms/Checkbox.js +60 -0
  7. package/dist/components/atoms/Dropdown.d.ts +18 -0
  8. package/dist/components/atoms/Dropdown.js +116 -0
  9. package/dist/components/atoms/Input.d.ts +15 -0
  10. package/dist/components/atoms/Input.js +118 -0
  11. package/dist/components/atoms/IntroIllustration.d.ts +6 -0
  12. package/dist/components/atoms/IntroIllustration.js +12 -0
  13. package/dist/components/atoms/List.d.ts +7 -0
  14. package/dist/components/atoms/List.js +13 -0
  15. package/dist/components/atoms/ListItem.d.ts +9 -0
  16. package/dist/components/atoms/ListItem.js +12 -0
  17. package/dist/components/atoms/MenuItem.d.ts +12 -0
  18. package/dist/components/atoms/MenuItem.js +47 -0
  19. package/dist/components/atoms/Radio.d.ts +13 -0
  20. package/dist/components/atoms/Radio.js +52 -0
  21. package/dist/components/atoms/SelectDropdown.d.ts +19 -0
  22. package/dist/components/atoms/SelectDropdown.js +146 -0
  23. package/dist/components/atoms/Toggle.d.ts +11 -0
  24. package/dist/components/atoms/Toggle.js +59 -0
  25. package/dist/components/icons/IconArrowDown.d.ts +2 -0
  26. package/dist/components/icons/IconArrowDown.js +10 -0
  27. package/dist/components/icons/IconArrowLeft.d.ts +2 -0
  28. package/dist/components/icons/IconArrowLeft.js +10 -0
  29. package/dist/components/icons/IconArrowRight.d.ts +2 -0
  30. package/dist/components/icons/IconArrowRight.js +10 -0
  31. package/dist/components/icons/IconArrowUp.d.ts +2 -0
  32. package/dist/components/icons/IconArrowUp.js +10 -0
  33. package/dist/components/icons/IconBase.d.ts +10 -0
  34. package/dist/components/icons/IconBase.js +30 -0
  35. package/dist/components/icons/IconBook.d.ts +2 -0
  36. package/dist/components/icons/IconBook.js +10 -0
  37. package/dist/components/icons/IconBookmark.d.ts +2 -0
  38. package/dist/components/icons/IconBookmark.js +10 -0
  39. package/dist/components/icons/IconCalendar.d.ts +2 -0
  40. package/dist/components/icons/IconCalendar.js +10 -0
  41. package/dist/components/icons/IconCancel.d.ts +2 -0
  42. package/dist/components/icons/IconCancel.js +10 -0
  43. package/dist/components/icons/IconCheck.d.ts +2 -0
  44. package/dist/components/icons/IconCheck.js +10 -0
  45. package/dist/components/icons/IconCheckCircle.d.ts +2 -0
  46. package/dist/components/icons/IconCheckCircle.js +10 -0
  47. package/dist/components/icons/IconChevronDown.d.ts +2 -0
  48. package/dist/components/icons/IconChevronDown.js +10 -0
  49. package/dist/components/icons/IconChevronLeft.d.ts +2 -0
  50. package/dist/components/icons/IconChevronLeft.js +10 -0
  51. package/dist/components/icons/IconChevronRight.d.ts +2 -0
  52. package/dist/components/icons/IconChevronRight.js +10 -0
  53. package/dist/components/icons/IconChevronUp.d.ts +2 -0
  54. package/dist/components/icons/IconChevronUp.js +10 -0
  55. package/dist/components/icons/IconClipboard.d.ts +2 -0
  56. package/dist/components/icons/IconClipboard.js +10 -0
  57. package/dist/components/icons/IconCreditCard.d.ts +2 -0
  58. package/dist/components/icons/IconCreditCard.js +10 -0
  59. package/dist/components/icons/IconExclamationOctagon.d.ts +2 -0
  60. package/dist/components/icons/IconExclamationOctagon.js +10 -0
  61. package/dist/components/icons/IconExclamationTriangle.d.ts +2 -0
  62. package/dist/components/icons/IconExclamationTriangle.js +10 -0
  63. package/dist/components/icons/IconFile.d.ts +2 -0
  64. package/dist/components/icons/IconFile.js +10 -0
  65. package/dist/components/icons/IconFileScan.d.ts +2 -0
  66. package/dist/components/icons/IconFileScan.js +10 -0
  67. package/dist/components/icons/IconHouse.d.ts +2 -0
  68. package/dist/components/icons/IconHouse.js +10 -0
  69. package/dist/components/icons/IconInformationCircle.d.ts +2 -0
  70. package/dist/components/icons/IconInformationCircle.js +10 -0
  71. package/dist/components/icons/IconKanban.d.ts +2 -0
  72. package/dist/components/icons/IconKanban.js +10 -0
  73. package/dist/components/icons/IconLayout.d.ts +2 -0
  74. package/dist/components/icons/IconLayout.js +10 -0
  75. package/dist/components/icons/IconList.d.ts +2 -0
  76. package/dist/components/icons/IconList.js +10 -0
  77. package/dist/components/icons/IconListArrow.d.ts +2 -0
  78. package/dist/components/icons/IconListArrow.js +10 -0
  79. package/dist/components/icons/IconLogout.d.ts +2 -0
  80. package/dist/components/icons/IconLogout.js +10 -0
  81. package/dist/components/icons/IconMessage.d.ts +2 -0
  82. package/dist/components/icons/IconMessage.js +10 -0
  83. package/dist/components/icons/IconMessagePlus.d.ts +2 -0
  84. package/dist/components/icons/IconMessagePlus.js +10 -0
  85. package/dist/components/icons/IconPause.d.ts +2 -0
  86. package/dist/components/icons/IconPause.js +10 -0
  87. package/dist/components/icons/IconPencil.d.ts +2 -0
  88. package/dist/components/icons/IconPencil.js +10 -0
  89. package/dist/components/icons/IconPlay.d.ts +2 -0
  90. package/dist/components/icons/IconPlay.js +10 -0
  91. package/dist/components/icons/IconSidebar.d.ts +2 -0
  92. package/dist/components/icons/IconSidebar.js +10 -0
  93. package/dist/components/icons/IconSidebarCollapse.d.ts +2 -0
  94. package/dist/components/icons/IconSidebarCollapse.js +10 -0
  95. package/dist/components/icons/IconSidebarExpand.d.ts +2 -0
  96. package/dist/components/icons/IconSidebarExpand.js +10 -0
  97. package/dist/components/icons/IconTimer.d.ts +2 -0
  98. package/dist/components/icons/IconTimer.js +10 -0
  99. package/dist/components/icons/IconTrash.d.ts +2 -0
  100. package/dist/components/icons/IconTrash.js +10 -0
  101. package/dist/components/icons/IconUser.d.ts +2 -0
  102. package/dist/components/icons/IconUser.js +10 -0
  103. package/dist/components/icons/IconVerticalDots.d.ts +2 -0
  104. package/dist/components/icons/IconVerticalDots.js +10 -0
  105. package/dist/components/molecules/AnswerOption.d.ts +15 -0
  106. package/dist/components/molecules/AnswerOption.js +49 -0
  107. package/dist/components/molecules/Avatar.d.ts +15 -0
  108. package/dist/components/molecules/Avatar.js +39 -0
  109. package/dist/components/molecules/Breadcrumb.d.ts +26 -0
  110. package/dist/components/molecules/Breadcrumb.js +20 -0
  111. package/dist/components/molecules/Card.d.ts +46 -0
  112. package/dist/components/molecules/Card.js +16 -0
  113. package/dist/components/molecules/CommentCard.d.ts +9 -0
  114. package/dist/components/molecules/CommentCard.js +9 -0
  115. package/dist/components/molecules/CountdownCard.d.ts +14 -0
  116. package/dist/components/molecules/CountdownCard.js +30 -0
  117. package/dist/components/molecules/DashboardCard.d.ts +13 -0
  118. package/dist/components/molecules/DashboardCard.js +9 -0
  119. package/dist/components/molecules/FilterBar.d.ts +19 -0
  120. package/dist/components/molecules/FilterBar.js +15 -0
  121. package/dist/components/molecules/Flashcard.d.ts +13 -0
  122. package/dist/components/molecules/Flashcard.js +20 -0
  123. package/dist/components/molecules/GlobalProgressCard.d.ts +22 -0
  124. package/dist/components/molecules/GlobalProgressCard.js +36 -0
  125. package/dist/components/molecules/MoodTracker.d.ts +13 -0
  126. package/dist/components/molecules/MoodTracker.js +25 -0
  127. package/dist/components/molecules/NewsItem.d.ts +12 -0
  128. package/dist/components/molecules/NewsItem.js +10 -0
  129. package/dist/components/molecules/PercentageItem.d.ts +10 -0
  130. package/dist/components/molecules/PercentageItem.js +27 -0
  131. package/dist/components/molecules/SleepTracker.d.ts +13 -0
  132. package/dist/components/molecules/SleepTracker.js +25 -0
  133. package/dist/components/molecules/StreakCard.d.ts +11 -0
  134. package/dist/components/molecules/StreakCard.js +12 -0
  135. package/dist/components/molecules/StudyMaterialIntro.d.ts +13 -0
  136. package/dist/components/molecules/StudyMaterialIntro.js +9 -0
  137. package/dist/components/molecules/TaskItem.d.ts +25 -0
  138. package/dist/components/molecules/TaskItem.js +33 -0
  139. package/dist/components/molecules/Timer.d.ts +13 -0
  140. package/dist/components/molecules/Timer.js +60 -0
  141. package/dist/components/molecules/WeekDaySelector.d.ts +23 -0
  142. package/dist/components/molecules/WeekDaySelector.js +17 -0
  143. package/dist/components/molecules/WeeklyObjectivesCard.d.ts +11 -0
  144. package/dist/components/molecules/WeeklyObjectivesCard.js +12 -0
  145. package/dist/components/organisms/FeatureList.d.ts +12 -0
  146. package/dist/components/organisms/FeatureList.js +14 -0
  147. package/dist/components/organisms/NewsList.d.ts +20 -0
  148. package/dist/components/organisms/NewsList.js +45 -0
  149. package/dist/components/organisms/PercentageCard.d.ts +14 -0
  150. package/dist/components/organisms/PercentageCard.js +26 -0
  151. package/dist/index.d.ts +74 -0
  152. package/dist/index.js +86 -0
  153. package/dist/tokens/borders.d.ts +8 -0
  154. package/dist/tokens/borders.js +12 -0
  155. package/dist/tokens/colors.d.ts +116 -0
  156. package/dist/tokens/colors.js +120 -0
  157. package/dist/tokens/index.d.ts +5 -0
  158. package/dist/tokens/index.js +21 -0
  159. package/dist/tokens/spacing.d.ts +3 -0
  160. package/dist/tokens/spacing.js +7 -0
  161. package/dist/tokens/theme.d.ts +247 -0
  162. package/dist/tokens/theme.js +17 -0
  163. package/dist/tokens/typography.d.ts +120 -0
  164. package/dist/tokens/typography.js +87 -0
  165. package/package.json +69 -0
  166. package/readme.md +88 -0
  167. package/theme.js +335 -0
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Radio = void 0;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const react_1 = require("react");
20
+ const clsx_1 = __importDefault(require("clsx"));
21
+ exports.Radio = (0, react_1.forwardRef)((_a, ref) => {
22
+ var { checked = false, onChange, disabled = false, size = "medium", label, helperText, className = "", id } = _a, props = __rest(_a, ["checked", "onChange", "disabled", "size", "label", "helperText", "className", "id"]);
23
+ const handleChange = (e) => {
24
+ if (!disabled && onChange) {
25
+ onChange(e.target.checked);
26
+ }
27
+ };
28
+ const handleKeyDown = (e) => {
29
+ if (e.key === "Enter" || e.key === " ") {
30
+ e.preventDefault();
31
+ if (!disabled && onChange && !checked) {
32
+ onChange(true);
33
+ }
34
+ }
35
+ };
36
+ const handleClick = () => {
37
+ if (!disabled && onChange && !checked) {
38
+ onChange(true);
39
+ }
40
+ };
41
+ const radioSize = size === "small" ? "w-5 h-5 md:w-3.5 md:h-3.5" : "w-5 h-5 md:w-4 md:h-4";
42
+ const dotSize = size === "small" ? "w-2 h-2 md:w-2 md:h-2" : "w-3 h-3 md:w-2.5 md:h-2.5";
43
+ const labelSize = size === "small" ? "text-b3" : "text-b1";
44
+ const helperSize = size === "small" ? "text-c1" : "text-b3";
45
+ const radioClasses = (0, clsx_1.default)("mt-1 relative flex items-center justify-center rounded-full border cursor-pointer transition-all duration-200 flex-shrink-0", radioSize, !disabled && !checked && "border-primary-500 bg-white", !disabled && !checked && "hover:bg-primary-100", !disabled &&
46
+ !checked &&
47
+ "focus:border-primary-500 focus:ring-2 focus:ring-primary-200", !disabled && checked && "border-primary-500 bg-white", disabled && "border-gray-200 bg-gray-100 cursor-not-allowed", className);
48
+ const labelClasses = (0, clsx_1.default)("ml-4 select-none transition-colors", labelSize, disabled ? "text-gray-400" : "text-gray-700");
49
+ const helperClasses = (0, clsx_1.default)("ml-4 mt-1", helperSize, disabled ? "text-gray-300" : "text-gray-400");
50
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-start", children: [(0, jsx_runtime_1.jsxs)("div", { className: radioClasses, tabIndex: disabled ? -1 : 0, onKeyDown: handleKeyDown, onClick: handleClick, role: "radio", "aria-checked": checked, "aria-disabled": disabled, children: [(0, jsx_runtime_1.jsx)("input", Object.assign({ ref: ref, type: "radio", checked: checked, onChange: handleChange, disabled: disabled, id: id, className: "sr-only" }, props)), checked && ((0, jsx_runtime_1.jsx)("span", { className: (0, clsx_1.default)("rounded-full bg-primary-500", dotSize) }))] }), (label || helperText) && ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col", children: [label && ((0, jsx_runtime_1.jsx)("label", { htmlFor: id, className: labelClasses, onClick: handleClick, style: { cursor: disabled ? "not-allowed" : "pointer" }, children: label })), helperText && (0, jsx_runtime_1.jsx)("span", { className: helperClasses, children: helperText })] }))] }));
51
+ });
52
+ exports.Radio.displayName = "Radio";
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ type Option = {
3
+ label: string;
4
+ value: string;
5
+ icon?: React.ReactNode;
6
+ disabled?: boolean;
7
+ };
8
+ type SelectDropdownProps = {
9
+ options: Option[];
10
+ value?: string;
11
+ onChange: (value: string) => void;
12
+ placeholder?: string;
13
+ disabled?: boolean;
14
+ className?: string;
15
+ placeholderIcon?: React.ReactNode;
16
+ size?: "small" | "medium";
17
+ };
18
+ export declare const SelectDropdown: React.FC<SelectDropdownProps>;
19
+ export {};
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SelectDropdown = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const react_dom_1 = __importDefault(require("react-dom"));
10
+ const IconChevronDown_1 = require("../icons/IconChevronDown");
11
+ const IconChevronUp_1 = require("../icons/IconChevronUp");
12
+ const SelectDropdown = ({ options, value, onChange, placeholder = "Select", disabled = false, className = "", placeholderIcon, size = "medium", }) => {
13
+ const [isOpen, setIsOpen] = (0, react_1.useState)(false);
14
+ const [hoveredIndex, setHoveredIndex] = (0, react_1.useState)(null);
15
+ const [menuStyles, setMenuStyles] = (0, react_1.useState)({});
16
+ const [mounted, setMounted] = (0, react_1.useState)(false);
17
+ const [menuReady, setMenuReady] = (0, react_1.useState)(false);
18
+ const triggerRef = (0, react_1.useRef)(null);
19
+ const dropdownRef = (0, react_1.useRef)(null);
20
+ const menuRef = (0, react_1.useRef)(null);
21
+ (0, react_1.useEffect)(() => {
22
+ setMounted(true);
23
+ }, []);
24
+ const selectedOption = options.find((opt) => opt.value === value);
25
+ const getSizeClasses = () => {
26
+ if (size === "small") {
27
+ return "px-2 py-1 text-b3 rounded-lg";
28
+ }
29
+ return "px-4 py-2 text-b1 rounded-xl";
30
+ };
31
+ const triggerClass = [
32
+ "w-full flex items-center gap-2 transition-colors outline-none text-left font-normal select-none",
33
+ getSizeClasses(),
34
+ "bg-white-100 border border-gray-300 hover:border-primary-500 focus:border-primary-500",
35
+ disabled
36
+ ? "text-textAtenea-300 hover:border-gray-200 cursor-not-allowed border-gray-200"
37
+ : "cursor-pointer",
38
+ isOpen && !disabled ? "border-primary-500 ring-2 ring-primary-200" : "",
39
+ className,
40
+ ].join(" ");
41
+ const getListClass = () => {
42
+ const baseClass = "absolute z-10 mt-1 w-full bg-white-100 border border-gray-200 py-1 animate-fade-in max-h-60 overflow-y-auto";
43
+ if (size === "small") {
44
+ return `${baseClass} rounded-lg`;
45
+ }
46
+ return `${baseClass} rounded-xl`;
47
+ };
48
+ const listClass = getListClass();
49
+ const getOptionSizeClasses = () => {
50
+ if (size === "small") {
51
+ return "px-2 py-1 text-b3";
52
+ }
53
+ return "px-4 py-2 text-b1";
54
+ };
55
+ const optionBase = [
56
+ "flex items-center gap-2 cursor-pointer transition-colors",
57
+ getOptionSizeClasses(),
58
+ ].join(" ");
59
+ const optionSelected = "bg-green-50 text-green-700";
60
+ const optionHover = "bg-gray-50";
61
+ const optionDisabled = "text-gray-300 cursor-not-allowed";
62
+ const handleKeyDown = (e) => {
63
+ if (disabled)
64
+ return;
65
+ if (e.key === "ArrowDown") {
66
+ e.preventDefault();
67
+ setIsOpen(true);
68
+ setHoveredIndex((prev) => prev === null || prev === options.length - 1 ? 0 : prev + 1);
69
+ }
70
+ else if (e.key === "ArrowUp") {
71
+ e.preventDefault();
72
+ setIsOpen(true);
73
+ setHoveredIndex((prev) => prev === null || prev === 0 ? options.length - 1 : prev - 1);
74
+ }
75
+ else if (e.key === "Enter" || e.key === " ") {
76
+ if (isOpen && hoveredIndex !== null && !options[hoveredIndex].disabled) {
77
+ onChange(options[hoveredIndex].value);
78
+ setIsOpen(false);
79
+ }
80
+ else {
81
+ setIsOpen((open) => !open);
82
+ }
83
+ }
84
+ else if (e.key === "Escape") {
85
+ setIsOpen(false);
86
+ }
87
+ };
88
+ // Calcula la posición del menú cuando se abre y al hacer scroll/resize
89
+ (0, react_1.useEffect)(() => {
90
+ if (!isOpen) {
91
+ setMenuReady(false);
92
+ return;
93
+ }
94
+ const updatePosition = () => {
95
+ if (triggerRef.current) {
96
+ const rect = triggerRef.current.getBoundingClientRect();
97
+ setMenuStyles({
98
+ position: "fixed",
99
+ top: rect.bottom + 4,
100
+ left: rect.left,
101
+ width: rect.width,
102
+ zIndex: 9999,
103
+ });
104
+ setMenuReady(true);
105
+ }
106
+ };
107
+ setTimeout(updatePosition, 0);
108
+ window.addEventListener("scroll", updatePosition, true);
109
+ window.addEventListener("resize", updatePosition);
110
+ // Cierra el menú si haces click fuera del trigger y del menú
111
+ const handleClick = (e) => {
112
+ var _a, _b;
113
+ const target = e.target;
114
+ const isInsideTrigger = (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.contains(target);
115
+ const isInsideMenu = (_b = menuRef.current) === null || _b === void 0 ? void 0 : _b.contains(target);
116
+ if (!isInsideTrigger && !isInsideMenu) {
117
+ setIsOpen(false);
118
+ }
119
+ };
120
+ document.addEventListener("mousedown", handleClick);
121
+ return () => {
122
+ window.removeEventListener("scroll", updatePosition, true);
123
+ window.removeEventListener("resize", updatePosition);
124
+ document.removeEventListener("mousedown", handleClick);
125
+ };
126
+ }, [isOpen]);
127
+ // El menú del dropdown (portal)
128
+ const menu = ((0, jsx_runtime_1.jsx)("ul", { ref: menuRef, className: listClass, style: menuStyles, role: "listbox", tabIndex: -1, children: options.map((opt, idx) => ((0, jsx_runtime_1.jsxs)("li", { role: "option", "aria-selected": value === opt.value, className: [
129
+ optionBase,
130
+ value === opt.value ? optionSelected : "",
131
+ hoveredIndex === idx ? optionHover : "",
132
+ opt.disabled ? optionDisabled : "",
133
+ ].join(" "), onMouseEnter: () => setHoveredIndex(idx), onMouseLeave: () => setHoveredIndex(null), onClick: () => {
134
+ if (!opt.disabled) {
135
+ onChange(opt.value);
136
+ setIsOpen(false);
137
+ }
138
+ }, tabIndex: -1, children: [opt.icon ? ((0, jsx_runtime_1.jsx)("span", { className: value === opt.value ? "text-greenSuccess-800" : "text-gray-400", children: opt.icon })) : null, (0, jsx_runtime_1.jsx)("span", { className: opt.disabled ? "text-gray-300" : "", children: opt.label })] }, opt.value))) }));
139
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "relative w-full", ref: dropdownRef, children: [(0, jsx_runtime_1.jsxs)("button", { ref: triggerRef, type: "button", className: triggerClass, onClick: () => !disabled && setIsOpen((open) => !open), onKeyDown: handleKeyDown, disabled: disabled, "aria-haspopup": "listbox", "aria-expanded": isOpen, tabIndex: 0, children: [(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.icon) ? ((0, jsx_runtime_1.jsx)("span", { className: "text-greenSuccess-800", children: selectedOption.icon })) : placeholderIcon ? ((0, jsx_runtime_1.jsx)("span", { className: "text-gray-400", children: placeholderIcon })) : null, (0, jsx_runtime_1.jsx)("span", { className: selectedOption ? "textAtenea-900" : "text-gray-400", children: selectedOption ? selectedOption.label : placeholder }), (0, jsx_runtime_1.jsx)("span", { className: "ml-auto", children: isOpen ? ((0, jsx_runtime_1.jsx)("span", { className: "text-greenSuccess-800", children: (0, jsx_runtime_1.jsx)(IconChevronUp_1.IconChevronUp, {}) })) : ((0, jsx_runtime_1.jsx)("span", { className: "text-gray-400", children: (0, jsx_runtime_1.jsx)(IconChevronDown_1.IconChevronDown, {}) })) })] }), mounted &&
140
+ isOpen &&
141
+ menuReady &&
142
+ !disabled &&
143
+ typeof window !== "undefined" &&
144
+ react_dom_1.default.createPortal(menu, document.body)] }));
145
+ };
146
+ exports.SelectDropdown = SelectDropdown;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ type ToggleProps = {
3
+ checked?: boolean;
4
+ onChange?: (checked: boolean) => void;
5
+ disabled?: boolean;
6
+ label?: string;
7
+ className?: string;
8
+ id?: string;
9
+ };
10
+ export declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<HTMLInputElement>>;
11
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Toggle = void 0;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const react_1 = require("react");
20
+ const clsx_1 = __importDefault(require("clsx"));
21
+ exports.Toggle = (0, react_1.forwardRef)((_a, ref) => {
22
+ var { checked = false, onChange, disabled = false, label, className = "", id } = _a, props = __rest(_a, ["checked", "onChange", "disabled", "label", "className", "id"]);
23
+ const handleChange = (e) => {
24
+ if (!disabled && onChange) {
25
+ onChange(e.target.checked);
26
+ }
27
+ };
28
+ const handleKeyDown = (e) => {
29
+ if (e.key === "Enter" || e.key === " ") {
30
+ e.preventDefault();
31
+ if (!disabled && onChange) {
32
+ onChange(!checked);
33
+ }
34
+ }
35
+ };
36
+ const handleClick = () => {
37
+ if (!disabled && onChange) {
38
+ onChange(!checked);
39
+ }
40
+ };
41
+ const toggleClasses = (0, clsx_1.default)("relative inline-flex items-center w-10 h-5 rounded-full transition-colors duration-200 cursor-pointer", !disabled && !checked && "bg-gray-300", !disabled && !checked && "hover:bg-gray-400", !disabled &&
42
+ !checked &&
43
+ "focus:ring-2 focus:ring-green-300 focus:ring-offset-1", !disabled && checked && "bg-green-500", !disabled && checked && "hover:bg-green-600", !disabled &&
44
+ checked &&
45
+ "focus:ring-2 focus:ring-green-300 focus:ring-offset-1", disabled && "bg-gray-100 cursor-not-allowed opacity-50", className);
46
+ const thumbClasses = (0, clsx_1.default)("absolute", disabled && "opacity-50");
47
+ const labelClasses = (0, clsx_1.default)("ml-3 select-none transition-colors text-b1", disabled ? "text-gray-400 opacity-50" : "text-gray-700");
48
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsxs)("div", { className: toggleClasses, tabIndex: disabled ? -1 : 0, onKeyDown: handleKeyDown, onClick: handleClick, role: "switch", "aria-checked": checked, "aria-disabled": disabled, children: [(0, jsx_runtime_1.jsx)("input", Object.assign({ ref: ref, type: "checkbox", checked: checked, onChange: handleChange, disabled: disabled, id: id, className: "sr-only" }, props)), (0, jsx_runtime_1.jsx)("span", { className: thumbClasses, style: {
49
+ left: checked ? "1.25rem" : "0.125rem",
50
+ top: "0.125rem",
51
+ width: "1rem",
52
+ height: "1rem",
53
+ backgroundColor: "white",
54
+ borderRadius: "50%",
55
+ boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1)",
56
+ transition: "left 0.2s ease-in-out",
57
+ } })] }), label && ((0, jsx_runtime_1.jsx)("label", { htmlFor: id, className: labelClasses, children: label }))] }));
58
+ });
59
+ exports.Toggle.displayName = "Toggle";
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconArrowDown: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconArrowDown = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const io5_1 = require("react-icons/io5");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconArrowDown = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: io5_1.IoArrowDown }, props));
9
+ };
10
+ exports.IconArrowDown = IconArrowDown;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconArrowLeft: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconArrowLeft = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const io5_1 = require("react-icons/io5");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconArrowLeft = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: io5_1.IoArrowBack }, props));
9
+ };
10
+ exports.IconArrowLeft = IconArrowLeft;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconArrowRight: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconArrowRight = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const io5_1 = require("react-icons/io5");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconArrowRight = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: io5_1.IoArrowForward }, props));
9
+ };
10
+ exports.IconArrowRight = IconArrowRight;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconArrowUp: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconArrowUp = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const io5_1 = require("react-icons/io5");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconArrowUp = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: io5_1.IoArrowUp }, props));
9
+ };
10
+ exports.IconArrowUp = IconArrowUp;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { colors } from '../../tokens/colors';
3
+ type IconBaseProps = {
4
+ icon: React.ElementType;
5
+ size?: number | string;
6
+ color?: keyof typeof colors | string;
7
+ className?: string;
8
+ };
9
+ export declare const IconBase: ({ icon: Icon, size, color, className, ...props }: IconBaseProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.IconBase = void 0;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const colors_1 = require("../../tokens/colors");
20
+ const clsx_1 = __importDefault(require("clsx"));
21
+ const IconBase = (_a) => {
22
+ var { icon: Icon, size = 20, color = 'currentColor', className } = _a, props = __rest(_a, ["icon", "size", "color", "className"]);
23
+ const getColor = (colorKey) => {
24
+ const [colorName, shade] = colorKey.split('-');
25
+ const colorObj = colors_1.colors[colorName];
26
+ return colorObj ? colorObj[Number(shade)] : colorKey;
27
+ };
28
+ return ((0, jsx_runtime_1.jsx)(Icon, Object.assign({ size: size, color: typeof color === 'string' && color.includes('-') ? getColor(color) : color, className: (0, clsx_1.default)('inline-block', className) }, props)));
29
+ };
30
+ exports.IconBase = IconBase;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconBook: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconBook = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const bi_1 = require("react-icons/bi");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconBook = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: bi_1.BiBook }, props));
9
+ };
10
+ exports.IconBook = IconBook;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconBookmark: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconBookmark = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const lu_1 = require("react-icons/lu");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconBookmark = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: lu_1.LuBookmark }, props));
9
+ };
10
+ exports.IconBookmark = IconBookmark;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconCalendar: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconCalendar = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const lu_1 = require("react-icons/lu");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconCalendar = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: lu_1.LuCalendar }, props));
9
+ };
10
+ exports.IconCalendar = IconCalendar;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from "./IconBase";
2
+ export declare const IconCancel: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconCancel = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const lu_1 = require("react-icons/lu");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconCancel = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: lu_1.LuX }, props));
9
+ };
10
+ exports.IconCancel = IconCancel;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconCheck: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconCheck = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const lu_1 = require("react-icons/lu");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconCheck = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: lu_1.LuCheck }, props));
9
+ };
10
+ exports.IconCheck = IconCheck;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconCheckCircle: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconCheckCircle = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const io_1 = require("react-icons/io");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconCheckCircle = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: io_1.IoIosCheckmarkCircleOutline }, props));
9
+ };
10
+ exports.IconCheckCircle = IconCheckCircle;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconChevronDown: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconChevronDown = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const io5_1 = require("react-icons/io5");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconChevronDown = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: io5_1.IoChevronDownOutline }, props));
9
+ };
10
+ exports.IconChevronDown = IconChevronDown;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconChevronLeft: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconChevronLeft = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const io5_1 = require("react-icons/io5");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconChevronLeft = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: io5_1.IoChevronBackOutline }, props));
9
+ };
10
+ exports.IconChevronLeft = IconChevronLeft;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconChevronRight: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconChevronRight = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const io5_1 = require("react-icons/io5");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconChevronRight = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: io5_1.IoChevronForwardOutline }, props));
9
+ };
10
+ exports.IconChevronRight = IconChevronRight;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconChevronUp: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconChevronUp = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const io5_1 = require("react-icons/io5");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconChevronUp = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: io5_1.IoChevronUpOutline }, props));
9
+ };
10
+ exports.IconChevronUp = IconChevronUp;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconClipboard: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconClipboard = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const lu_1 = require("react-icons/lu");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconClipboard = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: lu_1.LuClipboardCheck }, props));
9
+ };
10
+ exports.IconClipboard = IconClipboard;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconCreditCard: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconCreditCard = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const IconBase_1 = require("./IconBase");
6
+ const lu_1 = require("react-icons/lu");
7
+ const IconCreditCard = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: lu_1.LuCreditCard }, props));
9
+ };
10
+ exports.IconCreditCard = IconCreditCard;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconExclamationOctagon: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconExclamationOctagon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const bs_1 = require("react-icons/bs");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconExclamationOctagon = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: bs_1.BsExclamationOctagon }, props));
9
+ };
10
+ exports.IconExclamationOctagon = IconExclamationOctagon;
@@ -0,0 +1,2 @@
1
+ import { IconBase } from './IconBase';
2
+ export declare const IconExclamationTriangle: (props: Omit<React.ComponentProps<typeof IconBase>, "icon">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconExclamationTriangle = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const bs_1 = require("react-icons/bs");
6
+ const IconBase_1 = require("./IconBase");
7
+ const IconExclamationTriangle = (props) => {
8
+ return (0, jsx_runtime_1.jsx)(IconBase_1.IconBase, Object.assign({ icon: bs_1.BsExclamationTriangle }, props));
9
+ };
10
+ exports.IconExclamationTriangle = IconExclamationTriangle;