funuicss 3.5.4 → 3.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/ui/calendar/Calendar.d.ts +1 -0
- package/ui/calendar/Calendar.js +28 -26
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.5.
|
|
2
|
+
"version": "3.5.6",
|
|
3
3
|
"name": "funuicss",
|
|
4
4
|
"description": "React and Next.js component UI Library for creating Easy and good looking websites with fewer lines of code. Elevate your web development experience with our cutting-edge React/Next.js component UI Library. Craft stunning websites effortlessly, boasting both seamless functionality and aesthetic appeal—all achieved with minimal lines of code. Unleash the power of simplicity and style in your projects!",
|
|
5
5
|
"main": "index.js",
|
|
@@ -14,6 +14,7 @@ interface CalendarProps {
|
|
|
14
14
|
onActivityClick?: (activity: Activity) => void;
|
|
15
15
|
onDateClick?: (date: Date) => void;
|
|
16
16
|
funcss?: string;
|
|
17
|
+
readonly?: boolean;
|
|
17
18
|
weekStart?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
18
19
|
renderActivity?: (activity: Activity) => React.ReactNode;
|
|
19
20
|
showAdjacentMonths?: boolean;
|
package/ui/calendar/Calendar.js
CHANGED
|
@@ -53,18 +53,19 @@ var Dropdown_1 = __importDefault(require("../drop/Dropdown"));
|
|
|
53
53
|
var hi_1 = require("react-icons/hi");
|
|
54
54
|
var Flex_1 = __importDefault(require("../flex/Flex"));
|
|
55
55
|
var Select_1 = __importDefault(require("../select/Select"));
|
|
56
|
+
var Col_1 = __importDefault(require("../grid/Col"));
|
|
56
57
|
dayjs_1.default.extend(isSameOrAfter_1.default);
|
|
57
58
|
dayjs_1.default.extend(isSameOrBefore_1.default);
|
|
58
59
|
var Calendar = function (_a) {
|
|
59
|
-
var activities = _a.activities, onAdd = _a.onAdd, onActivityClick = _a.onActivityClick, onDateClick = _a.onDateClick, _b = _a.funcss, funcss = _b === void 0 ? '' : _b, _c = _a.weekStart, weekStart = _c === void 0 ? 0 : _c, renderActivity = _a.renderActivity, _d = _a.showAdjacentMonths, showAdjacentMonths = _d === void 0 ? true : _d, minDate = _a.minDate, maxDate = _a.maxDate;
|
|
60
|
-
var
|
|
61
|
-
var
|
|
62
|
-
var
|
|
63
|
-
var
|
|
60
|
+
var activities = _a.activities, onAdd = _a.onAdd, onActivityClick = _a.onActivityClick, onDateClick = _a.onDateClick, _b = _a.funcss, funcss = _b === void 0 ? '' : _b, _c = _a.weekStart, weekStart = _c === void 0 ? 0 : _c, renderActivity = _a.renderActivity, _d = _a.showAdjacentMonths, showAdjacentMonths = _d === void 0 ? true : _d, minDate = _a.minDate, _e = _a.readonly, readonly = _e === void 0 ? false : _e, maxDate = _a.maxDate;
|
|
61
|
+
var _f = (0, react_1.useState)((0, dayjs_1.default)()), currentMonth = _f[0], setCurrentMonth = _f[1];
|
|
62
|
+
var _g = (0, react_1.useState)(null), hoveredDate = _g[0], setHoveredDate = _g[1];
|
|
63
|
+
var _h = (0, react_1.useState)(null), selectedDate = _h[0], setSelectedDate = _h[1];
|
|
64
|
+
var _j = (0, react_1.useState)(false), showMoreActivities = _j[0], setShowMoreActivities = _j[1];
|
|
64
65
|
// ✅ NEW: View mode state
|
|
65
|
-
var
|
|
66
|
+
var _k = (0, react_1.useState)('month'), viewMode = _k[0], setViewMode = _k[1];
|
|
66
67
|
var startOfWeek = currentMonth.startOf('week').add(weekStart, 'day');
|
|
67
|
-
var
|
|
68
|
+
var _l = (0, react_1.useMemo)(function () {
|
|
68
69
|
var days = [];
|
|
69
70
|
if (viewMode === 'month') {
|
|
70
71
|
var startOfMonth = currentMonth.startOf('month');
|
|
@@ -110,7 +111,7 @@ var Calendar = function (_a) {
|
|
|
110
111
|
}
|
|
111
112
|
});
|
|
112
113
|
return { days: days, monthActivities: monthActivities };
|
|
113
|
-
}, [currentMonth, activities, viewMode, weekStart, showAdjacentMonths]), days =
|
|
114
|
+
}, [currentMonth, activities, viewMode, weekStart, showAdjacentMonths]), days = _l.days, monthActivities = _l.monthActivities;
|
|
114
115
|
var prevPeriod = function () {
|
|
115
116
|
return setCurrentMonth(currentMonth.subtract(1, viewMode === 'month' ? 'month' : 'week'));
|
|
116
117
|
};
|
|
@@ -144,7 +145,7 @@ var Calendar = function (_a) {
|
|
|
144
145
|
}
|
|
145
146
|
return days;
|
|
146
147
|
}, [weekStart]);
|
|
147
|
-
var
|
|
148
|
+
var _m = (0, react_1.useState)(false), isMobile = _m[0], setIsMobile = _m[1];
|
|
148
149
|
(0, react_1.useEffect)(function () {
|
|
149
150
|
var updateViewMode = function () {
|
|
150
151
|
var small = window.innerWidth < 768;
|
|
@@ -159,32 +160,33 @@ var Calendar = function (_a) {
|
|
|
159
160
|
react_1.default.createElement("div", { className: "calendar-header" },
|
|
160
161
|
react_1.default.createElement(Avatar_1.default, { funcss: "border", onClick: prevPeriod },
|
|
161
162
|
react_1.default.createElement(pi_1.PiCaretLeft, null)),
|
|
162
|
-
react_1.default.createElement(
|
|
163
|
-
react_1.default.createElement(
|
|
163
|
+
react_1.default.createElement(Flex_1.default, { width: '100%', gap: 1, alignItems: "center" },
|
|
164
|
+
react_1.default.createElement(Col_1.default, null,
|
|
164
165
|
react_1.default.createElement(Select_1.default, { value: currentMonth.month().toString(), onChange: function (e) {
|
|
165
166
|
return setCurrentMonth(currentMonth.month(parseInt(e)));
|
|
166
167
|
}, options: Array.from({ length: 12 }, function (_, i) { return ({
|
|
167
168
|
value: i.toString(),
|
|
168
169
|
text: (0, dayjs_1.default)().month(i).format('MMMM'),
|
|
169
|
-
}); }), borderless: true, funcss: "round-edge" }),
|
|
170
|
+
}); }), borderless: true, funcss: "round-edge" })),
|
|
171
|
+
react_1.default.createElement(Col_1.default, null,
|
|
170
172
|
react_1.default.createElement(Select_1.default, { value: currentMonth.year().toString(), onChange: function (e) {
|
|
171
173
|
return setCurrentMonth(currentMonth.year(parseInt(e)));
|
|
172
174
|
}, options: Array.from({ length: 21 }, function (_, i) {
|
|
173
175
|
var year = (0, dayjs_1.default)().year() - 10 + i;
|
|
174
176
|
return { value: year.toString(), text: year.toString() };
|
|
175
|
-
}), borderless: true, funcss: "round-edge" }),
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
177
|
+
}), borderless: true, funcss: "round-edge" })),
|
|
178
|
+
react_1.default.createElement(Dropdown_1.default, { direction: "dropdown", position: 'right', openOnHover: false, button: react_1.default.createElement(Avatar_1.default, null,
|
|
179
|
+
react_1.default.createElement(hi_1.HiOutlineDotsVertical, null)), items: [
|
|
180
|
+
{
|
|
181
|
+
label: react_1.default.createElement("span", { className: "text-sm" }, "Today"),
|
|
182
|
+
onClick: function () { return goToToday(); },
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
label: react_1.default.createElement("div", { className: "text-sm", onClick: function () {
|
|
186
|
+
return setViewMode(viewMode === 'month' ? 'week' : 'month');
|
|
187
|
+
} }, viewMode === 'month' ? 'Switch to Week' : 'Switch to Month'),
|
|
188
|
+
},
|
|
189
|
+
] })),
|
|
188
190
|
react_1.default.createElement(Avatar_1.default, { funcss: "border", onClick: nextPeriod },
|
|
189
191
|
react_1.default.createElement(pi_1.PiCaretRight, null))),
|
|
190
192
|
react_1.default.createElement("div", { className: "calendar-weekdays" }, weekdays.map(function (d, i) { return (react_1.default.createElement("div", { key: i, className: "weekday-header" }, d)); })),
|
|
@@ -207,7 +209,7 @@ var Calendar = function (_a) {
|
|
|
207
209
|
"+",
|
|
208
210
|
activitiesToday.length - 3,
|
|
209
211
|
" more"))))),
|
|
210
|
-
hoveredDate === key && !disabled && (react_1.default.createElement("div", { className: "add-icon hide-small", onClick: function (e) { return handleAdd(e, date); } },
|
|
212
|
+
hoveredDate === key && !disabled && !readonly && (react_1.default.createElement("div", { className: "add-icon hide-small", onClick: function (e) { return handleAdd(e, date); } },
|
|
211
213
|
react_1.default.createElement(Circle_1.default, { bg: 'primary' },
|
|
212
214
|
react_1.default.createElement(pi_1.PiPlus, null))))));
|
|
213
215
|
})),
|