@payglocal_ui/flux-ui 0.2.4 → 0.2.5
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.cjs +182 -96
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +57 -3
- package/dist/index.d.ts +57 -3
- package/dist/index.js +193 -107
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/data-table.tsx +181 -29
- package/src/dropdown-menu.tsx +4 -1
- package/src/index.ts +2 -1
- package/src/select.tsx +20 -3
package/dist/index.js
CHANGED
|
@@ -2896,7 +2896,10 @@ var DropdownMenuItem = React27.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2896
2896
|
{
|
|
2897
2897
|
ref,
|
|
2898
2898
|
className: cn(
|
|
2899
|
-
|
|
2899
|
+
// 13px / tighter padding: a menu drops out of a toolbar button or a
|
|
2900
|
+
// compact table control, and at 15px with 10px vertical padding it read
|
|
2901
|
+
// as a larger, separate UI than the control that opened it.
|
|
2902
|
+
"relative flex cursor-default select-none items-center gap-2 rounded-lg px-2.5 py-1.5 text-[13px] outline-none transition-colors",
|
|
2900
2903
|
"focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2901
2904
|
inset && "pl-8",
|
|
2902
2905
|
className
|
|
@@ -2963,12 +2966,17 @@ import { jsx as jsx38, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
|
2963
2966
|
var Select = SelectPrimitive.Root;
|
|
2964
2967
|
var SelectGroup = SelectPrimitive.Group;
|
|
2965
2968
|
var SelectValue = SelectPrimitive.Value;
|
|
2966
|
-
var
|
|
2969
|
+
var selectTriggerSizes = {
|
|
2970
|
+
md: "h-11 min-h-11 gap-2.5 px-4 py-2 text-[15px]",
|
|
2971
|
+
sm: "h-7 min-h-7 w-auto gap-1 px-2 py-0 text-[12px]"
|
|
2972
|
+
};
|
|
2973
|
+
var SelectTrigger = React28.forwardRef(({ className, children, size = "md", ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
2967
2974
|
SelectPrimitive.Trigger,
|
|
2968
2975
|
{
|
|
2969
2976
|
ref,
|
|
2970
2977
|
className: cn(
|
|
2971
|
-
"flex
|
|
2978
|
+
"flex w-full items-center justify-between rounded-lg border border-border bg-card text-foreground shadow-sm outline-none",
|
|
2979
|
+
selectTriggerSizes[size],
|
|
2972
2980
|
"ring-ring/50 focus-visible:ring-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
2973
2981
|
"[&>span]:line-clamp-1",
|
|
2974
2982
|
className
|
|
@@ -3579,7 +3587,7 @@ function EmptyState({
|
|
|
3579
3587
|
}
|
|
3580
3588
|
|
|
3581
3589
|
// src/data-table.tsx
|
|
3582
|
-
import { ChevronLeft as ChevronLeft3, ChevronRight as ChevronRight5 } from "lucide-react";
|
|
3590
|
+
import { ChevronDown as ChevronDown6, ChevronLeft as ChevronLeft3, ChevronRight as ChevronRight5 } from "lucide-react";
|
|
3583
3591
|
import { useState as useState6 } from "react";
|
|
3584
3592
|
import { jsx as jsx49, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3585
3593
|
function getPageRange(current, total) {
|
|
@@ -3615,7 +3623,9 @@ function DataTable({
|
|
|
3615
3623
|
headerStyle = "surface",
|
|
3616
3624
|
footerSummary = "range",
|
|
3617
3625
|
footerCountLabels = { singular: "item", plural: "items" },
|
|
3618
|
-
snug = false
|
|
3626
|
+
snug = false,
|
|
3627
|
+
expandable,
|
|
3628
|
+
footerLeading
|
|
3619
3629
|
}) {
|
|
3620
3630
|
const isControlled = controlledPage !== void 0;
|
|
3621
3631
|
const [internalPage, setInternalPage] = useState6(1);
|
|
@@ -3623,6 +3633,19 @@ function DataTable({
|
|
|
3623
3633
|
const setPage = isControlled ? (p) => onPageChange?.(p) : (p) => setInternalPage(p);
|
|
3624
3634
|
const hasAction = rowAction != null || rowCta != null;
|
|
3625
3635
|
const hasSpacer = tableLayout === "content";
|
|
3636
|
+
const [internalExpanded, setInternalExpanded] = useState6([]);
|
|
3637
|
+
const isExpandControlled = expandable?.expandedKeys !== void 0;
|
|
3638
|
+
const expandedKeys = isExpandControlled ? expandable.expandedKeys : internalExpanded;
|
|
3639
|
+
const hasExpand = expandable != null;
|
|
3640
|
+
const totalColSpan = columns.length + (hasExpand ? 1 : 0) + (hasSpacer ? 1 : 0) + (hasAction ? 1 : 0);
|
|
3641
|
+
const rowExpanded = (row, index) => hasExpand && (expandable.isExpandable?.(row, index) ?? true) && expandedKeys.includes(rowKeys[index]);
|
|
3642
|
+
const toggleExpanded = (key, row, index) => {
|
|
3643
|
+
const isOpen = expandedKeys.includes(key);
|
|
3644
|
+
const next = isOpen ? expandedKeys.filter((k) => k !== key) : [...expandedKeys, key];
|
|
3645
|
+
if (isExpandControlled) expandable.onExpandedChange?.(next);
|
|
3646
|
+
else setInternalExpanded(next);
|
|
3647
|
+
if (!isOpen) expandable.onExpand?.(row, index);
|
|
3648
|
+
};
|
|
3626
3649
|
const total = totalRows ?? data.length;
|
|
3627
3650
|
const totalPages = Math.ceil(total / pageSize);
|
|
3628
3651
|
const paginated = isControlled ? data : data.slice((page - 1) * pageSize, page * pageSize);
|
|
@@ -3640,6 +3663,9 @@ function DataTable({
|
|
|
3640
3663
|
const headPad = comfortable ? "px-5 py-4" : compactCellPad;
|
|
3641
3664
|
const footerPad = comfortable ? "px-5 py-4" : compact ? "px-4 py-2.5" : "px-4 py-3.5";
|
|
3642
3665
|
const headText = comfortable ? "text-[12px] font-medium text-muted-foreground tracking-normal" : compact ? "text-[11px] font-semibold text-muted-foreground" : "text-[11px] font-semibold text-foreground/75 dark:text-foreground/85";
|
|
3666
|
+
const cellPadLeft = comfortable ? 20 : compact ? snug ? 6 : 12 : 16;
|
|
3667
|
+
const expandIndent = 40 + cellPadLeft;
|
|
3668
|
+
const expandGuideLeft = cellPadLeft + 10;
|
|
3643
3669
|
const actionGutter = comfortable ? 20 : compact ? 12 : 16;
|
|
3644
3670
|
const ROW_CLICK_IGNORE = 'button, a, input, select, textarea, label, [role="button"], [role="link"], [role="checkbox"], [role="menuitem"], [role="menu"], [role="dialog"], [data-row-click-ignore]';
|
|
3645
3671
|
const isRowClickTarget = (target, rowEl) => {
|
|
@@ -3678,6 +3704,7 @@ function DataTable({
|
|
|
3678
3704
|
},
|
|
3679
3705
|
children: [
|
|
3680
3706
|
tableLayout === "fixed" && /* @__PURE__ */ jsxs30("colgroup", { children: [
|
|
3707
|
+
hasExpand ? /* @__PURE__ */ jsx49("col", { style: { width: 40 } }) : null,
|
|
3681
3708
|
columns.map((col) => /* @__PURE__ */ jsx49(
|
|
3682
3709
|
"col",
|
|
3683
3710
|
{
|
|
@@ -3707,6 +3734,7 @@ function DataTable({
|
|
|
3707
3734
|
headerStyle === "surface" ? "border-border" : "border-border/70"
|
|
3708
3735
|
),
|
|
3709
3736
|
children: [
|
|
3737
|
+
hasExpand ? /* @__PURE__ */ jsx49("th", { className: cn(headPad, "w-10 p-0"), "aria-hidden": true }) : null,
|
|
3710
3738
|
columns.map((col) => /* @__PURE__ */ jsx49(
|
|
3711
3739
|
"th",
|
|
3712
3740
|
{
|
|
@@ -3731,89 +3759,144 @@ function DataTable({
|
|
|
3731
3759
|
/* @__PURE__ */ jsx49("tbody", { children: isLoading ? Array.from({ length: skeletonRows }).map((_, i) => /* @__PURE__ */ jsx49(
|
|
3732
3760
|
TableRowSkeleton,
|
|
3733
3761
|
{
|
|
3734
|
-
cols: columns.length,
|
|
3762
|
+
cols: columns.length + (hasExpand ? 1 : 0),
|
|
3735
3763
|
density,
|
|
3736
3764
|
snug
|
|
3737
3765
|
},
|
|
3738
3766
|
i
|
|
3739
|
-
)) : paginated.length === 0 ? /* @__PURE__ */ jsx49("tr", { children: /* @__PURE__ */ jsx49("td", { colSpan:
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
e
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
"
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
) : compact ? cn(
|
|
3775
|
-
"text-[13px] leading-tight",
|
|
3776
|
-
!col.wrap && "whitespace-nowrap",
|
|
3777
|
-
"overflow-hidden"
|
|
3778
|
-
) : "whitespace-nowrap overflow-hidden",
|
|
3779
|
-
col.align === "right" ? "text-right" : col.align === "center" ? "text-center" : "text-left",
|
|
3780
|
-
col.cellClassName
|
|
3781
|
-
),
|
|
3782
|
-
children: col.render(row, i)
|
|
3783
|
-
},
|
|
3784
|
-
col.key
|
|
3785
|
-
)),
|
|
3786
|
-
hasSpacer ? /* @__PURE__ */ jsx49("td", { className: "p-0", "aria-hidden": true }) : null,
|
|
3787
|
-
hasAction ? (
|
|
3788
|
-
// Zero-width sticky cell pinned to the right edge of the
|
|
3789
|
-
// viewport. Its children are positioned absolutely so they
|
|
3790
|
-
// float over the row (out of the 0-width cell) — the action
|
|
3791
|
-
// stays in view while scrolling and nothing trails the last
|
|
3792
|
-
// data column. Everything is revealed on hover only.
|
|
3793
|
-
/* @__PURE__ */ jsx49("td", { className: "sticky right-0 z-[1] w-0 p-0 align-middle", children: /* @__PURE__ */ jsx49(
|
|
3794
|
-
"span",
|
|
3767
|
+
)) : paginated.length === 0 ? /* @__PURE__ */ jsx49("tr", { children: /* @__PURE__ */ jsx49("td", { colSpan: totalColSpan, children: /* @__PURE__ */ jsx49(EmptyState, { title: emptyTitle, description: emptyDescription }) }) }) : paginated.flatMap((row, i) => [
|
|
3768
|
+
/* @__PURE__ */ jsxs30(
|
|
3769
|
+
"tr",
|
|
3770
|
+
{
|
|
3771
|
+
className: cn(
|
|
3772
|
+
"group transition-colors duration-150 border-b border-border/60 last:border-b-0",
|
|
3773
|
+
comfortable && "min-h-[56px]",
|
|
3774
|
+
compact && "min-h-[44px]",
|
|
3775
|
+
"hover:bg-muted/40 dark:hover:bg-muted/25",
|
|
3776
|
+
hasAction && "hover:shadow-[0_1px_0_rgba(0,0,0,0.04)] dark:hover:shadow-none",
|
|
3777
|
+
// Clickable rows read as clickable, and show a focus ring
|
|
3778
|
+
// when reached by keyboard. `focus-visible` only, so a
|
|
3779
|
+
// mouse click does not leave a ring behind on the row.
|
|
3780
|
+
onRowClick && "cursor-pointer focus-visible:outline-none focus-visible:bg-muted/40 dark:focus-visible:bg-muted/25",
|
|
3781
|
+
// An open row takes its panel's background and drops the
|
|
3782
|
+
// divider beneath it, so the row and its detail read as one
|
|
3783
|
+
// block. Hover is pinned to the same value, or moving the
|
|
3784
|
+
// mouse over an open row would make it flicker away from
|
|
3785
|
+
// the panel it belongs to.
|
|
3786
|
+
rowExpanded(row, i) && "border-b-0 bg-muted/40 hover:bg-muted/40 dark:bg-muted/25 dark:hover:bg-muted/25"
|
|
3787
|
+
),
|
|
3788
|
+
tabIndex: onRowClick ? 0 : void 0,
|
|
3789
|
+
onClick: onRowClick ? (e) => {
|
|
3790
|
+
if (!isRowClickTarget(e.target, e.currentTarget)) return;
|
|
3791
|
+
onRowClick(row, i);
|
|
3792
|
+
} : void 0,
|
|
3793
|
+
onKeyDown: onRowClick ? (e) => {
|
|
3794
|
+
if (e.key !== "Enter" && e.key !== " ") return;
|
|
3795
|
+
if (e.target !== e.currentTarget) return;
|
|
3796
|
+
e.preventDefault();
|
|
3797
|
+
onRowClick(row, i);
|
|
3798
|
+
} : void 0,
|
|
3799
|
+
children: [
|
|
3800
|
+
hasExpand ? /* @__PURE__ */ jsx49("td", { className: cn(cellPad, "w-10 align-middle"), children: expandable.isExpandable?.(row, i) ?? true ? /* @__PURE__ */ jsx49(
|
|
3801
|
+
"button",
|
|
3795
3802
|
{
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3803
|
+
type: "button",
|
|
3804
|
+
"aria-expanded": rowExpanded(row, i),
|
|
3805
|
+
"aria-label": expandable.toggleLabel ?? "Toggle row details",
|
|
3806
|
+
onClick: () => toggleExpanded(rowKeys[i], row, i),
|
|
3807
|
+
className: "inline-flex h-5 w-5 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
3808
|
+
children: /* @__PURE__ */ jsx49(
|
|
3809
|
+
ChevronDown6,
|
|
3800
3810
|
{
|
|
3801
|
-
type: "button",
|
|
3802
|
-
onClick: () => rowCta?.onClick?.(row),
|
|
3803
3811
|
className: cn(
|
|
3804
|
-
"
|
|
3805
|
-
|
|
3806
|
-
)
|
|
3807
|
-
children: rowCta?.label
|
|
3812
|
+
"h-3.5 w-3.5 transition-transform duration-150",
|
|
3813
|
+
rowExpanded(row, i) && "rotate-180"
|
|
3814
|
+
)
|
|
3808
3815
|
}
|
|
3809
3816
|
)
|
|
3810
3817
|
}
|
|
3811
|
-
) })
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3818
|
+
) : null }) : null,
|
|
3819
|
+
columns.map((col) => /* @__PURE__ */ jsx49(
|
|
3820
|
+
"td",
|
|
3821
|
+
{
|
|
3822
|
+
className: cn(
|
|
3823
|
+
cellPad,
|
|
3824
|
+
"align-middle",
|
|
3825
|
+
comfortable ? cn(
|
|
3826
|
+
"text-[13px] leading-snug",
|
|
3827
|
+
!col.wrap && "whitespace-nowrap"
|
|
3828
|
+
) : compact ? cn(
|
|
3829
|
+
"text-[13px] leading-tight",
|
|
3830
|
+
!col.wrap && "whitespace-nowrap",
|
|
3831
|
+
"overflow-hidden"
|
|
3832
|
+
) : "whitespace-nowrap overflow-hidden",
|
|
3833
|
+
col.align === "right" ? "text-right" : col.align === "center" ? "text-center" : "text-left",
|
|
3834
|
+
col.cellClassName
|
|
3835
|
+
),
|
|
3836
|
+
children: col.render(row, i)
|
|
3837
|
+
},
|
|
3838
|
+
col.key
|
|
3839
|
+
)),
|
|
3840
|
+
hasSpacer ? /* @__PURE__ */ jsx49("td", { className: "p-0", "aria-hidden": true }) : null,
|
|
3841
|
+
hasAction ? (
|
|
3842
|
+
// Zero-width sticky cell pinned to the right edge of the
|
|
3843
|
+
// viewport. Its children are positioned absolutely so they
|
|
3844
|
+
// float over the row (out of the 0-width cell) — the action
|
|
3845
|
+
// stays in view while scrolling and nothing trails the last
|
|
3846
|
+
// data column. Everything is revealed on hover only.
|
|
3847
|
+
/* @__PURE__ */ jsx49("td", { className: "sticky right-0 z-[1] w-0 p-0 align-middle", children: /* @__PURE__ */ jsx49(
|
|
3848
|
+
"span",
|
|
3849
|
+
{
|
|
3850
|
+
className: "absolute top-1/2 -translate-y-1/2 z-[1] inline-flex items-center opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-focus-within:opacity-100",
|
|
3851
|
+
style: { right: actionGutter },
|
|
3852
|
+
children: rowAction != null ? typeof rowAction === "function" ? rowAction(row, i) : rowAction : /* @__PURE__ */ jsx49(
|
|
3853
|
+
"button",
|
|
3854
|
+
{
|
|
3855
|
+
type: "button",
|
|
3856
|
+
onClick: () => rowCta?.onClick?.(row),
|
|
3857
|
+
className: cn(
|
|
3858
|
+
"inline-flex items-center font-medium text-foreground bg-card rounded-lg border border-border hover:border-muted-foreground/50 whitespace-nowrap shadow-sm",
|
|
3859
|
+
compact ? "px-2.5 py-1 text-[11px]" : "px-3 py-1.5 text-[12px]"
|
|
3860
|
+
),
|
|
3861
|
+
children: rowCta?.label
|
|
3862
|
+
}
|
|
3863
|
+
)
|
|
3864
|
+
}
|
|
3865
|
+
) })
|
|
3866
|
+
) : null
|
|
3867
|
+
]
|
|
3868
|
+
},
|
|
3869
|
+
rowKeys[i]
|
|
3870
|
+
),
|
|
3871
|
+
// The panel spans every column, including the toggle, spacer and
|
|
3872
|
+
// action cells, so it reads as one band under its row rather
|
|
3873
|
+
// than as a cell inside the grid.
|
|
3874
|
+
rowExpanded(row, i) ? /* @__PURE__ */ jsx49(
|
|
3875
|
+
"tr",
|
|
3876
|
+
{
|
|
3877
|
+
className: "border-b border-border/60 bg-muted/40 last:border-b-0 dark:bg-muted/25",
|
|
3878
|
+
children: /* @__PURE__ */ jsx49("td", { colSpan: totalColSpan, className: "p-0 align-top", children: /* @__PURE__ */ jsxs30(
|
|
3879
|
+
"div",
|
|
3880
|
+
{
|
|
3881
|
+
className: "relative",
|
|
3882
|
+
style: { paddingLeft: expandIndent, paddingRight: cellPadLeft },
|
|
3883
|
+
children: [
|
|
3884
|
+
/* @__PURE__ */ jsx49(
|
|
3885
|
+
"span",
|
|
3886
|
+
{
|
|
3887
|
+
"aria-hidden": true,
|
|
3888
|
+
className: "absolute top-0 bottom-4 w-px bg-border",
|
|
3889
|
+
style: { left: expandGuideLeft }
|
|
3890
|
+
}
|
|
3891
|
+
),
|
|
3892
|
+
expandable.render(row, i)
|
|
3893
|
+
]
|
|
3894
|
+
}
|
|
3895
|
+
) })
|
|
3896
|
+
},
|
|
3897
|
+
`${rowKeys[i]}__panel`
|
|
3898
|
+
) : null
|
|
3899
|
+
]) })
|
|
3817
3900
|
]
|
|
3818
3901
|
}
|
|
3819
3902
|
)
|
|
@@ -3825,27 +3908,30 @@ function DataTable({
|
|
|
3825
3908
|
className: cn(
|
|
3826
3909
|
"flex items-center gap-4 flex-wrap border-t border-border",
|
|
3827
3910
|
footerPad,
|
|
3828
|
-
footerSummary === "count" && totalPages <= 1 ? "justify-start" : "justify-between"
|
|
3911
|
+
footerSummary === "count" && totalPages <= 1 && !footerLeading ? "justify-start" : "justify-between"
|
|
3829
3912
|
),
|
|
3830
3913
|
children: [
|
|
3831
|
-
|
|
3832
|
-
|
|
3833
|
-
" ",
|
|
3834
|
-
|
|
3835
|
-
|
|
3836
|
-
|
|
3837
|
-
" ",
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
"
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3914
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-3", children: [
|
|
3915
|
+
footerLeading,
|
|
3916
|
+
footerSummary === "count" ? /* @__PURE__ */ jsxs30("span", { className: "text-[12px] text-muted-foreground tabular-nums", children: [
|
|
3917
|
+
/* @__PURE__ */ jsx49("span", { className: "font-medium text-foreground", children: total }),
|
|
3918
|
+
" ",
|
|
3919
|
+
total === 1 ? footerCountLabels.singular : footerCountLabels.plural
|
|
3920
|
+
] }) : /* @__PURE__ */ jsxs30("span", { className: "text-[12px] text-muted-foreground tabular-nums", children: [
|
|
3921
|
+
"Showing",
|
|
3922
|
+
" ",
|
|
3923
|
+
/* @__PURE__ */ jsxs30("span", { className: "text-foreground font-medium", children: [
|
|
3924
|
+
Math.min((page - 1) * pageSize + 1, total),
|
|
3925
|
+
"\u2013",
|
|
3926
|
+
Math.min(page * pageSize, total)
|
|
3927
|
+
] }),
|
|
3928
|
+
" ",
|
|
3929
|
+
"of",
|
|
3930
|
+
" ",
|
|
3931
|
+
/* @__PURE__ */ jsx49("span", { className: "text-foreground font-medium", children: total.toLocaleString() }),
|
|
3932
|
+
" ",
|
|
3933
|
+
total !== 1 ? "results" : "result"
|
|
3934
|
+
] })
|
|
3849
3935
|
] }),
|
|
3850
3936
|
(footerSummary === "range" || footerSummary === "count") && totalPages > 1 && /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-1", children: [
|
|
3851
3937
|
/* @__PURE__ */ jsx49(
|
|
@@ -4221,7 +4307,7 @@ AvatarTag.displayName = "AvatarTag";
|
|
|
4221
4307
|
|
|
4222
4308
|
// src/calendar.tsx
|
|
4223
4309
|
import * as React40 from "react";
|
|
4224
|
-
import { ChevronDown as
|
|
4310
|
+
import { ChevronDown as ChevronDown7, ChevronLeft as ChevronLeft4, ChevronRight as ChevronRight6 } from "lucide-react";
|
|
4225
4311
|
import {
|
|
4226
4312
|
DayPicker,
|
|
4227
4313
|
getDefaultClassNames
|
|
@@ -4371,7 +4457,7 @@ function Calendar({
|
|
|
4371
4457
|
if (orientation === "right") {
|
|
4372
4458
|
return /* @__PURE__ */ jsx55(ChevronRight6, { className: cn("size-4", chClass), ...chProps });
|
|
4373
4459
|
}
|
|
4374
|
-
return /* @__PURE__ */ jsx55(
|
|
4460
|
+
return /* @__PURE__ */ jsx55(ChevronDown7, { className: cn("size-4", chClass), ...chProps });
|
|
4375
4461
|
},
|
|
4376
4462
|
DayButton: CalendarDayButton,
|
|
4377
4463
|
WeekNumber: ({ children, ...weekProps }) => /* @__PURE__ */ jsx55("th", { ...weekProps, children: /* @__PURE__ */ jsx55("div", { className: "flex h-[var(--cell-size)] w-[var(--cell-size)] min-h-[var(--cell-size)] min-w-[var(--cell-size)] items-center justify-center text-center text-xs tabular-nums", children }) }),
|
|
@@ -4418,7 +4504,7 @@ function CalendarDayButton({
|
|
|
4418
4504
|
// src/date-picker.tsx
|
|
4419
4505
|
import { useState as useState8, useRef as useRef4, useEffect as useEffect3 } from "react";
|
|
4420
4506
|
import { createPortal } from "react-dom";
|
|
4421
|
-
import { ChevronLeft as ChevronLeft5, ChevronRight as ChevronRight7, ChevronDown as
|
|
4507
|
+
import { ChevronLeft as ChevronLeft5, ChevronRight as ChevronRight7, ChevronDown as ChevronDown8, CalendarDays } from "lucide-react";
|
|
4422
4508
|
import { AnimatePresence, motion } from "framer-motion";
|
|
4423
4509
|
import { jsx as jsx56, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4424
4510
|
var MONTHS = [
|
|
@@ -4597,7 +4683,7 @@ function DatePicker({ value, onChange, placeholder = "Select date", className, m
|
|
|
4597
4683
|
className: "flex items-center gap-1 px-2 py-1 rounded-lg text-[14px] font-semibold text-gray-900 hover:bg-gray-100 transition-colors",
|
|
4598
4684
|
children: [
|
|
4599
4685
|
MONTHS[viewMonth].slice(0, 3),
|
|
4600
|
-
/* @__PURE__ */ jsx56(
|
|
4686
|
+
/* @__PURE__ */ jsx56(ChevronDown8, { className: "w-3 h-3 text-gray-400" })
|
|
4601
4687
|
]
|
|
4602
4688
|
}
|
|
4603
4689
|
),
|
|
@@ -4636,7 +4722,7 @@ function DatePicker({ value, onChange, placeholder = "Select date", className, m
|
|
|
4636
4722
|
className: "flex items-center gap-1 px-2 py-1 rounded-lg text-[14px] font-semibold text-gray-900 hover:bg-gray-100 transition-colors",
|
|
4637
4723
|
children: [
|
|
4638
4724
|
viewYear,
|
|
4639
|
-
/* @__PURE__ */ jsx56(
|
|
4725
|
+
/* @__PURE__ */ jsx56(ChevronDown8, { className: "w-3 h-3 text-gray-400" })
|
|
4640
4726
|
]
|
|
4641
4727
|
}
|
|
4642
4728
|
),
|
|
@@ -4730,7 +4816,7 @@ function DatePicker({ value, onChange, placeholder = "Select date", className, m
|
|
|
4730
4816
|
children: [
|
|
4731
4817
|
/* @__PURE__ */ jsx56(CalendarDays, { className: "size-[1.125rem] shrink-0 text-muted-foreground" }),
|
|
4732
4818
|
/* @__PURE__ */ jsx56("span", { className: cn("flex-1", value ? "text-foreground" : "text-muted-foreground"), children: value ? displayDate(value) : placeholder }),
|
|
4733
|
-
/* @__PURE__ */ jsx56(
|
|
4819
|
+
/* @__PURE__ */ jsx56(ChevronDown8, { className: cn("size-[1.125rem] shrink-0 text-muted-foreground transition-transform", open && "rotate-180") })
|
|
4734
4820
|
]
|
|
4735
4821
|
}
|
|
4736
4822
|
),
|
|
@@ -6037,7 +6123,7 @@ function useBreakpoint() {
|
|
|
6037
6123
|
// src/country-select.tsx
|
|
6038
6124
|
import * as React47 from "react";
|
|
6039
6125
|
import * as PopoverPrimitive4 from "@radix-ui/react-popover";
|
|
6040
|
-
import { Check as Check10, ChevronDown as
|
|
6126
|
+
import { Check as Check10, ChevronDown as ChevronDown9, Search as Search3 } from "lucide-react";
|
|
6041
6127
|
import { Fragment as Fragment9, jsx as jsx64, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
6042
6128
|
var COUNTRIES = [
|
|
6043
6129
|
{ code: "US", name: "United States", flag: "\u{1F1FA}\u{1F1F8}", dialCode: "+1" },
|
|
@@ -6126,7 +6212,7 @@ var CountrySelect = React47.forwardRef(
|
|
|
6126
6212
|
showDialCode && /* @__PURE__ */ jsx64("span", { className: "shrink-0 text-muted-foreground", children: selected.dialCode })
|
|
6127
6213
|
] }) : /* @__PURE__ */ jsx64("span", { children: placeholder }) }),
|
|
6128
6214
|
/* @__PURE__ */ jsx64(
|
|
6129
|
-
|
|
6215
|
+
ChevronDown9,
|
|
6130
6216
|
{
|
|
6131
6217
|
className: cn(
|
|
6132
6218
|
"h-4 w-4 shrink-0 text-muted-foreground opacity-70 transition-transform duration-pg-fast ease-pg-standard",
|
|
@@ -6299,7 +6385,7 @@ IconButton.displayName = "IconButton";
|
|
|
6299
6385
|
// src/time-picker.tsx
|
|
6300
6386
|
import * as React48 from "react";
|
|
6301
6387
|
import { createPortal as createPortal2 } from "react-dom";
|
|
6302
|
-
import { Clock as Clock2, ChevronDown as
|
|
6388
|
+
import { Clock as Clock2, ChevronDown as ChevronDown10, X as X11 } from "lucide-react";
|
|
6303
6389
|
import { Fragment as Fragment10, jsx as jsx66, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
6304
6390
|
function pad(n) {
|
|
6305
6391
|
return String(n).padStart(2, "0");
|
|
@@ -6635,7 +6721,7 @@ var TimePicker = React48.forwardRef(
|
|
|
6635
6721
|
onClick: handleClear
|
|
6636
6722
|
}
|
|
6637
6723
|
) : /* @__PURE__ */ jsx66(
|
|
6638
|
-
|
|
6724
|
+
ChevronDown10,
|
|
6639
6725
|
{
|
|
6640
6726
|
className: cn(
|
|
6641
6727
|
"size-[1.0625rem] shrink-0 text-muted-foreground transition-transform duration-150",
|