@px-ui/ui 1.0.6 → 1.0.8
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/{avatar-4rGnx_Y-.d.ts → avatar-B225ydaK.d.ts} +10 -7
- package/dist/avatar-B225ydaK.d.ts.map +1 -0
- package/dist/{avatar-B1kOPk5C.js → avatar-Bb0tx0Hn.js} +39 -5
- package/dist/avatar-Bb0tx0Hn.js.map +1 -0
- package/dist/button-D3as908Z.d.ts +19 -0
- package/dist/button-D3as908Z.d.ts.map +1 -0
- package/dist/{combobox-C-dF33ce.js → combobox-CHkmVNZ2.js} +10 -6
- package/dist/combobox-CHkmVNZ2.js.map +1 -0
- package/dist/{combobox-Dr2BYQU4.d.ts → combobox-DXVq26eH.d.ts} +23 -19
- package/dist/combobox-DXVq26eH.d.ts.map +1 -0
- package/dist/components/accordion.d.ts +5 -5
- package/dist/components/accordion.d.ts.map +1 -1
- package/dist/components/alert-dialog.d.ts +14 -14
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.d.ts +5 -5
- package/dist/components/aspect-ratio.d.ts +2 -2
- package/dist/components/aspect-ratio.d.ts.map +1 -1
- package/dist/components/avatar-group.d.ts +4 -4
- package/dist/components/avatar-group.d.ts.map +1 -1
- package/dist/components/avatar-group.js +1 -1
- package/dist/components/avatar.d.ts +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.d.ts +3 -3
- package/dist/components/badge.d.ts.map +1 -1
- package/dist/components/breadcrumb.d.ts +7 -7
- package/dist/components/breadcrumb.d.ts.map +1 -1
- package/dist/components/button-group.d.ts +6 -6
- package/dist/components/button-group.d.ts.map +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/calendar.d.ts +4 -4
- package/dist/components/calendar.d.ts.map +1 -1
- package/dist/components/card.d.ts +8 -8
- package/dist/components/card.d.ts.map +1 -1
- package/dist/components/carousel.d.ts +7 -7
- package/dist/components/carousel.d.ts.map +1 -1
- package/dist/components/checkbox.d.ts +2 -2
- package/dist/components/collapsible.d.ts +4 -4
- package/dist/components/combobox.d.ts +2 -2
- package/dist/components/combobox.js +2 -2
- package/dist/components/command.d.ts +11 -11
- package/dist/components/context-menu.d.ts +16 -16
- package/dist/components/context-menu.d.ts.map +1 -1
- package/dist/components/currency-select-field.d.ts +4 -4
- package/dist/components/currency-select-field.js +2 -2
- package/dist/components/dialog.d.ts +11 -11
- package/dist/components/drawer.d.ts +11 -11
- package/dist/components/dropdown-menu.d.ts +1 -1
- package/dist/components/empty.d.ts +9 -9
- package/dist/components/field.d.ts +15 -15
- package/dist/components/file-upload-field.d.ts +2 -2
- package/dist/components/file-upload.d.ts +2 -2
- package/dist/components/hover-card.d.ts +4 -4
- package/dist/components/hover-card.d.ts.map +1 -1
- package/dist/components/input-group.d.ts +12 -12
- package/dist/components/input-group.d.ts.map +1 -1
- package/dist/components/input-otp.d.ts +5 -5
- package/dist/components/input-otp.d.ts.map +1 -1
- package/dist/components/input.d.ts +1 -1
- package/dist/components/item.d.ts +15 -15
- package/dist/components/item.d.ts.map +1 -1
- package/dist/components/kbd.d.ts +3 -3
- package/dist/components/label.d.ts +1 -1
- package/dist/components/menubar.d.ts +18 -18
- package/dist/components/native-select.d.ts +4 -4
- package/dist/components/native-select.d.ts.map +1 -1
- package/dist/components/navigation-menu.d.ts +9 -9
- package/dist/components/pagination.d.ts +9 -9
- package/dist/components/phone-input.d.ts +2 -2
- package/dist/components/popover.d.ts +7 -7
- package/dist/components/progress.d.ts +6 -6
- package/dist/components/radio-group.d.ts +3 -3
- package/dist/components/resizable.d.ts +4 -4
- package/dist/components/scroll-area.d.ts +3 -3
- package/dist/components/select.d.ts +10 -10
- package/dist/components/separator.d.ts +1 -1
- package/dist/components/sheet.d.ts +9 -9
- package/dist/components/sidebar.d.ts +26 -26
- package/dist/components/sidebar.d.ts.map +1 -1
- package/dist/components/skeleton.d.ts +2 -2
- package/dist/components/slider.d.ts +2 -2
- package/dist/components/spinner.d.ts +2 -2
- package/dist/components/switch.d.ts +2 -2
- package/dist/components/table.d.ts +9 -9
- package/dist/components/tabs.d.ts +5 -5
- package/dist/components/textarea.d.ts +2 -2
- package/dist/components/toast.d.ts +1 -1
- package/dist/components/toggle-group.d.ts +4 -4
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/toggle.d.ts +1 -1
- package/dist/components/toggle.js +1 -1
- package/dist/components/tooltip.d.ts +1 -1
- package/dist/{dropdown-menu-Cgc7-ldl.d.ts → dropdown-menu-D4Lq8KcT.d.ts} +17 -17
- package/dist/{dropdown-menu-Cgc7-ldl.d.ts.map → dropdown-menu-D4Lq8KcT.d.ts.map} +1 -1
- package/dist/{file-upload-C58YcyJl.d.ts → file-upload-Cbz2hJLS.d.ts} +11 -11
- package/dist/{file-upload-C58YcyJl.d.ts.map → file-upload-Cbz2hJLS.d.ts.map} +1 -1
- package/dist/hooks/use-async-options.d.ts +1 -1
- package/dist/hooks/use-async-options.js +1 -1
- package/dist/input-BtIHVMec.d.ts +12 -0
- package/dist/input-BtIHVMec.d.ts.map +1 -0
- package/dist/label-DSbNg_nY.d.ts +11 -0
- package/dist/label-DSbNg_nY.d.ts.map +1 -0
- package/dist/providers/px-ui-provider.d.ts +4 -4
- package/dist/{separator-C-J7WHcn.d.ts → separator-xmk2NR_s.d.ts} +3 -3
- package/dist/separator-xmk2NR_s.d.ts.map +1 -0
- package/dist/{toast-D_9k54-I.d.ts → toast-C_zQMC72.d.ts} +4 -4
- package/dist/{toast-D_9k54-I.d.ts.map → toast-C_zQMC72.d.ts.map} +1 -1
- package/dist/{toggle-CrkoxTHs.d.ts → toggle-CASEgcGG.d.ts} +6 -6
- package/dist/{toggle-CrkoxTHs.d.ts.map → toggle-CASEgcGG.d.ts.map} +1 -1
- package/dist/{toggle-DhJ_qwgw.js → toggle-lqIyJptS.js} +5 -4
- package/dist/toggle-lqIyJptS.js.map +1 -0
- package/dist/{tooltip-CxZtG0tL.d.ts → tooltip-ChzCP6Bv.d.ts} +6 -6
- package/dist/{tooltip-CxZtG0tL.d.ts.map → tooltip-ChzCP6Bv.d.ts.map} +1 -1
- package/dist/{use-async-options-DHR8q5qX.d.ts → use-async-options-CD5BgoHR.d.ts} +20 -3
- package/dist/use-async-options-CD5BgoHR.d.ts.map +1 -0
- package/dist/{use-async-options-wZ9LJ2BJ.js → use-async-options-CcsImGX4.js} +13 -6
- package/dist/use-async-options-CcsImGX4.js.map +1 -0
- package/package.json +1 -1
- package/dist/avatar-4rGnx_Y-.d.ts.map +0 -1
- package/dist/avatar-B1kOPk5C.js.map +0 -1
- package/dist/button-t2Pir50R.d.ts +0 -19
- package/dist/button-t2Pir50R.d.ts.map +0 -1
- package/dist/combobox-C-dF33ce.js.map +0 -1
- package/dist/combobox-Dr2BYQU4.d.ts.map +0 -1
- package/dist/input-B24wy7Fz.d.ts +0 -12
- package/dist/input-B24wy7Fz.d.ts.map +0 -1
- package/dist/label-Ctmor2MM.d.ts +0 -11
- package/dist/label-Ctmor2MM.d.ts.map +0 -1
- package/dist/separator-C-J7WHcn.d.ts.map +0 -1
- package/dist/toggle-DhJ_qwgw.js.map +0 -1
- package/dist/use-async-options-DHR8q5qX.d.ts.map +0 -1
- package/dist/use-async-options-wZ9LJ2BJ.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { r as TooltipProvider } from "../tooltip-
|
|
2
|
-
import { n as AnchoredToaster, o as ToasterProps } from "../toast-
|
|
3
|
-
import * as
|
|
1
|
+
import { r as TooltipProvider } from "../tooltip-ChzCP6Bv.js";
|
|
2
|
+
import { n as AnchoredToaster, o as ToasterProps } from "../toast-C_zQMC72.js";
|
|
3
|
+
import * as react_jsx_runtime254 from "react/jsx-runtime";
|
|
4
4
|
import * as React$1 from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/providers/px-ui-provider.d.ts
|
|
@@ -30,7 +30,7 @@ declare function PXUIProvider({
|
|
|
30
30
|
tooltip,
|
|
31
31
|
toaster,
|
|
32
32
|
anchoredToaster
|
|
33
|
-
}: PXUIProviderProps):
|
|
33
|
+
}: PXUIProviderProps): react_jsx_runtime254.JSX.Element;
|
|
34
34
|
//#endregion
|
|
35
35
|
export { PXUIProvider, type PXUIProviderProps };
|
|
36
36
|
//# sourceMappingURL=px-ui-provider.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime69 from "react/jsx-runtime";
|
|
2
2
|
import { Separator } from "@base-ui/react/separator";
|
|
3
3
|
|
|
4
4
|
//#region src/components/separator.d.ts
|
|
@@ -6,7 +6,7 @@ declare function Separator$1({
|
|
|
6
6
|
className,
|
|
7
7
|
orientation,
|
|
8
8
|
...props
|
|
9
|
-
}: Separator.Props):
|
|
9
|
+
}: Separator.Props): react_jsx_runtime69.JSX.Element;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { Separator$1 as t };
|
|
12
|
-
//# sourceMappingURL=separator-
|
|
12
|
+
//# sourceMappingURL=separator-xmk2NR_s.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator-xmk2NR_s.d.ts","names":[],"sources":["../src/components/separator.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,WAAA;;;;GAIN,SAAA,CAAmB,QAAK,mBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime214 from "react/jsx-runtime";
|
|
2
2
|
import * as React$1 from "react";
|
|
3
3
|
import * as _base_ui_react0 from "@base-ui/react";
|
|
4
4
|
import { Toast, ToastManagerAddOptions, ToastManagerPromiseOptions, ToastManagerUpdateOptions } from "@base-ui/react/toast";
|
|
@@ -20,7 +20,7 @@ type ToasterProps = Omit<Toast.Provider.Props, "toastManager" | "children"> & {
|
|
|
20
20
|
declare function Toaster({
|
|
21
21
|
position,
|
|
22
22
|
...props
|
|
23
|
-
}: ToasterProps):
|
|
23
|
+
}: ToasterProps): react_jsx_runtime214.JSX.Element;
|
|
24
24
|
type ToastOptions = Omit<ToastManagerAddOptions<any>, "title" | "type">;
|
|
25
25
|
/**
|
|
26
26
|
* Dispatch a toast from anywhere. Backed by a global Base UI toast manager, so
|
|
@@ -68,7 +68,7 @@ declare const anchoredToast: ((title: React$1.ReactNode, options: AnchoredToastO
|
|
|
68
68
|
* Host for anchored toasts. Mount it once near the app root; dispatch with the
|
|
69
69
|
* exported `anchoredToast` helper.
|
|
70
70
|
*/
|
|
71
|
-
declare function AnchoredToaster(props: Omit<Toast.Provider.Props, "toastManager" | "children">):
|
|
71
|
+
declare function AnchoredToaster(props: Omit<Toast.Provider.Props, "toastManager" | "children">): react_jsx_runtime214.JSX.Element;
|
|
72
72
|
//#endregion
|
|
73
73
|
export { ToasterPosition as a, anchoredToastManager as c, Toaster as i, toast as l, AnchoredToaster as n, ToasterProps as o, ToastOptions as r, anchoredToast as s, AnchoredToastOptions as t, toastManager as u };
|
|
74
|
-
//# sourceMappingURL=toast-
|
|
74
|
+
//# sourceMappingURL=toast-C_zQMC72.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-
|
|
1
|
+
{"version":3,"file":"toast-C_zQMC72.d.ts","names":[],"sources":["../src/components/toast.tsx"],"sourcesContent":[],"mappings":";;;;;;cAsBM,cAAyC,eAAA,CAA7B;KAEb,eAAA;KAkBA,YAAA,GAAe,KAAK,KAAA,CAAM,QAAA,CAAS;EApBlC;AAAY;AAEE;;EAkBA,QAAA,CAAA,EAKP,eALO;CAKP;;AAAe;;;iBAOnB,OAAA,CAA6D;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EAAZ,YAAY,CAAA,EAAA,oBAAA,CAAA,GAAA,CAAA,OAAA;KA6IjE,YAAA,GAAe,IA7IkD,CA6I7C,sBA7I6C,CAAA,GAAA,CAAA,EAAA,OAAA,GAAA,MAAA,CAAA;AAAA;AA6I9C;;;;;;;cAelB,KAZiB,EAAA,CAAA,CAAA,KAAA,EAAN,OAAA,CAAM,SAAA,EAAA,OAAA,CAAA,EAAqB,YAArB,EAAA,GAAA,MAAA,CAAA,GAAA;EAAqB,OAAA,EAAA,CAAA,KAAA,EAA3B,OAAA,CAAM,SAAqB,EAAA,OAAA,CAAA,EAAA,YAAA,EAAA,GAAA,MAAA;EAA3B,IAAA,EAAM,CAAA,KAAA,EAAN,OAAA,CAAM,SAAA,EAAA,OAAA,CAAA,EAAqB,YAArB,EAAA,GAAA,MAAA;EAAqB,OAAA,EAAA,CAAA,KAAA,EAA3B,OAAA,CAAM,SAAqB,EAAA,OAAA,CAAA,EAAA,YAAA,EAAA,GAAA,MAAA;EAA3B,KAAM,EAAA,CAAA,KAAA,EAAN,OAAA,CAAM,SAAA,EAAA,OAAA,CAAA,EAAqB,YAArB,EAAA,GAAA,MAAA;EAAqB,OAAA,EAAA,CAAA,KAAA,EAA3B,OAAA,CAAM,SAAqB,EAAA,OAAA,CAAA,EAAA,YAAA,EAAA,GAAA,MAAA;EAkBzB,OAAM,EAAA,CAAA,KAAA,EAAN,OAAA,CAAM,SAAA,EAAA,OAAA,CAAA,EAAqB,YAArB,EAAA,GAAA,MAAA;EAAqB,OAAA,EAAA,CAAA,KAAA,CAAA,CAAA,OAAA,EAGjC,OAHiC,CAGzB,KAHyB,CAAA,GAAA,CAAA,GAAA,GAGT,OAHS,CAGD,KAHC,CAAA,CAAA,EAAA,OAAA,EAIjC,0BAJiC,CAIN,KAJM,EAAA,GAAA,CAAA,EAAA,GAIK,OAJL,CAIK,KAJL,CAAA;EAGzB,MAAA,EAAA,CAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAOW,yBAPX,CAAA,GAAA,CAAA,EAAA,GAAA,IAAA;EAAR,OAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA;CAAgC;cAevC,oBAf+B,EAekB,eAAA,CAA7B,YAfW,CAAA,GAAA,CAAA;KAiBhC,oBAAA,GAAuB,YAhBY,GAAA;EAA3B;EAAsC,MAAA,EAkBzC,OAlByC,GAAA,IAAA;CAAA;;;AAMM;AAQ/B;AAIT;;;;;;;cA4BX,aAxBiB,EAAA,CAAA,CAAA,KAAA,EAAN,OAAA,CAAM,SAAA,EAAA,OAAA,EAAoB,oBAApB,EAAA,GAAA,MAAA,CAAA,GAAA;EAAoB,OAAA,EAAA,CAAA,KAAA,EAA1B,OAAA,CAAM,SAAoB,EAAA,OAAA,EAAA,oBAAA,EAAA,GAAA,MAAA;EAA1B,IAAA,EAAM,CAAA,KAAA,EAAN,OAAA,CAAM,SAAA,EAAA,OAAA,EAAoB,oBAApB,EAAA,GAAA,MAAA;EAAoB,OAAA,EAAA,CAAA,KAAA,EAA1B,OAAA,CAAM,SAAoB,EAAA,OAAA,EAAA,oBAAA,EAAA,GAAA,MAAA;EAAoB,KAAA,EAAA,CAAA,KAAA,EAA9C,OAAA,CAAM,SAAwC,EAAA,OAAA,EAApB,oBAAoB,EAAA,GAAA,MAAA;EAoCtD,OAAA,EAAA,CAAA,EAAe,CAAf,EAAA,MAAe,EAAA,GAAA,IAAA;CACV;;;;;iBADL,eAAA,QACA,KAAK,KAAA,CAAM,QAAA,CAAS,sCAAmC,oBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime299 from "react/jsx-runtime";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
3
|
import { Toggle } from "@base-ui/react/toggle";
|
|
4
|
-
import * as
|
|
4
|
+
import * as class_variance_authority_types13 from "class-variance-authority/types";
|
|
5
5
|
|
|
6
6
|
//#region src/components/toggle.d.ts
|
|
7
7
|
declare const toggleVariants: (props?: ({
|
|
8
|
-
variant?: "default" | "outline" | null | undefined;
|
|
8
|
+
variant?: "default" | "outline" | "accent" | null | undefined;
|
|
9
9
|
size?: "default" | "sm" | "lg" | null | undefined;
|
|
10
|
-
} &
|
|
10
|
+
} & class_variance_authority_types13.ClassProp) | undefined) => string;
|
|
11
11
|
declare function Toggle$1({
|
|
12
12
|
className,
|
|
13
13
|
variant,
|
|
14
14
|
size,
|
|
15
15
|
...props
|
|
16
|
-
}: Toggle.Props & VariantProps<typeof toggleVariants>):
|
|
16
|
+
}: Toggle.Props & VariantProps<typeof toggleVariants>): react_jsx_runtime299.JSX.Element;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { toggleVariants as n, Toggle$1 as t };
|
|
19
|
-
//# sourceMappingURL=toggle-
|
|
19
|
+
//# sourceMappingURL=toggle-CASEgcGG.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-
|
|
1
|
+
{"version":3,"file":"toggle-CASEgcGG.d.ts","names":[],"sources":["../src/components/toggle.tsx"],"sourcesContent":[],"mappings":";;;;;;cAOM;;;IAwBL,gCAAA,CAAA;AA5BiE,iBA8BzD,QAAA,CAFR;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAOE,MAAA,CAAgB,KAPlB,GAO0B,YAP1B,CAAA,OAO8C,cAP9C,CAAA,CAAA,EAO6D,oBAAA,CAAA,GAAA,CAAA,OAP7D"}
|
|
@@ -4,11 +4,12 @@ import { cva } from "class-variance-authority";
|
|
|
4
4
|
import { Toggle } from "@base-ui/react/toggle";
|
|
5
5
|
|
|
6
6
|
//#region src/components/toggle.tsx
|
|
7
|
-
const toggleVariants = cva("group/toggle inline-flex items-center justify-center gap-1 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none
|
|
7
|
+
const toggleVariants = cva("group/toggle inline-flex items-center justify-center gap-1 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
8
8
|
variants: {
|
|
9
9
|
variant: {
|
|
10
|
-
default: "bg-transparent",
|
|
11
|
-
outline: "border border-input bg-transparent shadow-xs hover:bg-muted"
|
|
10
|
+
default: "bg-transparent hover:bg-muted hover:text-foreground aria-pressed:bg-muted",
|
|
11
|
+
outline: "border border-input bg-transparent shadow-xs hover:bg-muted hover:text-foreground aria-pressed:bg-muted",
|
|
12
|
+
accent: "bg-transparent hover:bg-accent hover:text-accent-foreground aria-pressed:bg-accent aria-pressed:text-accent-foreground"
|
|
12
13
|
},
|
|
13
14
|
size: {
|
|
14
15
|
default: "h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2",
|
|
@@ -35,4 +36,4 @@ function Toggle$1({ className, variant = "default", size = "default", ...props }
|
|
|
35
36
|
|
|
36
37
|
//#endregion
|
|
37
38
|
export { toggleVariants as n, Toggle$1 as t };
|
|
38
|
-
//# sourceMappingURL=toggle-
|
|
39
|
+
//# sourceMappingURL=toggle-lqIyJptS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle-lqIyJptS.js","names":["Toggle","TogglePrimitive"],"sources":["../src/components/toggle.tsx"],"sourcesContent":["\"use client\";\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@px-ui/ui/lib/utils\";\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-transparent hover:bg-muted hover:text-foreground aria-pressed:bg-muted\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-muted hover:text-foreground aria-pressed:bg-muted\",\n accent:\n \"bg-transparent hover:bg-accent hover:text-accent-foreground aria-pressed:bg-accent aria-pressed:text-accent-foreground\",\n },\n size: {\n default:\n \"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n sm: \"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5\",\n lg: \"h-10 min-w-10 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n"],"mappings":";;;;;;AAOA,MAAM,iBAAiB,IACrB,kdACA;CACE,UAAU;EACR,SAAS;GACP,SACE;GACF,SACE;GACF,QACE;GACH;EACD,MAAM;GACJ,SACE;GACF,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;AAED,SAASA,SAAO,EACd,WACA,UAAU,WACV,OAAO,WACP,GAAG,SAC2D;AAC9D,QACE,oBAACC;EACC,aAAU;EACV,WAAW,GAAG,eAAe;GAAE;GAAS;GAAM;GAAW,CAAC,CAAC;EAC3D,GAAI;GACJ"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime255 from "react/jsx-runtime";
|
|
2
2
|
import { Tooltip } from "@base-ui/react/tooltip";
|
|
3
3
|
|
|
4
4
|
//#region src/components/tooltip.d.ts
|
|
5
5
|
declare function TooltipProvider({
|
|
6
6
|
delay,
|
|
7
7
|
...props
|
|
8
|
-
}: Tooltip.Provider.Props):
|
|
8
|
+
}: Tooltip.Provider.Props): react_jsx_runtime255.JSX.Element;
|
|
9
9
|
declare function Tooltip$1({
|
|
10
10
|
...props
|
|
11
|
-
}: Tooltip.Root.Props):
|
|
11
|
+
}: Tooltip.Root.Props): react_jsx_runtime255.JSX.Element;
|
|
12
12
|
declare function TooltipTrigger({
|
|
13
13
|
...props
|
|
14
|
-
}: Tooltip.Trigger.Props):
|
|
14
|
+
}: Tooltip.Trigger.Props): react_jsx_runtime255.JSX.Element;
|
|
15
15
|
declare function TooltipContent({
|
|
16
16
|
className,
|
|
17
17
|
side,
|
|
@@ -20,7 +20,7 @@ declare function TooltipContent({
|
|
|
20
20
|
alignOffset,
|
|
21
21
|
children,
|
|
22
22
|
...props
|
|
23
|
-
}: Tooltip.Popup.Props & Pick<Tooltip.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">):
|
|
23
|
+
}: Tooltip.Popup.Props & Pick<Tooltip.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): react_jsx_runtime255.JSX.Element;
|
|
24
24
|
//#endregion
|
|
25
25
|
export { TooltipTrigger as i, TooltipContent as n, TooltipProvider as r, Tooltip$1 as t };
|
|
26
|
-
//# sourceMappingURL=tooltip-
|
|
26
|
+
//# sourceMappingURL=tooltip-ChzCP6Bv.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip-
|
|
1
|
+
{"version":3,"file":"tooltip-ChzCP6Bv.d.ts","names":[],"sources":["../src/components/tooltip.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,eAAA;;;GAGN,OAAA,CAAiB,QAAA,CAAS,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAUzB,SAAA;;GAAsB,OAAA,CAAiB,IAAA,CAAK,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAIjD,cAAA;;GAA6B,OAAA,CAAiB,OAAA,CAAQ,QAAK,oBAAA,CAAA,GAAA,CAAA;AArBA,iBAyB3D,cAAA,CArBe;EAAA,SAAA;EAAA,IAAA;EAAA,UAAA;EAAA,KAAA;EAAA,WAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA6BrB,OAAA,CAAiB,KAAA,CAAM,KA7BF,GA8BtB,IA9BsB,CA+BpB,OAAA,CAAiB,UAAA,CAAW,KA/BR,EAAA,OAAA,GAAA,aAAA,GAAA,MAAA,GAAA,YAAA,CAAA,CAAA,EAiCrB,oBAAA,CAAA,GAAA,CAAA,OAjCqB"}
|
|
@@ -4,7 +4,19 @@ import { QueryKey } from "@tanstack/react-query";
|
|
|
4
4
|
//#region src/hooks/use-async-options.d.ts
|
|
5
5
|
type LoadOptionsData<TData$1> = {
|
|
6
6
|
options: TData$1[];
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Total number of records matching the current search. This is the preferred
|
|
9
|
+
* way to signal pagination: the hook derives `hasMore` by comparing `total`
|
|
10
|
+
* against the accumulated item count across fetched pages, so the loader
|
|
11
|
+
* never has to track prior pages or its own page size.
|
|
12
|
+
*/
|
|
13
|
+
total?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Whether more pages remain. A last-resort fallback for APIs that expose no
|
|
16
|
+
* total to count against (e.g. cursor pagination). Prefer `total`. Takes
|
|
17
|
+
* precedence over `total` when both are present.
|
|
18
|
+
*/
|
|
19
|
+
hasMore?: boolean;
|
|
8
20
|
};
|
|
9
21
|
type LoadOptionsReturn<TData$1> = {
|
|
10
22
|
data: LoadOptionsData<TData$1>;
|
|
@@ -20,16 +32,21 @@ declare function useAsyncOptions<TData$1 = any>(params: {
|
|
|
20
32
|
loader: LoadOptionsFn<TData$1>;
|
|
21
33
|
}, {
|
|
22
34
|
isOpen,
|
|
23
|
-
inputValue
|
|
35
|
+
inputValue,
|
|
36
|
+
eager,
|
|
37
|
+
localFilter
|
|
24
38
|
}: {
|
|
25
39
|
isOpen: boolean;
|
|
26
40
|
inputValue: string;
|
|
41
|
+
eager?: boolean;
|
|
42
|
+
localFilter?: boolean;
|
|
27
43
|
}): {
|
|
28
44
|
items: TData$1[];
|
|
29
45
|
isLoading: boolean;
|
|
30
46
|
isLoadingMore: boolean;
|
|
31
47
|
hasMore: boolean;
|
|
32
48
|
isError: boolean;
|
|
49
|
+
isLocalFilter: boolean;
|
|
33
50
|
onLoadMore: () => void;
|
|
34
51
|
_query: _tanstack_react_query0.UseInfiniteQueryResult<_tanstack_react_query0.InfiniteData<LoadOptionsData<TData$1>, unknown>, Error>;
|
|
35
52
|
};
|
|
@@ -42,4 +59,4 @@ type InferOption<T> = T extends LoadOptionsConfig<infer TData> ? TData : never;
|
|
|
42
59
|
type InferOptions<T> = T extends LoadOptionsConfig<infer TData> ? TData[] : never;
|
|
43
60
|
//#endregion
|
|
44
61
|
export { useAsyncOptions as a, defineLoadOptions as i, InferOptions as n, LoadOptionsConfig as r, InferOption as t };
|
|
45
|
-
//# sourceMappingURL=use-async-options-
|
|
62
|
+
//# sourceMappingURL=use-async-options-CD5BgoHR.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-async-options-CD5BgoHR.d.ts","names":[],"sources":["../src/hooks/use-async-options.ts"],"sourcesContent":[],"mappings":";;;;KAKK;WACM;;AAL6D;AAKxD;AAiBO;;;EAQT,KAAA,CAAA,EAAA,MAAA;EAAR;;AAEN;;;EAGY,OAAA,CAAA,EAAA,OAAA;CAGR;KAjBC,iBAkBD,CAAA,OAAA,CAAA,GAAA;EACA,IAAA,EAlBI,eAkBJ,CAlBoB,OAkBpB,CAAA;EACA,KAAA,EAAA,GAAA;;KAfC;;;UAGK;MACJ,QAAQ,kBAAkB;iBAEhB;EAqGJ,QAAA,EAnGE,QAmGF;EACA,MAAA,EAnGA,aAmGA,CAnGc,OAmGd,CAAA;CACY,EAAA;EAAA,MAAA;EAAA,UAAA;EAAA,KAAA;EAAA;CAAA,EAAA;EAAd,MAAA,EAAA,OAAA;EAAa,UAAA,EAAA,MAAA;EAGP,KAAA,CAAA,EAAA,OAAA;EACiB,WAAA,CAAA,EAAA,OAAA;CAAlB,CAAA,EAAA;EAAwB,KAAA,SAAA,EAAA;EAAA,SAAA,EAAA,OAAA;EAAA,aAAA,EAAA,OAAA;EAK3B,OAAA,EAAA,OAAW;EAEX,OAAA,EAAA,OAAY;EACtB,aAAA,EAAA,OAAA;EAAU,UAAA,EAAA,GAAA,GAAA,IAAA;EAAiC,MAAA,+CAAA,oCAAA,gBAAA,QAAA,CAAA,EAAA,OAAA,CAAA,OAAA,CAAA;CAAK;KAdtC;YACA;UACF,cAAc;;iBAGR,8CACD,kBAAkB,WAAM,kBAAA;KAK3B,iBACV,UAAU;KACA,kBACV,UAAU,iCAAiC"}
|
|
@@ -3,26 +3,32 @@ import { useInfiniteQuery } from "@tanstack/react-query";
|
|
|
3
3
|
|
|
4
4
|
//#region src/hooks/use-async-options.ts
|
|
5
5
|
const EMPTY_ITEMS = Object.freeze([]);
|
|
6
|
-
function useAsyncOptions(params, { isOpen, inputValue }) {
|
|
6
|
+
function useAsyncOptions(params, { isOpen, inputValue, eager = false, localFilter = false }) {
|
|
7
7
|
const isFetchedAfterMount = useRef(false);
|
|
8
|
+
const isFullyLoaded = useRef(false);
|
|
9
|
+
const effectiveSearch = localFilter && isFullyLoaded.current ? "" : inputValue;
|
|
8
10
|
const query = useInfiniteQuery({
|
|
9
|
-
queryKey: [...params.cacheKey,
|
|
11
|
+
queryKey: [...params.cacheKey, effectiveSearch],
|
|
10
12
|
queryFn: async ({ pageParam, signal }) => {
|
|
11
13
|
const { error, data } = await params.loader({
|
|
12
|
-
search:
|
|
14
|
+
search: effectiveSearch,
|
|
13
15
|
page: pageParam,
|
|
14
16
|
signal
|
|
15
17
|
});
|
|
16
18
|
if (error) throw new Error(error);
|
|
17
19
|
return data;
|
|
18
20
|
},
|
|
19
|
-
enabled: isOpen,
|
|
21
|
+
enabled: isOpen || eager,
|
|
20
22
|
initialPageParam: 1,
|
|
21
23
|
staleTime: () => isFetchedAfterMount.current ? Infinity : 0,
|
|
22
|
-
getNextPageParam: (lastPage, allPages) =>
|
|
24
|
+
getNextPageParam: (lastPage, allPages) => {
|
|
25
|
+
if (typeof lastPage.hasMore === "boolean") return lastPage.hasMore ? allPages.length + 1 : void 0;
|
|
26
|
+
if (typeof lastPage.total === "number") return allPages.reduce((count, page) => count + page.options.length, 0) < lastPage.total ? allPages.length + 1 : void 0;
|
|
27
|
+
},
|
|
23
28
|
retry: false
|
|
24
29
|
});
|
|
25
30
|
if (query.isFetchedAfterMount && !isFetchedAfterMount.current) isFetchedAfterMount.current = true;
|
|
31
|
+
if (localFilter && !isFullyLoaded.current && effectiveSearch === "" && query.isSuccess && query.data.pages.length === 1 && query.hasNextPage === false) isFullyLoaded.current = true;
|
|
26
32
|
const items = useMemo(() => query.data?.pages.flatMap((page) => page.options) ?? EMPTY_ITEMS, [query.data?.pages]);
|
|
27
33
|
const handleLoadMore = useCallback(() => {
|
|
28
34
|
query.fetchNextPage();
|
|
@@ -33,6 +39,7 @@ function useAsyncOptions(params, { isOpen, inputValue }) {
|
|
|
33
39
|
isLoadingMore: query.isFetchingNextPage,
|
|
34
40
|
hasMore: query.hasNextPage,
|
|
35
41
|
isError: query.isError,
|
|
42
|
+
isLocalFilter: localFilter && isFullyLoaded.current,
|
|
36
43
|
onLoadMore: handleLoadMore,
|
|
37
44
|
_query: query
|
|
38
45
|
};
|
|
@@ -43,4 +50,4 @@ function defineLoadOptions(loadOptions) {
|
|
|
43
50
|
|
|
44
51
|
//#endregion
|
|
45
52
|
export { useAsyncOptions as n, defineLoadOptions as t };
|
|
46
|
-
//# sourceMappingURL=use-async-options-
|
|
53
|
+
//# sourceMappingURL=use-async-options-CcsImGX4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-async-options-CcsImGX4.js","names":["EMPTY_ITEMS: readonly unknown[]"],"sources":["../src/hooks/use-async-options.ts"],"sourcesContent":["import { useCallback, useMemo, useRef } from \"react\";\nimport { useInfiniteQuery, type QueryKey } from \"@tanstack/react-query\";\n\nconst EMPTY_ITEMS: readonly unknown[] = Object.freeze([]);\n\ntype LoadOptionsData<TData> = {\n options: TData[];\n /**\n * Total number of records matching the current search. This is the preferred\n * way to signal pagination: the hook derives `hasMore` by comparing `total`\n * against the accumulated item count across fetched pages, so the loader\n * never has to track prior pages or its own page size.\n */\n total?: number;\n /**\n * Whether more pages remain. A last-resort fallback for APIs that expose no\n * total to count against (e.g. cursor pagination). Prefer `total`. Takes\n * precedence over `total` when both are present.\n */\n hasMore?: boolean;\n};\n\ntype LoadOptionsReturn<TData> = {\n data: LoadOptionsData<TData>;\n error: any;\n};\n\ntype LoadOptionsFn<TData> = (params: {\n search: string;\n page: number;\n signal: AbortSignal;\n}) => Promise<LoadOptionsReturn<TData>>;\n\nexport function useAsyncOptions<TData = any>(\n params: {\n cacheKey: QueryKey;\n loader: LoadOptionsFn<TData>;\n },\n {\n isOpen,\n inputValue,\n eager = false,\n localFilter = false,\n }: {\n isOpen: boolean;\n inputValue: string;\n eager?: boolean;\n localFilter?: boolean;\n },\n) {\n const isFetchedAfterMount = useRef(false);\n // Once the initial empty-search page reports `hasMore: false`, the entire\n // dataset is already in memory — freeze the query search so typing filters\n // locally instead of refetching.\n const isFullyLoaded = useRef(false);\n\n const effectiveSearch =\n localFilter && isFullyLoaded.current ? \"\" : inputValue;\n\n const query = useInfiniteQuery({\n queryKey: [...params.cacheKey, effectiveSearch],\n queryFn: async ({ pageParam, signal }) => {\n const { error, data } = await params.loader({\n search: effectiveSearch,\n page: pageParam,\n signal,\n });\n\n if (error) {\n throw new Error(error);\n }\n\n return data;\n },\n enabled: isOpen || eager,\n initialPageParam: 1,\n staleTime: () => (isFetchedAfterMount.current ? Infinity : 0),\n getNextPageParam: (lastPage, allPages) => {\n // Explicit hasMore from the server wins.\n if (typeof lastPage.hasMore === \"boolean\") {\n return lastPage.hasMore ? allPages.length + 1 : undefined;\n }\n // Otherwise derive it from total vs. the accumulated item count —\n // allPages already holds every page React Query has fetched.\n if (typeof lastPage.total === \"number\") {\n const loaded = allPages.reduce(\n (count, page) => count + page.options.length,\n 0,\n );\n return loaded < lastPage.total ? allPages.length + 1 : undefined;\n }\n return undefined;\n },\n retry: false,\n });\n\n if (query.isFetchedAfterMount && !isFetchedAfterMount.current) {\n isFetchedAfterMount.current = true;\n }\n\n if (\n localFilter &&\n !isFullyLoaded.current &&\n effectiveSearch === \"\" &&\n query.isSuccess &&\n query.data.pages.length === 1 &&\n query.hasNextPage === false\n ) {\n isFullyLoaded.current = true;\n }\n\n const items = useMemo(\n () =>\n (query.data?.pages.flatMap((page) => page.options) ??\n EMPTY_ITEMS) as TData[],\n [query.data?.pages],\n );\n\n const handleLoadMore = useCallback(() => {\n query.fetchNextPage();\n }, [query.fetchNextPage]);\n\n return {\n items,\n isLoading: query.isLoading,\n isLoadingMore: query.isFetchingNextPage,\n hasMore: query.hasNextPage,\n isError: query.isError,\n isLocalFilter: localFilter && isFullyLoaded.current,\n onLoadMore: handleLoadMore,\n _query: query,\n };\n}\n\nexport type LoadOptionsConfig<TData> = {\n cacheKey: QueryKey;\n loader: LoadOptionsFn<TData>;\n};\n\nexport function defineLoadOptions<TData = any>(\n loadOptions: LoadOptionsConfig<TData>,\n) {\n return loadOptions;\n}\n\nexport type InferOption<T> =\n T extends LoadOptionsConfig<infer TData> ? TData : never;\nexport type InferOptions<T> =\n T extends LoadOptionsConfig<infer TData> ? TData[] : never;\n"],"mappings":";;;;AAGA,MAAMA,cAAkC,OAAO,OAAO,EAAE,CAAC;AA8BzD,SAAgB,gBACd,QAIA,EACE,QACA,YACA,QAAQ,OACR,cAAc,SAOhB;CACA,MAAM,sBAAsB,OAAO,MAAM;CAIzC,MAAM,gBAAgB,OAAO,MAAM;CAEnC,MAAM,kBACJ,eAAe,cAAc,UAAU,KAAK;CAE9C,MAAM,QAAQ,iBAAiB;EAC7B,UAAU,CAAC,GAAG,OAAO,UAAU,gBAAgB;EAC/C,SAAS,OAAO,EAAE,WAAW,aAAa;GACxC,MAAM,EAAE,OAAO,SAAS,MAAM,OAAO,OAAO;IAC1C,QAAQ;IACR,MAAM;IACN;IACD,CAAC;AAEF,OAAI,MACF,OAAM,IAAI,MAAM,MAAM;AAGxB,UAAO;;EAET,SAAS,UAAU;EACnB,kBAAkB;EAClB,iBAAkB,oBAAoB,UAAU,WAAW;EAC3D,mBAAmB,UAAU,aAAa;AAExC,OAAI,OAAO,SAAS,YAAY,UAC9B,QAAO,SAAS,UAAU,SAAS,SAAS,IAAI;AAIlD,OAAI,OAAO,SAAS,UAAU,SAK5B,QAJe,SAAS,QACrB,OAAO,SAAS,QAAQ,KAAK,QAAQ,QACtC,EACD,GACe,SAAS,QAAQ,SAAS,SAAS,IAAI;;EAI3D,OAAO;EACR,CAAC;AAEF,KAAI,MAAM,uBAAuB,CAAC,oBAAoB,QACpD,qBAAoB,UAAU;AAGhC,KACE,eACA,CAAC,cAAc,WACf,oBAAoB,MACpB,MAAM,aACN,MAAM,KAAK,MAAM,WAAW,KAC5B,MAAM,gBAAgB,MAEtB,eAAc,UAAU;CAG1B,MAAM,QAAQ,cAET,MAAM,MAAM,MAAM,SAAS,SAAS,KAAK,QAAQ,IAChD,aACJ,CAAC,MAAM,MAAM,MAAM,CACpB;CAED,MAAM,iBAAiB,kBAAkB;AACvC,QAAM,eAAe;IACpB,CAAC,MAAM,cAAc,CAAC;AAEzB,QAAO;EACL;EACA,WAAW,MAAM;EACjB,eAAe,MAAM;EACrB,SAAS,MAAM;EACf,SAAS,MAAM;EACf,eAAe,eAAe,cAAc;EAC5C,YAAY;EACZ,QAAQ;EACT;;AAQH,SAAgB,kBACd,aACA;AACA,QAAO"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"avatar-4rGnx_Y-.d.ts","names":[],"sources":["../src/components/avatar.tsx"],"sourcesContent":[],"mappings":";;;;;iBAmCS,mBAAA;iBAQA,oBAAA,mCAEN,OAAA,CAAM;KAwBJ,UAAA;AApE4D,KAqE5D,WAAA,GAnCI,SAAmB,GAAA,SAAA;AAAA,KAqCvB,WAAA,GAAc,MAAA,CAAgB,IAAA,CAAK,KA3BrC,GAAM;EAwBJ,IAAA,CAAA,EAII,UAJM;EACV,KAAA,CAAA,EAIK,WAJM;EAEX,OAAA,CAAA,EAGO,OAAA,CAAM,SAHF,GAAA,KAAA;CAAG;iBAMV,0BAAA,CALA,QAAA,EAMG,OAAA,CAAM,SANT,CAAA,EAON,OAAA,CAAM,SAPA,GAAA,SAAA;iBAuBA,QAAA,CAtBC;EAAA,SAAA;EAAA,IAAA;EAAA,KAAA;EAAA,OAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA6BP,WA7BO,CAAA,EA6BI,oBAAA,CAAA,GAAA,CAAA,OA7BJ;iBAyDD,WAAA,CAxDS;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwD4B,MAAA,CAAgB,KAAA,CAAM,KAxDlD,CAAA,EAwDuD,oBAAA,CAAA,GAAA,CAAA,OAxDvD;KAqEb,mBAAA,GAAsB,MAAA,CAAgB,QAAA,CAAS,KArEzB,GAAA;EAGlB,IAAA,CAAA,EAAA,MAAA,GAAA,IAAA;AAES,CAAA;iBAoET,cAAA,CAnDP;EAAA,SAAA;EAAA,IAAA;EAAA,QAAA;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAyDC,mBAzDD,CAAA,EAyDoB,oBAAA,CAAA,GAAA,CAAA,OAzDpB;iBAkFO,WAAA,CAjFP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiF4C,OAAA,CAAM,cAjFlD,CAAA,MAAA,CAAA,CAAA,EAiFwE,oBAAA,CAAA,GAAA,CAAA,OAjFxE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"avatar-B1kOPk5C.js","names":["alt: string | undefined","name: string | undefined","React","Avatar","AvatarPrimitive"],"sources":["../src/components/avatar.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@px-ui/ui/components/tooltip\"\n\nconst AVATAR_NAME_PALETTE = [\n \"#bdc3c7\",\n \"#6f7b87\",\n \"#2c3e50\",\n \"#2f3193\",\n \"#662d91\",\n \"#922790\",\n \"#ec2176\",\n \"#ed1c24\",\n \"#f36622\",\n \"#f8941e\",\n \"#fab70f\",\n \"#fdde00\",\n \"#d1d219\",\n \"#8ec73f\",\n \"#00a650\",\n \"#00aa9c\",\n \"#00adef\",\n \"#0081cd\",\n \"#005bab\",\n \"#012a4a\",\n \"#013a63\",\n \"#06d6a0\",\n \"#ef476f\",\n \"#ff5d8f\",\n \"#0496ff\",\n \"#c879ff\",\n]\n\nfunction getInitialsFromName(name: string | null | undefined): string {\n if (!name) return \"\"\n const matches = [...name.matchAll(/(\\b\\w)/g)]\n return (\n (matches.shift()?.[1] ?? \"\") + (matches.pop()?.[1] ?? \"\")\n ).toUpperCase()\n}\n\nfunction getAvatarColorByName(\n name: string | null | undefined\n): React.CSSProperties {\n const seed = name && name.length ? name : \"?\"\n let index = seed[0].toUpperCase().charCodeAt(0)\n const lastName = seed.split(\" \")[1]\n if (lastName) {\n index = Math.floor((index + lastName[0].toUpperCase().charCodeAt(0)) / 2)\n }\n index = Math.abs(index - 65) % AVATAR_NAME_PALETTE.length\n return {\n backgroundColor: AVATAR_NAME_PALETTE[index],\n color: \"#fff\",\n }\n}\n\nfunction getStringFromChildren(children: React.ReactNode): string {\n let out = \"\"\n React.Children.forEach(children, (child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n out += child\n }\n })\n return out\n}\n\ntype AvatarSize = \"default\" | \"sm\" | \"lg\"\ntype AvatarShape = \"rounded\" | \"squared\"\n\ntype AvatarProps = AvatarPrimitive.Root.Props & {\n size?: AvatarSize\n shape?: AvatarShape\n tooltip?: React.ReactNode | false\n}\n\nfunction getAvatarLabelFromChildren(\n children: React.ReactNode\n): React.ReactNode | undefined {\n let alt: string | undefined\n let name: string | undefined\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return\n if (child.type === AvatarFallback) {\n const props = child.props as AvatarFallbackProps\n if (props.name) name = props.name\n } else if (child.type === AvatarImage) {\n const props = child.props as AvatarPrimitive.Image.Props\n if (props.alt) alt = props.alt\n }\n })\n return name ?? alt\n}\n\nfunction Avatar({\n className,\n size = \"default\",\n shape = \"rounded\",\n tooltip,\n children,\n ...props\n}: AvatarProps) {\n const root = (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n data-shape={shape}\n className={cn(\n \"group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[shape=squared]:rounded-lg data-[shape=squared]:after:rounded-lg data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten\",\n className\n )}\n {...props}\n >\n {children}\n </AvatarPrimitive.Root>\n )\n\n const resolved =\n tooltip === undefined ? getAvatarLabelFromChildren(children) : tooltip\n if (resolved === false || resolved == null || resolved === \"\") return root\n\n return (\n <Tooltip>\n <TooltipTrigger render={root} />\n <TooltipContent>{resolved}</TooltipContent>\n </Tooltip>\n )\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\n \"aspect-square size-full rounded-full object-cover group-data-[shape=squared]/avatar:rounded-lg\",\n className\n )}\n {...props}\n />\n )\n}\n\ntype AvatarFallbackProps = AvatarPrimitive.Fallback.Props & {\n name?: string | null\n}\n\nfunction AvatarFallback({\n className,\n name,\n children,\n style,\n ...props\n}: AvatarFallbackProps) {\n const colorStyle = React.useMemo(() => {\n const seed = name ?? getStringFromChildren(children)\n return getAvatarColorByName(seed)\n }, [name, children])\n const initials = React.useMemo(\n () => (name && children == null ? getInitialsFromName(name) : undefined),\n [name, children]\n )\n\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex size-full items-center justify-center rounded-full font-medium text-sm group-data-[shape=squared]/avatar:rounded-lg group-data-[size=sm]/avatar:text-xs\",\n className\n )}\n style={{ ...colorStyle, ...style }}\n {...props}\n >\n {children ?? initials}\n </AvatarPrimitive.Fallback>\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"absolute end-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n AvatarBadge,\n getAvatarLabelFromChildren,\n getInitialsFromName,\n getAvatarColorByName,\n}\nexport type { AvatarProps, AvatarFallbackProps }\n"],"mappings":";;;;;;;AAMA,MAAM,sBAAsB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,SAAS,oBAAoB,MAAyC;AACpE,KAAI,CAAC,KAAM,QAAO;CAClB,MAAM,UAAU,CAAC,GAAG,KAAK,SAAS,UAAU,CAAC;AAC7C,UACG,QAAQ,OAAO,GAAG,MAAM,OAAO,QAAQ,KAAK,GAAG,MAAM,KACtD,aAAa;;AAGjB,SAAS,qBACP,MACqB;CACrB,MAAM,OAAO,QAAQ,KAAK,SAAS,OAAO;CAC1C,IAAI,QAAQ,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE;CAC/C,MAAM,WAAW,KAAK,MAAM,IAAI,CAAC;AACjC,KAAI,SACF,SAAQ,KAAK,OAAO,QAAQ,SAAS,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE;AAE3E,SAAQ,KAAK,IAAI,QAAQ,GAAG,GAAG,oBAAoB;AACnD,QAAO;EACL,iBAAiB,oBAAoB;EACrC,OAAO;EACR;;AAGH,SAAS,sBAAsB,UAAmC;CAChE,IAAI,MAAM;AACV,SAAM,SAAS,QAAQ,WAAW,UAAU;AAC1C,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,SAChD,QAAO;GAET;AACF,QAAO;;AAYT,SAAS,2BACP,UAC6B;CAC7B,IAAIA;CACJ,IAAIC;AACJ,SAAM,SAAS,QAAQ,WAAW,UAAU;AAC1C,MAAI,CAACC,QAAM,eAAe,MAAM,CAAE;AAClC,MAAI,MAAM,SAAS,gBAAgB;GACjC,MAAM,QAAQ,MAAM;AACpB,OAAI,MAAM,KAAM,QAAO,MAAM;aACpB,MAAM,SAAS,aAAa;GACrC,MAAM,QAAQ,MAAM;AACpB,OAAI,MAAM,IAAK,OAAM,MAAM;;GAE7B;AACF,QAAO,QAAQ;;AAGjB,SAASC,SAAO,EACd,WACA,OAAO,WACP,QAAQ,WACR,SACA,UACA,GAAG,SACW;CACd,MAAM,OACJ,oBAACC,OAAgB;EACf,aAAU;EACV,aAAW;EACX,cAAY;EACZ,WAAW,GACT,+TACA,UACD;EACD,GAAI;EAEH;GACoB;CAGzB,MAAM,WACJ,YAAY,SAAY,2BAA2B,SAAS,GAAG;AACjE,KAAI,aAAa,SAAS,YAAY,QAAQ,aAAa,GAAI,QAAO;AAEtE,QACE,qBAAC,sBACC,oBAAC,kBAAe,QAAQ,OAAQ,EAChC,oBAAC,4BAAgB,WAA0B,IACnC;;AAId,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAACA,OAAgB;EACf,aAAU;EACV,WAAW,GACT,kGACA,UACD;EACD,GAAI;GACJ;;AAQN,SAAS,eAAe,EACtB,WACA,MACA,UACA,OACA,GAAG,SACmB;CACtB,MAAM,aAAaF,QAAM,cAAc;AAErC,SAAO,qBADM,QAAQ,sBAAsB,SAAS,CACnB;IAChC,CAAC,MAAM,SAAS,CAAC;CACpB,MAAM,WAAWA,QAAM,cACd,QAAQ,YAAY,OAAO,oBAAoB,KAAK,GAAG,QAC9D,CAAC,MAAM,SAAS,CACjB;AAED,QACE,oBAACE,OAAgB;EACf,aAAU;EACV,WAAW,GACT,gKACA,UACD;EACD,OAAO;GAAE,GAAG;GAAY,GAAG;GAAO;EAClC,GAAI;YAEH,YAAY;GACY;;AAI/B,SAAS,YAAY,EAAE,WAAW,GAAG,SAAuC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,0KACA,iFACA,6FACA,iFACA,UACD;EACD,GAAI;GACJ"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime54 from "react/jsx-runtime";
|
|
2
|
-
import { Button } from "@base-ui/react/button";
|
|
3
|
-
import { VariantProps } from "class-variance-authority";
|
|
4
|
-
import * as class_variance_authority_types2 from "class-variance-authority/types";
|
|
5
|
-
|
|
6
|
-
//#region src/components/button.d.ts
|
|
7
|
-
declare const buttonVariants: (props?: ({
|
|
8
|
-
variant?: "default" | "destructive" | "secondary" | "outline" | "ghost" | "link" | null | undefined;
|
|
9
|
-
size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
10
|
-
} & class_variance_authority_types2.ClassProp) | undefined) => string;
|
|
11
|
-
declare function Button$1({
|
|
12
|
-
className,
|
|
13
|
-
variant,
|
|
14
|
-
size,
|
|
15
|
-
...props
|
|
16
|
-
}: Button.Props & VariantProps<typeof buttonVariants>): react_jsx_runtime54.JSX.Element;
|
|
17
|
-
//#endregion
|
|
18
|
-
export { buttonVariants as n, Button$1 as t };
|
|
19
|
-
//# sourceMappingURL=button-t2Pir50R.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button-t2Pir50R.d.ts","names":[],"sources":["../src/components/button.tsx"],"sourcesContent":[],"mappings":";;;;;;cAKM;;;IAmCL,+BAAA,CAAA;AAvCgE,iBAyCxD,QAAA,CAFR;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAOE,MAAA,CAAgB,KAPlB,GAO0B,YAP1B,CAAA,OAO8C,cAP9C,CAAA,CAAA,EAO6D,mBAAA,CAAA,GAAA,CAAA,OAP7D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-C-dF33ce.js","names":["React","Combobox","ComboboxPrimitive","useInfiniteScroll"],"sources":["../src/components/combobox.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { cn } from \"@px-ui/ui/lib/utils\";\nimport { Button } from \"@px-ui/ui/components/button\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"@px-ui/ui/components/input-group\";\nimport { Spinner } from \"@px-ui/ui/components/spinner\";\nimport {\n useAsyncOptions,\n type LoadOptionsConfig,\n} from \"@px-ui/ui/hooks/use-async-options\";\nimport useInfiniteScroll from \"@px-ui/ui/hooks/use-infinite-scroll\";\nimport useDebounce from \"@px-ui/ui/hooks/use-debounce\";\nimport { ChevronDownIcon, XIcon, CheckIcon } from \"lucide-react\";\n\ntype ComboboxAsyncContextValue = {\n isAsync: boolean;\n isLoading: boolean;\n isLoadingMore: boolean;\n isError: boolean;\n hasMore: boolean;\n onLoadMore: () => void;\n};\n\nconst ComboboxAsyncContext = React.createContext<ComboboxAsyncContextValue>({\n isAsync: false,\n isLoading: false,\n isLoadingMore: false,\n isError: false,\n hasMore: false,\n onLoadMore: () => {},\n});\n\nfunction useComboboxAsyncContext() {\n return React.useContext(ComboboxAsyncContext);\n}\n\nconst ComboboxListRefContext = React.createContext<HTMLElement | null>(null);\n\nconst ComboboxAnchorContext =\n React.createContext<React.MutableRefObject<HTMLElement | null> | null>(null);\n\nconst ComboboxInsidePopupContext = React.createContext(false);\n\nfunction useAttachComboboxAnchor<T extends HTMLElement>(\n userRef?: React.Ref<T> | null,\n) {\n const ctxRef = React.useContext(ComboboxAnchorContext);\n const insidePopup = React.useContext(ComboboxInsidePopupContext);\n return React.useCallback(\n (node: T | null) => {\n if (typeof userRef === \"function\") userRef(node);\n else if (userRef && typeof userRef === \"object\") {\n (userRef as React.MutableRefObject<T | null>).current = node;\n }\n if (ctxRef && !insidePopup) ctxRef.current = node;\n },\n [ctxRef, insidePopup, userRef],\n );\n}\n\nfunction normalizeInputValue(value: unknown) {\n return Array.isArray(value) ? value.join(\",\") : String(value ?? \"\");\n}\n\ntype ComboboxProps<\n Value,\n Multiple extends boolean | undefined = false,\n> = ComboboxPrimitive.Root.Props<Value, Multiple> & {\n loadOptions?: LoadOptionsConfig<Value>;\n debounceMs?: number;\n isLoading?: boolean;\n};\n\nfunction Combobox<Value, Multiple extends boolean | undefined = false>({\n loadOptions,\n debounceMs,\n isLoading = false,\n ...props\n}: ComboboxProps<Value, Multiple>) {\n const anchorRef = React.useRef<HTMLElement | null>(null);\n const inner = loadOptions ? (\n <ComboboxAsyncRoot\n loadOptions={loadOptions}\n debounceMs={debounceMs}\n isLoading={isLoading}\n {...(props as ComboboxPrimitive.Root.Props<Value, Multiple>)}\n />\n ) : (\n <ComboboxAsyncContext.Provider\n value={{\n isAsync: false,\n isLoading,\n isLoadingMore: false,\n isError: false,\n hasMore: false,\n onLoadMore: () => {},\n }}\n >\n <ComboboxPrimitive.Root autoHighlight {...props} />\n </ComboboxAsyncContext.Provider>\n );\n return (\n <ComboboxAnchorContext.Provider value={anchorRef}>\n {inner}\n </ComboboxAnchorContext.Provider>\n );\n}\n\nfunction ComboboxAsyncRoot<\n Value,\n Multiple extends boolean | undefined = false,\n>({\n loadOptions,\n debounceMs = 500,\n open: openProp,\n inputValue: inputValueProp,\n defaultInputValue,\n onOpenChange,\n onInputValueChange,\n filter: _ignoredFilter,\n items: _ignoredItems,\n autoHighlight = \"always\",\n isLoading: isLoadingProp = false,\n children,\n ...props\n}: Omit<ComboboxPrimitive.Root.Props<Value, Multiple>, \"autoHighlight\"> & {\n loadOptions: LoadOptionsConfig<Value>;\n debounceMs?: number;\n autoHighlight?: boolean | \"always\";\n isLoading?: boolean;\n}) {\n const [internalOpen, setInternalOpen] = React.useState(false);\n const open = openProp ?? internalOpen;\n const handleOpenChange = (\n next: boolean,\n eventDetails: ComboboxPrimitive.Root.ChangeEventDetails,\n ) => {\n if (openProp === undefined) setInternalOpen(next);\n onOpenChange?.(next, eventDetails);\n };\n\n const initialSearchValue = normalizeInputValue(\n inputValueProp ?? defaultInputValue,\n );\n const [searchValue, setSearchValue] = React.useState(initialSearchValue);\n const [debouncedSearchValue, setDebouncedSearchValue] =\n React.useState(initialSearchValue);\n\n React.useEffect(() => {\n if (inputValueProp !== undefined) {\n setSearchValue(normalizeInputValue(inputValueProp));\n }\n }, [inputValueProp]);\n\n useDebounce(\n () => {\n setDebouncedSearchValue(searchValue);\n },\n debounceMs,\n [searchValue],\n );\n\n const handleInputValueChange = (\n val: string,\n eventDetails: ComboboxPrimitive.Root.ChangeEventDetails,\n ) => {\n if (eventDetails?.reason !== \"item-press\") {\n setSearchValue(val);\n }\n onInputValueChange?.(val, eventDetails);\n };\n\n const asyncState = useAsyncOptions<Value>(loadOptions, {\n isOpen: open,\n inputValue: debouncedSearchValue,\n });\n\n const contextValue = React.useMemo<ComboboxAsyncContextValue>(\n () => ({\n isAsync: true,\n isLoading: isLoadingProp || asyncState.isLoading,\n isLoadingMore: asyncState.isLoadingMore,\n isError: asyncState.isError,\n hasMore: !!asyncState.hasMore,\n onLoadMore: asyncState.onLoadMore,\n }),\n [\n isLoadingProp,\n asyncState.isLoading,\n asyncState.isLoadingMore,\n asyncState.isError,\n asyncState.hasMore,\n asyncState.onLoadMore,\n ],\n );\n\n return (\n <ComboboxAsyncContext.Provider value={contextValue}>\n <ComboboxPrimitive.Root\n {...(props as ComboboxPrimitive.Root.Props<Value, Multiple>)}\n items={asyncState.items}\n filter={null}\n autoHighlight={autoHighlight as boolean}\n open={open}\n inputValue={inputValueProp}\n defaultInputValue={defaultInputValue}\n onOpenChange={handleOpenChange}\n onInputValueChange={handleInputValueChange}\n >\n {children}\n </ComboboxPrimitive.Root>\n </ComboboxAsyncContext.Provider>\n );\n}\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />;\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ref,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n const attachAnchor = useAttachComboboxAnchor<HTMLElement>(\n ref as React.Ref<HTMLElement> | undefined,\n );\n return (\n <ComboboxPrimitive.Trigger\n ref={attachAnchor}\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4\" />\n </ComboboxPrimitive.Trigger>\n );\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n );\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled,\n showTrigger = true,\n showClear = true,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean;\n showClear?: boolean;\n}) {\n const attachAnchor = useAttachComboboxAnchor<HTMLDivElement>();\n return (\n <InputGroup ref={attachAnchor} className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input\n render={\n <InputGroupInput {...(disabled !== undefined ? { disabled } : {})} />\n }\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n render={<ComboboxTrigger />}\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n {...(disabled !== undefined ? { disabled } : {})}\n />\n )}\n {showClear && (\n <ComboboxClear {...(disabled !== undefined ? { disabled } : {})} />\n )}\n </InputGroupAddon>\n {children}\n </InputGroup>\n );\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n children,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n const ctxAnchor = React.useContext(ComboboxAnchorContext);\n const resolvedAnchor = anchor ?? ctxAnchor ?? undefined;\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={resolvedAnchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n className={cn(\n \"group/combobox-content max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) origin-(--transform-origin) bg-popover text-popover-foreground ring-foreground/10 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-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 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 relative overflow-hidden rounded-md shadow-md ring-1 duration-100 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:shadow-none\",\n className,\n )}\n {...props}\n >\n <ComboboxInsidePopupContext.Provider value={true}>\n {children}\n </ComboboxInsidePopupContext.Provider>\n </ComboboxPrimitive.Popup>\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n );\n}\n\nfunction ComboboxList({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.List>) {\n const { isAsync, hasMore } = useComboboxAsyncContext();\n const [listEl, setListEl] = React.useState<HTMLElement | null>(null);\n\n const handleListRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n setListEl(node);\n\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n },\n [ref],\n );\n\n const resolvedChildren = React.useMemo(() => {\n if (isAsync && typeof children === \"function\") {\n return (\n <>\n <ComboboxPrimitive.Collection>\n {children}\n </ComboboxPrimitive.Collection>\n {hasMore ? <ComboboxLoadMoreSentinel /> : null}\n </>\n );\n }\n return children;\n }, [isAsync, hasMore, children]);\n\n return (\n <ComboboxListRefContext.Provider value={listEl}>\n <ComboboxPrimitive.List\n ref={handleListRef}\n data-slot=\"combobox-list\"\n className={cn(\n \"ppx-scrollbar data-empty:p-0 max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1\",\n className,\n )}\n {...props}\n >\n {resolvedChildren}\n </ComboboxPrimitive.List>\n </ComboboxListRefContext.Provider>\n );\n}\n\nfunction ComboboxLoadMoreSentinel() {\n const { isLoadingMore, hasMore, onLoadMore, isError } =\n useComboboxAsyncContext();\n const listEl = React.useContext(ComboboxListRefContext);\n const [ref] = useInfiniteScroll({\n isLoadingMore,\n hasMore,\n onLoadMore,\n disabled: isError,\n root: listEl,\n rootMargin: \"0px 0px 80px 0px\",\n });\n return (\n <ComboboxPrimitive.Status\n ref={ref}\n data-slot=\"combobox-load-more\"\n aria-label={isLoadingMore ? \"Loading more options\" : undefined}\n className=\"flex h-10 items-center justify-center\"\n >\n {isLoadingMore && <Spinner className=\"text-muted-foreground size-4\" />}\n </ComboboxPrimitive.Status>\n );\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"outline-hidden data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute end-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n );\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n );\n}\n\nfunction ComboboxStatus({\n loading = \"Loading…\",\n error = \"Failed to load options\",\n empty = \"No options found\",\n className,\n ...props\n}: Omit<ComboboxPrimitive.Status.Props, \"children\"> & {\n loading?: React.ReactNode;\n error?: React.ReactNode;\n empty?: React.ReactNode;\n}) {\n const { isAsync, isLoading, isError } = useComboboxAsyncContext();\n\n if (isLoading || (isAsync && isError)) {\n return (\n <ComboboxPrimitive.Status\n data-slot=\"combobox-status\"\n className={cn(\n \"text-muted-foreground flex w-full items-center justify-center gap-2 py-2 text-center text-sm\",\n className,\n )}\n {...props}\n >\n {isLoading ? (\n <>\n <Spinner aria-hidden className=\"size-4\" />\n {loading}\n </>\n ) : (\n error\n )}\n </ComboboxPrimitive.Status>\n );\n }\n\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"text-muted-foreground group-data-empty/combobox-content:flex hidden w-full justify-center py-2 text-center text-sm\",\n className,\n )}\n {...props}\n >\n {empty}\n </ComboboxPrimitive.Empty>\n );\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxChips({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props) {\n const attachAnchor = useAttachComboboxAnchor<HTMLDivElement>(\n ref as React.Ref<HTMLDivElement> | undefined,\n );\n return (\n <ComboboxPrimitive.Chips\n ref={attachAnchor}\n data-slot=\"combobox-chips\"\n className={cn(\n \"border-input shadow-xs focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1.5 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40 flex min-h-9 flex-wrap items-center gap-1.5 rounded-md border bg-transparent bg-clip-padding px-2.5 py-1.5 text-sm transition-[color,box-shadow]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean;\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"bg-muted text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pe-0 flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 whitespace-nowrap rounded-sm px-1.5 text-xs font-medium\",\n className,\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ms-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n );\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\"min-w-16 flex-1 outline-none\", className)}\n {...props}\n />\n );\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null);\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxClear,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxStatus,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-Dr2BYQU4.d.ts","names":[],"sources":["../src/components/combobox.tsx"],"sourcesContent":[],"mappings":"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"}
|
package/dist/input-B24wy7Fz.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime188 from "react/jsx-runtime";
|
|
2
|
-
import * as React$1 from "react";
|
|
3
|
-
|
|
4
|
-
//#region src/components/input.d.ts
|
|
5
|
-
declare function Input({
|
|
6
|
-
className,
|
|
7
|
-
type,
|
|
8
|
-
...props
|
|
9
|
-
}: React$1.ComponentProps<"input">): react_jsx_runtime188.JSX.Element;
|
|
10
|
-
//#endregion
|
|
11
|
-
export { Input as t };
|
|
12
|
-
//# sourceMappingURL=input-B24wy7Fz.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-B24wy7Fz.d.ts","names":[],"sources":["../src/components/input.tsx"],"sourcesContent":[],"mappings":";;;;iBAKS,KAAA;;;;GAAqC,OAAA,CAAM,0BAAuB,oBAAA,CAAA,GAAA,CAAA"}
|
package/dist/label-Ctmor2MM.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime202 from "react/jsx-runtime";
|
|
2
|
-
import * as React$1 from "react";
|
|
3
|
-
|
|
4
|
-
//#region src/components/label.d.ts
|
|
5
|
-
declare function Label({
|
|
6
|
-
className,
|
|
7
|
-
...props
|
|
8
|
-
}: React$1.ComponentProps<"label">): react_jsx_runtime202.JSX.Element;
|
|
9
|
-
//#endregion
|
|
10
|
-
export { Label as t };
|
|
11
|
-
//# sourceMappingURL=label-Ctmor2MM.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"label-Ctmor2MM.d.ts","names":[],"sources":["../src/components/label.tsx"],"sourcesContent":[],"mappings":";;;;iBAMS,KAAA;;;GAA+B,OAAA,CAAM,0BAAuB,oBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"separator-C-J7WHcn.d.ts","names":[],"sources":["../src/components/separator.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,WAAA;;;;GAIN,SAAA,CAAmB,QAAK,oBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-DhJ_qwgw.js","names":["Toggle","TogglePrimitive"],"sources":["../src/components/toggle.tsx"],"sourcesContent":["\"use client\";\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@px-ui/ui/lib/utils\";\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent shadow-xs hover:bg-muted\",\n },\n size: {\n default:\n \"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n sm: \"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5\",\n lg: \"h-10 min-w-10 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n"],"mappings":";;;;;;AAOA,MAAM,iBAAiB,IACrB,6gBACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SAAS;GACV;EACD,MAAM;GACJ,SACE;GACF,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;AAED,SAASA,SAAO,EACd,WACA,UAAU,WACV,OAAO,WACP,GAAG,SAC2D;AAC9D,QACE,oBAACC;EACC,aAAU;EACV,WAAW,GAAG,eAAe;GAAE;GAAS;GAAM;GAAW,CAAC,CAAC;EAC3D,GAAI;GACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-async-options-DHR8q5qX.d.ts","names":[],"sources":["../src/hooks/use-async-options.ts"],"sourcesContent":[],"mappings":";;;;KAKK;WACM;;AAL6D,CAAA;AAKxD,KAIX,iBAAA,CAAA,OAAiB,CAAA,GAAA;EAKjB,IAAA,EAJG,eAIU,CAJM,OAIN,CAAA;EAGR,KAAA,EAAA,GAAA;CACsB;KAJ3B,aAIS,CAAA,OAAA,CAAA,GAAA,CAAA,MAAA,EAAA;EAAR,MAAA,EAAA,MAAA;EAAO,IAAA,EAAA,MAAA;EAEG,MAAA,EAHN,WAGqB;CAEjB,EAAA,GAJR,OAIQ,CAJA,iBAIA,CAJkB,OAIlB,CAAA,CAAA;AACY,iBAHV,eAGU,CAAA,UAAA,GAAA,CAAA,CAAA,MAAA,EAAA;EAAd,QAAA,EADE,QACF;EAGR,MAAA,EAHQ,aAGR,CAHsB,OAGtB,CAAA;CACA,EAAA;EAAA,MAAA;EAAA;CAAA,EAAA;;;;;;;;EAyDQ,OAAA,EAAA,OAAA;EACA,UAAA,EAAA,GAAA,GAAA,IAAA;EACY,MAAA,+CAAA,oCAAA,gBAAA,QAAA,CAAA,EAAA,OAAA,CAAA,OAAA,CAAA;CAAd;AAAa,KAFX,iBAEW,CAAA,OAAA,CAAA,GAAA;EAGP,QAAA,EAJJ,QAII;EACiB,MAAA,EAJvB,aAIuB,CAJT,OAIS,CAAA;CAAlB;AAAwB,iBADvB,iBACuB,CAAA,UAAA,GAAA,CAAA,CAAA,WAAA,EAAxB,iBAAwB,CAAN,OAAM,CAAA,CAAA,EAAA,iBAAA,CAAA,OAAA,CAAA;AAAA,KAK3B,WAL2B,CAAA,CAAA,CAAA,GAMrC,CANqC,SAM3B,iBAN2B,CAAA,KAAA,MAAA,CAAA,GAAA,KAAA,GAAA,KAAA;AAAA,KAO3B,YAP2B,CAAA,CAAA,CAAA,GAQrC,CARqC,SAQ3B,iBAR2B,CAAA,KAAA,MAAA,CAAA,GAQM,KARN,EAAA,GAAA,KAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-async-options-wZ9LJ2BJ.js","names":["EMPTY_ITEMS: readonly unknown[]"],"sources":["../src/hooks/use-async-options.ts"],"sourcesContent":["import { useCallback, useMemo, useRef } from \"react\";\nimport { useInfiniteQuery, type QueryKey } from \"@tanstack/react-query\";\n\nconst EMPTY_ITEMS: readonly unknown[] = Object.freeze([]);\n\ntype LoadOptionsData<TData> = {\n options: TData[];\n hasMore: boolean;\n};\n\ntype LoadOptionsReturn<TData> = {\n data: LoadOptionsData<TData>;\n error: any;\n};\n\ntype LoadOptionsFn<TData> = (params: {\n search: string;\n page: number;\n signal: AbortSignal;\n}) => Promise<LoadOptionsReturn<TData>>;\n\nexport function useAsyncOptions<TData = any>(\n params: {\n cacheKey: QueryKey;\n loader: LoadOptionsFn<TData>;\n },\n {\n isOpen,\n inputValue,\n }: {\n isOpen: boolean;\n inputValue: string;\n },\n) {\n const isFetchedAfterMount = useRef(false);\n\n const query = useInfiniteQuery({\n queryKey: [...params.cacheKey, inputValue],\n queryFn: async ({ pageParam, signal }) => {\n const { error, data } = await params.loader({\n search: inputValue,\n page: pageParam,\n signal,\n });\n\n if (error) {\n throw new Error(error);\n }\n\n return data;\n },\n enabled: isOpen,\n initialPageParam: 1,\n staleTime: () => (isFetchedAfterMount.current ? Infinity : 0),\n getNextPageParam: (lastPage, allPages) =>\n lastPage.hasMore ? allPages.length + 1 : undefined,\n retry: false,\n });\n\n if (query.isFetchedAfterMount && !isFetchedAfterMount.current) {\n isFetchedAfterMount.current = true;\n }\n\n const items = useMemo(\n () =>\n (query.data?.pages.flatMap((page) => page.options) ??\n EMPTY_ITEMS) as TData[],\n [query.data?.pages],\n );\n\n const handleLoadMore = useCallback(() => {\n query.fetchNextPage();\n }, [query.fetchNextPage]);\n\n return {\n items,\n isLoading: query.isLoading,\n isLoadingMore: query.isFetchingNextPage,\n hasMore: query.hasNextPage,\n isError: query.isError,\n onLoadMore: handleLoadMore,\n _query: query,\n };\n}\n\nexport type LoadOptionsConfig<TData> = {\n cacheKey: QueryKey;\n loader: LoadOptionsFn<TData>;\n};\n\nexport function defineLoadOptions<TData = any>(\n loadOptions: LoadOptionsConfig<TData>,\n) {\n return loadOptions;\n}\n\nexport type InferOption<T> =\n T extends LoadOptionsConfig<infer TData> ? TData : never;\nexport type InferOptions<T> =\n T extends LoadOptionsConfig<infer TData> ? TData[] : never;\n"],"mappings":";;;;AAGA,MAAMA,cAAkC,OAAO,OAAO,EAAE,CAAC;AAkBzD,SAAgB,gBACd,QAIA,EACE,QACA,cAKF;CACA,MAAM,sBAAsB,OAAO,MAAM;CAEzC,MAAM,QAAQ,iBAAiB;EAC7B,UAAU,CAAC,GAAG,OAAO,UAAU,WAAW;EAC1C,SAAS,OAAO,EAAE,WAAW,aAAa;GACxC,MAAM,EAAE,OAAO,SAAS,MAAM,OAAO,OAAO;IAC1C,QAAQ;IACR,MAAM;IACN;IACD,CAAC;AAEF,OAAI,MACF,OAAM,IAAI,MAAM,MAAM;AAGxB,UAAO;;EAET,SAAS;EACT,kBAAkB;EAClB,iBAAkB,oBAAoB,UAAU,WAAW;EAC3D,mBAAmB,UAAU,aAC3B,SAAS,UAAU,SAAS,SAAS,IAAI;EAC3C,OAAO;EACR,CAAC;AAEF,KAAI,MAAM,uBAAuB,CAAC,oBAAoB,QACpD,qBAAoB,UAAU;CAGhC,MAAM,QAAQ,cAET,MAAM,MAAM,MAAM,SAAS,SAAS,KAAK,QAAQ,IAChD,aACJ,CAAC,MAAM,MAAM,MAAM,CACpB;CAED,MAAM,iBAAiB,kBAAkB;AACvC,QAAM,eAAe;IACpB,CAAC,MAAM,cAAc,CAAC;AAEzB,QAAO;EACL;EACA,WAAW,MAAM;EACjB,eAAe,MAAM;EACrB,SAAS,MAAM;EACf,SAAS,MAAM;EACf,YAAY;EACZ,QAAQ;EACT;;AAQH,SAAgB,kBACd,aACA;AACA,QAAO"}
|