@herca/r-kit 0.0.49 → 0.0.52
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/clients.cjs +379 -58
- package/dist/clients.cjs.map +1 -1
- package/dist/clients.d.cts +80 -18
- package/dist/clients.d.ts +80 -18
- package/dist/clients.js +374 -58
- package/dist/clients.js.map +1 -1
- package/package.json +1 -1
package/dist/clients.js
CHANGED
|
@@ -686,10 +686,10 @@ var ChipGroup = ({
|
|
|
686
686
|
}, [selected, internalSelected]);
|
|
687
687
|
const toggleSelection = (value) => {
|
|
688
688
|
let newSelected;
|
|
689
|
-
if (multiple
|
|
689
|
+
if (multiple) {
|
|
690
690
|
newSelected = internalSelected.includes(value) ? internalSelected.filter((v3) => v3 !== value) : [...internalSelected, value];
|
|
691
691
|
} else {
|
|
692
|
-
newSelected = [value];
|
|
692
|
+
newSelected = internalSelected.includes(value) ? [] : [value];
|
|
693
693
|
}
|
|
694
694
|
setInternalSelected(newSelected);
|
|
695
695
|
onSelect?.(newSelected);
|
|
@@ -11979,10 +11979,10 @@ var InputFile = forwardRef2(
|
|
|
11979
11979
|
/* @__PURE__ */ jsxs71(
|
|
11980
11980
|
"label",
|
|
11981
11981
|
{
|
|
11982
|
-
onDragEnter: variant === "large" ? handleDragEnter : void 0,
|
|
11983
|
-
onDragLeave: variant === "large" ? handleDragLeave : void 0,
|
|
11984
|
-
onDragOver: variant === "large" ? handleDragOver : void 0,
|
|
11985
|
-
onDrop: variant === "large" ? handleDrop : void 0,
|
|
11982
|
+
onDragEnter: variant === "large" || variant === "medium" ? handleDragEnter : void 0,
|
|
11983
|
+
onDragLeave: variant === "large" || variant === "medium" ? handleDragLeave : void 0,
|
|
11984
|
+
onDragOver: variant === "large" || variant === "medium" ? handleDragOver : void 0,
|
|
11985
|
+
onDrop: variant === "large" || variant === "medium" ? handleDrop : void 0,
|
|
11986
11986
|
className: cn(
|
|
11987
11987
|
inputFileVariants({ variant }),
|
|
11988
11988
|
"group relative flex items-center gap-2 rounded-lg border px-3 py-2 transition-all",
|
|
@@ -11993,7 +11993,7 @@ var InputFile = forwardRef2(
|
|
|
11993
11993
|
variant === "large" && internalErrorMessage !== void 0 && "border-danger-500",
|
|
11994
11994
|
//prettier-ignore
|
|
11995
11995
|
variant === "large" && "flex-col items-center p-5!",
|
|
11996
|
-
variant === "large" && isDragging && "border-primary-500 bg-primary-50",
|
|
11996
|
+
(variant === "large" || variant === "medium") && isDragging && "border-primary-500 bg-primary-50",
|
|
11997
11997
|
//prettier-ignore
|
|
11998
11998
|
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"
|
|
11999
11999
|
),
|
|
@@ -12021,7 +12021,7 @@ var InputFile = forwardRef2(
|
|
|
12021
12021
|
Text,
|
|
12022
12022
|
{
|
|
12023
12023
|
as: "p",
|
|
12024
|
-
value: variant === "large" && !isDragging && !hint ? `Klik atau drag & drop file disini` : hint,
|
|
12024
|
+
value: (variant === "large" || variant === "medium") && !isDragging && !hint ? `Klik atau drag & drop file disini` : hint,
|
|
12025
12025
|
className: "text-gray-600!"
|
|
12026
12026
|
}
|
|
12027
12027
|
)
|
|
@@ -12848,10 +12848,17 @@ var createCalendarHelpers = ({
|
|
|
12848
12848
|
value,
|
|
12849
12849
|
rangeValue,
|
|
12850
12850
|
disabledDates,
|
|
12851
|
-
dayConfigs
|
|
12851
|
+
dayConfigs,
|
|
12852
|
+
disabled
|
|
12852
12853
|
}) => {
|
|
12853
12854
|
const isDateDisabled = (day) => {
|
|
12854
|
-
|
|
12855
|
+
if (disabledDates.some((d) => d.getTime() === day.fullDate.getTime())) {
|
|
12856
|
+
return true;
|
|
12857
|
+
}
|
|
12858
|
+
if (disabled?.(day.fullDate) === true) {
|
|
12859
|
+
return true;
|
|
12860
|
+
}
|
|
12861
|
+
return false;
|
|
12855
12862
|
};
|
|
12856
12863
|
const getDayConfig = (day) => {
|
|
12857
12864
|
return dayConfigs.find((c) => c.date.getTime() === day.fullDate.getTime());
|
|
@@ -13129,7 +13136,8 @@ function CalendarDayItem({
|
|
|
13129
13136
|
onClick,
|
|
13130
13137
|
variant,
|
|
13131
13138
|
events,
|
|
13132
|
-
backdropOnClick
|
|
13139
|
+
backdropOnClick,
|
|
13140
|
+
disabledDateClassName
|
|
13133
13141
|
}) {
|
|
13134
13142
|
const dayConfig = helpers.getDayConfig(day);
|
|
13135
13143
|
const isSelected = helpers.isDateSelected(day);
|
|
@@ -13165,8 +13173,9 @@ function CalendarDayItem({
|
|
|
13165
13173
|
mode === "single" && variant === "compact" && styleHelpers.getBackgroundClass(),
|
|
13166
13174
|
//prettier-ignore
|
|
13167
13175
|
mode === "range" && !isDisabled && helpers.getRangeBackgroundClass(day),
|
|
13168
|
-
variant === "default" && "h-28 md:h-36 w-full rounded-none flex items-start justify-start group p-1 md:p-3 border-r border-gray-300"
|
|
13176
|
+
variant === "default" && "h-28 md:h-36 w-full rounded-none flex items-start justify-start group p-1 md:p-3 border-r border-gray-300",
|
|
13169
13177
|
//prettier-ignore
|
|
13178
|
+
isDisabled && disabledDateClassName
|
|
13170
13179
|
),
|
|
13171
13180
|
children: [
|
|
13172
13181
|
/* @__PURE__ */ jsx382(
|
|
@@ -13345,7 +13354,8 @@ function CalendarGrid({
|
|
|
13345
13354
|
showCalendarTooltip = true,
|
|
13346
13355
|
backdropOnClick,
|
|
13347
13356
|
onEventClick,
|
|
13348
|
-
useLimitEvent = true
|
|
13357
|
+
useLimitEvent = true,
|
|
13358
|
+
disabledDateClassName
|
|
13349
13359
|
}) {
|
|
13350
13360
|
const isMobile = useIsMobile();
|
|
13351
13361
|
const weeks = Array.from(
|
|
@@ -13473,7 +13483,8 @@ function CalendarGrid({
|
|
|
13473
13483
|
onClick,
|
|
13474
13484
|
variant,
|
|
13475
13485
|
events,
|
|
13476
|
-
backdropOnClick: variant === "default" && backdropOnClick ? (day2) => backdropOnClick?.(day2) : void 0
|
|
13486
|
+
backdropOnClick: variant === "default" && backdropOnClick ? (day2) => backdropOnClick?.(day2) : void 0,
|
|
13487
|
+
disabledDateClassName
|
|
13477
13488
|
},
|
|
13478
13489
|
dayIndex
|
|
13479
13490
|
))
|
|
@@ -13858,7 +13869,9 @@ var Calendar2 = ({
|
|
|
13858
13869
|
onMonthChange,
|
|
13859
13870
|
onYearChange,
|
|
13860
13871
|
showDefaultController = false,
|
|
13861
|
-
useLimitEvent = true
|
|
13872
|
+
useLimitEvent = true,
|
|
13873
|
+
disabled,
|
|
13874
|
+
disabledDateClassName
|
|
13862
13875
|
}) => {
|
|
13863
13876
|
const currentDate = /* @__PURE__ */ new Date();
|
|
13864
13877
|
const [currentMonth, setCurrentMonth] = useState10(defaultMonth ?? currentDate.getMonth());
|
|
@@ -13883,7 +13896,8 @@ var Calendar2 = ({
|
|
|
13883
13896
|
dayConfigs,
|
|
13884
13897
|
rangeValue,
|
|
13885
13898
|
mode,
|
|
13886
|
-
value
|
|
13899
|
+
value,
|
|
13900
|
+
disabled
|
|
13887
13901
|
});
|
|
13888
13902
|
const calendarState = {
|
|
13889
13903
|
currentMonth,
|
|
@@ -13899,8 +13913,8 @@ var Calendar2 = ({
|
|
|
13899
13913
|
};
|
|
13900
13914
|
const handleDateClick = (day) => {
|
|
13901
13915
|
const dayConfig = calendarHelpers.getDayConfig(day);
|
|
13902
|
-
const
|
|
13903
|
-
if (
|
|
13916
|
+
const disabled2 = (dayConfig?.disabled ?? false) || calendarHelpers.isDateDisabled(day);
|
|
13917
|
+
if (disabled2) {
|
|
13904
13918
|
return;
|
|
13905
13919
|
}
|
|
13906
13920
|
onChange?.(day.fullDate);
|
|
@@ -14115,7 +14129,8 @@ var Calendar2 = ({
|
|
|
14115
14129
|
showCalendarTooltip,
|
|
14116
14130
|
useLimitEvent,
|
|
14117
14131
|
onEventClick,
|
|
14118
|
-
backdropOnClick
|
|
14132
|
+
backdropOnClick,
|
|
14133
|
+
disabledDateClassName
|
|
14119
14134
|
}
|
|
14120
14135
|
)
|
|
14121
14136
|
] })
|
|
@@ -14257,6 +14272,9 @@ var DatePicker = ({
|
|
|
14257
14272
|
trigger,
|
|
14258
14273
|
open,
|
|
14259
14274
|
onOpenChange,
|
|
14275
|
+
minDate,
|
|
14276
|
+
maxDate,
|
|
14277
|
+
disabledDateClassName,
|
|
14260
14278
|
calendarProps,
|
|
14261
14279
|
endDateCalendarProps,
|
|
14262
14280
|
startDateCalendarProps,
|
|
@@ -14537,6 +14555,12 @@ var DatePicker = ({
|
|
|
14537
14555
|
dayWrapperClassname: "justify-between",
|
|
14538
14556
|
onChange: handleCalendarChange,
|
|
14539
14557
|
value: selectedDate,
|
|
14558
|
+
disabled: (date) => {
|
|
14559
|
+
if (minDate !== void 0 && date < minDate) return true;
|
|
14560
|
+
if (maxDate !== void 0 && date > maxDate) return true;
|
|
14561
|
+
return false;
|
|
14562
|
+
},
|
|
14563
|
+
disabledDateClassName,
|
|
14540
14564
|
...calendarProps
|
|
14541
14565
|
}
|
|
14542
14566
|
) : /* @__PURE__ */ jsxs81("div", { className: "flex", children: [
|
|
@@ -14648,6 +14672,16 @@ var DatePicker = ({
|
|
|
14648
14672
|
value: dateRange.start,
|
|
14649
14673
|
rangeValue: dateRange,
|
|
14650
14674
|
mode: "range",
|
|
14675
|
+
disabled: (date) => {
|
|
14676
|
+
if (minDate !== void 0 && date < minDate) {
|
|
14677
|
+
return true;
|
|
14678
|
+
}
|
|
14679
|
+
if (maxDate !== void 0 && date > maxDate) {
|
|
14680
|
+
return true;
|
|
14681
|
+
}
|
|
14682
|
+
return false;
|
|
14683
|
+
},
|
|
14684
|
+
disabledDateClassName,
|
|
14651
14685
|
...startDateCalendarProps
|
|
14652
14686
|
}
|
|
14653
14687
|
),
|
|
@@ -14665,6 +14699,16 @@ var DatePicker = ({
|
|
|
14665
14699
|
mode: "range",
|
|
14666
14700
|
defaultMonth: nextMonthData.month,
|
|
14667
14701
|
defaultYear: nextMonthData.year,
|
|
14702
|
+
disabled: (date) => {
|
|
14703
|
+
if (minDate !== void 0 && date < minDate) {
|
|
14704
|
+
return true;
|
|
14705
|
+
}
|
|
14706
|
+
if (maxDate !== void 0 && date > maxDate) {
|
|
14707
|
+
return true;
|
|
14708
|
+
}
|
|
14709
|
+
return false;
|
|
14710
|
+
},
|
|
14711
|
+
disabledDateClassName,
|
|
14668
14712
|
...endDateCalendarProps
|
|
14669
14713
|
}
|
|
14670
14714
|
)
|
|
@@ -15242,6 +15286,7 @@ function Select({
|
|
|
15242
15286
|
required,
|
|
15243
15287
|
isSelectOpen,
|
|
15244
15288
|
onOpenChange,
|
|
15289
|
+
searchOptions,
|
|
15245
15290
|
searchPlaceholder = "Search..."
|
|
15246
15291
|
}) {
|
|
15247
15292
|
const [isOpen, setIsOpen] = useState14(false);
|
|
@@ -15376,6 +15421,11 @@ function Select({
|
|
|
15376
15421
|
useEffect10(() => {
|
|
15377
15422
|
onOpenChange?.(isOpen);
|
|
15378
15423
|
}, [isOpen]);
|
|
15424
|
+
useEffect10(() => {
|
|
15425
|
+
if (searchOptions !== void 0) {
|
|
15426
|
+
setSearchTerm(searchOptions);
|
|
15427
|
+
}
|
|
15428
|
+
}, [searchOptions]);
|
|
15379
15429
|
const getDisplayValue = () => {
|
|
15380
15430
|
const isEmpty = value == null || isMulti && asArray(value).length === 0;
|
|
15381
15431
|
if (isEmpty) {
|
|
@@ -26591,6 +26641,11 @@ var FontSize = Extension.create({
|
|
|
26591
26641
|
|
|
26592
26642
|
// src/components/text-editor/extension/image-node.ts
|
|
26593
26643
|
import Image2 from "@tiptap/extension-image";
|
|
26644
|
+
var getJustify = (align) => {
|
|
26645
|
+
if (align === "right") return "flex-end";
|
|
26646
|
+
if (align === "center") return "center";
|
|
26647
|
+
return "flex-start";
|
|
26648
|
+
};
|
|
26594
26649
|
var ImageNode = Image2.extend({
|
|
26595
26650
|
// jadikan block supaya bisa di-align
|
|
26596
26651
|
inline: false,
|
|
@@ -26629,9 +26684,10 @@ var ImageNode = Image2.extend({
|
|
|
26629
26684
|
},
|
|
26630
26685
|
textAlign: {
|
|
26631
26686
|
default: "left",
|
|
26632
|
-
parseHTML: (el) => el.closest("[data-image-wrapper]")?.getAttribute("data-align") ?? "left",
|
|
26633
|
-
renderHTML: () => ({
|
|
26634
|
-
|
|
26687
|
+
parseHTML: (el) => el.getAttribute("data-text-align") ?? el.closest("[data-image-wrapper]")?.getAttribute("data-align") ?? "left",
|
|
26688
|
+
renderHTML: (attrs) => ({
|
|
26689
|
+
"data-text-align": attrs["textAlign"]
|
|
26690
|
+
})
|
|
26635
26691
|
},
|
|
26636
26692
|
url: {
|
|
26637
26693
|
default: null,
|
|
@@ -26649,26 +26705,23 @@ var ImageNode = Image2.extend({
|
|
|
26649
26705
|
},
|
|
26650
26706
|
renderHTML({ HTMLAttributes }) {
|
|
26651
26707
|
const {
|
|
26652
|
-
textAlign,
|
|
26653
26708
|
objectFit,
|
|
26654
26709
|
url,
|
|
26655
26710
|
urlTarget,
|
|
26711
|
+
"data-text-align": dataTextAlign,
|
|
26656
26712
|
"data-url": dataUrl,
|
|
26657
|
-
// ← ambil dari sini
|
|
26658
26713
|
"data-url-target": dataUrlTarget,
|
|
26659
26714
|
...rest
|
|
26660
26715
|
} = HTMLAttributes;
|
|
26661
|
-
const align =
|
|
26662
|
-
const getJustify2 = (a) => a === "right" ? "flex-end" : a === "center" ? "center" : "flex-start";
|
|
26716
|
+
const align = typeof dataTextAlign === "string" && dataTextAlign.length > 0 ? dataTextAlign : "left";
|
|
26663
26717
|
const resolvedUrl = url ?? dataUrl ?? null;
|
|
26664
26718
|
const resolvedTarget = urlTarget ?? dataUrlTarget ?? "_self";
|
|
26665
26719
|
const img = [
|
|
26666
26720
|
"img",
|
|
26667
26721
|
mergeAttributes(rest, {
|
|
26668
26722
|
style: `object-fit: ${objectFit ?? "contain"}`,
|
|
26669
|
-
|
|
26670
|
-
...
|
|
26671
|
-
...urlTarget == null ? { "data-url-target": urlTarget } : {}
|
|
26723
|
+
...resolvedUrl !== null ? { "data-url": resolvedUrl } : {},
|
|
26724
|
+
...resolvedTarget != null ? { "data-url-target": resolvedTarget } : {}
|
|
26672
26725
|
})
|
|
26673
26726
|
];
|
|
26674
26727
|
const content = resolvedUrl != null ? ["a", { href: resolvedUrl, target: resolvedTarget }, img] : img;
|
|
@@ -26677,7 +26730,7 @@ var ImageNode = Image2.extend({
|
|
|
26677
26730
|
{
|
|
26678
26731
|
"data-image-wrapper": "",
|
|
26679
26732
|
"data-align": align,
|
|
26680
|
-
"style": `display:flex;justify-content:${
|
|
26733
|
+
"style": `display:flex;justify-content:${getJustify(align)};`
|
|
26681
26734
|
},
|
|
26682
26735
|
content
|
|
26683
26736
|
];
|
|
@@ -26693,8 +26746,7 @@ var ImageNode = Image2.extend({
|
|
|
26693
26746
|
const align = n.attrs["textAlign"] ?? "left";
|
|
26694
26747
|
const url = n.attrs["url"];
|
|
26695
26748
|
const urlTarget = n.attrs["urlTarget"] ?? "_self";
|
|
26696
|
-
|
|
26697
|
-
wrapper.style.cssText = `display: flex; justify-content: ${getJustify2(align)};`;
|
|
26749
|
+
wrapper.style.cssText = `display: flex; justify-content: ${getJustify(align)};`;
|
|
26698
26750
|
wrapper.setAttribute("data-align", align);
|
|
26699
26751
|
if (n.attrs["src"])
|
|
26700
26752
|
img.setAttribute("src", n.attrs["src"]);
|
|
@@ -26704,6 +26756,17 @@ var ImageNode = Image2.extend({
|
|
|
26704
26756
|
img.setAttribute("width", String(n.attrs["width"]));
|
|
26705
26757
|
if (n.attrs["height"])
|
|
26706
26758
|
img.setAttribute("height", String(n.attrs["height"]));
|
|
26759
|
+
img.setAttribute("data-text-align", align);
|
|
26760
|
+
if (url !== null) {
|
|
26761
|
+
img.setAttribute("data-url", url);
|
|
26762
|
+
} else {
|
|
26763
|
+
img.removeAttribute("data-url");
|
|
26764
|
+
}
|
|
26765
|
+
if (urlTarget !== null) {
|
|
26766
|
+
img.setAttribute("data-url-target", urlTarget);
|
|
26767
|
+
} else {
|
|
26768
|
+
img.removeAttribute("data-url-target");
|
|
26769
|
+
}
|
|
26707
26770
|
img.style.objectFit = n.attrs["objectFit"] ?? "contain";
|
|
26708
26771
|
wrapper.innerHTML = "";
|
|
26709
26772
|
if (url !== null) {
|
|
@@ -26997,7 +27060,7 @@ var TableNode = Table2.extend({
|
|
|
26997
27060
|
var table_node_default = TableNode;
|
|
26998
27061
|
|
|
26999
27062
|
// src/components/text-editor/extension/youtube-node.ts
|
|
27000
|
-
var
|
|
27063
|
+
var getJustify2 = (align) => {
|
|
27001
27064
|
switch (align) {
|
|
27002
27065
|
case "left":
|
|
27003
27066
|
return "flex-start";
|
|
@@ -27063,7 +27126,7 @@ var YoutubeNode = Node3.create({
|
|
|
27063
27126
|
const wrapper = document.createElement("div");
|
|
27064
27127
|
wrapper.style.cssText = "display: flex; justify-content: center; margin: 0.5rem 0;";
|
|
27065
27128
|
const updateAlignment = (align) => {
|
|
27066
|
-
wrapper.style.justifyContent =
|
|
27129
|
+
wrapper.style.justifyContent = getJustify2(align);
|
|
27067
27130
|
};
|
|
27068
27131
|
const iframe = document.createElement("iframe");
|
|
27069
27132
|
iframe.setAttribute("src", node.attrs["src"]);
|
|
@@ -33621,6 +33684,16 @@ var target_link_options_default = targetOptions;
|
|
|
33621
33684
|
|
|
33622
33685
|
// src/components/text-editor/partials/modal-insert-image.tsx
|
|
33623
33686
|
import { jsx as jsx407, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
33687
|
+
var createDefaultImageForm = () => ({
|
|
33688
|
+
url: null,
|
|
33689
|
+
image: {
|
|
33690
|
+
objectFit: object_fit_options_default[0],
|
|
33691
|
+
source: "",
|
|
33692
|
+
altText: "",
|
|
33693
|
+
width: "200",
|
|
33694
|
+
height: "200"
|
|
33695
|
+
}
|
|
33696
|
+
});
|
|
33624
33697
|
function ModalInsertImage({
|
|
33625
33698
|
isOpen,
|
|
33626
33699
|
onClose,
|
|
@@ -33639,22 +33712,25 @@ function ModalInsertImage({
|
|
|
33639
33712
|
altText: data[0].uploadedData?.data.name ?? ""
|
|
33640
33713
|
};
|
|
33641
33714
|
}
|
|
33642
|
-
}
|
|
33715
|
+
},
|
|
33716
|
+
onDownload
|
|
33643
33717
|
}) {
|
|
33644
33718
|
const [currentTabImage, setCurrentTabImage] = useState19("0");
|
|
33719
|
+
const [uploadInputKey, setUploadInputKey] = useState19(0);
|
|
33720
|
+
const [uploadFiles, setUploadFiles] = useState19([]);
|
|
33645
33721
|
const [errors, setErrors] = useState19(
|
|
33646
33722
|
{}
|
|
33647
33723
|
);
|
|
33648
|
-
const [imageForm, setImageForm] = useState19(
|
|
33649
|
-
|
|
33650
|
-
|
|
33651
|
-
|
|
33652
|
-
|
|
33653
|
-
|
|
33654
|
-
|
|
33655
|
-
|
|
33656
|
-
|
|
33657
|
-
}
|
|
33724
|
+
const [imageForm, setImageForm] = useState19(
|
|
33725
|
+
createDefaultImageForm()
|
|
33726
|
+
);
|
|
33727
|
+
const resetFormState = () => {
|
|
33728
|
+
setCurrentTabImage("0");
|
|
33729
|
+
setErrors({});
|
|
33730
|
+
setImageForm(createDefaultImageForm());
|
|
33731
|
+
setUploadFiles([]);
|
|
33732
|
+
setUploadInputKey((prev) => prev + 1);
|
|
33733
|
+
};
|
|
33658
33734
|
const validate = () => {
|
|
33659
33735
|
const newErrors = {};
|
|
33660
33736
|
if (imageForm?.image?.source === "" || imageForm?.image?.source === null || imageForm?.image?.source === void 0) {
|
|
@@ -33673,9 +33749,16 @@ function ModalInsertImage({
|
|
|
33673
33749
|
return Object.keys(newErrors).length === 0;
|
|
33674
33750
|
};
|
|
33675
33751
|
useEffect14(() => {
|
|
33676
|
-
if (isOpen
|
|
33752
|
+
if (!isOpen) return;
|
|
33753
|
+
setErrors({});
|
|
33754
|
+
setCurrentTabImage("0");
|
|
33755
|
+
setUploadFiles([]);
|
|
33756
|
+
setUploadInputKey((prev) => prev + 1);
|
|
33757
|
+
if (initialValues !== void 0) {
|
|
33677
33758
|
setImageForm(initialValues);
|
|
33759
|
+
return;
|
|
33678
33760
|
}
|
|
33761
|
+
setImageForm(createDefaultImageForm());
|
|
33679
33762
|
}, [isOpen, initialValues]);
|
|
33680
33763
|
return /* @__PURE__ */ jsxs92(Modal, { isOpen, onClose: () => onClose(false), closable: false, children: [
|
|
33681
33764
|
/* @__PURE__ */ jsxs92(ModalHeader, { className: "flex-row! items-center justify-between border-b border-gray-200", children: [
|
|
@@ -33699,7 +33782,7 @@ function ModalInsertImage({
|
|
|
33699
33782
|
if (!validate()) return;
|
|
33700
33783
|
onSubmit(imageForm);
|
|
33701
33784
|
onClose(false);
|
|
33702
|
-
|
|
33785
|
+
resetFormState();
|
|
33703
33786
|
},
|
|
33704
33787
|
className: "overflow-auto",
|
|
33705
33788
|
children: [
|
|
@@ -33880,8 +33963,11 @@ function ModalInsertImage({
|
|
|
33880
33963
|
maxSize: (attachmentField?.maxSize ?? 0) * 1024 * 1024,
|
|
33881
33964
|
variant: attachmentField?.variant ?? "medium",
|
|
33882
33965
|
uploadConfig: attachmentField?.uploadConfig,
|
|
33883
|
-
onChange:
|
|
33884
|
-
|
|
33966
|
+
onChange: (files) => {
|
|
33967
|
+
setUploadFiles(files);
|
|
33968
|
+
attachmentField?.onChange?.(files);
|
|
33969
|
+
},
|
|
33970
|
+
value: uploadFiles,
|
|
33885
33971
|
onUploadSuccess: (results) => {
|
|
33886
33972
|
const { url, altText } = attachmentField.extractUploadResult(results);
|
|
33887
33973
|
setCurrentTabImage("0");
|
|
@@ -33897,8 +33983,10 @@ function ModalInsertImage({
|
|
|
33897
33983
|
};
|
|
33898
33984
|
});
|
|
33899
33985
|
attachmentField?.onUploadSuccess?.(results);
|
|
33900
|
-
}
|
|
33901
|
-
|
|
33986
|
+
},
|
|
33987
|
+
onDownload
|
|
33988
|
+
},
|
|
33989
|
+
uploadInputKey
|
|
33902
33990
|
) })
|
|
33903
33991
|
]
|
|
33904
33992
|
}
|
|
@@ -33912,7 +34000,7 @@ function ModalInsertImage({
|
|
|
33912
34000
|
type: "button",
|
|
33913
34001
|
onClick: () => {
|
|
33914
34002
|
onClose(false);
|
|
33915
|
-
|
|
34003
|
+
resetFormState();
|
|
33916
34004
|
},
|
|
33917
34005
|
children: "Cancel"
|
|
33918
34006
|
}
|
|
@@ -34128,7 +34216,8 @@ import { jsx as jsx409, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
|
34128
34216
|
function InsertGroup({
|
|
34129
34217
|
editor,
|
|
34130
34218
|
disabled = false,
|
|
34131
|
-
attachmentField
|
|
34219
|
+
attachmentField,
|
|
34220
|
+
onDownload
|
|
34132
34221
|
}) {
|
|
34133
34222
|
const [isModalImageOpen, setIsModalImageOpen] = useState21(false);
|
|
34134
34223
|
const [isModalYoutubeOpen, setIsModalYoutubeOpen] = useState21(false);
|
|
@@ -34285,7 +34374,8 @@ function InsertGroup({
|
|
|
34285
34374
|
url: form.url?.source ?? null,
|
|
34286
34375
|
urlTarget: form.url?.target?.value ?? "_self"
|
|
34287
34376
|
}).run();
|
|
34288
|
-
}
|
|
34377
|
+
},
|
|
34378
|
+
onDownload
|
|
34289
34379
|
}
|
|
34290
34380
|
)
|
|
34291
34381
|
] });
|
|
@@ -34367,7 +34457,7 @@ function TableGroup({
|
|
|
34367
34457
|
{
|
|
34368
34458
|
title: "Delete Row",
|
|
34369
34459
|
icon: "table-delete-row",
|
|
34370
|
-
onClick: () => editor.chain().focus().
|
|
34460
|
+
onClick: () => editor.chain().focus().deleteRow().run(),
|
|
34371
34461
|
requiresTable: false,
|
|
34372
34462
|
disabled
|
|
34373
34463
|
}
|
|
@@ -34383,7 +34473,7 @@ function TableGroup({
|
|
|
34383
34473
|
{
|
|
34384
34474
|
title: "Delete Column",
|
|
34385
34475
|
icon: "table-delete-column",
|
|
34386
|
-
onClick: () => editor.chain().focus().
|
|
34476
|
+
onClick: () => editor.chain().focus().deleteColumn().run(),
|
|
34387
34477
|
requiresTable: false,
|
|
34388
34478
|
disabled
|
|
34389
34479
|
}
|
|
@@ -34498,7 +34588,8 @@ function TextEditor({
|
|
|
34498
34588
|
ui: ui3,
|
|
34499
34589
|
field,
|
|
34500
34590
|
toolbar,
|
|
34501
|
-
editor: editorProps
|
|
34591
|
+
editor: editorProps,
|
|
34592
|
+
onDownload
|
|
34502
34593
|
}) {
|
|
34503
34594
|
const {
|
|
34504
34595
|
disabled = false,
|
|
@@ -34637,7 +34728,8 @@ function TextEditor({
|
|
|
34637
34728
|
{
|
|
34638
34729
|
disabled: isHtmlMode,
|
|
34639
34730
|
editor,
|
|
34640
|
-
attachmentField
|
|
34731
|
+
attachmentField,
|
|
34732
|
+
onDownload
|
|
34641
34733
|
}
|
|
34642
34734
|
),
|
|
34643
34735
|
table && /* @__PURE__ */ jsx411(TableGroup, { disabled: isHtmlMode, editor }),
|
|
@@ -34695,8 +34787,228 @@ function TextEditor({
|
|
|
34695
34787
|
}
|
|
34696
34788
|
);
|
|
34697
34789
|
}
|
|
34790
|
+
|
|
34791
|
+
// src/components/radio/radio.tsx
|
|
34792
|
+
import React368, { createContext as createContext7, useContext as useContext7, useId as useId5 } from "react";
|
|
34793
|
+
|
|
34794
|
+
// src/components/radio/radio-variants.ts
|
|
34795
|
+
import { cva as cva13 } from "class-variance-authority";
|
|
34796
|
+
var RadioVariants = cva13(
|
|
34797
|
+
"flex items-center justify-center rounded-full border transition-all focus-visible:ring-1 focus-visible:ring-offset-0 focus-visible:outline-none",
|
|
34798
|
+
{
|
|
34799
|
+
variants: {
|
|
34800
|
+
size: {
|
|
34801
|
+
sm: "h-4 w-4",
|
|
34802
|
+
md: "h-5 w-5",
|
|
34803
|
+
lg: "h-6 w-6"
|
|
34804
|
+
},
|
|
34805
|
+
color: {
|
|
34806
|
+
primary: "border-primary-1000 focus-visible:ring-primary-900",
|
|
34807
|
+
secondary: "border-gray-600 focus-visible:ring-gray-500",
|
|
34808
|
+
success: "border-success-500 focus-visible:ring-success-400",
|
|
34809
|
+
danger: "border-danger-500 focus-visible:ring-danger-400",
|
|
34810
|
+
warning: "border-warning-500 focus-visible:ring-warning-400",
|
|
34811
|
+
info: "border-info-500 focus-visible:ring-info-400",
|
|
34812
|
+
orange: "border-orange-500 focus-visible:ring-orange-400",
|
|
34813
|
+
purple: "border-purple-500 focus-visible:ring-purple-400",
|
|
34814
|
+
gray: "border-gray-600 focus-visible:ring-gray-500"
|
|
34815
|
+
}
|
|
34816
|
+
},
|
|
34817
|
+
defaultVariants: {
|
|
34818
|
+
size: "md",
|
|
34819
|
+
color: "primary"
|
|
34820
|
+
}
|
|
34821
|
+
}
|
|
34822
|
+
);
|
|
34823
|
+
var RadioIndicatorVariants = cva13("rounded-full transition-all", {
|
|
34824
|
+
variants: {
|
|
34825
|
+
size: {
|
|
34826
|
+
sm: "h-2 w-2",
|
|
34827
|
+
md: "h-2.5 w-2.5",
|
|
34828
|
+
lg: "h-3 w-3"
|
|
34829
|
+
},
|
|
34830
|
+
color: {
|
|
34831
|
+
primary: "bg-primary-1000",
|
|
34832
|
+
secondary: "bg-gray-600",
|
|
34833
|
+
success: "bg-success-500",
|
|
34834
|
+
danger: "bg-danger-500",
|
|
34835
|
+
warning: "bg-warning-500",
|
|
34836
|
+
info: "bg-info-500",
|
|
34837
|
+
orange: "bg-orange-500",
|
|
34838
|
+
purple: "bg-purple-500",
|
|
34839
|
+
gray: "bg-gray-600"
|
|
34840
|
+
}
|
|
34841
|
+
},
|
|
34842
|
+
defaultVariants: {
|
|
34843
|
+
size: "md",
|
|
34844
|
+
color: "primary"
|
|
34845
|
+
}
|
|
34846
|
+
});
|
|
34847
|
+
|
|
34848
|
+
// src/components/radio/radio.tsx
|
|
34849
|
+
import { jsx as jsx412, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
34850
|
+
var RadioGroupContext = createContext7(
|
|
34851
|
+
void 0
|
|
34852
|
+
);
|
|
34853
|
+
var RadioGroup = ({
|
|
34854
|
+
value,
|
|
34855
|
+
defaultValue,
|
|
34856
|
+
onValueChange,
|
|
34857
|
+
disabled = false,
|
|
34858
|
+
required = false,
|
|
34859
|
+
name,
|
|
34860
|
+
size = "md",
|
|
34861
|
+
color = "primary",
|
|
34862
|
+
className,
|
|
34863
|
+
label,
|
|
34864
|
+
hint,
|
|
34865
|
+
description,
|
|
34866
|
+
errorMessages,
|
|
34867
|
+
direction = "vertical",
|
|
34868
|
+
children
|
|
34869
|
+
}) => {
|
|
34870
|
+
const [internalValue, setInternalValue] = React368.useState(
|
|
34871
|
+
defaultValue ?? value ?? ""
|
|
34872
|
+
);
|
|
34873
|
+
const currentValue = value !== void 0 ? value : internalValue;
|
|
34874
|
+
const handleValueChange = (newValue) => {
|
|
34875
|
+
if (value === void 0) {
|
|
34876
|
+
setInternalValue(newValue);
|
|
34877
|
+
}
|
|
34878
|
+
onValueChange?.(newValue);
|
|
34879
|
+
};
|
|
34880
|
+
return /* @__PURE__ */ jsx412(
|
|
34881
|
+
RadioGroupContext.Provider,
|
|
34882
|
+
{
|
|
34883
|
+
value: {
|
|
34884
|
+
value: currentValue,
|
|
34885
|
+
onValueChange: handleValueChange,
|
|
34886
|
+
disabled,
|
|
34887
|
+
name,
|
|
34888
|
+
size,
|
|
34889
|
+
color
|
|
34890
|
+
},
|
|
34891
|
+
children: /* @__PURE__ */ jsx412(
|
|
34892
|
+
FormField,
|
|
34893
|
+
{
|
|
34894
|
+
label,
|
|
34895
|
+
hint,
|
|
34896
|
+
description,
|
|
34897
|
+
errorMessages,
|
|
34898
|
+
className,
|
|
34899
|
+
required,
|
|
34900
|
+
size,
|
|
34901
|
+
children: /* @__PURE__ */ jsx412(
|
|
34902
|
+
"div",
|
|
34903
|
+
{
|
|
34904
|
+
role: "radiogroup",
|
|
34905
|
+
"aria-required": required,
|
|
34906
|
+
className: cn(
|
|
34907
|
+
"flex gap-4",
|
|
34908
|
+
direction === "vertical" ? "flex-col" : "flex-row flex-wrap"
|
|
34909
|
+
),
|
|
34910
|
+
children
|
|
34911
|
+
}
|
|
34912
|
+
)
|
|
34913
|
+
}
|
|
34914
|
+
)
|
|
34915
|
+
}
|
|
34916
|
+
);
|
|
34917
|
+
};
|
|
34918
|
+
var BaseRadio = ({
|
|
34919
|
+
id: providedId,
|
|
34920
|
+
value,
|
|
34921
|
+
checked,
|
|
34922
|
+
disabled: disabledProp = false,
|
|
34923
|
+
required = false,
|
|
34924
|
+
size: sizeProp,
|
|
34925
|
+
color: colorProp,
|
|
34926
|
+
onCheckedChange,
|
|
34927
|
+
className
|
|
34928
|
+
}) => {
|
|
34929
|
+
const generatedId = useId5();
|
|
34930
|
+
const id = providedId ?? generatedId;
|
|
34931
|
+
const context = useContext7(RadioGroupContext);
|
|
34932
|
+
const isChecked = context ? context.value === value : checked ?? false;
|
|
34933
|
+
const disabled = disabledProp ?? context?.disabled ?? false;
|
|
34934
|
+
const name = context?.name;
|
|
34935
|
+
const size = sizeProp ?? context?.size ?? "md";
|
|
34936
|
+
const color = colorProp ?? context?.color ?? "primary";
|
|
34937
|
+
const handleChange = () => {
|
|
34938
|
+
if (disabled) return;
|
|
34939
|
+
if (context) {
|
|
34940
|
+
context.onValueChange?.(value);
|
|
34941
|
+
} else {
|
|
34942
|
+
onCheckedChange?.(!isChecked);
|
|
34943
|
+
}
|
|
34944
|
+
};
|
|
34945
|
+
return /* @__PURE__ */ jsxs97(
|
|
34946
|
+
"button",
|
|
34947
|
+
{
|
|
34948
|
+
type: "button",
|
|
34949
|
+
role: "radio",
|
|
34950
|
+
id,
|
|
34951
|
+
"aria-checked": isChecked,
|
|
34952
|
+
"aria-required": required,
|
|
34953
|
+
disabled,
|
|
34954
|
+
onClick: handleChange,
|
|
34955
|
+
className: cn(
|
|
34956
|
+
RadioVariants({ size, color }),
|
|
34957
|
+
!isChecked && "border-gray-300",
|
|
34958
|
+
disabled && "cursor-not-allowed opacity-50",
|
|
34959
|
+
!disabled && "hover:border-opacity-80 cursor-pointer",
|
|
34960
|
+
"bg-white",
|
|
34961
|
+
className
|
|
34962
|
+
),
|
|
34963
|
+
children: [
|
|
34964
|
+
Boolean(name) && /* @__PURE__ */ jsx412(
|
|
34965
|
+
"input",
|
|
34966
|
+
{
|
|
34967
|
+
type: "radio",
|
|
34968
|
+
name,
|
|
34969
|
+
value,
|
|
34970
|
+
checked: isChecked,
|
|
34971
|
+
onChange: () => {
|
|
34972
|
+
},
|
|
34973
|
+
className: "sr-only",
|
|
34974
|
+
disabled,
|
|
34975
|
+
required
|
|
34976
|
+
}
|
|
34977
|
+
),
|
|
34978
|
+
/* @__PURE__ */ jsx412(
|
|
34979
|
+
"span",
|
|
34980
|
+
{
|
|
34981
|
+
className: cn(
|
|
34982
|
+
RadioIndicatorVariants({ size, color }),
|
|
34983
|
+
isChecked ? "scale-100" : "scale-0 bg-transparent"
|
|
34984
|
+
)
|
|
34985
|
+
}
|
|
34986
|
+
)
|
|
34987
|
+
]
|
|
34988
|
+
}
|
|
34989
|
+
);
|
|
34990
|
+
};
|
|
34991
|
+
var Radio = ({ label, description, className, size: sizeProp, ...props }) => {
|
|
34992
|
+
const generatedId = useId5();
|
|
34993
|
+
const id = props?.id ?? generatedId;
|
|
34994
|
+
const context = useContext7(RadioGroupContext);
|
|
34995
|
+
const size = sizeProp ?? context?.size ?? "md";
|
|
34996
|
+
const labelSizeClasses = {
|
|
34997
|
+
sm: "text-xs",
|
|
34998
|
+
md: "text-sm",
|
|
34999
|
+
lg: "text-base"
|
|
35000
|
+
};
|
|
35001
|
+
return /* @__PURE__ */ jsxs97("div", { className: cn("inline-flex items-center gap-2", className), children: [
|
|
35002
|
+
/* @__PURE__ */ jsx412(BaseRadio, { ...props, id, size }),
|
|
35003
|
+
/* @__PURE__ */ jsxs97("div", { className: "flex flex-col", children: [
|
|
35004
|
+
Boolean(label) && /* @__PURE__ */ jsx412(FormLabel, { htmlFor: id, className: labelSizeClasses[size], children: label }),
|
|
35005
|
+
Boolean(description) && /* @__PURE__ */ jsx412(FormDescription, { children: description })
|
|
35006
|
+
] })
|
|
35007
|
+
] });
|
|
35008
|
+
};
|
|
34698
35009
|
export {
|
|
34699
35010
|
BaseCheckbox,
|
|
35011
|
+
BaseRadio,
|
|
34700
35012
|
BaseSwitch,
|
|
34701
35013
|
ButtonDropdown,
|
|
34702
35014
|
ButtonGroup,
|
|
@@ -34737,6 +35049,10 @@ export {
|
|
|
34737
35049
|
ModalPreviewAttachment,
|
|
34738
35050
|
ModalTitle,
|
|
34739
35051
|
PreviewItem,
|
|
35052
|
+
Radio,
|
|
35053
|
+
RadioGroup,
|
|
35054
|
+
RadioIndicatorVariants,
|
|
35055
|
+
RadioVariants,
|
|
34740
35056
|
Select,
|
|
34741
35057
|
Sheet,
|
|
34742
35058
|
SheetClose,
|