elseware-ui 2.31.0 → 2.31.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.
- package/README.md +109 -109
- package/dist/index.css +63 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +1303 -1263
- package/dist/index.d.ts +1303 -1263
- package/dist/index.js +436 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +436 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +110 -110
package/dist/index.mjs
CHANGED
|
@@ -22,6 +22,7 @@ import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
|
|
|
22
22
|
import { MdUpload, MdOutlineDone, MdOutlineRemoveCircleOutline } from 'react-icons/md';
|
|
23
23
|
import '@mdxeditor/editor/style.css';
|
|
24
24
|
import { MDXEditor, headingsPlugin, linkPlugin, listsPlugin, imagePlugin, tablePlugin, linkDialogPlugin, thematicBreakPlugin, quotePlugin, toolbarPlugin, UndoRedo, Separator, BlockTypeSelect, BoldItalicUnderlineToggles, StrikeThroughSupSubToggles, ListsToggle, CreateLink, InsertImage, InsertTable, InsertThematicBreak, markdownShortcutPlugin, frontmatterPlugin, codeBlockPlugin, codeMirrorPlugin } from '@mdxeditor/editor';
|
|
25
|
+
import { BiDotsVerticalRounded, BiEdit, BiTrash, BiFlag, BiLike, BiDislike, BiChevronDown, BiChevronUp } from 'react-icons/bi';
|
|
25
26
|
|
|
26
27
|
// node_modules/clsx/dist/clsx.mjs
|
|
27
28
|
function r(e) {
|
|
@@ -3103,7 +3104,7 @@ var ShapeSwitch = () => {
|
|
|
3103
3104
|
{
|
|
3104
3105
|
value: currentShape,
|
|
3105
3106
|
onChange: handleChange,
|
|
3106
|
-
className: "\n px-3 py-2 rounded-md border border-gray-300\n bg-white dark:bg-gray-800\n text-sm shadow-sm\n focus:outline-none\n ",
|
|
3107
|
+
className: "\r\n px-3 py-2 rounded-md border border-gray-300\r\n bg-white dark:bg-gray-800\r\n text-sm shadow-sm\r\n focus:outline-none\r\n ",
|
|
3107
3108
|
children: Object.keys(Shape).map((shape) => /* @__PURE__ */ jsx("option", { value: shape, children: shape }, shape))
|
|
3108
3109
|
}
|
|
3109
3110
|
) });
|
|
@@ -15713,7 +15714,7 @@ function Tags({
|
|
|
15713
15714
|
var Tags_default = Tags;
|
|
15714
15715
|
function TextArea({
|
|
15715
15716
|
placeholder,
|
|
15716
|
-
limit,
|
|
15717
|
+
limit = 1e3,
|
|
15717
15718
|
styles,
|
|
15718
15719
|
shape,
|
|
15719
15720
|
...props
|
|
@@ -16097,7 +16098,7 @@ function MarkdownTOC({ title = "Table of Contents" }) {
|
|
|
16097
16098
|
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
16098
16099
|
"h2",
|
|
16099
16100
|
{
|
|
16100
|
-
className: "\n text-sm\n font-semibold\n uppercase\n tracking-wide\n text-gray-900\n dark:text-gray-100\n ",
|
|
16101
|
+
className: "\r\n text-sm\r\n font-semibold\r\n uppercase\r\n tracking-wide\r\n text-gray-900\r\n dark:text-gray-100\r\n ",
|
|
16101
16102
|
children: title
|
|
16102
16103
|
}
|
|
16103
16104
|
) }),
|
|
@@ -17426,7 +17427,7 @@ var GlowWrapper = ({
|
|
|
17426
17427
|
/* @__PURE__ */ jsx(
|
|
17427
17428
|
"span",
|
|
17428
17429
|
{
|
|
17429
|
-
className: "\n pointer-events-none absolute inset-0 opacity-0 \n group-hover:opacity-100 transition-opacity duration-300\n ",
|
|
17430
|
+
className: "\r\n pointer-events-none absolute inset-0 opacity-0 \r\n group-hover:opacity-100 transition-opacity duration-300\r\n ",
|
|
17430
17431
|
style: { background: "var(--glow-bg)" }
|
|
17431
17432
|
}
|
|
17432
17433
|
),
|
|
@@ -17457,6 +17458,436 @@ function ShowMore({ text, limit }) {
|
|
|
17457
17458
|
] });
|
|
17458
17459
|
}
|
|
17459
17460
|
var ShowMore_default = ShowMore;
|
|
17461
|
+
function CommentComposer({
|
|
17462
|
+
placeholder = "Add a comment...",
|
|
17463
|
+
submitLabel = "Comment",
|
|
17464
|
+
onSubmit
|
|
17465
|
+
}) {
|
|
17466
|
+
const [value, setValue] = useState("");
|
|
17467
|
+
const [focused, setFocused] = useState(false);
|
|
17468
|
+
async function handleSubmit() {
|
|
17469
|
+
if (!value.trim()) return;
|
|
17470
|
+
await onSubmit?.(value);
|
|
17471
|
+
setValue("");
|
|
17472
|
+
setFocused(false);
|
|
17473
|
+
}
|
|
17474
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
|
|
17475
|
+
/* @__PURE__ */ jsx(Avatar, { size: "md" }),
|
|
17476
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col gap-3", children: [
|
|
17477
|
+
/* @__PURE__ */ jsx(
|
|
17478
|
+
"textarea",
|
|
17479
|
+
{
|
|
17480
|
+
value,
|
|
17481
|
+
placeholder,
|
|
17482
|
+
onFocus: () => setFocused(true),
|
|
17483
|
+
onChange: (e) => setValue(e.target.value),
|
|
17484
|
+
className: "w-full min-h-[48px] bg-transparent border-b border-gray-300 dark:border-neutral-700 outline-none resize-none pb-2 text-sm"
|
|
17485
|
+
}
|
|
17486
|
+
),
|
|
17487
|
+
(focused || value.length > 0) && /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
|
|
17488
|
+
/* @__PURE__ */ jsx(
|
|
17489
|
+
Button_default,
|
|
17490
|
+
{
|
|
17491
|
+
variant: "secondary",
|
|
17492
|
+
appearance: "ghost",
|
|
17493
|
+
text: "Cancel",
|
|
17494
|
+
onClick: () => {
|
|
17495
|
+
setValue("");
|
|
17496
|
+
setFocused(false);
|
|
17497
|
+
}
|
|
17498
|
+
}
|
|
17499
|
+
),
|
|
17500
|
+
/* @__PURE__ */ jsx(
|
|
17501
|
+
Button_default,
|
|
17502
|
+
{
|
|
17503
|
+
variant: "primary",
|
|
17504
|
+
text: submitLabel,
|
|
17505
|
+
onClick: handleSubmit
|
|
17506
|
+
}
|
|
17507
|
+
)
|
|
17508
|
+
] })
|
|
17509
|
+
] })
|
|
17510
|
+
] });
|
|
17511
|
+
}
|
|
17512
|
+
var CommentComposer_default = CommentComposer;
|
|
17513
|
+
|
|
17514
|
+
// src/compositions/comment-thread/utils/formatCommentDate.ts
|
|
17515
|
+
function formatCommentDate(date) {
|
|
17516
|
+
const now = /* @__PURE__ */ new Date();
|
|
17517
|
+
const target = new Date(date);
|
|
17518
|
+
const seconds = Math.floor((now.getTime() - target.getTime()) / 1e3);
|
|
17519
|
+
const intervals = [
|
|
17520
|
+
{ label: "year", seconds: 31536e3 },
|
|
17521
|
+
{ label: "month", seconds: 2592e3 },
|
|
17522
|
+
{ label: "day", seconds: 86400 },
|
|
17523
|
+
{ label: "hour", seconds: 3600 },
|
|
17524
|
+
{ label: "minute", seconds: 60 }
|
|
17525
|
+
];
|
|
17526
|
+
for (const interval of intervals) {
|
|
17527
|
+
const count = Math.floor(seconds / interval.seconds);
|
|
17528
|
+
if (count >= 1) {
|
|
17529
|
+
return `${count} ${interval.label}${count > 1 ? "s" : ""} ago`;
|
|
17530
|
+
}
|
|
17531
|
+
}
|
|
17532
|
+
return "Just now";
|
|
17533
|
+
}
|
|
17534
|
+
function CommentHeader({
|
|
17535
|
+
avatar,
|
|
17536
|
+
username,
|
|
17537
|
+
createdAt,
|
|
17538
|
+
edited
|
|
17539
|
+
}) {
|
|
17540
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
17541
|
+
/* @__PURE__ */ jsx(Avatar, { src: avatar, size: "sm" }),
|
|
17542
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm flex-wrap", children: [
|
|
17543
|
+
/* @__PURE__ */ jsxs("span", { className: "font-semibold text-gray-900 dark:text-gray-100", children: [
|
|
17544
|
+
"@",
|
|
17545
|
+
username
|
|
17546
|
+
] }),
|
|
17547
|
+
/* @__PURE__ */ jsx("span", { className: "text-gray-500 dark:text-gray-400", children: formatCommentDate(createdAt) }),
|
|
17548
|
+
edited && /* @__PURE__ */ jsx("span", { className: "text-xs text-gray-400", children: "edited" })
|
|
17549
|
+
] })
|
|
17550
|
+
] });
|
|
17551
|
+
}
|
|
17552
|
+
var CommentHeader_default = CommentHeader;
|
|
17553
|
+
function CommentContent({ content }) {
|
|
17554
|
+
return /* @__PURE__ */ jsx("div", { className: "text-sm leading-relaxed whitespace-pre-wrap text-gray-700 dark:text-gray-300", children: content });
|
|
17555
|
+
}
|
|
17556
|
+
var CommentContent_default = CommentContent;
|
|
17557
|
+
function CommentActions({
|
|
17558
|
+
likes = 0,
|
|
17559
|
+
dislikes = 0,
|
|
17560
|
+
onLike,
|
|
17561
|
+
onDislike,
|
|
17562
|
+
onReply
|
|
17563
|
+
}) {
|
|
17564
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-5 text-sm text-gray-500 dark:text-gray-400", children: [
|
|
17565
|
+
/* @__PURE__ */ jsxs(
|
|
17566
|
+
"button",
|
|
17567
|
+
{
|
|
17568
|
+
onClick: onLike,
|
|
17569
|
+
className: "inline-flex items-center gap-1 hover:text-gray-900 dark:hover:text-gray-100 transition-colors",
|
|
17570
|
+
children: [
|
|
17571
|
+
/* @__PURE__ */ jsx(BiLike, { size: 18 }),
|
|
17572
|
+
/* @__PURE__ */ jsx("span", { children: likes })
|
|
17573
|
+
]
|
|
17574
|
+
}
|
|
17575
|
+
),
|
|
17576
|
+
/* @__PURE__ */ jsxs(
|
|
17577
|
+
"button",
|
|
17578
|
+
{
|
|
17579
|
+
onClick: onDislike,
|
|
17580
|
+
className: "inline-flex items-center gap-1 hover:text-gray-900 dark:hover:text-gray-100 transition-colors",
|
|
17581
|
+
children: [
|
|
17582
|
+
/* @__PURE__ */ jsx(BiDislike, { size: 18 }),
|
|
17583
|
+
/* @__PURE__ */ jsx("span", { children: dislikes })
|
|
17584
|
+
]
|
|
17585
|
+
}
|
|
17586
|
+
),
|
|
17587
|
+
/* @__PURE__ */ jsx(
|
|
17588
|
+
"button",
|
|
17589
|
+
{
|
|
17590
|
+
onClick: onReply,
|
|
17591
|
+
className: "font-medium hover:text-gray-900 dark:hover:text-gray-100 transition-colors",
|
|
17592
|
+
children: "Reply"
|
|
17593
|
+
}
|
|
17594
|
+
)
|
|
17595
|
+
] });
|
|
17596
|
+
}
|
|
17597
|
+
var CommentActions_default = CommentActions;
|
|
17598
|
+
function CommentMenu({
|
|
17599
|
+
canEdit,
|
|
17600
|
+
canDelete,
|
|
17601
|
+
canReport,
|
|
17602
|
+
onEdit,
|
|
17603
|
+
onDelete,
|
|
17604
|
+
onReport
|
|
17605
|
+
}) {
|
|
17606
|
+
const [open, setOpen] = useState(false);
|
|
17607
|
+
const ref = useRef(null);
|
|
17608
|
+
useEffect(() => {
|
|
17609
|
+
function handleOutsideClick(event) {
|
|
17610
|
+
if (ref.current && !ref.current.contains(event.target)) {
|
|
17611
|
+
setOpen(false);
|
|
17612
|
+
}
|
|
17613
|
+
}
|
|
17614
|
+
document.addEventListener("mousedown", handleOutsideClick);
|
|
17615
|
+
return () => document.removeEventListener("mousedown", handleOutsideClick);
|
|
17616
|
+
}, []);
|
|
17617
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: "relative", children: [
|
|
17618
|
+
/* @__PURE__ */ jsx(
|
|
17619
|
+
"button",
|
|
17620
|
+
{
|
|
17621
|
+
onClick: () => setOpen((prev) => !prev),
|
|
17622
|
+
className: "text-gray-500 hover:text-gray-900 dark:hover:text-gray-100 transition-colors",
|
|
17623
|
+
children: /* @__PURE__ */ jsx(BiDotsVerticalRounded, { size: 18 })
|
|
17624
|
+
}
|
|
17625
|
+
),
|
|
17626
|
+
open && /* @__PURE__ */ jsxs(
|
|
17627
|
+
"div",
|
|
17628
|
+
{
|
|
17629
|
+
className: "\r\n absolute\r\n right-0\r\n top-full\r\n mt-2\r\n min-w-[160px]\r\n overflow-hidden\r\n rounded-xl\r\n border\r\n border-gray-200\r\n dark:border-neutral-800\r\n bg-white\r\n dark:bg-neutral-900\r\n shadow-xl\r\n z-50\r\n ",
|
|
17630
|
+
children: [
|
|
17631
|
+
canEdit && /* @__PURE__ */ jsxs(
|
|
17632
|
+
"button",
|
|
17633
|
+
{
|
|
17634
|
+
onClick: () => {
|
|
17635
|
+
setOpen(false);
|
|
17636
|
+
onEdit?.();
|
|
17637
|
+
},
|
|
17638
|
+
className: "w-full flex items-center gap-2 px-4 py-3 text-sm hover:bg-gray-100 dark:hover:bg-neutral-800",
|
|
17639
|
+
children: [
|
|
17640
|
+
/* @__PURE__ */ jsx(BiEdit, {}),
|
|
17641
|
+
"Edit"
|
|
17642
|
+
]
|
|
17643
|
+
}
|
|
17644
|
+
),
|
|
17645
|
+
canDelete && /* @__PURE__ */ jsxs(
|
|
17646
|
+
"button",
|
|
17647
|
+
{
|
|
17648
|
+
onClick: () => {
|
|
17649
|
+
setOpen(false);
|
|
17650
|
+
onDelete?.();
|
|
17651
|
+
},
|
|
17652
|
+
className: "w-full flex items-center gap-2 px-4 py-3 text-sm hover:bg-gray-100 dark:hover:bg-neutral-800",
|
|
17653
|
+
children: [
|
|
17654
|
+
/* @__PURE__ */ jsx(BiTrash, {}),
|
|
17655
|
+
"Delete"
|
|
17656
|
+
]
|
|
17657
|
+
}
|
|
17658
|
+
),
|
|
17659
|
+
canReport && /* @__PURE__ */ jsxs(
|
|
17660
|
+
"button",
|
|
17661
|
+
{
|
|
17662
|
+
onClick: () => {
|
|
17663
|
+
setOpen(false);
|
|
17664
|
+
onReport?.();
|
|
17665
|
+
},
|
|
17666
|
+
className: "w-full flex items-center gap-2 px-4 py-3 text-sm hover:bg-gray-100 dark:hover:bg-neutral-800",
|
|
17667
|
+
children: [
|
|
17668
|
+
/* @__PURE__ */ jsx(BiFlag, {}),
|
|
17669
|
+
"Report"
|
|
17670
|
+
]
|
|
17671
|
+
}
|
|
17672
|
+
)
|
|
17673
|
+
]
|
|
17674
|
+
}
|
|
17675
|
+
)
|
|
17676
|
+
] });
|
|
17677
|
+
}
|
|
17678
|
+
var CommentMenu_default = CommentMenu;
|
|
17679
|
+
function CommentRepliesToggle({
|
|
17680
|
+
repliesCount,
|
|
17681
|
+
collapsed,
|
|
17682
|
+
onToggle
|
|
17683
|
+
}) {
|
|
17684
|
+
return /* @__PURE__ */ jsxs(
|
|
17685
|
+
"button",
|
|
17686
|
+
{
|
|
17687
|
+
onClick: onToggle,
|
|
17688
|
+
className: "inline-flex items-center gap-1 text-sm font-medium text-blue-500 hover:text-blue-400 transition-colors w-fit",
|
|
17689
|
+
children: [
|
|
17690
|
+
collapsed ? /* @__PURE__ */ jsx(BiChevronDown, { size: 18 }) : /* @__PURE__ */ jsx(BiChevronUp, { size: 18 }),
|
|
17691
|
+
/* @__PURE__ */ jsx("span", { children: collapsed ? `View ${repliesCount} repl${repliesCount > 1 ? "ies" : "y"}` : "Hide replies" })
|
|
17692
|
+
]
|
|
17693
|
+
}
|
|
17694
|
+
);
|
|
17695
|
+
}
|
|
17696
|
+
var CommentRepliesToggle_default = CommentRepliesToggle;
|
|
17697
|
+
function ReplyComposer({ username, onSubmit }) {
|
|
17698
|
+
return /* @__PURE__ */ jsx("div", { className: "pt-2", children: /* @__PURE__ */ jsx(
|
|
17699
|
+
CommentComposer_default,
|
|
17700
|
+
{
|
|
17701
|
+
placeholder: `Reply to @${username}`,
|
|
17702
|
+
submitLabel: "Reply",
|
|
17703
|
+
onSubmit
|
|
17704
|
+
}
|
|
17705
|
+
) });
|
|
17706
|
+
}
|
|
17707
|
+
var ReplyComposer_default = ReplyComposer;
|
|
17708
|
+
|
|
17709
|
+
// src/compositions/comment-thread/constants/comment.constants.ts
|
|
17710
|
+
var MAX_COMMENT_DEPTH = 5;
|
|
17711
|
+
var COMMENT_INDENTATION = 0;
|
|
17712
|
+
function CommentItem({
|
|
17713
|
+
comment,
|
|
17714
|
+
depth = 0,
|
|
17715
|
+
onLike,
|
|
17716
|
+
onDislike,
|
|
17717
|
+
onReply,
|
|
17718
|
+
onEdit,
|
|
17719
|
+
onDelete,
|
|
17720
|
+
onReport
|
|
17721
|
+
}) {
|
|
17722
|
+
const [collapsed, setCollapsed] = useState(false);
|
|
17723
|
+
const [isReplying, setIsReplying] = useState(false);
|
|
17724
|
+
const resolvedDepth = Math.min(depth, MAX_COMMENT_DEPTH);
|
|
17725
|
+
async function handleReply(content) {
|
|
17726
|
+
console.log(content);
|
|
17727
|
+
setIsReplying(false);
|
|
17728
|
+
}
|
|
17729
|
+
return /* @__PURE__ */ jsxs(
|
|
17730
|
+
"div",
|
|
17731
|
+
{
|
|
17732
|
+
className: "flex flex-col gap-4",
|
|
17733
|
+
style: {
|
|
17734
|
+
paddingLeft: `${resolvedDepth * COMMENT_INDENTATION}px`
|
|
17735
|
+
},
|
|
17736
|
+
children: [
|
|
17737
|
+
/* @__PURE__ */ jsx("div", { className: "flex gap-3", children: /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col gap-3 min-w-0", children: [
|
|
17738
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
|
|
17739
|
+
/* @__PURE__ */ jsx(
|
|
17740
|
+
CommentHeader_default,
|
|
17741
|
+
{
|
|
17742
|
+
avatar: comment.author.avatar,
|
|
17743
|
+
username: comment.author.username,
|
|
17744
|
+
createdAt: comment.createdAt,
|
|
17745
|
+
edited: comment.edited
|
|
17746
|
+
}
|
|
17747
|
+
),
|
|
17748
|
+
/* @__PURE__ */ jsx(
|
|
17749
|
+
CommentMenu_default,
|
|
17750
|
+
{
|
|
17751
|
+
canEdit: comment.permissions?.canEdit,
|
|
17752
|
+
canDelete: comment.permissions?.canDelete,
|
|
17753
|
+
canReport: comment.permissions?.canReport,
|
|
17754
|
+
onEdit: () => onEdit?.(comment),
|
|
17755
|
+
onDelete: () => onDelete?.(comment),
|
|
17756
|
+
onReport: () => onReport?.(comment)
|
|
17757
|
+
}
|
|
17758
|
+
)
|
|
17759
|
+
] }),
|
|
17760
|
+
/* @__PURE__ */ jsx(CommentContent_default, { content: comment.content }),
|
|
17761
|
+
/* @__PURE__ */ jsx(
|
|
17762
|
+
CommentActions_default,
|
|
17763
|
+
{
|
|
17764
|
+
likes: comment.likes,
|
|
17765
|
+
dislikes: comment.dislikes,
|
|
17766
|
+
onLike: () => onLike?.(comment),
|
|
17767
|
+
onDislike: () => onDislike?.(comment),
|
|
17768
|
+
onReply: () => {
|
|
17769
|
+
setIsReplying((prev) => !prev);
|
|
17770
|
+
onReply?.(comment);
|
|
17771
|
+
}
|
|
17772
|
+
}
|
|
17773
|
+
),
|
|
17774
|
+
isReplying && /* @__PURE__ */ jsx(
|
|
17775
|
+
ReplyComposer_default,
|
|
17776
|
+
{
|
|
17777
|
+
username: comment.author.username,
|
|
17778
|
+
onSubmit: handleReply
|
|
17779
|
+
}
|
|
17780
|
+
),
|
|
17781
|
+
!!comment.replies?.length && /* @__PURE__ */ jsx(
|
|
17782
|
+
CommentRepliesToggle_default,
|
|
17783
|
+
{
|
|
17784
|
+
collapsed,
|
|
17785
|
+
repliesCount: comment.replies.length,
|
|
17786
|
+
onToggle: () => setCollapsed((prev) => !prev)
|
|
17787
|
+
}
|
|
17788
|
+
)
|
|
17789
|
+
] }) }),
|
|
17790
|
+
!collapsed && !!comment.replies?.length && /* @__PURE__ */ jsx(
|
|
17791
|
+
"div",
|
|
17792
|
+
{
|
|
17793
|
+
className: cn(
|
|
17794
|
+
"border-l border-gray-200 dark:border-neutral-800",
|
|
17795
|
+
"pl-4 ml-5"
|
|
17796
|
+
),
|
|
17797
|
+
children: /* @__PURE__ */ jsx(
|
|
17798
|
+
CommentList_default,
|
|
17799
|
+
{
|
|
17800
|
+
comments: comment.replies,
|
|
17801
|
+
depth: depth + 1,
|
|
17802
|
+
onLike,
|
|
17803
|
+
onDislike,
|
|
17804
|
+
onReply,
|
|
17805
|
+
onEdit,
|
|
17806
|
+
onDelete,
|
|
17807
|
+
onReport
|
|
17808
|
+
}
|
|
17809
|
+
)
|
|
17810
|
+
}
|
|
17811
|
+
)
|
|
17812
|
+
]
|
|
17813
|
+
}
|
|
17814
|
+
);
|
|
17815
|
+
}
|
|
17816
|
+
var CommentItem_default = CommentItem;
|
|
17817
|
+
function CommentList({
|
|
17818
|
+
comments,
|
|
17819
|
+
depth = 0,
|
|
17820
|
+
onLike,
|
|
17821
|
+
onDislike,
|
|
17822
|
+
onReply,
|
|
17823
|
+
onEdit,
|
|
17824
|
+
onDelete,
|
|
17825
|
+
onReport
|
|
17826
|
+
}) {
|
|
17827
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-8", children: comments.map((comment) => /* @__PURE__ */ jsx(
|
|
17828
|
+
CommentItem_default,
|
|
17829
|
+
{
|
|
17830
|
+
comment,
|
|
17831
|
+
depth,
|
|
17832
|
+
onLike,
|
|
17833
|
+
onDislike,
|
|
17834
|
+
onReply,
|
|
17835
|
+
onEdit,
|
|
17836
|
+
onDelete,
|
|
17837
|
+
onReport
|
|
17838
|
+
},
|
|
17839
|
+
comment.id
|
|
17840
|
+
)) });
|
|
17841
|
+
}
|
|
17842
|
+
var CommentList_default = CommentList;
|
|
17843
|
+
var CommentThreadContext = createContext(null);
|
|
17844
|
+
function useCommentThread(initialComments) {
|
|
17845
|
+
const [comments, setComments] = useState(initialComments);
|
|
17846
|
+
return {
|
|
17847
|
+
comments,
|
|
17848
|
+
setComments
|
|
17849
|
+
};
|
|
17850
|
+
}
|
|
17851
|
+
function CommentThread({
|
|
17852
|
+
comments: initialComments = [],
|
|
17853
|
+
onCommentCreate,
|
|
17854
|
+
onLike,
|
|
17855
|
+
onDislike,
|
|
17856
|
+
onReply,
|
|
17857
|
+
onEdit,
|
|
17858
|
+
onDelete,
|
|
17859
|
+
onReport
|
|
17860
|
+
}) {
|
|
17861
|
+
const { comments, setComments } = useCommentThread(initialComments);
|
|
17862
|
+
async function handleCreateComment(content) {
|
|
17863
|
+
await onCommentCreate?.(content);
|
|
17864
|
+
}
|
|
17865
|
+
return /* @__PURE__ */ jsx(
|
|
17866
|
+
CommentThreadContext.Provider,
|
|
17867
|
+
{
|
|
17868
|
+
value: {
|
|
17869
|
+
comments,
|
|
17870
|
+
setComments
|
|
17871
|
+
},
|
|
17872
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-8 w-full", children: [
|
|
17873
|
+
/* @__PURE__ */ jsx(CommentComposer_default, { onSubmit: handleCreateComment }),
|
|
17874
|
+
/* @__PURE__ */ jsx(
|
|
17875
|
+
CommentList_default,
|
|
17876
|
+
{
|
|
17877
|
+
comments,
|
|
17878
|
+
onLike,
|
|
17879
|
+
onDislike,
|
|
17880
|
+
onReply,
|
|
17881
|
+
onEdit,
|
|
17882
|
+
onDelete,
|
|
17883
|
+
onReport
|
|
17884
|
+
}
|
|
17885
|
+
)
|
|
17886
|
+
] })
|
|
17887
|
+
}
|
|
17888
|
+
);
|
|
17889
|
+
}
|
|
17890
|
+
var CommentThread_default = CommentThread;
|
|
17460
17891
|
function DataViewTable({
|
|
17461
17892
|
title,
|
|
17462
17893
|
columns,
|
|
@@ -18268,6 +18699,6 @@ function ScrollToTop({
|
|
|
18268
18699
|
}
|
|
18269
18700
|
var ScrollToTop_default = ScrollToTop;
|
|
18270
18701
|
|
|
18271
|
-
export { Accordion_default as Accordion, AsyncComponentWrapper_default as AsyncComponentWrapper, Avatar, Backdrop_default as Backdrop, Badge, BarChart_default as BarChart, Block_default as Block, BlockGroup_default as BlockGroup, BoxNav_default as BoxNav, BoxNavItem_default as BoxNavItem, Brand_default as Brand, Breadcrumb, BreadcrumbItem_default as BreadcrumbItem, Button_default as Button, Caption, Card_default as Card, CardContent_default as CardContent, CardFooter_default as CardFooter, CardHeader_default as CardHeader, Chapter, Checkbox_default as Checkbox, Chip, CloudinaryImage_default as CloudinaryImage, CloudinaryProvider, CloudinaryVideo_default as CloudinaryVideo, Code, Content, ContentArea_default as ContentArea, DataView, DataViewTable_default as DataViewTable, DateSelector_default as DateSelector, DefaultLayout_default as DefaultLayout, Display, DocumentationPanel_default as DocumentationPanel, Drawer, DrawerToggler_default as DrawerToggler, EUIDevLayout_default as EUIDevLayout, EUIProvider, Flag, Flex, FlexCol_default as FlexCol, FlexRow_default as FlexRow, Footer, FooterNav_default as FooterNav, FooterNavGroup_default as FooterNavGroup, FooterNavItem, FooterNavItemContext, FooterNavItemTitle, Form, FormResponse_default as FormResponse, GenericLayout_default as GenericLayout, GlowWrapper_default as GlowWrapper, Graph, GraphEdge, GraphNode, GraphRenderer, Grid_default as Grid, Header, HeaderNav_default as HeaderNav, HeaderNavGroup_default as HeaderNavGroup, HeaderNavItem, HeaderNavItemContext, HeaderNavItemTitle, HomeLayout_default as HomeLayout, Image2 as Image, ImageInput_default as ImageInput, Info_default as Info, Input, InputFile, InputLabel_default as InputLabel, InputList, InputListGroup, InputResponse_default as InputResponse, Label, Layout, Lead, LineChart_default as LineChart, Link, List_default as List, ListItem_default as ListItem, MarkdownEditor_default as MarkdownEditor, MarkdownProvider_default as MarkdownProvider, MarkdownTOC_default as MarkdownTOC, MarkdownViewer_default as MarkdownViewer, Menu, MenuGroup, MenuItem, MenuItemTitle, Modal_default as Modal, MotionSurface_default as MotionSurface, MultiImageInput_default as MultiImageInput, NumericRating_default as NumericRating, Overline, Paragraph, PieChart_default as PieChart, PriceTag, ProgressBar, ProgressBarRating_default as ProgressBarRating, Quote, Radio_default as Radio, RouteTab_default as RouteTab, RouteTabs_default as RouteTabs, ScrollToTop_default as ScrollToTop, Section, Select_default as Select, ShapeSwitch, ShowMore_default as ShowMore, Sidebar_default as Sidebar, SidebarLayout_default as SidebarLayout, SidemenuLayout_default as SidemenuLayout, Skeleton, Slider_default as Slider, StarRating_default as StarRating, StarRatingDistribution_default as StarRatingDistribution, StarRatingInput_default as StarRatingInput, Switch_default as Switch, TNDropdown, TNDropdownItem, TNDropdownTitle, TNGroup, Table_default as Table, Tag_default as Tag, Tags_default as Tags, TextArea_default as TextArea, ThemeContext, ThemeProvider, ThemeSwitch, TitleBanner, Toast, Tooltip4 as Tooltip, TopNav, Transition4 as Transition, TransitionDropdown_default as TransitionDropdown, TransitionFadeIn_default as TransitionFadeIn, Typography, UnderConstructionBanner, ValueBadge_default as ValueBadge, WorldMap, WorldMapCountryTable, YoutubeVideo_default as YoutubeVideoPlayer, cn, createForceLayout, createGridLayout, createTreeLayout, enumValues, getCurrencySymbol, getLayout, isMatch, isRenderFn, normalize, registerLayout, resolveAppearanceStyles, resolveWithGlobal, sendToast, useClickOutside, useCloudinaryConfig, useCurrentTheme_default as useCurrentTheme, useDrawer_default as useDrawer, useEUIConfig, useIsMobile_default as useIsMobile, useModal_default as useModal, useTheme_default as useTheme };
|
|
18702
|
+
export { Accordion_default as Accordion, AsyncComponentWrapper_default as AsyncComponentWrapper, Avatar, Backdrop_default as Backdrop, Badge, BarChart_default as BarChart, Block_default as Block, BlockGroup_default as BlockGroup, BoxNav_default as BoxNav, BoxNavItem_default as BoxNavItem, Brand_default as Brand, Breadcrumb, BreadcrumbItem_default as BreadcrumbItem, Button_default as Button, Caption, Card_default as Card, CardContent_default as CardContent, CardFooter_default as CardFooter, CardHeader_default as CardHeader, Chapter, Checkbox_default as Checkbox, Chip, CloudinaryImage_default as CloudinaryImage, CloudinaryProvider, CloudinaryVideo_default as CloudinaryVideo, Code, CommentThread_default as CommentThread, Content, ContentArea_default as ContentArea, DataView, DataViewTable_default as DataViewTable, DateSelector_default as DateSelector, DefaultLayout_default as DefaultLayout, Display, DocumentationPanel_default as DocumentationPanel, Drawer, DrawerToggler_default as DrawerToggler, EUIDevLayout_default as EUIDevLayout, EUIProvider, Flag, Flex, FlexCol_default as FlexCol, FlexRow_default as FlexRow, Footer, FooterNav_default as FooterNav, FooterNavGroup_default as FooterNavGroup, FooterNavItem, FooterNavItemContext, FooterNavItemTitle, Form, FormResponse_default as FormResponse, GenericLayout_default as GenericLayout, GlowWrapper_default as GlowWrapper, Graph, GraphEdge, GraphNode, GraphRenderer, Grid_default as Grid, Header, HeaderNav_default as HeaderNav, HeaderNavGroup_default as HeaderNavGroup, HeaderNavItem, HeaderNavItemContext, HeaderNavItemTitle, HomeLayout_default as HomeLayout, Image2 as Image, ImageInput_default as ImageInput, Info_default as Info, Input, InputFile, InputLabel_default as InputLabel, InputList, InputListGroup, InputResponse_default as InputResponse, Label, Layout, Lead, LineChart_default as LineChart, Link, List_default as List, ListItem_default as ListItem, MarkdownEditor_default as MarkdownEditor, MarkdownProvider_default as MarkdownProvider, MarkdownTOC_default as MarkdownTOC, MarkdownViewer_default as MarkdownViewer, Menu, MenuGroup, MenuItem, MenuItemTitle, Modal_default as Modal, MotionSurface_default as MotionSurface, MultiImageInput_default as MultiImageInput, NumericRating_default as NumericRating, Overline, Paragraph, PieChart_default as PieChart, PriceTag, ProgressBar, ProgressBarRating_default as ProgressBarRating, Quote, Radio_default as Radio, RouteTab_default as RouteTab, RouteTabs_default as RouteTabs, ScrollToTop_default as ScrollToTop, Section, Select_default as Select, ShapeSwitch, ShowMore_default as ShowMore, Sidebar_default as Sidebar, SidebarLayout_default as SidebarLayout, SidemenuLayout_default as SidemenuLayout, Skeleton, Slider_default as Slider, StarRating_default as StarRating, StarRatingDistribution_default as StarRatingDistribution, StarRatingInput_default as StarRatingInput, Switch_default as Switch, TNDropdown, TNDropdownItem, TNDropdownTitle, TNGroup, Table_default as Table, Tag_default as Tag, Tags_default as Tags, TextArea_default as TextArea, ThemeContext, ThemeProvider, ThemeSwitch, TitleBanner, Toast, Tooltip4 as Tooltip, TopNav, Transition4 as Transition, TransitionDropdown_default as TransitionDropdown, TransitionFadeIn_default as TransitionFadeIn, Typography, UnderConstructionBanner, ValueBadge_default as ValueBadge, WorldMap, WorldMapCountryTable, YoutubeVideo_default as YoutubeVideoPlayer, cn, createForceLayout, createGridLayout, createTreeLayout, enumValues, getCurrencySymbol, getLayout, isMatch, isRenderFn, normalize, registerLayout, resolveAppearanceStyles, resolveWithGlobal, sendToast, useClickOutside, useCloudinaryConfig, useCurrentTheme_default as useCurrentTheme, useDrawer_default as useDrawer, useEUIConfig, useIsMobile_default as useIsMobile, useModal_default as useModal, useTheme_default as useTheme };
|
|
18272
18703
|
//# sourceMappingURL=index.mjs.map
|
|
18273
18704
|
//# sourceMappingURL=index.mjs.map
|