@payglocal_ui/flux-ui 0.2.3 → 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 +189 -81
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +73 -3
- package/dist/index.d.ts +73 -3
- package/dist/index.js +200 -92
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/data-table.tsx +253 -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) {
|
|
@@ -3608,13 +3616,16 @@ function DataTable({
|
|
|
3608
3616
|
rowKey,
|
|
3609
3617
|
rowCta,
|
|
3610
3618
|
rowAction,
|
|
3619
|
+
onRowClick,
|
|
3611
3620
|
density = "default",
|
|
3612
3621
|
tableLayout = "fixed",
|
|
3613
3622
|
theadClassName,
|
|
3614
3623
|
headerStyle = "surface",
|
|
3615
3624
|
footerSummary = "range",
|
|
3616
3625
|
footerCountLabels = { singular: "item", plural: "items" },
|
|
3617
|
-
snug = false
|
|
3626
|
+
snug = false,
|
|
3627
|
+
expandable,
|
|
3628
|
+
footerLeading
|
|
3618
3629
|
}) {
|
|
3619
3630
|
const isControlled = controlledPage !== void 0;
|
|
3620
3631
|
const [internalPage, setInternalPage] = useState6(1);
|
|
@@ -3622,6 +3633,19 @@ function DataTable({
|
|
|
3622
3633
|
const setPage = isControlled ? (p) => onPageChange?.(p) : (p) => setInternalPage(p);
|
|
3623
3634
|
const hasAction = rowAction != null || rowCta != null;
|
|
3624
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
|
+
};
|
|
3625
3649
|
const total = totalRows ?? data.length;
|
|
3626
3650
|
const totalPages = Math.ceil(total / pageSize);
|
|
3627
3651
|
const paginated = isControlled ? data : data.slice((page - 1) * pageSize, page * pageSize);
|
|
@@ -3639,7 +3663,16 @@ function DataTable({
|
|
|
3639
3663
|
const headPad = comfortable ? "px-5 py-4" : compactCellPad;
|
|
3640
3664
|
const footerPad = comfortable ? "px-5 py-4" : compact ? "px-4 py-2.5" : "px-4 py-3.5";
|
|
3641
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;
|
|
3642
3669
|
const actionGutter = comfortable ? 20 : compact ? 12 : 16;
|
|
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]';
|
|
3671
|
+
const isRowClickTarget = (target, rowEl) => {
|
|
3672
|
+
if (!(target instanceof Element)) return false;
|
|
3673
|
+
const interactive = target.closest(ROW_CLICK_IGNORE);
|
|
3674
|
+
return !(interactive && rowEl.contains(interactive));
|
|
3675
|
+
};
|
|
3643
3676
|
return /* @__PURE__ */ jsxs30(
|
|
3644
3677
|
"div",
|
|
3645
3678
|
{
|
|
@@ -3671,6 +3704,7 @@ function DataTable({
|
|
|
3671
3704
|
},
|
|
3672
3705
|
children: [
|
|
3673
3706
|
tableLayout === "fixed" && /* @__PURE__ */ jsxs30("colgroup", { children: [
|
|
3707
|
+
hasExpand ? /* @__PURE__ */ jsx49("col", { style: { width: 40 } }) : null,
|
|
3674
3708
|
columns.map((col) => /* @__PURE__ */ jsx49(
|
|
3675
3709
|
"col",
|
|
3676
3710
|
{
|
|
@@ -3700,6 +3734,7 @@ function DataTable({
|
|
|
3700
3734
|
headerStyle === "surface" ? "border-border" : "border-border/70"
|
|
3701
3735
|
),
|
|
3702
3736
|
children: [
|
|
3737
|
+
hasExpand ? /* @__PURE__ */ jsx49("th", { className: cn(headPad, "w-10 p-0"), "aria-hidden": true }) : null,
|
|
3703
3738
|
columns.map((col) => /* @__PURE__ */ jsx49(
|
|
3704
3739
|
"th",
|
|
3705
3740
|
{
|
|
@@ -3724,74 +3759,144 @@ function DataTable({
|
|
|
3724
3759
|
/* @__PURE__ */ jsx49("tbody", { children: isLoading ? Array.from({ length: skeletonRows }).map((_, i) => /* @__PURE__ */ jsx49(
|
|
3725
3760
|
TableRowSkeleton,
|
|
3726
3761
|
{
|
|
3727
|
-
cols: columns.length,
|
|
3762
|
+
cols: columns.length + (hasExpand ? 1 : 0),
|
|
3728
3763
|
density,
|
|
3729
3764
|
snug
|
|
3730
3765
|
},
|
|
3731
3766
|
i
|
|
3732
|
-
)) : paginated.length === 0 ? /* @__PURE__ */ jsx49("tr", { children: /* @__PURE__ */ jsx49("td", { colSpan:
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
// viewport. Its children are positioned absolutely so they
|
|
3768
|
-
// float over the row (out of the 0-width cell) — the action
|
|
3769
|
-
// stays in view while scrolling and nothing trails the last
|
|
3770
|
-
// data column. Everything is revealed on hover only.
|
|
3771
|
-
/* @__PURE__ */ jsx49("td", { className: "sticky right-0 z-[1] w-0 p-0 align-middle", children: /* @__PURE__ */ jsx49(
|
|
3772
|
-
"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",
|
|
3773
3802
|
{
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
|
|
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,
|
|
3778
3810
|
{
|
|
3779
|
-
type: "button",
|
|
3780
|
-
onClick: () => rowCta?.onClick?.(row),
|
|
3781
3811
|
className: cn(
|
|
3782
|
-
"
|
|
3783
|
-
|
|
3784
|
-
)
|
|
3785
|
-
children: rowCta?.label
|
|
3812
|
+
"h-3.5 w-3.5 transition-transform duration-150",
|
|
3813
|
+
rowExpanded(row, i) && "rotate-180"
|
|
3814
|
+
)
|
|
3786
3815
|
}
|
|
3787
3816
|
)
|
|
3788
3817
|
}
|
|
3789
|
-
) })
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
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
|
+
]) })
|
|
3795
3900
|
]
|
|
3796
3901
|
}
|
|
3797
3902
|
)
|
|
@@ -3803,27 +3908,30 @@ function DataTable({
|
|
|
3803
3908
|
className: cn(
|
|
3804
3909
|
"flex items-center gap-4 flex-wrap border-t border-border",
|
|
3805
3910
|
footerPad,
|
|
3806
|
-
footerSummary === "count" && totalPages <= 1 ? "justify-start" : "justify-between"
|
|
3911
|
+
footerSummary === "count" && totalPages <= 1 && !footerLeading ? "justify-start" : "justify-between"
|
|
3807
3912
|
),
|
|
3808
3913
|
children: [
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
" ",
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
" ",
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
"
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
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
|
+
] })
|
|
3827
3935
|
] }),
|
|
3828
3936
|
(footerSummary === "range" || footerSummary === "count") && totalPages > 1 && /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-1", children: [
|
|
3829
3937
|
/* @__PURE__ */ jsx49(
|
|
@@ -4199,7 +4307,7 @@ AvatarTag.displayName = "AvatarTag";
|
|
|
4199
4307
|
|
|
4200
4308
|
// src/calendar.tsx
|
|
4201
4309
|
import * as React40 from "react";
|
|
4202
|
-
import { ChevronDown as
|
|
4310
|
+
import { ChevronDown as ChevronDown7, ChevronLeft as ChevronLeft4, ChevronRight as ChevronRight6 } from "lucide-react";
|
|
4203
4311
|
import {
|
|
4204
4312
|
DayPicker,
|
|
4205
4313
|
getDefaultClassNames
|
|
@@ -4349,7 +4457,7 @@ function Calendar({
|
|
|
4349
4457
|
if (orientation === "right") {
|
|
4350
4458
|
return /* @__PURE__ */ jsx55(ChevronRight6, { className: cn("size-4", chClass), ...chProps });
|
|
4351
4459
|
}
|
|
4352
|
-
return /* @__PURE__ */ jsx55(
|
|
4460
|
+
return /* @__PURE__ */ jsx55(ChevronDown7, { className: cn("size-4", chClass), ...chProps });
|
|
4353
4461
|
},
|
|
4354
4462
|
DayButton: CalendarDayButton,
|
|
4355
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 }) }),
|
|
@@ -4396,7 +4504,7 @@ function CalendarDayButton({
|
|
|
4396
4504
|
// src/date-picker.tsx
|
|
4397
4505
|
import { useState as useState8, useRef as useRef4, useEffect as useEffect3 } from "react";
|
|
4398
4506
|
import { createPortal } from "react-dom";
|
|
4399
|
-
import { ChevronLeft as ChevronLeft5, ChevronRight as ChevronRight7, ChevronDown as
|
|
4507
|
+
import { ChevronLeft as ChevronLeft5, ChevronRight as ChevronRight7, ChevronDown as ChevronDown8, CalendarDays } from "lucide-react";
|
|
4400
4508
|
import { AnimatePresence, motion } from "framer-motion";
|
|
4401
4509
|
import { jsx as jsx56, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4402
4510
|
var MONTHS = [
|
|
@@ -4575,7 +4683,7 @@ function DatePicker({ value, onChange, placeholder = "Select date", className, m
|
|
|
4575
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",
|
|
4576
4684
|
children: [
|
|
4577
4685
|
MONTHS[viewMonth].slice(0, 3),
|
|
4578
|
-
/* @__PURE__ */ jsx56(
|
|
4686
|
+
/* @__PURE__ */ jsx56(ChevronDown8, { className: "w-3 h-3 text-gray-400" })
|
|
4579
4687
|
]
|
|
4580
4688
|
}
|
|
4581
4689
|
),
|
|
@@ -4614,7 +4722,7 @@ function DatePicker({ value, onChange, placeholder = "Select date", className, m
|
|
|
4614
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",
|
|
4615
4723
|
children: [
|
|
4616
4724
|
viewYear,
|
|
4617
|
-
/* @__PURE__ */ jsx56(
|
|
4725
|
+
/* @__PURE__ */ jsx56(ChevronDown8, { className: "w-3 h-3 text-gray-400" })
|
|
4618
4726
|
]
|
|
4619
4727
|
}
|
|
4620
4728
|
),
|
|
@@ -4708,7 +4816,7 @@ function DatePicker({ value, onChange, placeholder = "Select date", className, m
|
|
|
4708
4816
|
children: [
|
|
4709
4817
|
/* @__PURE__ */ jsx56(CalendarDays, { className: "size-[1.125rem] shrink-0 text-muted-foreground" }),
|
|
4710
4818
|
/* @__PURE__ */ jsx56("span", { className: cn("flex-1", value ? "text-foreground" : "text-muted-foreground"), children: value ? displayDate(value) : placeholder }),
|
|
4711
|
-
/* @__PURE__ */ jsx56(
|
|
4819
|
+
/* @__PURE__ */ jsx56(ChevronDown8, { className: cn("size-[1.125rem] shrink-0 text-muted-foreground transition-transform", open && "rotate-180") })
|
|
4712
4820
|
]
|
|
4713
4821
|
}
|
|
4714
4822
|
),
|
|
@@ -6015,7 +6123,7 @@ function useBreakpoint() {
|
|
|
6015
6123
|
// src/country-select.tsx
|
|
6016
6124
|
import * as React47 from "react";
|
|
6017
6125
|
import * as PopoverPrimitive4 from "@radix-ui/react-popover";
|
|
6018
|
-
import { Check as Check10, ChevronDown as
|
|
6126
|
+
import { Check as Check10, ChevronDown as ChevronDown9, Search as Search3 } from "lucide-react";
|
|
6019
6127
|
import { Fragment as Fragment9, jsx as jsx64, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
6020
6128
|
var COUNTRIES = [
|
|
6021
6129
|
{ code: "US", name: "United States", flag: "\u{1F1FA}\u{1F1F8}", dialCode: "+1" },
|
|
@@ -6104,7 +6212,7 @@ var CountrySelect = React47.forwardRef(
|
|
|
6104
6212
|
showDialCode && /* @__PURE__ */ jsx64("span", { className: "shrink-0 text-muted-foreground", children: selected.dialCode })
|
|
6105
6213
|
] }) : /* @__PURE__ */ jsx64("span", { children: placeholder }) }),
|
|
6106
6214
|
/* @__PURE__ */ jsx64(
|
|
6107
|
-
|
|
6215
|
+
ChevronDown9,
|
|
6108
6216
|
{
|
|
6109
6217
|
className: cn(
|
|
6110
6218
|
"h-4 w-4 shrink-0 text-muted-foreground opacity-70 transition-transform duration-pg-fast ease-pg-standard",
|
|
@@ -6277,7 +6385,7 @@ IconButton.displayName = "IconButton";
|
|
|
6277
6385
|
// src/time-picker.tsx
|
|
6278
6386
|
import * as React48 from "react";
|
|
6279
6387
|
import { createPortal as createPortal2 } from "react-dom";
|
|
6280
|
-
import { Clock as Clock2, ChevronDown as
|
|
6388
|
+
import { Clock as Clock2, ChevronDown as ChevronDown10, X as X11 } from "lucide-react";
|
|
6281
6389
|
import { Fragment as Fragment10, jsx as jsx66, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
6282
6390
|
function pad(n) {
|
|
6283
6391
|
return String(n).padStart(2, "0");
|
|
@@ -6613,7 +6721,7 @@ var TimePicker = React48.forwardRef(
|
|
|
6613
6721
|
onClick: handleClear
|
|
6614
6722
|
}
|
|
6615
6723
|
) : /* @__PURE__ */ jsx66(
|
|
6616
|
-
|
|
6724
|
+
ChevronDown10,
|
|
6617
6725
|
{
|
|
6618
6726
|
className: cn(
|
|
6619
6727
|
"size-[1.0625rem] shrink-0 text-muted-foreground transition-transform duration-150",
|