@dimasbaguspm/versaur 0.0.24 → 0.0.26
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/js/{bottom-sheet-CCDa5VGo.js → bottom-sheet-CQw_O-4W.js} +195 -176
- package/dist/js/{bottom-sheet-input-DsgPp5zI.js → bottom-sheet-input-1C3Up2xF.js} +34 -35
- package/dist/js/forms/index.js +1 -1
- package/dist/js/{image-rectangle-GA3oWX7A.js → image-rectangle--Sy82Ff9.js} +232 -111
- package/dist/js/index.js +20 -21
- package/dist/js/layouts/index.js +1 -1
- package/dist/js/navigation/index.js +1 -1
- package/dist/js/overlays/index.js +2 -2
- package/dist/js/primitive/index.js +10 -11
- package/dist/js/{tabs-p6g9kN0N.js → tabs-CoNG51E1.js} +5 -6
- package/dist/js/{tooltip-CDdl1U3A.js → tooltip-BbTHXz6h.js} +1 -1
- package/dist/js/{top-bar-COx4DTbS.js → top-bar-BjE0FiE8.js} +61 -62
- package/dist/types/overlays/drawer/drawer.atoms.d.ts +5 -2
- package/dist/types/overlays/drawer/drawer.d.ts +2 -0
- package/dist/types/overlays/drawer/types.d.ts +1 -16
- package/package.json +1 -1
- package/dist/js/text-CRsIInRA.js +0 -127
|
@@ -2,7 +2,6 @@ import { c as cva, j as jsxRuntimeExports, a as cn } from "./index-DOdDlCoL.js";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import React__default, { forwardRef, useState, useEffect, useCallback, useRef, createContext, useContext } from "react";
|
|
4
4
|
import { X, ChevronLeft, ChevronRight, ImageOff } from "lucide-react";
|
|
5
|
-
import { T as Text } from "./text-CRsIInRA.js";
|
|
6
5
|
import { S as Skeleton } from "./skeleton-BNZyaRjo.js";
|
|
7
6
|
const alertVariants = cva(
|
|
8
7
|
"relative flex items-center gap-2 rounded-md p-2 text-sm transition-all duration-200",
|
|
@@ -303,9 +302,9 @@ const alertVariants = cva(
|
|
|
303
302
|
useEffect(() => {
|
|
304
303
|
a(!1);
|
|
305
304
|
}, [e]);
|
|
306
|
-
const
|
|
307
|
-
(
|
|
308
|
-
a(!0), s?.(
|
|
305
|
+
const l = useCallback(
|
|
306
|
+
(c) => {
|
|
307
|
+
a(!0), s?.(c);
|
|
309
308
|
},
|
|
310
309
|
[s]
|
|
311
310
|
);
|
|
@@ -316,7 +315,7 @@ const alertVariants = cva(
|
|
|
316
315
|
src: e,
|
|
317
316
|
alt: t,
|
|
318
317
|
className: cn(avatarImageVariants(), r),
|
|
319
|
-
onError:
|
|
318
|
+
onError: l,
|
|
320
319
|
...n
|
|
321
320
|
}
|
|
322
321
|
);
|
|
@@ -489,13 +488,13 @@ const alertVariants = cva(
|
|
|
489
488
|
iconRight: o,
|
|
490
489
|
className: i,
|
|
491
490
|
children: a,
|
|
492
|
-
...
|
|
493
|
-
},
|
|
491
|
+
...l
|
|
492
|
+
}, c) => {
|
|
494
493
|
const d = !(a != null && a !== "") && !!(n || o);
|
|
495
494
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
496
495
|
"span",
|
|
497
496
|
{
|
|
498
|
-
ref:
|
|
497
|
+
ref: c,
|
|
499
498
|
className: cn(
|
|
500
499
|
badgeVariants({
|
|
501
500
|
variant: e,
|
|
@@ -506,7 +505,7 @@ const alertVariants = cva(
|
|
|
506
505
|
}),
|
|
507
506
|
i
|
|
508
507
|
),
|
|
509
|
-
...
|
|
508
|
+
...l,
|
|
510
509
|
children: d ? (
|
|
511
510
|
// Icon-only mode: display only the icon
|
|
512
511
|
n || o
|
|
@@ -621,11 +620,11 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
|
|
|
621
620
|
type: o = "button",
|
|
622
621
|
children: i,
|
|
623
622
|
...a
|
|
624
|
-
},
|
|
623
|
+
}, l) {
|
|
625
624
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
626
625
|
"button",
|
|
627
626
|
{
|
|
628
|
-
ref:
|
|
627
|
+
ref: l,
|
|
629
628
|
type: o,
|
|
630
629
|
className: cn(buttonVariants({ variant: r, size: s }), t),
|
|
631
630
|
disabled: n,
|
|
@@ -705,15 +704,15 @@ const SvgSpenicleSquare = (e) => /* @__PURE__ */ React.createElement("svg", { wi
|
|
|
705
704
|
);
|
|
706
705
|
function useFloatingPosition(e, t = "1rem") {
|
|
707
706
|
const r = useRef(null), [s, n] = useState({}), [o, i] = useState("fixed bottom-4 right-4"), a = useCallback(() => {
|
|
708
|
-
const
|
|
709
|
-
if (!
|
|
710
|
-
const
|
|
707
|
+
const c = r.current;
|
|
708
|
+
if (!c) return;
|
|
709
|
+
const h = c.getBoundingClientRect().height > window.innerHeight;
|
|
711
710
|
let d = {}, p = "";
|
|
712
|
-
|
|
711
|
+
h ? (d = {
|
|
713
712
|
position: "fixed",
|
|
714
713
|
bottom: t,
|
|
715
714
|
zIndex: 50,
|
|
716
|
-
transform: `translateY(${
|
|
715
|
+
transform: `translateY(${c.scrollTop}px)`
|
|
717
716
|
}, p = `fixed bottom-4 ${e}-4`) : (d = {
|
|
718
717
|
position: "fixed",
|
|
719
718
|
bottom: t,
|
|
@@ -722,15 +721,15 @@ function useFloatingPosition(e, t = "1rem") {
|
|
|
722
721
|
}, [e, t]);
|
|
723
722
|
return useEffect(() => {
|
|
724
723
|
a();
|
|
725
|
-
const
|
|
726
|
-
return
|
|
727
|
-
|
|
724
|
+
const c = r.current;
|
|
725
|
+
return c && c.addEventListener("scroll", a), window.addEventListener("resize", a), () => {
|
|
726
|
+
c && c.removeEventListener("scroll", a), window.removeEventListener("resize", a);
|
|
728
727
|
};
|
|
729
728
|
}, [a]), useEffect(() => {
|
|
730
729
|
r.current && a();
|
|
731
730
|
}, [e, t, a]), [useCallback(
|
|
732
|
-
(
|
|
733
|
-
r.current =
|
|
731
|
+
(c) => {
|
|
732
|
+
r.current = c, c && a();
|
|
734
733
|
},
|
|
735
734
|
[a]
|
|
736
735
|
), s, o];
|
|
@@ -744,24 +743,24 @@ const ButtonFloat = forwardRef(
|
|
|
744
743
|
offset: o = "1rem",
|
|
745
744
|
...i
|
|
746
745
|
}, a) {
|
|
747
|
-
const [
|
|
746
|
+
const [l, c, x] = useFloatingPosition(
|
|
748
747
|
n,
|
|
749
748
|
o
|
|
750
|
-
), [
|
|
749
|
+
), [h, d] = useState(!1);
|
|
751
750
|
return useEffect(() => {
|
|
752
751
|
d(!0);
|
|
753
|
-
}, []), /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref:
|
|
752
|
+
}, []), /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: l, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
754
753
|
"button",
|
|
755
754
|
{
|
|
756
755
|
ref: a,
|
|
757
756
|
type: i.type || "button",
|
|
758
757
|
className: cn(
|
|
759
758
|
buttonFloatVariants({ variant: r, size: s }),
|
|
760
|
-
|
|
761
|
-
|
|
759
|
+
x,
|
|
760
|
+
h && "animate-fab-in",
|
|
762
761
|
t
|
|
763
762
|
),
|
|
764
|
-
style:
|
|
763
|
+
style: c,
|
|
765
764
|
...i
|
|
766
765
|
}
|
|
767
766
|
) });
|
|
@@ -902,12 +901,12 @@ const buttonIconVariants = cva(
|
|
|
902
901
|
disabled: o = !1,
|
|
903
902
|
as: i,
|
|
904
903
|
"aria-label": a,
|
|
905
|
-
...
|
|
906
|
-
},
|
|
904
|
+
...l
|
|
905
|
+
}, c) {
|
|
907
906
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
908
907
|
"button",
|
|
909
908
|
{
|
|
910
|
-
ref:
|
|
909
|
+
ref: c,
|
|
911
910
|
type: "button",
|
|
912
911
|
className: cn(
|
|
913
912
|
buttonIconVariants({
|
|
@@ -921,7 +920,7 @@ const buttonIconVariants = cva(
|
|
|
921
920
|
"aria-disabled": o,
|
|
922
921
|
"aria-label": a,
|
|
923
922
|
inert: o ? !0 : void 0,
|
|
924
|
-
...
|
|
923
|
+
...l,
|
|
925
924
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
926
925
|
Icon,
|
|
927
926
|
{
|
|
@@ -1051,7 +1050,7 @@ const BUTTONS = [
|
|
|
1051
1050
|
className: s,
|
|
1052
1051
|
"aria-label": n
|
|
1053
1052
|
}, o) => {
|
|
1054
|
-
const { input: i, inputRef: a, handleButton:
|
|
1053
|
+
const { input: i, inputRef: a, handleButton: l, handleInput: c } = useCalculator({
|
|
1055
1054
|
initialValue: e,
|
|
1056
1055
|
disabled: r,
|
|
1057
1056
|
onChange: t
|
|
@@ -1070,20 +1069,20 @@ const BUTTONS = [
|
|
|
1070
1069
|
ref: a,
|
|
1071
1070
|
className: "w-full mb-3 px-3 py-2 rounded border border-[var(--color-neutral)] bg-[var(--color-neutral-soft)] text-right text-xl font-mono focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)]",
|
|
1072
1071
|
value: i,
|
|
1073
|
-
onChange:
|
|
1072
|
+
onChange: c,
|
|
1074
1073
|
disabled: r,
|
|
1075
1074
|
inputMode: "decimal",
|
|
1076
1075
|
"aria-label": "Calculator input"
|
|
1077
1076
|
}
|
|
1078
1077
|
),
|
|
1079
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-1 mb-3", children: BUTTONS.map((
|
|
1078
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-1 mb-3", children: BUTTONS.map((x, h) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex w-full", children: x.map((d) => d === "⌫" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1080
1079
|
ButtonIcon,
|
|
1081
1080
|
{
|
|
1082
1081
|
as: X,
|
|
1083
1082
|
variant: "danger-ghost",
|
|
1084
1083
|
"aria-label": "Backspace",
|
|
1085
1084
|
size: "md",
|
|
1086
|
-
onClick: () =>
|
|
1085
|
+
onClick: () => l("⌫"),
|
|
1087
1086
|
disabled: r
|
|
1088
1087
|
},
|
|
1089
1088
|
"backspace"
|
|
@@ -1091,20 +1090,141 @@ const BUTTONS = [
|
|
|
1091
1090
|
CalculatorButton,
|
|
1092
1091
|
{
|
|
1093
1092
|
variant: d === "=" ? "action" : d === "C" ? "danger" : ["/", "*", "-", "+", "/"].includes(d) ? "operator" : "default",
|
|
1094
|
-
onClick: () =>
|
|
1093
|
+
onClick: () => l(d),
|
|
1095
1094
|
disabled: r,
|
|
1096
1095
|
"aria-label": d,
|
|
1097
1096
|
children: d
|
|
1098
1097
|
},
|
|
1099
1098
|
d
|
|
1100
|
-
)) },
|
|
1099
|
+
)) }, h)) })
|
|
1101
1100
|
]
|
|
1102
1101
|
}
|
|
1103
1102
|
);
|
|
1104
1103
|
}
|
|
1105
1104
|
);
|
|
1106
1105
|
Calculator.displayName = "Calculator";
|
|
1107
|
-
const
|
|
1106
|
+
const textVariants = cva("", {
|
|
1107
|
+
variants: {
|
|
1108
|
+
color: {
|
|
1109
|
+
primary: "text-primary",
|
|
1110
|
+
secondary: "text-secondary",
|
|
1111
|
+
tertiary: "text-tertiary",
|
|
1112
|
+
ghost: "text-ghost",
|
|
1113
|
+
neutral: "text-ghost",
|
|
1114
|
+
success: "text-success",
|
|
1115
|
+
info: "text-info",
|
|
1116
|
+
warning: "text-warning",
|
|
1117
|
+
danger: "text-danger",
|
|
1118
|
+
inherit: "",
|
|
1119
|
+
gray: "text-gray-500",
|
|
1120
|
+
black: "text-black",
|
|
1121
|
+
white: "text-white"
|
|
1122
|
+
},
|
|
1123
|
+
hasUnderline: {
|
|
1124
|
+
true: "underline",
|
|
1125
|
+
false: ""
|
|
1126
|
+
},
|
|
1127
|
+
isCapitalize: {
|
|
1128
|
+
true: "capitalize",
|
|
1129
|
+
false: ""
|
|
1130
|
+
},
|
|
1131
|
+
align: {
|
|
1132
|
+
left: "text-left",
|
|
1133
|
+
center: "text-center",
|
|
1134
|
+
right: "text-right",
|
|
1135
|
+
justify: "text-justify"
|
|
1136
|
+
},
|
|
1137
|
+
italic: {
|
|
1138
|
+
true: "italic",
|
|
1139
|
+
false: ""
|
|
1140
|
+
},
|
|
1141
|
+
clamp: {
|
|
1142
|
+
1: "line-clamp-1",
|
|
1143
|
+
2: "line-clamp-2",
|
|
1144
|
+
3: "line-clamp-3",
|
|
1145
|
+
4: "line-clamp-4",
|
|
1146
|
+
5: "line-clamp-5",
|
|
1147
|
+
none: ""
|
|
1148
|
+
},
|
|
1149
|
+
ellipsis: {
|
|
1150
|
+
true: "truncate",
|
|
1151
|
+
false: ""
|
|
1152
|
+
},
|
|
1153
|
+
as: {
|
|
1154
|
+
h1: "font-bold text-4xl leading-loose",
|
|
1155
|
+
h2: "font-semibold text-3xl leading-relaxed",
|
|
1156
|
+
h3: "font-medium text-2xl leading-relaxed",
|
|
1157
|
+
h4: "font-bold text-xl leading-normal",
|
|
1158
|
+
h5: "font-semibold text-lg leading-normal",
|
|
1159
|
+
h6: "font-medium text-base leading-normal",
|
|
1160
|
+
p: "font-normal text-base leading-normal",
|
|
1161
|
+
span: "font-normal text-base leading-normal",
|
|
1162
|
+
label: "font-normal text-xs leading-normal"
|
|
1163
|
+
}
|
|
1164
|
+
},
|
|
1165
|
+
defaultVariants: {
|
|
1166
|
+
color: "neutral",
|
|
1167
|
+
hasUnderline: !1,
|
|
1168
|
+
isCapitalize: !1,
|
|
1169
|
+
align: "left",
|
|
1170
|
+
italic: !1,
|
|
1171
|
+
clamp: "none",
|
|
1172
|
+
ellipsis: !1,
|
|
1173
|
+
as: "span"
|
|
1174
|
+
}
|
|
1175
|
+
}), Text = forwardRef(
|
|
1176
|
+
({
|
|
1177
|
+
as: e = "span",
|
|
1178
|
+
color: t = "ghost",
|
|
1179
|
+
hasUnderline: r = !1,
|
|
1180
|
+
isCapitalize: s = !1,
|
|
1181
|
+
align: n = "left",
|
|
1182
|
+
italic: o = !1,
|
|
1183
|
+
clamp: i = "none",
|
|
1184
|
+
ellipsis: a = !1,
|
|
1185
|
+
fontSize: l,
|
|
1186
|
+
fontWeight: c,
|
|
1187
|
+
className: x,
|
|
1188
|
+
children: h,
|
|
1189
|
+
...d
|
|
1190
|
+
}, p) => {
|
|
1191
|
+
const f = [
|
|
1192
|
+
"h1",
|
|
1193
|
+
"h2",
|
|
1194
|
+
"h3",
|
|
1195
|
+
"h4",
|
|
1196
|
+
"h5",
|
|
1197
|
+
"h6",
|
|
1198
|
+
"p",
|
|
1199
|
+
"span",
|
|
1200
|
+
"label"
|
|
1201
|
+
].includes(e) ? e : "span", v = l ? `text-${l}` : "", w = c ? `font-${c}` : "";
|
|
1202
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1203
|
+
e,
|
|
1204
|
+
{
|
|
1205
|
+
ref: p,
|
|
1206
|
+
className: cn(
|
|
1207
|
+
textVariants({
|
|
1208
|
+
color: t,
|
|
1209
|
+
hasUnderline: r,
|
|
1210
|
+
isCapitalize: s,
|
|
1211
|
+
align: n,
|
|
1212
|
+
italic: o,
|
|
1213
|
+
clamp: i,
|
|
1214
|
+
ellipsis: a,
|
|
1215
|
+
// @ts-expect-error - `as` is not a valid variant
|
|
1216
|
+
as: f
|
|
1217
|
+
}),
|
|
1218
|
+
v,
|
|
1219
|
+
w,
|
|
1220
|
+
x
|
|
1221
|
+
),
|
|
1222
|
+
...d,
|
|
1223
|
+
children: h
|
|
1224
|
+
}
|
|
1225
|
+
);
|
|
1226
|
+
}
|
|
1227
|
+
), CalendarContext = createContext(null);
|
|
1108
1228
|
function useCalendarContext() {
|
|
1109
1229
|
const e = useContext(CalendarContext);
|
|
1110
1230
|
if (!e)
|
|
@@ -1147,27 +1267,27 @@ const CalendarHeader = () => {
|
|
|
1147
1267
|
] })
|
|
1148
1268
|
] });
|
|
1149
1269
|
}, CalendarWeekdays = () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-7 px-4 text-ghost-500 mb-3", children: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map((e) => /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { fontSize: "xs", color: "ghost", align: "center", children: e }, e)) }), CalendarDaysSingle = () => {
|
|
1150
|
-
const e = useCalendarContext(), { year: t, month: r, value: s, onChange: n, setMonth: o, setYear: i } = e, a = (g,
|
|
1151
|
-
for (let g = 0; g <
|
|
1152
|
-
const
|
|
1270
|
+
const e = useCalendarContext(), { year: t, month: r, value: s, onChange: n, setMonth: o, setYear: i } = e, a = (g, m) => new Date(g, m + 1, 0).getDate(), c = ((g, m) => new Date(g, m, 1).getDay())(t, r), x = a(t, r), h = r - 1 < 0 ? 11 : r - 1, d = r === 0 ? t - 1 : t, p = a(t, h), y = r === 11 ? 0 : r + 1, f = r === 11 ? t + 1 : t, v = [];
|
|
1271
|
+
for (let g = 0; g < c; g++) {
|
|
1272
|
+
const m = p - c + g + 1;
|
|
1153
1273
|
v.push(
|
|
1154
1274
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1155
1275
|
ButtonIcon,
|
|
1156
1276
|
{
|
|
1157
|
-
as: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "sm", color: "tertiary", children:
|
|
1277
|
+
as: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "sm", color: "tertiary", children: m }),
|
|
1158
1278
|
size: "sm",
|
|
1159
1279
|
"aria-label": "Previous month day",
|
|
1160
1280
|
variant: "ghost",
|
|
1161
1281
|
onClick: () => {
|
|
1162
|
-
n?.(new Date(d,
|
|
1282
|
+
n?.(new Date(d, h, m)), o(h), i(d);
|
|
1163
1283
|
}
|
|
1164
1284
|
},
|
|
1165
1285
|
"prev-" + g
|
|
1166
1286
|
)
|
|
1167
1287
|
);
|
|
1168
1288
|
}
|
|
1169
|
-
for (let g = 1; g <=
|
|
1170
|
-
const
|
|
1289
|
+
for (let g = 1; g <= x; g++) {
|
|
1290
|
+
const m = s instanceof Date && s.getFullYear() === t && s.getMonth() === r && s.getDate() === g;
|
|
1171
1291
|
v.push(
|
|
1172
1292
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1173
1293
|
ButtonIcon,
|
|
@@ -1177,15 +1297,15 @@ const CalendarHeader = () => {
|
|
|
1177
1297
|
{
|
|
1178
1298
|
as: "span",
|
|
1179
1299
|
fontSize: "sm",
|
|
1180
|
-
color:
|
|
1181
|
-
className:
|
|
1300
|
+
color: m ? "inherit" : "ghost",
|
|
1301
|
+
className: m ? "bg-primary text-white rounded-full" : "",
|
|
1182
1302
|
children: g
|
|
1183
1303
|
}
|
|
1184
1304
|
),
|
|
1185
|
-
variant:
|
|
1305
|
+
variant: m ? "primary" : "ghost",
|
|
1186
1306
|
size: "sm",
|
|
1187
1307
|
"aria-label": `Select ${t}-${r + 1}-${g}`,
|
|
1188
|
-
"aria-current":
|
|
1308
|
+
"aria-current": m ? "date" : void 0,
|
|
1189
1309
|
onClick: () => {
|
|
1190
1310
|
n?.(new Date(t, r, g));
|
|
1191
1311
|
}
|
|
@@ -1194,7 +1314,7 @@ const CalendarHeader = () => {
|
|
|
1194
1314
|
)
|
|
1195
1315
|
);
|
|
1196
1316
|
}
|
|
1197
|
-
const w =
|
|
1317
|
+
const w = c + x;
|
|
1198
1318
|
for (let g = 0; g < (w % 7 === 0 ? 0 : 7 - w % 7); g++)
|
|
1199
1319
|
v.push(
|
|
1200
1320
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -1213,35 +1333,35 @@ const CalendarHeader = () => {
|
|
|
1213
1333
|
);
|
|
1214
1334
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-7 gap-2 px-4 pb-4", children: v });
|
|
1215
1335
|
}, CalendarDaysRange = () => {
|
|
1216
|
-
const { year: e, month: t, value: r, onChange: s, setMonth: n, setYear: o } = useCalendarContext(), i = (
|
|
1336
|
+
const { year: e, month: t, value: r, onChange: s, setMonth: n, setYear: o } = useCalendarContext(), i = (u, b) => new Date(u, b + 1, 0).getDate(), l = ((u, b) => new Date(u, b, 1).getDay())(e, t), c = i(e, t), x = t - 1 < 0 ? 11 : t - 1, h = t === 0 ? e - 1 : e, d = i(e, x), p = t === 11 ? 0 : t + 1, y = t === 11 ? e + 1 : e, f = [], v = () => {
|
|
1217
1337
|
if (!Array.isArray(r)) return [null, null];
|
|
1218
|
-
const [
|
|
1219
|
-
return !
|
|
1220
|
-
}, [w, g] = v(),
|
|
1338
|
+
const [u, b] = r;
|
|
1339
|
+
return !u && !b ? [null, null] : u && b ? u <= b ? [u, b] : [b, u] : [u, b];
|
|
1340
|
+
}, [w, g] = v(), m = (u) => {
|
|
1221
1341
|
if (!w || !g) return !1;
|
|
1222
|
-
const
|
|
1223
|
-
return
|
|
1224
|
-
}, I = (
|
|
1225
|
-
for (let
|
|
1226
|
-
const
|
|
1342
|
+
const b = new Date(e, t, u);
|
|
1343
|
+
return b >= w && b <= g;
|
|
1344
|
+
}, I = (u) => w ? w.getFullYear() === e && w.getMonth() === t && w.getDate() === u : !1, S = (u) => g ? g.getFullYear() === e && g.getMonth() === t && g.getDate() === u : !1;
|
|
1345
|
+
for (let u = 0; u < l; u++) {
|
|
1346
|
+
const b = d - l + u + 1;
|
|
1227
1347
|
f.push(
|
|
1228
1348
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1229
1349
|
ButtonIcon,
|
|
1230
1350
|
{
|
|
1231
|
-
as: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "sm", color: "tertiary", children:
|
|
1351
|
+
as: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "sm", color: "tertiary", children: b }),
|
|
1232
1352
|
size: "sm",
|
|
1233
1353
|
"aria-label": "Previous month day",
|
|
1234
1354
|
variant: "ghost",
|
|
1235
1355
|
onClick: () => {
|
|
1236
|
-
s?.([null, null]), n(
|
|
1356
|
+
s?.([null, null]), n(x), o(h);
|
|
1237
1357
|
}
|
|
1238
1358
|
},
|
|
1239
|
-
"prev-" +
|
|
1359
|
+
"prev-" + u
|
|
1240
1360
|
)
|
|
1241
1361
|
);
|
|
1242
1362
|
}
|
|
1243
|
-
for (let
|
|
1244
|
-
const
|
|
1363
|
+
for (let u = 1; u <= c; u++) {
|
|
1364
|
+
const b = m(u), E = I(u), C = S(u);
|
|
1245
1365
|
f.push(
|
|
1246
1366
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1247
1367
|
ButtonIcon,
|
|
@@ -1251,39 +1371,39 @@ const CalendarHeader = () => {
|
|
|
1251
1371
|
{
|
|
1252
1372
|
as: "span",
|
|
1253
1373
|
fontSize: "sm",
|
|
1254
|
-
color:
|
|
1374
|
+
color: b || E || C ? "inherit" : "ghost",
|
|
1255
1375
|
className: cn(
|
|
1256
|
-
|
|
1376
|
+
b && " bg-primary text-white",
|
|
1257
1377
|
E && "rounded-l-full bg-primary text-white",
|
|
1258
1378
|
C && "rounded-r-full bg-primary text-white"
|
|
1259
1379
|
),
|
|
1260
|
-
children:
|
|
1380
|
+
children: u
|
|
1261
1381
|
}
|
|
1262
1382
|
),
|
|
1263
|
-
variant: E || C ||
|
|
1383
|
+
variant: E || C || b ? "primary" : "ghost",
|
|
1264
1384
|
size: "sm",
|
|
1265
|
-
"aria-label": `Select ${e}-${t + 1}-${
|
|
1385
|
+
"aria-label": `Select ${e}-${t + 1}-${u}`,
|
|
1266
1386
|
"aria-current": E || C ? "date" : void 0,
|
|
1267
1387
|
onClick: () => {
|
|
1268
1388
|
if (!Array.isArray(r) || !r[0] || r[0] && r[1])
|
|
1269
|
-
s?.([new Date(e, t,
|
|
1389
|
+
s?.([new Date(e, t, u), null]);
|
|
1270
1390
|
else if (r[0] && !r[1]) {
|
|
1271
|
-
const j = r[0], R = new Date(e, t,
|
|
1391
|
+
const j = r[0], R = new Date(e, t, u);
|
|
1272
1392
|
j.getTime() === R.getTime() ? s?.([j, R]) : s?.(j < R ? [j, R] : [R, j]);
|
|
1273
1393
|
}
|
|
1274
1394
|
}
|
|
1275
1395
|
},
|
|
1276
|
-
|
|
1396
|
+
u
|
|
1277
1397
|
)
|
|
1278
1398
|
);
|
|
1279
1399
|
}
|
|
1280
|
-
const N =
|
|
1281
|
-
for (let
|
|
1400
|
+
const N = l + c;
|
|
1401
|
+
for (let u = 0; u < (N % 7 === 0 ? 0 : 7 - N % 7); u++)
|
|
1282
1402
|
f.push(
|
|
1283
1403
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1284
1404
|
ButtonIcon,
|
|
1285
1405
|
{
|
|
1286
|
-
as: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "sm", color: "tertiary", children:
|
|
1406
|
+
as: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "span", fontSize: "sm", color: "tertiary", children: u + 1 }),
|
|
1287
1407
|
size: "sm",
|
|
1288
1408
|
"aria-label": "Next month day",
|
|
1289
1409
|
variant: "ghost",
|
|
@@ -1291,7 +1411,7 @@ const CalendarHeader = () => {
|
|
|
1291
1411
|
s?.([null, null]), n(p), o(y);
|
|
1292
1412
|
}
|
|
1293
1413
|
},
|
|
1294
|
-
"next-" +
|
|
1414
|
+
"next-" + u
|
|
1295
1415
|
)
|
|
1296
1416
|
);
|
|
1297
1417
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-7 gap-2 px-4 pb-4", children: f });
|
|
@@ -1306,30 +1426,30 @@ function useCalendar({
|
|
|
1306
1426
|
initialYear: s,
|
|
1307
1427
|
initialMonth: n
|
|
1308
1428
|
}) {
|
|
1309
|
-
const [o, i] = useState(n), [a,
|
|
1429
|
+
const [o, i] = useState(n), [a, l] = useState(s), [c, x] = useState([
|
|
1310
1430
|
null,
|
|
1311
1431
|
null
|
|
1312
1432
|
]);
|
|
1313
|
-
let
|
|
1314
|
-
t === "range" && !e && (
|
|
1433
|
+
let h = e;
|
|
1434
|
+
t === "range" && !e && (h = c);
|
|
1315
1435
|
const d = useCallback(() => {
|
|
1316
1436
|
const f = o === 0 ? 11 : o - 1, v = o === 0 ? a - 1 : a;
|
|
1317
|
-
i(f),
|
|
1437
|
+
i(f), l(v), t === "single" && r?.(new Date(v, f, 1));
|
|
1318
1438
|
}, [o, a, t, r]), p = useCallback(() => {
|
|
1319
1439
|
const f = o === 11 ? 0 : o + 1, v = o === 11 ? a + 1 : a;
|
|
1320
|
-
i(f),
|
|
1440
|
+
i(f), l(v), t === "single" && r?.(new Date(v, f, 1));
|
|
1321
1441
|
}, [o, a, t, r]), y = useCallback(
|
|
1322
1442
|
(f) => {
|
|
1323
|
-
t === "single" ? r?.(f) : t === "range" && (
|
|
1443
|
+
t === "single" ? r?.(f) : t === "range" && (x(f), r?.(f));
|
|
1324
1444
|
},
|
|
1325
1445
|
[t, r]
|
|
1326
1446
|
);
|
|
1327
1447
|
return {
|
|
1328
1448
|
year: a,
|
|
1329
1449
|
month: o,
|
|
1330
|
-
value:
|
|
1450
|
+
value: h,
|
|
1331
1451
|
setMonth: i,
|
|
1332
|
-
setYear:
|
|
1452
|
+
setYear: l,
|
|
1333
1453
|
onChange: y,
|
|
1334
1454
|
handlePrevMonth: d,
|
|
1335
1455
|
handleNextMonth: p
|
|
@@ -1394,11 +1514,11 @@ const CalendarRoot = ({
|
|
|
1394
1514
|
), noResultsSubtitleVariants = cva(
|
|
1395
1515
|
"text-foreground-light mb-6 max-w-md"
|
|
1396
1516
|
), NoResults = React__default.forwardRef(
|
|
1397
|
-
function e({ icon: t, title: r, subtitle: s, action: n, className: o, hasGrayBackground: i, ...a },
|
|
1517
|
+
function e({ icon: t, title: r, subtitle: s, action: n, className: o, hasGrayBackground: i, ...a }, l) {
|
|
1398
1518
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1399
1519
|
"section",
|
|
1400
1520
|
{
|
|
1401
|
-
ref:
|
|
1521
|
+
ref: l,
|
|
1402
1522
|
className: cn(noResultsVariants({ hasGrayBackground: i }), o),
|
|
1403
1523
|
role: "status",
|
|
1404
1524
|
"aria-label": "No results found",
|
|
@@ -1549,8 +1669,8 @@ const getTableColumnClass = (e) => {
|
|
|
1549
1669
|
), TableColumn = forwardRef(
|
|
1550
1670
|
({ as: e = "td", span: t, align: r = "left", children: s, className: n, ...o }, i) => {
|
|
1551
1671
|
const a = e === "th" ? "columnheader" : "cell";
|
|
1552
|
-
let
|
|
1553
|
-
return r === "center" ?
|
|
1672
|
+
let l = "text-left";
|
|
1673
|
+
return r === "center" ? l = "text-center" : r === "right" && (l = "text-right"), /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1554
1674
|
"div",
|
|
1555
1675
|
{
|
|
1556
1676
|
ref: i,
|
|
@@ -1559,7 +1679,7 @@ const getTableColumnClass = (e) => {
|
|
|
1559
1679
|
"px-4 py-2",
|
|
1560
1680
|
"[&:not(:last-child)]:border-r [&:not(:last-child)]:border-border",
|
|
1561
1681
|
getRowSpanClass(t),
|
|
1562
|
-
|
|
1682
|
+
l,
|
|
1563
1683
|
"truncate overflow-hidden whitespace-nowrap",
|
|
1564
1684
|
n
|
|
1565
1685
|
),
|
|
@@ -1726,10 +1846,10 @@ function useImage({ src: e }) {
|
|
|
1726
1846
|
};
|
|
1727
1847
|
return useEffect(() => {
|
|
1728
1848
|
if (!e) return;
|
|
1729
|
-
const
|
|
1730
|
-
return
|
|
1849
|
+
const l = new Image();
|
|
1850
|
+
return l.src = e, l.onload = () => {
|
|
1731
1851
|
o.current || r(!0);
|
|
1732
|
-
},
|
|
1852
|
+
}, l.onerror = () => {
|
|
1733
1853
|
o.current || n(!0);
|
|
1734
1854
|
}, () => {
|
|
1735
1855
|
o.current = !0;
|
|
@@ -1849,10 +1969,10 @@ const BaseImage = forwardRef(
|
|
|
1849
1969
|
height: o,
|
|
1850
1970
|
loading: i = "lazy",
|
|
1851
1971
|
position: a = "cover",
|
|
1852
|
-
size:
|
|
1853
|
-
shape:
|
|
1854
|
-
className:
|
|
1855
|
-
...
|
|
1972
|
+
size: l = "auto",
|
|
1973
|
+
shape: c,
|
|
1974
|
+
className: x,
|
|
1975
|
+
...h
|
|
1856
1976
|
}, d) => {
|
|
1857
1977
|
const { loaded: p, errored: y, handleLoad: f, handleError: v } = useImage({
|
|
1858
1978
|
src: e
|
|
@@ -1860,14 +1980,14 @@ const BaseImage = forwardRef(
|
|
|
1860
1980
|
return !p && !y ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1861
1981
|
BaseImageSkeleton,
|
|
1862
1982
|
{
|
|
1863
|
-
shape:
|
|
1983
|
+
shape: c,
|
|
1864
1984
|
width: w,
|
|
1865
1985
|
height: g
|
|
1866
1986
|
}
|
|
1867
1987
|
) : y ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1868
1988
|
BaseImageFallback,
|
|
1869
1989
|
{
|
|
1870
|
-
shape:
|
|
1990
|
+
shape: c,
|
|
1871
1991
|
alt: t,
|
|
1872
1992
|
width: w,
|
|
1873
1993
|
height: g
|
|
@@ -1884,18 +2004,18 @@ const BaseImage = forwardRef(
|
|
|
1884
2004
|
className: cn(
|
|
1885
2005
|
imageVariants({
|
|
1886
2006
|
position: a,
|
|
1887
|
-
size:
|
|
1888
|
-
shape:
|
|
2007
|
+
size: l,
|
|
2008
|
+
shape: c
|
|
1889
2009
|
}),
|
|
1890
|
-
|
|
2010
|
+
x
|
|
1891
2011
|
),
|
|
1892
|
-
onLoad: (
|
|
1893
|
-
f(), r?.(
|
|
2012
|
+
onLoad: (m) => {
|
|
2013
|
+
f(), r?.(m);
|
|
1894
2014
|
},
|
|
1895
|
-
onError: (
|
|
1896
|
-
v(), s?.(
|
|
2015
|
+
onError: (m) => {
|
|
2016
|
+
v(), s?.(m);
|
|
1897
2017
|
},
|
|
1898
|
-
...
|
|
2018
|
+
...h
|
|
1899
2019
|
}
|
|
1900
2020
|
);
|
|
1901
2021
|
}
|
|
@@ -1915,9 +2035,10 @@ export {
|
|
|
1915
2035
|
ButtonFloat as e,
|
|
1916
2036
|
ButtonIcon as f,
|
|
1917
2037
|
Calendar as g,
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
2038
|
+
Text as h,
|
|
2039
|
+
Tile as i,
|
|
2040
|
+
ImageCircle as j,
|
|
2041
|
+
ImageSquare as k,
|
|
2042
|
+
ImageRectangle as l,
|
|
2043
|
+
BaseImage as m
|
|
1923
2044
|
};
|