@myrjfa/ui 1.0.8 → 1.0.10
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/dist/chat/ChatMain.d.ts +9 -0
- package/dist/chat/ChatMain.d.ts.map +1 -0
- package/dist/chat/ChatMain.js +272 -0
- package/dist/chat/ChatSidebar.d.ts +13 -0
- package/dist/chat/ChatSidebar.d.ts.map +1 -0
- package/dist/chat/ChatSidebar.js +23 -0
- package/dist/chat/ConversationList.d.ts +12 -0
- package/dist/chat/ConversationList.d.ts.map +1 -0
- package/dist/chat/ConversationList.js +70 -0
- package/dist/chat/ExpensePanel.d.ts +11 -0
- package/dist/chat/ExpensePanel.d.ts.map +1 -0
- package/dist/chat/ExpensePanel.js +235 -0
- package/dist/chat/MessageBubble.d.ts +18 -0
- package/dist/chat/MessageBubble.d.ts.map +1 -0
- package/dist/chat/MessageBubble.js +284 -0
- package/dist/chat/MessageInput.d.ts +21 -0
- package/dist/chat/MessageInput.d.ts.map +1 -0
- package/dist/chat/MessageInput.js +252 -0
- package/dist/chat/MilestonePanel.d.ts +11 -0
- package/dist/chat/MilestonePanel.d.ts.map +1 -0
- package/dist/chat/MilestonePanel.js +173 -0
- package/dist/chat/components/ParticipantSelector.d.ts +11 -0
- package/dist/chat/components/ParticipantSelector.d.ts.map +1 -0
- package/dist/chat/components/ParticipantSelector.js +17 -0
- package/dist/chat/components/SplitInputs.d.ts +11 -0
- package/dist/chat/components/SplitInputs.d.ts.map +1 -0
- package/dist/chat/components/SplitInputs.js +83 -0
- package/dist/chat/components/SplitTypeSelector.d.ts +8 -0
- package/dist/chat/components/SplitTypeSelector.d.ts.map +1 -0
- package/dist/chat/components/SplitTypeSelector.js +13 -0
- package/dist/chat/dialogs/AddMemberDialog.d.ts +10 -0
- package/dist/chat/dialogs/AddMemberDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/AddMemberDialog.js +50 -0
- package/dist/chat/dialogs/CameraDialog.d.ts +8 -0
- package/dist/chat/dialogs/CameraDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/CameraDialog.js +80 -0
- package/dist/chat/dialogs/CreatePollDialog.d.ts +8 -0
- package/dist/chat/dialogs/CreatePollDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/CreatePollDialog.js +38 -0
- package/dist/chat/dialogs/ExpenseAnalyticsDialog.d.ts +19 -0
- package/dist/chat/dialogs/ExpenseAnalyticsDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/ExpenseAnalyticsDialog.js +52 -0
- package/dist/chat/dialogs/GroupInfoDialog.d.ts +10 -0
- package/dist/chat/dialogs/GroupInfoDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/GroupInfoDialog.js +71 -0
- package/dist/chat/dialogs/GroupInfoViewDialog.d.ts +9 -0
- package/dist/chat/dialogs/GroupInfoViewDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/GroupInfoViewDialog.js +15 -0
- package/dist/chat/dialogs/NewChatDialog.d.ts +2 -0
- package/dist/chat/dialogs/NewChatDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/NewChatDialog.js +63 -0
- package/dist/chat/dialogs/NewGroupDialog.d.ts +2 -0
- package/dist/chat/dialogs/NewGroupDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/NewGroupDialog.js +69 -0
- package/dist/chat/dialogs/ParticipantsDialog.d.ts +11 -0
- package/dist/chat/dialogs/ParticipantsDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/ParticipantsDialog.js +93 -0
- package/dist/chat/dialogs/UserProfileDialog.d.ts +10 -0
- package/dist/chat/dialogs/UserProfileDialog.d.ts.map +1 -0
- package/dist/chat/dialogs/UserProfileDialog.js +100 -0
- package/dist/chat/index.d.ts +8 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +7 -0
- package/dist/dashboard/action-buttons.js +4 -5
- package/dist/dashboard/app-sidebar.js +46 -128
- package/dist/dashboard/card-header.js +1 -2
- package/dist/dashboard/dashboard-components.js +3 -5
- package/dist/dashboard/data-table.d.ts +18 -18
- package/dist/dashboard/data-table.js +54 -66
- package/dist/dashboard/nav-main.js +4 -5
- package/dist/dashboard/nav-secondary.js +2 -25
- package/dist/dashboard/stats-card.js +1 -2
- package/dist/dashboard/table.js +8 -54
- package/dist/header/mobile-nav-item.js +1 -2
- package/dist/header/mobile-navbar.js +8 -9
- package/dist/header/nav-item.d.ts +2 -1
- package/dist/header/nav-item.d.ts.map +1 -1
- package/dist/header/nav-item.js +2 -3
- package/dist/index.d.ts +57 -56
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -57
- package/dist/main/footer.js +5 -9
- package/dist/main/navbar.d.ts.map +1 -1
- package/dist/main/navbar.js +53 -136
- package/dist/main/paginationBar.js +12 -14
- package/dist/main/portfolio/portfolioItem.js +1 -2
- package/dist/main/portfolio/portfolioPopup.js +16 -17
- package/dist/main/review-page.d.ts.map +1 -1
- package/dist/main/review-page.js +131 -198
- package/dist/misc/accordion.js +8 -34
- package/dist/misc/alert-dialog.js +22 -55
- package/dist/misc/alert.js +7 -32
- package/dist/misc/alertdialogclaude.js +50 -125
- package/dist/misc/avatar.js +6 -31
- package/dist/misc/badge.d.ts +8 -8
- package/dist/misc/badge.js +4 -27
- package/dist/misc/button.d.ts +9 -9
- package/dist/misc/button.js +4 -27
- package/dist/misc/card.js +12 -40
- package/dist/misc/carousel.js +37 -61
- package/dist/misc/checkbox.js +2 -25
- package/dist/misc/command.d.ts +3 -1
- package/dist/misc/command.d.ts.map +1 -1
- package/dist/misc/command.js +18 -49
- package/dist/misc/datepicker.js +66 -76
- package/dist/misc/dialog.js +20 -52
- package/dist/misc/dropdown-menu.js +30 -67
- package/dist/misc/faq.js +2 -3
- package/dist/misc/file-preview.js +43 -97
- package/dist/misc/filter.d.ts.map +1 -1
- package/dist/misc/filter.js +18 -21
- package/dist/misc/filterBar.js +136 -160
- package/dist/misc/form.d.ts +1 -1
- package/dist/misc/form.d.ts.map +1 -1
- package/dist/misc/form.js +39 -60
- package/dist/misc/image-cropper.d.ts +10 -0
- package/dist/misc/image-cropper.d.ts.map +1 -0
- package/dist/misc/image-cropper.js +44 -0
- package/dist/misc/input.js +2 -25
- package/dist/misc/label.js +2 -25
- package/dist/misc/line-carousel.js +3 -13
- package/dist/misc/multiImageUploader.d.ts +8 -8
- package/dist/misc/multiImageUploader.js +10 -11
- package/dist/misc/newsLetter.js +18 -78
- package/dist/misc/notification.d.ts +1 -2
- package/dist/misc/notification.d.ts.map +1 -1
- package/dist/misc/notification.js +89 -125
- package/dist/misc/pagination.js +16 -45
- package/dist/misc/password-eye.js +2 -3
- package/dist/misc/popover.d.ts.map +1 -1
- package/dist/misc/popover.js +8 -34
- package/dist/misc/progress.js +2 -25
- package/dist/misc/scroll-area.js +5 -29
- package/dist/misc/searchBar.js +27 -31
- package/dist/misc/searchBox.js +18 -22
- package/dist/misc/select.d.ts.map +1 -1
- package/dist/misc/select.js +22 -54
- package/dist/misc/separator.js +2 -25
- package/dist/misc/share.js +48 -104
- package/dist/misc/sheet.js +21 -53
- package/dist/misc/sidebar.d.ts +69 -69
- package/dist/misc/sidebar.js +112 -153
- package/dist/misc/skeleton.d.ts +2 -2
- package/dist/misc/skeleton.js +6 -29
- package/dist/misc/slider.js +3 -26
- package/dist/misc/starRating.js +5 -15
- package/dist/misc/stateCard.js +7 -8
- package/dist/misc/switch.d.ts +5 -0
- package/dist/misc/switch.d.ts.map +1 -0
- package/dist/misc/switch.js +8 -0
- package/dist/misc/tabs.js +8 -34
- package/dist/misc/textarea.js +2 -25
- package/dist/misc/tile.js +31 -92
- package/dist/misc/tooltip.js +8 -34
- package/dist/profile/socialLink.d.ts +1 -1
- package/dist/profile/socialLink.d.ts.map +1 -1
- package/dist/profile/socialLink.js +53 -69
- package/dist/utils/permissions.d.ts +7 -0
- package/dist/utils/permissions.d.ts.map +1 -0
- package/dist/utils/permissions.js +38 -0
- package/package.json +8 -5
package/dist/misc/form.js
CHANGED
|
@@ -1,81 +1,60 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
-
var t = {};
|
|
15
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
-
t[p] = s[p];
|
|
17
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
-
t[p[i]] = s[p[i]];
|
|
21
|
-
}
|
|
22
|
-
return t;
|
|
23
|
-
};
|
|
24
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
25
3
|
import { Slot } from "@radix-ui/react-slot";
|
|
26
4
|
import { cn } from "@myrjfa/state/dist/lib/utils";
|
|
27
5
|
import * as React from "react";
|
|
28
6
|
import { Controller, FormProvider, useFormContext, useFormState, } from "react-hook-form";
|
|
29
7
|
import { Label } from "./label";
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return (_jsx(FormFieldContext.Provider, { value: { name: props.name }, children: _jsx(Controller, __assign({}, props)) }));
|
|
8
|
+
const Form = FormProvider;
|
|
9
|
+
const FormFieldContext = React.createContext({});
|
|
10
|
+
const FormField = ({ ...props }) => {
|
|
11
|
+
return (_jsx(FormFieldContext.Provider, { value: { name: props.name }, children: _jsx(Controller, { ...props }) }));
|
|
35
12
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
13
|
+
const useFormField = () => {
|
|
14
|
+
const fieldContext = React.useContext(FormFieldContext);
|
|
15
|
+
const itemContext = React.useContext(FormItemContext);
|
|
16
|
+
const { getFieldState } = useFormContext();
|
|
17
|
+
const formState = useFormState({ name: fieldContext.name });
|
|
18
|
+
const fieldState = getFieldState(fieldContext.name, formState);
|
|
42
19
|
if (!fieldContext) {
|
|
43
20
|
throw new Error("useFormField should be used within <FormField>");
|
|
44
21
|
}
|
|
45
|
-
|
|
46
|
-
return
|
|
22
|
+
const { id } = itemContext;
|
|
23
|
+
return {
|
|
24
|
+
id,
|
|
25
|
+
name: fieldContext.name,
|
|
26
|
+
formItemId: `${id}-form-item`,
|
|
27
|
+
formDescriptionId: `${id}-form-item-description`,
|
|
28
|
+
formMessageId: `${id}-form-item-message`,
|
|
29
|
+
...fieldState,
|
|
30
|
+
};
|
|
47
31
|
};
|
|
48
|
-
|
|
49
|
-
function FormItem(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return (_jsx(FormItemContext.Provider, { value: { id: id }, children: _jsx("div", __assign({ "data-slot": "form-item", className: cn("grid gap-2", className) }, props)) }));
|
|
32
|
+
const FormItemContext = React.createContext({});
|
|
33
|
+
function FormItem({ className, ...props }) {
|
|
34
|
+
const id = React.useId();
|
|
35
|
+
return (_jsx(FormItemContext.Provider, { value: { id }, children: _jsx("div", { "data-slot": "form-item", className: cn("grid gap-2", className), ...props }) }));
|
|
53
36
|
}
|
|
54
|
-
function FormLabel(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return (_jsx(Label, __assign({ "data-slot": "form-label", "data-error": !!error, className: cn("data-[error=true]:text-destructive-foreground", className), htmlFor: formItemId }, props)));
|
|
37
|
+
function FormLabel({ className, ...props }) {
|
|
38
|
+
const { error, formItemId } = useFormField();
|
|
39
|
+
return (_jsx(Label, { "data-slot": "form-label", "data-error": !!error, className: cn("data-[error=true]:text-destructive-foreground", className), htmlFor: formItemId, ...props }));
|
|
58
40
|
}
|
|
59
|
-
function FormControl(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
: "".concat(formDescriptionId, " ").concat(formMessageId), "aria-invalid": !!error }, props)));
|
|
41
|
+
function FormControl({ ...props }) {
|
|
42
|
+
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
43
|
+
return (_jsx(Slot, { "data-slot": "form-control", id: formItemId, "aria-describedby": !error
|
|
44
|
+
? `${formDescriptionId}`
|
|
45
|
+
: `${formDescriptionId} ${formMessageId}`, "aria-invalid": !!error, ...props }));
|
|
65
46
|
}
|
|
66
|
-
function FormDescription(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return (_jsx("p", __assign({ "data-slot": "form-description", id: formDescriptionId, className: cn("text-muted-foreground text-sm", className) }, props)));
|
|
47
|
+
function FormDescription({ className, ...props }) {
|
|
48
|
+
const { formDescriptionId } = useFormField();
|
|
49
|
+
return (_jsx("p", { "data-slot": "form-description", id: formDescriptionId, className: cn("text-muted-foreground text-sm", className), ...props }));
|
|
70
50
|
}
|
|
71
|
-
function FormMessage(
|
|
72
|
-
var
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
var body = error ? String((_b = error === null || error === void 0 ? void 0 : error.message) !== null && _b !== void 0 ? _b : "") : props.children;
|
|
51
|
+
function FormMessage({ className, ...props }) {
|
|
52
|
+
var _a;
|
|
53
|
+
const { error, formMessageId } = useFormField();
|
|
54
|
+
const body = error ? String((_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : "") : props.children;
|
|
76
55
|
if (!body) {
|
|
77
56
|
return null;
|
|
78
57
|
}
|
|
79
|
-
return (_jsx("p",
|
|
58
|
+
return (_jsx("p", { "data-slot": "form-message", id: formMessageId, className: cn("text-destructive-foreground text-sm", className), ...props, children: body }));
|
|
80
59
|
}
|
|
81
60
|
export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface ImageCropperProps {
|
|
3
|
+
image: string;
|
|
4
|
+
onCancel: () => void;
|
|
5
|
+
onCropComplete: (croppedImage: Blob) => void;
|
|
6
|
+
open: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare const ImageCropper: React.FC<ImageCropperProps>;
|
|
9
|
+
export default ImageCropper;
|
|
10
|
+
//# sourceMappingURL=image-cropper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-cropper.d.ts","sourceRoot":"","sources":["../../src/misc/image-cropper.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAMrD,UAAU,iBAAiB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC;IAC7C,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgG7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useCallback } from "react";
|
|
4
|
+
import Cropper from "react-easy-crop";
|
|
5
|
+
import { Button } from "./button";
|
|
6
|
+
import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from "./dialog";
|
|
7
|
+
import { Slider } from "./slider";
|
|
8
|
+
const ImageCropper = ({ image, onCancel, onCropComplete, open }) => {
|
|
9
|
+
const [crop, setCrop] = useState({ x: 0, y: 0 });
|
|
10
|
+
const [zoom, setZoom] = useState(1);
|
|
11
|
+
const [croppedAreaPixels, setCroppedAreaPixels] = useState(null);
|
|
12
|
+
const onCropChange = (crop) => {
|
|
13
|
+
setCrop(crop);
|
|
14
|
+
};
|
|
15
|
+
const onZoomChange = (zoom) => {
|
|
16
|
+
setZoom(zoom);
|
|
17
|
+
};
|
|
18
|
+
const onCropCompleteCallback = useCallback((_, croppedAreaPixels) => {
|
|
19
|
+
setCroppedAreaPixels(croppedAreaPixels);
|
|
20
|
+
}, []);
|
|
21
|
+
const createCroppedImage = async () => {
|
|
22
|
+
if (!croppedAreaPixels || !image)
|
|
23
|
+
return;
|
|
24
|
+
const img = new Image();
|
|
25
|
+
img.src = image;
|
|
26
|
+
await new Promise((resolve) => {
|
|
27
|
+
img.onload = resolve;
|
|
28
|
+
});
|
|
29
|
+
const canvas = document.createElement("canvas");
|
|
30
|
+
const ctx = canvas.getContext("2d");
|
|
31
|
+
if (!ctx)
|
|
32
|
+
return;
|
|
33
|
+
canvas.width = croppedAreaPixels.width;
|
|
34
|
+
canvas.height = croppedAreaPixels.height;
|
|
35
|
+
ctx.drawImage(img, croppedAreaPixels.x, croppedAreaPixels.y, croppedAreaPixels.width, croppedAreaPixels.height, 0, 0, croppedAreaPixels.width, croppedAreaPixels.height);
|
|
36
|
+
canvas.toBlob((blob) => {
|
|
37
|
+
if (blob) {
|
|
38
|
+
onCropComplete(blob);
|
|
39
|
+
}
|
|
40
|
+
}, "image/jpeg");
|
|
41
|
+
};
|
|
42
|
+
return (_jsx(Dialog, { open: open, onOpenChange: (isOpen) => !isOpen && onCancel(), children: _jsxs(DialogContent, { className: "sm:max-w-[500px] z-[300]", children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: "Crop Profile Picture" }) }), _jsx("div", { className: "relative h-[300px] w-full bg-gray-100 rounded-md overflow-hidden", children: _jsx(Cropper, { image: image, crop: crop, zoom: zoom, aspect: 1, cropShape: "round", showGrid: false, onCropChange: onCropChange, onCropComplete: onCropCompleteCallback, onZoomChange: onZoomChange }) }), _jsx("div", { className: "py-4", children: _jsxs("div", { className: "flex items-center gap-4", children: [_jsx("span", { className: "text-sm font-medium", children: "Zoom" }), _jsx(Slider, { value: [zoom], min: 1, max: 5, step: 0.1, onValueChange: (values) => { var _a; return setZoom((_a = values[0]) !== null && _a !== void 0 ? _a : 1); }, className: "flex-1" })] }) }), _jsxs(DialogFooter, { className: "flex gap-2", children: [_jsx(Button, { variant: "outline", onClick: onCancel, children: "Cancel" }), _jsx(Button, { onClick: createCroppedImage, children: "Set Profile Picture" })] })] }) }));
|
|
43
|
+
};
|
|
44
|
+
export default ImageCropper;
|
package/dist/misc/input.js
CHANGED
|
@@ -1,29 +1,6 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
-
var t = {};
|
|
14
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
-
t[p] = s[p];
|
|
16
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
-
t[p[i]] = s[p[i]];
|
|
20
|
-
}
|
|
21
|
-
return t;
|
|
22
|
-
};
|
|
23
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
2
|
import { cn } from "@myrjfa/state/dist/lib/utils";
|
|
25
|
-
function Input(
|
|
26
|
-
|
|
27
|
-
return (_jsx("input", __assign({ type: type, "data-slot": "input", className: cn("border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className) }, props)));
|
|
3
|
+
function Input({ className, type, ...props }) {
|
|
4
|
+
return (_jsx("input", { type: type, "data-slot": "input", className: cn("border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className), ...props }));
|
|
28
5
|
}
|
|
29
6
|
export { Input };
|
package/dist/misc/label.js
CHANGED
|
@@ -1,31 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
-
var t = {};
|
|
15
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
-
t[p] = s[p];
|
|
17
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
-
t[p[i]] = s[p[i]];
|
|
21
|
-
}
|
|
22
|
-
return t;
|
|
23
|
-
};
|
|
24
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
25
3
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
26
4
|
import { cn } from "@myrjfa/state/dist/lib/utils";
|
|
27
|
-
function Label(
|
|
28
|
-
|
|
29
|
-
return (_jsx(LabelPrimitive.Root, __assign({ "data-slot": "label", className: cn("flex items-center gap-2 leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className) }, props)));
|
|
5
|
+
function Label({ className, ...props }) {
|
|
6
|
+
return (_jsx(LabelPrimitive.Root, { "data-slot": "label", className: cn("flex items-center gap-2 leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className), ...props }));
|
|
30
7
|
}
|
|
31
8
|
export { Label };
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
2
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
3
|
-
if (ar || !(i in from)) {
|
|
4
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
5
|
-
ar[i] = from[i];
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
9
|
-
};
|
|
10
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
-
export default function LineCarousel(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return (_jsxs("section", { className: "relative w-full pt-10 pb-5 bg-background text-white", children: [_jsx("h2", { className: "text-2xl font-bold text-left mx-10 md:mx-15 lg:mx-25 tracking-tight text-foreground", children: "Popular Skills Offered" }), _jsx("p", { className: "text-muted-foreground mx-10 md:mx-15 lg:mx-25 mb-10", children: "Discover In-Demand Creative Skills for the Modern World." }), _jsxs("div", { className: "relative w-full overflow-hidden", children: [_jsx("div", { className: "absolute inset-y-0 left-0 w-1/4 bg-gradient-to-r from-background to-transparent z-10" }), _jsx("div", { className: "absolute inset-y-0 right-0 w-1/4 bg-gradient-to-l from-background to-transparent z-10" }), _jsx("div", { className: "flex animate-scroll items-center space-x-10", children: loopedSkills.map(function (item, i) { return (_jsxs("div", { className: "flex items-center space-x-3 px-5 text-lg", children: [_jsx(item.icon, { className: "w-6 h-6 text-foreground" }), _jsx("span", { className: "text-muted-foreground font-semibold", children: item.title })] }, i)); }) })] })] }));
|
|
2
|
+
export default function LineCarousel({ skillsData }) {
|
|
3
|
+
const loopedSkills = [...skillsData, ...skillsData, ...skillsData];
|
|
4
|
+
return (_jsxs("section", { className: "relative w-full pt-10 pb-5 bg-background text-white", children: [_jsx("h2", { className: "text-2xl font-bold text-left mx-10 md:mx-15 lg:mx-25 tracking-tight text-foreground", children: "Popular Skills Offered" }), _jsx("p", { className: "text-muted-foreground mx-10 md:mx-15 lg:mx-25 mb-10", children: "Discover In-Demand Creative Skills for the Modern World." }), _jsxs("div", { className: "relative w-full overflow-hidden", children: [_jsx("div", { className: "absolute inset-y-0 left-0 w-1/4 bg-gradient-to-r from-background to-transparent z-10" }), _jsx("div", { className: "absolute inset-y-0 right-0 w-1/4 bg-gradient-to-l from-background to-transparent z-10" }), _jsx("div", { className: "flex animate-scroll items-center space-x-10", children: loopedSkills.map((item, i) => (_jsxs("div", { className: "flex items-center space-x-3 px-5 text-lg", children: [_jsx(item.icon, { className: "w-6 h-6 text-foreground" }), _jsx("span", { className: "text-muted-foreground font-semibold", children: item.title })] }, i))) })] })] }));
|
|
15
5
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
type multiImageUploaderType = {
|
|
2
|
-
previewImages: string[];
|
|
3
|
-
handleImageUpload: (e: React.ChangeEvent<HTMLInputElement>) => Promise<void>;
|
|
4
|
-
handleRemoveImage: (index: number) => void;
|
|
5
|
-
message: string;
|
|
6
|
-
};
|
|
7
|
-
export default function MultiImageUploader({ previewImages, handleImageUpload, handleRemoveImage, message }: multiImageUploaderType): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export {};
|
|
1
|
+
type multiImageUploaderType = {
|
|
2
|
+
previewImages: string[];
|
|
3
|
+
handleImageUpload: (e: React.ChangeEvent<HTMLInputElement>) => Promise<void>;
|
|
4
|
+
handleRemoveImage: (index: number) => void;
|
|
5
|
+
message: string;
|
|
6
|
+
};
|
|
7
|
+
export default function MultiImageUploader({ previewImages, handleImageUpload, handleRemoveImage, message }: multiImageUploaderType): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
9
|
//# sourceMappingURL=multiImageUploader.d.ts.map
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button } from "./button";
|
|
3
|
-
import { FormDescription } from "./form";
|
|
4
|
-
import { Input } from "./input";
|
|
5
|
-
import { Card, CardHeader, CardTitle, CardContent } from "./card";
|
|
6
|
-
import { Trash2, Upload } from "lucide-react";
|
|
7
|
-
import Image from "next/image";
|
|
8
|
-
export default function MultiImageUploader(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "./button";
|
|
3
|
+
import { FormDescription } from "./form";
|
|
4
|
+
import { Input } from "./input";
|
|
5
|
+
import { Card, CardHeader, CardTitle, CardContent } from "./card";
|
|
6
|
+
import { Trash2, Upload } from "lucide-react";
|
|
7
|
+
import Image from "next/image";
|
|
8
|
+
export default function MultiImageUploader({ previewImages, handleImageUpload, handleRemoveImage, message }) {
|
|
9
|
+
return (_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsxs(CardTitle, { children: ["Images", _jsx(FormDescription, { children: message })] }) }), _jsxs(CardContent, { children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-4", children: [previewImages.map((image, index) => (_jsxs("div", { className: "relative rounded-lg overflow-hidden h-40", children: [_jsx(Image, { id: "image-" + index, src: image, alt: `Opportunity image ${index + 1}`, fill: true, className: "object-cover" }), _jsx(Button, { type: "button", onClick: () => handleRemoveImage(index), className: "absolute top-2 right-2 bg-white/80 rounded-full hover:bg-white", children: _jsx(Trash2, { className: "text-red-500" }) })] }, index))), _jsxs("div", { className: "flex flex-col items-center justify-center w-full space-y-4", children: [_jsx("label", { htmlFor: "image", className: "cursor-pointer w-full", children: _jsxs("div", { className: "border-2 border-dashed border-slate-300 rounded-lg p-6 flex flex-col items-center justify-center text-slate-500 hover:border-primary hover:text-primary transition-colors", children: [_jsx(Upload, { className: "h-12 w-12 text-gray-500 mb-4" }), _jsx("span", { className: "text-lg font-semibold mb-2", children: "Upload Image" }), _jsx("span", { className: "text-sm", children: "Click or drag to upload" })] }) }), _jsx(Input, { id: "image", type: "file", accept: "image/*", multiple: true, onChange: handleImageUpload, placeholder: "Upload Image", className: "hidden" })] })] }), _jsx(FormDescription, { children: "Images should be in Valid format. Maximum file size: 5MB." })] })] }));
|
|
10
|
+
}
|
package/dist/misc/newsLetter.js
CHANGED
|
@@ -1,51 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
50
3
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
51
4
|
import { subscribeToNewsLetter } from "@myrjfa/state/dist/lib/actions";
|
|
@@ -57,45 +10,32 @@ import { showAlert } from "./alertdialogclaude";
|
|
|
57
10
|
import { Button } from "./button";
|
|
58
11
|
import { Form, FormControl, FormField, FormItem, FormMessage } from "./form";
|
|
59
12
|
import { Input } from "./input";
|
|
60
|
-
|
|
13
|
+
const formSchema = z.object({
|
|
61
14
|
email: z.string().email("Please enter a valid email address"),
|
|
62
15
|
});
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
16
|
+
const NewsletterSubscribe = () => {
|
|
17
|
+
const pathname = usePathname();
|
|
18
|
+
const form = useForm({
|
|
66
19
|
resolver: zodResolver(formSchema),
|
|
67
20
|
defaultValues: {
|
|
68
21
|
email: "",
|
|
69
22
|
},
|
|
70
23
|
});
|
|
71
|
-
useEffect(
|
|
24
|
+
useEffect(() => {
|
|
72
25
|
form.reset();
|
|
73
26
|
}, [pathname]);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
form.setValue("email", "");
|
|
88
|
-
return [4 /*yield*/, showAlert(res.message || "Subscribed successfully!")];
|
|
89
|
-
case 3:
|
|
90
|
-
_a.sent();
|
|
91
|
-
_a.label = 4;
|
|
92
|
-
case 4: return [2 /*return*/];
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}); };
|
|
96
|
-
return (_jsx(Form, __assign({}, form, { children: _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), noValidate: true, className: "mt-4 flex flex-col sm:flex-row gap-3", children: [_jsx(FormField, { control: form.control, name: "email", render: function (_a) {
|
|
97
|
-
var field = _a.field;
|
|
98
|
-
return (_jsxs(FormItem, { className: "flex-1", children: [_jsx(FormControl, { children: _jsx(Input, __assign({ placeholder: "Your email address", type: "email", disabled: isSubmitting }, field)) }), _jsx(FormMessage, {})] }));
|
|
99
|
-
} }), _jsx(Button, { type: "submit", disabled: isSubmitting, className: "w-full sm:w-auto", children: isSubmitting ? "Subscribing..." : "Subscribe" })] }) })));
|
|
27
|
+
const { isSubmitting } = form.formState;
|
|
28
|
+
const onSubmit = async (values) => {
|
|
29
|
+
const res = await subscribeToNewsLetter(values.email);
|
|
30
|
+
if (res === null || res === void 0 ? void 0 : res.error) {
|
|
31
|
+
form.setError("email", { message: res.error });
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
form.reset();
|
|
35
|
+
form.setValue("email", "");
|
|
36
|
+
await showAlert(res.message || "Subscribed successfully!");
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return (_jsx(Form, { ...form, children: _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), noValidate: true, className: "mt-4 flex flex-col sm:flex-row gap-3", children: [_jsx(FormField, { control: form.control, name: "email", render: ({ field }) => (_jsxs(FormItem, { className: "flex-1", children: [_jsx(FormControl, { children: _jsx(Input, { placeholder: "Your email address", type: "email", disabled: isSubmitting, ...field }) }), _jsx(FormMessage, {})] })) }), _jsx(Button, { type: "submit", disabled: isSubmitting, className: "w-full sm:w-auto", children: isSubmitting ? "Subscribing..." : "Subscribe" })] }) }));
|
|
100
40
|
};
|
|
101
41
|
export default NewsletterSubscribe;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export declare function NotificationBell({
|
|
2
|
-
id: string | null;
|
|
1
|
+
export declare function NotificationBell({ navItemColor }: {
|
|
3
2
|
navItemColor: string;
|
|
4
3
|
}): import("react/jsx-runtime").JSX.Element;
|
|
5
4
|
export declare function MobileNotificationBell(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../src/misc/notification.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../src/misc/notification.tsx"],"names":[],"mappings":"AAkDA,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,2CA8I1E;AAED,wBAAgB,sBAAsB,4CAUrC"}
|