@sustaina/shared-ui 1.14.0 → 1.16.0
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/index.d.mts +43 -1
- package/dist/index.d.ts +43 -1
- package/dist/index.js +318 -24
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +317 -25
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -177,6 +177,45 @@ function stripNullishObject(value) {
|
|
|
177
177
|
return {};
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
+
|
|
181
|
+
// src/utils/date.ts
|
|
182
|
+
var pad = (num) => String(num).padStart(2, "0");
|
|
183
|
+
function formatISODate(isoDate, format5 = "d/m/Y H:i") {
|
|
184
|
+
const date = new Date(isoDate);
|
|
185
|
+
if (isNaN(date.getTime())) {
|
|
186
|
+
return "Invalid Date";
|
|
187
|
+
}
|
|
188
|
+
const parts = {
|
|
189
|
+
d: pad(date.getDate()),
|
|
190
|
+
m: pad(date.getMonth() + 1),
|
|
191
|
+
Y: String(date.getFullYear()),
|
|
192
|
+
H: pad(date.getHours()),
|
|
193
|
+
i: pad(date.getMinutes()),
|
|
194
|
+
s: pad(date.getSeconds())
|
|
195
|
+
};
|
|
196
|
+
const tokenMap = {
|
|
197
|
+
// Day
|
|
198
|
+
d: "d",
|
|
199
|
+
DD: "d",
|
|
200
|
+
// Month
|
|
201
|
+
m: "m",
|
|
202
|
+
MM: "m",
|
|
203
|
+
// Year
|
|
204
|
+
Y: "Y",
|
|
205
|
+
// 'Y' and 'YYYY' will both map to the 4-digit year
|
|
206
|
+
YYYY: "Y",
|
|
207
|
+
// Hour
|
|
208
|
+
H: "H",
|
|
209
|
+
// Minute
|
|
210
|
+
i: "i",
|
|
211
|
+
// Second
|
|
212
|
+
s: "s"
|
|
213
|
+
};
|
|
214
|
+
return format5.replace(/YYYY|Y|MM|m|DD|d|H|i|s/g, (match) => {
|
|
215
|
+
const partKey = tokenMap[match];
|
|
216
|
+
return partKey ? parts[partKey] : match;
|
|
217
|
+
});
|
|
218
|
+
}
|
|
180
219
|
function cn(...args) {
|
|
181
220
|
return twMerge(clsx(args));
|
|
182
221
|
}
|
|
@@ -811,7 +850,7 @@ function SelectTrigger({
|
|
|
811
850
|
"data-slot": "select-trigger",
|
|
812
851
|
"data-size": size,
|
|
813
852
|
className: cn(
|
|
814
|
-
"border-input data-
|
|
853
|
+
"border-input data-placeholder:text-gray-00 [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[state=open]:border-ring data-[state=open]:[&_svg]:text-foreground",
|
|
815
854
|
className
|
|
816
855
|
),
|
|
817
856
|
...props,
|
|
@@ -833,7 +872,7 @@ function SelectContent({
|
|
|
833
872
|
{
|
|
834
873
|
"data-slot": "select-content",
|
|
835
874
|
className: cn(
|
|
836
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-
|
|
875
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
|
|
837
876
|
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
838
877
|
className
|
|
839
878
|
),
|
|
@@ -846,7 +885,7 @@ function SelectContent({
|
|
|
846
885
|
{
|
|
847
886
|
className: cn(
|
|
848
887
|
"m-1",
|
|
849
|
-
position === "popper" && "h-
|
|
888
|
+
position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"
|
|
850
889
|
),
|
|
851
890
|
children
|
|
852
891
|
}
|
|
@@ -876,7 +915,7 @@ function SelectItem({
|
|
|
876
915
|
{
|
|
877
916
|
"data-slot": "select-item",
|
|
878
917
|
className: cn(
|
|
879
|
-
"hover:bg-[#EAF5EE] hover:text-[#379A2A] [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-
|
|
918
|
+
"hover:bg-[#EAF5EE] hover:text-[#379A2A] [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 ",
|
|
880
919
|
className
|
|
881
920
|
),
|
|
882
921
|
...props,
|
|
@@ -1769,7 +1808,7 @@ var DatePicker2 = ({
|
|
|
1769
1808
|
value,
|
|
1770
1809
|
onChange,
|
|
1771
1810
|
onValueChange,
|
|
1772
|
-
placeholder:
|
|
1811
|
+
placeholder: placeholder2 = "DD/MM/YYYY",
|
|
1773
1812
|
allowClear = true,
|
|
1774
1813
|
displayFormatter,
|
|
1775
1814
|
valueFormatter,
|
|
@@ -1798,7 +1837,7 @@ var DatePicker2 = ({
|
|
|
1798
1837
|
const parsed = parser(value);
|
|
1799
1838
|
return parsed && isValid(parsed) ? parsed : void 0;
|
|
1800
1839
|
}, [parser, value]);
|
|
1801
|
-
const buttonLabel = parsedValue ? labelFormatter(parsedValue) :
|
|
1840
|
+
const buttonLabel = parsedValue ? labelFormatter(parsedValue) : placeholder2;
|
|
1802
1841
|
const buttonAriaLabel = ariaLabel ?? (parsedValue ? `Change date, current selection ${labelFormatter(parsedValue)}` : "Open date picker");
|
|
1803
1842
|
const shouldShowClear = allowClear && !disabled && !!parsedValue;
|
|
1804
1843
|
const handleClose = React4__default.useCallback(() => setOpen(false), []);
|
|
@@ -1872,8 +1911,15 @@ var DatePicker2 = ({
|
|
|
1872
1911
|
)
|
|
1873
1912
|
] }) });
|
|
1874
1913
|
};
|
|
1875
|
-
|
|
1876
|
-
|
|
1914
|
+
|
|
1915
|
+
// src/components/advanceSearch/components/constants/index.ts
|
|
1916
|
+
var fallbackShortDateFormat = "DD/MM/YYYY";
|
|
1917
|
+
var ConditionDateInput = ({
|
|
1918
|
+
row,
|
|
1919
|
+
control,
|
|
1920
|
+
onClear,
|
|
1921
|
+
shortDateFormat = fallbackShortDateFormat
|
|
1922
|
+
}) => {
|
|
1877
1923
|
const isBetween = row.operator === "between";
|
|
1878
1924
|
const buildAriaLabel = (isEnd) => {
|
|
1879
1925
|
if (isEnd) return "Select end date";
|
|
@@ -1905,10 +1951,11 @@ var ConditionDateInput = ({ row, control, onClear }) => {
|
|
|
1905
1951
|
...field,
|
|
1906
1952
|
value: field.value || void 0,
|
|
1907
1953
|
onValueChange: handleValueChange,
|
|
1908
|
-
placeholder,
|
|
1954
|
+
placeholder: shortDateFormat,
|
|
1909
1955
|
ariaLabel: buildAriaLabel(options?.isEnd),
|
|
1910
1956
|
clearAriaLabel: buildClearLabel(options?.isEnd),
|
|
1911
1957
|
invalid: Boolean(fieldState.error),
|
|
1958
|
+
displayFormatter: (d) => formatISODate(d, shortDateFormat),
|
|
1912
1959
|
wrapperClassName: "min-w-0"
|
|
1913
1960
|
}
|
|
1914
1961
|
) }),
|
|
@@ -2192,7 +2239,7 @@ var MonthPicker2 = ({
|
|
|
2192
2239
|
value,
|
|
2193
2240
|
onChange,
|
|
2194
2241
|
onValueChange,
|
|
2195
|
-
placeholder:
|
|
2242
|
+
placeholder: placeholder2 = "MM/YYYY",
|
|
2196
2243
|
allowClear = true,
|
|
2197
2244
|
displayFormatter,
|
|
2198
2245
|
valueFormatter,
|
|
@@ -2224,7 +2271,7 @@ var MonthPicker2 = ({
|
|
|
2224
2271
|
}
|
|
2225
2272
|
return void 0;
|
|
2226
2273
|
}, [parser, value]);
|
|
2227
|
-
const buttonLabel = parsedValue ? labelFormatter(parsedValue) :
|
|
2274
|
+
const buttonLabel = parsedValue ? labelFormatter(parsedValue) : placeholder2;
|
|
2228
2275
|
const buttonAriaLabel = ariaLabel ?? (parsedValue ? `Change month, current selection ${labelFormatter(parsedValue)}` : "Open month picker");
|
|
2229
2276
|
const shouldShowClear = allowClear && !disabled && !!parsedValue;
|
|
2230
2277
|
const handleClose = React4__default.useCallback(() => setOpen(false), []);
|
|
@@ -2299,7 +2346,7 @@ var MonthPicker2 = ({
|
|
|
2299
2346
|
)
|
|
2300
2347
|
] }) });
|
|
2301
2348
|
};
|
|
2302
|
-
var
|
|
2349
|
+
var placeholder = "MM/YYYY";
|
|
2303
2350
|
var ConditionMonthInput = ({ row, control, onClear }) => {
|
|
2304
2351
|
const isBetween = row.operator === "between";
|
|
2305
2352
|
const buildAriaLabel = (isEnd) => {
|
|
@@ -2333,7 +2380,7 @@ var ConditionMonthInput = ({ row, control, onClear }) => {
|
|
|
2333
2380
|
...field,
|
|
2334
2381
|
value,
|
|
2335
2382
|
onValueChange: handleValueChange,
|
|
2336
|
-
placeholder
|
|
2383
|
+
placeholder,
|
|
2337
2384
|
ariaLabel: buildAriaLabel(options?.isEnd),
|
|
2338
2385
|
clearAriaLabel: buildClearLabel(options?.isEnd),
|
|
2339
2386
|
displayFormatter: (month) => format(month, "MM/yyyy"),
|
|
@@ -2445,7 +2492,7 @@ var LookupSelect = ({
|
|
|
2445
2492
|
onChange,
|
|
2446
2493
|
onClear,
|
|
2447
2494
|
error,
|
|
2448
|
-
placeholder:
|
|
2495
|
+
placeholder: placeholder2,
|
|
2449
2496
|
maxTags = 10,
|
|
2450
2497
|
fetchSuggestions,
|
|
2451
2498
|
suggestionDebounce = 250,
|
|
@@ -2619,7 +2666,7 @@ var LookupSelect = ({
|
|
|
2619
2666
|
window.removeEventListener("scroll", handleReposition, true);
|
|
2620
2667
|
};
|
|
2621
2668
|
}, [dropdownPortalElement, isDropdownOpen, updateDropdownPosition]);
|
|
2622
|
-
const resolvedPlaceholder =
|
|
2669
|
+
const resolvedPlaceholder = placeholder2 ?? "Select";
|
|
2623
2670
|
const showDropdown = isDropdownOpen && !fetchError;
|
|
2624
2671
|
const dropdownContent = /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-md border border-gray-200 bg-white shadow-lg", children: loading ? /* @__PURE__ */ jsx("div", { className: "px-3 py-2 text-sm text-inherit", children: loadingMessage }) : suggestions.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center px-3 py-4 text-sm text-inherit text-center", children: [
|
|
2625
2672
|
/* @__PURE__ */ jsx(not_found_default, { className: "w-full max-w-[80px] h-auto" }),
|
|
@@ -2812,7 +2859,13 @@ var ConditionJSONInput = ({
|
|
|
2812
2859
|
}
|
|
2813
2860
|
}
|
|
2814
2861
|
);
|
|
2815
|
-
var ConditionValue = ({
|
|
2862
|
+
var ConditionValue = ({
|
|
2863
|
+
row,
|
|
2864
|
+
fields,
|
|
2865
|
+
onClearValue,
|
|
2866
|
+
dropdownPortalId,
|
|
2867
|
+
shortDateFormat
|
|
2868
|
+
}) => {
|
|
2816
2869
|
const { control } = useFormContext();
|
|
2817
2870
|
const fieldSchema = fields.find((f) => f.name === row.fieldName);
|
|
2818
2871
|
const fieldType = fieldSchema?.type ?? "text";
|
|
@@ -2821,7 +2874,15 @@ var ConditionValue = ({ row, fields, onClearValue, dropdownPortalId }) => {
|
|
|
2821
2874
|
return /* @__PURE__ */ jsx(ConditionNumberInput, { row, control, onClear: onClearValue });
|
|
2822
2875
|
case "date":
|
|
2823
2876
|
case "datetime":
|
|
2824
|
-
return /* @__PURE__ */ jsx(
|
|
2877
|
+
return /* @__PURE__ */ jsx(
|
|
2878
|
+
ConditionDateInput,
|
|
2879
|
+
{
|
|
2880
|
+
row,
|
|
2881
|
+
control,
|
|
2882
|
+
onClear: onClearValue,
|
|
2883
|
+
shortDateFormat
|
|
2884
|
+
}
|
|
2885
|
+
);
|
|
2825
2886
|
case "datemonth":
|
|
2826
2887
|
return /* @__PURE__ */ jsx(ConditionMonthInput, { row, control, onClear: onClearValue });
|
|
2827
2888
|
case "dropdown":
|
|
@@ -2900,7 +2961,8 @@ var AdvanceSearchRow = ({
|
|
|
2900
2961
|
onRemove,
|
|
2901
2962
|
onClearValue,
|
|
2902
2963
|
disableAdd,
|
|
2903
|
-
dropdownPortalId
|
|
2964
|
+
dropdownPortalId,
|
|
2965
|
+
shortDateFormat
|
|
2904
2966
|
}) => {
|
|
2905
2967
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-3 rounded-lg bg-white md:grid-cols-[minmax(150px,0.85fr)_minmax(140px,0.75fr)_minmax(260px,1fr)_auto] md:items-start", children: [
|
|
2906
2968
|
/* @__PURE__ */ jsx(FieldSelect, { row, fieldOptions, onChangeField }),
|
|
@@ -2919,7 +2981,8 @@ var AdvanceSearchRow = ({
|
|
|
2919
2981
|
row,
|
|
2920
2982
|
fields,
|
|
2921
2983
|
onClearValue,
|
|
2922
|
-
dropdownPortalId
|
|
2984
|
+
dropdownPortalId,
|
|
2985
|
+
shortDateFormat
|
|
2923
2986
|
}
|
|
2924
2987
|
),
|
|
2925
2988
|
/* @__PURE__ */ jsx("div", { className: "flex h-full", children: /* @__PURE__ */ jsx(AddRemoveButtons, { isFirst, onAdd, onRemove, disableAdd }) })
|
|
@@ -3341,7 +3404,8 @@ var AdvanceSearch = ({
|
|
|
3341
3404
|
iconColor = "#ffffff",
|
|
3342
3405
|
limitRows = 4,
|
|
3343
3406
|
onSearch,
|
|
3344
|
-
onClear
|
|
3407
|
+
onClear,
|
|
3408
|
+
shortDateFormat
|
|
3345
3409
|
}) => {
|
|
3346
3410
|
const fieldsData = useMemo(() => {
|
|
3347
3411
|
if (fields.length === 0) throw new Error("fields cannot be an empty array");
|
|
@@ -3471,6 +3535,7 @@ var AdvanceSearch = ({
|
|
|
3471
3535
|
AdvanceSearchRow,
|
|
3472
3536
|
{
|
|
3473
3537
|
row,
|
|
3538
|
+
shortDateFormat,
|
|
3474
3539
|
isFirst: idx === 0,
|
|
3475
3540
|
fields: fieldsData,
|
|
3476
3541
|
fieldOptions,
|
|
@@ -5673,6 +5738,233 @@ var useGridSettingsStore = create(
|
|
|
5673
5738
|
})
|
|
5674
5739
|
);
|
|
5675
5740
|
var useGridSettingsStore_default = useGridSettingsStore;
|
|
5741
|
+
function LoadingOverlay({
|
|
5742
|
+
className,
|
|
5743
|
+
fullscreen = true,
|
|
5744
|
+
spinnerClassName,
|
|
5745
|
+
...props
|
|
5746
|
+
}) {
|
|
5747
|
+
return /* @__PURE__ */ jsx(
|
|
5748
|
+
"div",
|
|
5749
|
+
{
|
|
5750
|
+
"data-slot": "loading-overlay",
|
|
5751
|
+
className: cn(
|
|
5752
|
+
fullscreen ? "fixed z-100" : "absolute z-10",
|
|
5753
|
+
"inset-0 flex items-center justify-center transition-opacity duration-300",
|
|
5754
|
+
className
|
|
5755
|
+
),
|
|
5756
|
+
...props,
|
|
5757
|
+
children: /* @__PURE__ */ jsx(Spinner, { className: cn("size-50", spinnerClassName) })
|
|
5758
|
+
}
|
|
5759
|
+
);
|
|
5760
|
+
}
|
|
5761
|
+
var DEVICE_SIZES = [320, 420, 640, 768, 1024, 1280, 1536, 1920];
|
|
5762
|
+
var IMAGE_SIZES = [16, 32, 48, 64, 96, 128, 256, 384];
|
|
5763
|
+
var defaultLoader = ({ src }) => src;
|
|
5764
|
+
function toNumber(value) {
|
|
5765
|
+
if (typeof value === "number") {
|
|
5766
|
+
return Number.isFinite(value) ? value : void 0;
|
|
5767
|
+
}
|
|
5768
|
+
if (typeof value === "string") {
|
|
5769
|
+
const parsed = parseInt(value, 10);
|
|
5770
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
5771
|
+
}
|
|
5772
|
+
return void 0;
|
|
5773
|
+
}
|
|
5774
|
+
function formatDimension(value) {
|
|
5775
|
+
if (typeof value === "number") {
|
|
5776
|
+
return `${value}px`;
|
|
5777
|
+
}
|
|
5778
|
+
return value;
|
|
5779
|
+
}
|
|
5780
|
+
function matchClosestSize(target) {
|
|
5781
|
+
for (const size of IMAGE_SIZES) {
|
|
5782
|
+
if (size >= target) {
|
|
5783
|
+
return size;
|
|
5784
|
+
}
|
|
5785
|
+
}
|
|
5786
|
+
return DEVICE_SIZES[DEVICE_SIZES.length - 1];
|
|
5787
|
+
}
|
|
5788
|
+
function getCandidateWidths({
|
|
5789
|
+
width,
|
|
5790
|
+
sizes,
|
|
5791
|
+
fill
|
|
5792
|
+
}) {
|
|
5793
|
+
if (fill || sizes) {
|
|
5794
|
+
return DEVICE_SIZES;
|
|
5795
|
+
}
|
|
5796
|
+
if (typeof width === "number" && width > 0) {
|
|
5797
|
+
const targets = /* @__PURE__ */ new Set([width, width * 2]);
|
|
5798
|
+
return Array.from(targets).map((target) => matchClosestSize(target)).sort((a, b) => a - b);
|
|
5799
|
+
}
|
|
5800
|
+
return DEVICE_SIZES;
|
|
5801
|
+
}
|
|
5802
|
+
var Image2 = React4.forwardRef(function Image3({
|
|
5803
|
+
src,
|
|
5804
|
+
alt,
|
|
5805
|
+
width,
|
|
5806
|
+
height,
|
|
5807
|
+
fill = false,
|
|
5808
|
+
sizes,
|
|
5809
|
+
quality = 75,
|
|
5810
|
+
priority = false,
|
|
5811
|
+
placeholder: placeholder2 = "empty",
|
|
5812
|
+
blurDataURL,
|
|
5813
|
+
loader = defaultLoader,
|
|
5814
|
+
unoptimized = false,
|
|
5815
|
+
wrapperClassName,
|
|
5816
|
+
className,
|
|
5817
|
+
objectFit,
|
|
5818
|
+
objectPosition,
|
|
5819
|
+
onLoadingComplete,
|
|
5820
|
+
style,
|
|
5821
|
+
...imgProps
|
|
5822
|
+
}, ref) {
|
|
5823
|
+
const {
|
|
5824
|
+
loading: loadingProp,
|
|
5825
|
+
fetchPriority: fetchPriorityProp,
|
|
5826
|
+
decoding: decodingProp,
|
|
5827
|
+
onLoad: onLoadProp,
|
|
5828
|
+
...restImgProps
|
|
5829
|
+
} = imgProps;
|
|
5830
|
+
const widthNumber = toNumber(width);
|
|
5831
|
+
const heightNumber = toNumber(height);
|
|
5832
|
+
React4.useEffect(() => {
|
|
5833
|
+
if (!fill && (!widthNumber || !heightNumber)) {
|
|
5834
|
+
console.warn(
|
|
5835
|
+
"[Image] When `fill` is false you should provide both `width` and `height` to prevent layout shifts."
|
|
5836
|
+
);
|
|
5837
|
+
}
|
|
5838
|
+
}, [fill, heightNumber, widthNumber]);
|
|
5839
|
+
const candidateWidths = React4.useMemo(
|
|
5840
|
+
() => getCandidateWidths({ width: widthNumber, sizes, fill }),
|
|
5841
|
+
[fill, sizes, widthNumber]
|
|
5842
|
+
);
|
|
5843
|
+
const largestWidth = candidateWidths[candidateWidths.length - 1] ?? widthNumber ?? DEVICE_SIZES[DEVICE_SIZES.length - 1];
|
|
5844
|
+
const computedSrc = React4.useMemo(() => {
|
|
5845
|
+
if (unoptimized) {
|
|
5846
|
+
return src;
|
|
5847
|
+
}
|
|
5848
|
+
return loader({ src, width: largestWidth, quality });
|
|
5849
|
+
}, [largestWidth, loader, quality, src, unoptimized]);
|
|
5850
|
+
const computedSrcSet = React4.useMemo(() => {
|
|
5851
|
+
if (unoptimized) {
|
|
5852
|
+
return void 0;
|
|
5853
|
+
}
|
|
5854
|
+
return candidateWidths.map((currentWidth) => `${loader({ src, width: currentWidth, quality })} ${currentWidth}w`).join(", ");
|
|
5855
|
+
}, [candidateWidths, loader, quality, src, unoptimized]);
|
|
5856
|
+
const sizesValue = sizes ?? (fill ? "100vw" : widthNumber ? `${widthNumber}px` : void 0);
|
|
5857
|
+
const [isLoaded, setIsLoaded] = React4.useState(false);
|
|
5858
|
+
const internalRef = React4.useRef(null);
|
|
5859
|
+
const setRefs = React4.useCallback(
|
|
5860
|
+
(node) => {
|
|
5861
|
+
internalRef.current = node;
|
|
5862
|
+
if (!ref) {
|
|
5863
|
+
return;
|
|
5864
|
+
}
|
|
5865
|
+
if (typeof ref === "function") {
|
|
5866
|
+
ref(node);
|
|
5867
|
+
} else {
|
|
5868
|
+
ref.current = node;
|
|
5869
|
+
}
|
|
5870
|
+
},
|
|
5871
|
+
[ref]
|
|
5872
|
+
);
|
|
5873
|
+
React4.useEffect(() => {
|
|
5874
|
+
const image = internalRef.current;
|
|
5875
|
+
if (!image) {
|
|
5876
|
+
return;
|
|
5877
|
+
}
|
|
5878
|
+
if (image.complete && image.naturalWidth > 0) {
|
|
5879
|
+
setIsLoaded(true);
|
|
5880
|
+
onLoadingComplete?.(image);
|
|
5881
|
+
} else {
|
|
5882
|
+
setIsLoaded(false);
|
|
5883
|
+
}
|
|
5884
|
+
}, [onLoadingComplete, src]);
|
|
5885
|
+
const handleLoad = React4.useCallback(
|
|
5886
|
+
(event) => {
|
|
5887
|
+
setIsLoaded(true);
|
|
5888
|
+
onLoadProp?.(event);
|
|
5889
|
+
onLoadingComplete?.(event.currentTarget);
|
|
5890
|
+
},
|
|
5891
|
+
[onLoadProp, onLoadingComplete]
|
|
5892
|
+
);
|
|
5893
|
+
const loading = priority ? "eager" : loadingProp ?? "lazy";
|
|
5894
|
+
const fetchPriority = priority ? "high" : fetchPriorityProp;
|
|
5895
|
+
const decoding = decodingProp ?? "async";
|
|
5896
|
+
const resolvedObjectFit = objectFit ?? (fill ? "cover" : void 0);
|
|
5897
|
+
const wrapperStyle = React4.useMemo(
|
|
5898
|
+
() => ({
|
|
5899
|
+
position: "relative",
|
|
5900
|
+
display: fill ? "block" : "inline-block",
|
|
5901
|
+
overflow: "hidden",
|
|
5902
|
+
width: fill ? "100%" : formatDimension(width) ?? void 0,
|
|
5903
|
+
height: fill ? "100%" : formatDimension(height) ?? void 0
|
|
5904
|
+
}),
|
|
5905
|
+
[fill, height, width]
|
|
5906
|
+
);
|
|
5907
|
+
const imageStyle = React4.useMemo(
|
|
5908
|
+
() => ({
|
|
5909
|
+
width: fill ? "100%" : formatDimension(width) ?? void 0,
|
|
5910
|
+
height: fill ? "100%" : formatDimension(height) ?? void 0,
|
|
5911
|
+
position: fill ? "absolute" : void 0,
|
|
5912
|
+
inset: fill ? 0 : void 0,
|
|
5913
|
+
objectFit: resolvedObjectFit,
|
|
5914
|
+
objectPosition,
|
|
5915
|
+
...style
|
|
5916
|
+
}),
|
|
5917
|
+
[fill, height, objectPosition, resolvedObjectFit, style, width]
|
|
5918
|
+
);
|
|
5919
|
+
const shouldShowLoadingOverlay = placeholder2 === "blur";
|
|
5920
|
+
return /* @__PURE__ */ jsxs(
|
|
5921
|
+
"span",
|
|
5922
|
+
{
|
|
5923
|
+
"data-slot": "image",
|
|
5924
|
+
className: cn("relative overflow-hidden", fill ? "block" : "inline-block", wrapperClassName),
|
|
5925
|
+
style: wrapperStyle,
|
|
5926
|
+
children: [
|
|
5927
|
+
shouldShowLoadingOverlay && /* @__PURE__ */ jsx(
|
|
5928
|
+
LoadingOverlay,
|
|
5929
|
+
{
|
|
5930
|
+
"aria-hidden": true,
|
|
5931
|
+
fullscreen: false,
|
|
5932
|
+
spinnerClassName: "size-6",
|
|
5933
|
+
className: cn(
|
|
5934
|
+
// "bg-white/75!",
|
|
5935
|
+
isLoaded ? "opacity-0 pointer-events-none" : "opacity-100"
|
|
5936
|
+
)
|
|
5937
|
+
}
|
|
5938
|
+
),
|
|
5939
|
+
/* @__PURE__ */ jsx(
|
|
5940
|
+
"img",
|
|
5941
|
+
{
|
|
5942
|
+
ref: setRefs,
|
|
5943
|
+
className: cn(
|
|
5944
|
+
"block transition-opacity duration-300",
|
|
5945
|
+
fill && "absolute inset-0 size-full",
|
|
5946
|
+
shouldShowLoadingOverlay && !isLoaded ? "opacity-0" : "opacity-100",
|
|
5947
|
+
className
|
|
5948
|
+
),
|
|
5949
|
+
src: computedSrc,
|
|
5950
|
+
srcSet: computedSrcSet,
|
|
5951
|
+
sizes: sizesValue,
|
|
5952
|
+
width: fill ? void 0 : widthNumber,
|
|
5953
|
+
height: fill ? void 0 : heightNumber,
|
|
5954
|
+
alt,
|
|
5955
|
+
loading,
|
|
5956
|
+
fetchPriority,
|
|
5957
|
+
decoding,
|
|
5958
|
+
onLoad: handleLoad,
|
|
5959
|
+
style: imageStyle,
|
|
5960
|
+
...restImgProps
|
|
5961
|
+
}
|
|
5962
|
+
)
|
|
5963
|
+
]
|
|
5964
|
+
}
|
|
5965
|
+
);
|
|
5966
|
+
});
|
|
5967
|
+
Image2.displayName = "Image";
|
|
5676
5968
|
var ListTable = ({ onTableReady, children }) => {
|
|
5677
5969
|
React4.useEffect(() => {
|
|
5678
5970
|
if (onTableReady) {
|
|
@@ -6294,8 +6586,8 @@ function parseSerializedEditorState(raw) {
|
|
|
6294
6586
|
return void 0;
|
|
6295
6587
|
}
|
|
6296
6588
|
}
|
|
6297
|
-
function Placeholder({ placeholder:
|
|
6298
|
-
return /* @__PURE__ */ jsx("div", { className: theme.placeholder, children:
|
|
6589
|
+
function Placeholder({ placeholder: placeholder2 }) {
|
|
6590
|
+
return /* @__PURE__ */ jsx("div", { className: theme.placeholder, children: placeholder2 });
|
|
6299
6591
|
}
|
|
6300
6592
|
var initialToolbarState = {
|
|
6301
6593
|
isBold: false,
|
|
@@ -7196,7 +7488,7 @@ var RichText = forwardRef(function RichText2({
|
|
|
7196
7488
|
defaultValue,
|
|
7197
7489
|
onChange,
|
|
7198
7490
|
onHtmlChange,
|
|
7199
|
-
placeholder:
|
|
7491
|
+
placeholder: placeholder2,
|
|
7200
7492
|
readOnly,
|
|
7201
7493
|
disabled,
|
|
7202
7494
|
editorClassName,
|
|
@@ -7284,7 +7576,7 @@ var RichText = forwardRef(function RichText2({
|
|
|
7284
7576
|
)
|
|
7285
7577
|
}
|
|
7286
7578
|
),
|
|
7287
|
-
placeholder: /* @__PURE__ */ jsx(Placeholder, { placeholder:
|
|
7579
|
+
placeholder: /* @__PURE__ */ jsx(Placeholder, { placeholder: placeholder2 || "" }),
|
|
7288
7580
|
ErrorBoundary: LexicalErrorBoundary
|
|
7289
7581
|
}
|
|
7290
7582
|
),
|
|
@@ -8381,6 +8673,6 @@ var CropperModal = ({
|
|
|
8381
8673
|
);
|
|
8382
8674
|
};
|
|
8383
8675
|
|
|
8384
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AdvanceSearch_default as AdvanceSearch, arrow_default as ArrowIcon, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, CropperModal, CropperModalError, DIALOG_ALERT_I18N_NAMESPACE, DataTable_default as DataTable, DatePicker2 as DatePicker, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, Input, Label2 as Label, List_default as List, container_default as ListContainer, header_default as ListHeader, table_default as ListTable, LookupSelect, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PreventPageLeave_default as PreventPageLeave, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, calendar_default as SuiCalendarIcon, check_default as SuiCheckIcon, dots_vertical_default as SuiDotsVerticalIcon, empty_data_default as SuiEmptyDataIcon, expand_default as SuiExpandIcon, filter_default as SuiFilterIcon, setting_default as SuiSettingIcon, triangle_down_default as SuiTriangleDownIcon, warning_default as SuiWarningIcon, Switch, Textarea, Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipTrigger, ui_exports as UI, booleanToSelectValue, buttonVariants, cn, compareAlphanumeric, debounce, getDialogAlertControls, getDialogTemplates, inputVariants, isDefined, isEmptyObject, selectValueToBoolean, spinnerVariants, stripNullishObject, throttle, useFormField, useGridSettingsStore_default as useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useScreenSize_default as useScreenSize, useSidebar, useTruncated_default as useTruncated };
|
|
8676
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AdvanceSearch_default as AdvanceSearch, arrow_default as ArrowIcon, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, CropperModal, CropperModalError, DIALOG_ALERT_I18N_NAMESPACE, DataTable_default as DataTable, DatePicker2 as DatePicker, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, Image2 as Image, Input, Label2 as Label, List_default as List, container_default as ListContainer, header_default as ListHeader, table_default as ListTable, LookupSelect, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PreventPageLeave_default as PreventPageLeave, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, calendar_default as SuiCalendarIcon, check_default as SuiCheckIcon, dots_vertical_default as SuiDotsVerticalIcon, empty_data_default as SuiEmptyDataIcon, expand_default as SuiExpandIcon, filter_default as SuiFilterIcon, setting_default as SuiSettingIcon, triangle_down_default as SuiTriangleDownIcon, warning_default as SuiWarningIcon, Switch, Textarea, Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipTrigger, ui_exports as UI, booleanToSelectValue, buttonVariants, cn, compareAlphanumeric, debounce, formatISODate, getDialogAlertControls, getDialogTemplates, inputVariants, isDefined, isEmptyObject, selectValueToBoolean, spinnerVariants, stripNullishObject, throttle, useFormField, useGridSettingsStore_default as useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useScreenSize_default as useScreenSize, useSidebar, useTruncated_default as useTruncated };
|
|
8385
8677
|
//# sourceMappingURL=index.mjs.map
|
|
8386
8678
|
//# sourceMappingURL=index.mjs.map
|