@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.
Files changed (132) hide show
  1. package/dist/{avatar-4rGnx_Y-.d.ts → avatar-B225ydaK.d.ts} +10 -7
  2. package/dist/avatar-B225ydaK.d.ts.map +1 -0
  3. package/dist/{avatar-B1kOPk5C.js → avatar-Bb0tx0Hn.js} +39 -5
  4. package/dist/avatar-Bb0tx0Hn.js.map +1 -0
  5. package/dist/button-D3as908Z.d.ts +19 -0
  6. package/dist/button-D3as908Z.d.ts.map +1 -0
  7. package/dist/{combobox-C-dF33ce.js → combobox-CHkmVNZ2.js} +10 -6
  8. package/dist/combobox-CHkmVNZ2.js.map +1 -0
  9. package/dist/{combobox-Dr2BYQU4.d.ts → combobox-DXVq26eH.d.ts} +23 -19
  10. package/dist/combobox-DXVq26eH.d.ts.map +1 -0
  11. package/dist/components/accordion.d.ts +5 -5
  12. package/dist/components/accordion.d.ts.map +1 -1
  13. package/dist/components/alert-dialog.d.ts +14 -14
  14. package/dist/components/alert-dialog.js +1 -1
  15. package/dist/components/alert-dialog.js.map +1 -1
  16. package/dist/components/alert.d.ts +5 -5
  17. package/dist/components/aspect-ratio.d.ts +2 -2
  18. package/dist/components/aspect-ratio.d.ts.map +1 -1
  19. package/dist/components/avatar-group.d.ts +4 -4
  20. package/dist/components/avatar-group.d.ts.map +1 -1
  21. package/dist/components/avatar-group.js +1 -1
  22. package/dist/components/avatar.d.ts +1 -1
  23. package/dist/components/avatar.js +1 -1
  24. package/dist/components/badge.d.ts +3 -3
  25. package/dist/components/badge.d.ts.map +1 -1
  26. package/dist/components/breadcrumb.d.ts +7 -7
  27. package/dist/components/breadcrumb.d.ts.map +1 -1
  28. package/dist/components/button-group.d.ts +6 -6
  29. package/dist/components/button-group.d.ts.map +1 -1
  30. package/dist/components/button.d.ts +1 -1
  31. package/dist/components/calendar.d.ts +4 -4
  32. package/dist/components/calendar.d.ts.map +1 -1
  33. package/dist/components/card.d.ts +8 -8
  34. package/dist/components/card.d.ts.map +1 -1
  35. package/dist/components/carousel.d.ts +7 -7
  36. package/dist/components/carousel.d.ts.map +1 -1
  37. package/dist/components/checkbox.d.ts +2 -2
  38. package/dist/components/collapsible.d.ts +4 -4
  39. package/dist/components/combobox.d.ts +2 -2
  40. package/dist/components/combobox.js +2 -2
  41. package/dist/components/command.d.ts +11 -11
  42. package/dist/components/context-menu.d.ts +16 -16
  43. package/dist/components/context-menu.d.ts.map +1 -1
  44. package/dist/components/currency-select-field.d.ts +4 -4
  45. package/dist/components/currency-select-field.js +2 -2
  46. package/dist/components/dialog.d.ts +11 -11
  47. package/dist/components/drawer.d.ts +11 -11
  48. package/dist/components/dropdown-menu.d.ts +1 -1
  49. package/dist/components/empty.d.ts +9 -9
  50. package/dist/components/field.d.ts +15 -15
  51. package/dist/components/file-upload-field.d.ts +2 -2
  52. package/dist/components/file-upload.d.ts +2 -2
  53. package/dist/components/hover-card.d.ts +4 -4
  54. package/dist/components/hover-card.d.ts.map +1 -1
  55. package/dist/components/input-group.d.ts +12 -12
  56. package/dist/components/input-group.d.ts.map +1 -1
  57. package/dist/components/input-otp.d.ts +5 -5
  58. package/dist/components/input-otp.d.ts.map +1 -1
  59. package/dist/components/input.d.ts +1 -1
  60. package/dist/components/item.d.ts +15 -15
  61. package/dist/components/item.d.ts.map +1 -1
  62. package/dist/components/kbd.d.ts +3 -3
  63. package/dist/components/label.d.ts +1 -1
  64. package/dist/components/menubar.d.ts +18 -18
  65. package/dist/components/native-select.d.ts +4 -4
  66. package/dist/components/native-select.d.ts.map +1 -1
  67. package/dist/components/navigation-menu.d.ts +9 -9
  68. package/dist/components/pagination.d.ts +9 -9
  69. package/dist/components/phone-input.d.ts +2 -2
  70. package/dist/components/popover.d.ts +7 -7
  71. package/dist/components/progress.d.ts +6 -6
  72. package/dist/components/radio-group.d.ts +3 -3
  73. package/dist/components/resizable.d.ts +4 -4
  74. package/dist/components/scroll-area.d.ts +3 -3
  75. package/dist/components/select.d.ts +10 -10
  76. package/dist/components/separator.d.ts +1 -1
  77. package/dist/components/sheet.d.ts +9 -9
  78. package/dist/components/sidebar.d.ts +26 -26
  79. package/dist/components/sidebar.d.ts.map +1 -1
  80. package/dist/components/skeleton.d.ts +2 -2
  81. package/dist/components/slider.d.ts +2 -2
  82. package/dist/components/spinner.d.ts +2 -2
  83. package/dist/components/switch.d.ts +2 -2
  84. package/dist/components/table.d.ts +9 -9
  85. package/dist/components/tabs.d.ts +5 -5
  86. package/dist/components/textarea.d.ts +2 -2
  87. package/dist/components/toast.d.ts +1 -1
  88. package/dist/components/toggle-group.d.ts +4 -4
  89. package/dist/components/toggle-group.js +1 -1
  90. package/dist/components/toggle.d.ts +1 -1
  91. package/dist/components/toggle.js +1 -1
  92. package/dist/components/tooltip.d.ts +1 -1
  93. package/dist/{dropdown-menu-Cgc7-ldl.d.ts → dropdown-menu-D4Lq8KcT.d.ts} +17 -17
  94. package/dist/{dropdown-menu-Cgc7-ldl.d.ts.map → dropdown-menu-D4Lq8KcT.d.ts.map} +1 -1
  95. package/dist/{file-upload-C58YcyJl.d.ts → file-upload-Cbz2hJLS.d.ts} +11 -11
  96. package/dist/{file-upload-C58YcyJl.d.ts.map → file-upload-Cbz2hJLS.d.ts.map} +1 -1
  97. package/dist/hooks/use-async-options.d.ts +1 -1
  98. package/dist/hooks/use-async-options.js +1 -1
  99. package/dist/input-BtIHVMec.d.ts +12 -0
  100. package/dist/input-BtIHVMec.d.ts.map +1 -0
  101. package/dist/label-DSbNg_nY.d.ts +11 -0
  102. package/dist/label-DSbNg_nY.d.ts.map +1 -0
  103. package/dist/providers/px-ui-provider.d.ts +4 -4
  104. package/dist/{separator-C-J7WHcn.d.ts → separator-xmk2NR_s.d.ts} +3 -3
  105. package/dist/separator-xmk2NR_s.d.ts.map +1 -0
  106. package/dist/{toast-D_9k54-I.d.ts → toast-C_zQMC72.d.ts} +4 -4
  107. package/dist/{toast-D_9k54-I.d.ts.map → toast-C_zQMC72.d.ts.map} +1 -1
  108. package/dist/{toggle-CrkoxTHs.d.ts → toggle-CASEgcGG.d.ts} +6 -6
  109. package/dist/{toggle-CrkoxTHs.d.ts.map → toggle-CASEgcGG.d.ts.map} +1 -1
  110. package/dist/{toggle-DhJ_qwgw.js → toggle-lqIyJptS.js} +5 -4
  111. package/dist/toggle-lqIyJptS.js.map +1 -0
  112. package/dist/{tooltip-CxZtG0tL.d.ts → tooltip-ChzCP6Bv.d.ts} +6 -6
  113. package/dist/{tooltip-CxZtG0tL.d.ts.map → tooltip-ChzCP6Bv.d.ts.map} +1 -1
  114. package/dist/{use-async-options-DHR8q5qX.d.ts → use-async-options-CD5BgoHR.d.ts} +20 -3
  115. package/dist/use-async-options-CD5BgoHR.d.ts.map +1 -0
  116. package/dist/{use-async-options-wZ9LJ2BJ.js → use-async-options-CcsImGX4.js} +13 -6
  117. package/dist/use-async-options-CcsImGX4.js.map +1 -0
  118. package/package.json +1 -1
  119. package/dist/avatar-4rGnx_Y-.d.ts.map +0 -1
  120. package/dist/avatar-B1kOPk5C.js.map +0 -1
  121. package/dist/button-t2Pir50R.d.ts +0 -19
  122. package/dist/button-t2Pir50R.d.ts.map +0 -1
  123. package/dist/combobox-C-dF33ce.js.map +0 -1
  124. package/dist/combobox-Dr2BYQU4.d.ts.map +0 -1
  125. package/dist/input-B24wy7Fz.d.ts +0 -12
  126. package/dist/input-B24wy7Fz.d.ts.map +0 -1
  127. package/dist/label-Ctmor2MM.d.ts +0 -11
  128. package/dist/label-Ctmor2MM.d.ts.map +0 -1
  129. package/dist/separator-C-J7WHcn.d.ts.map +0 -1
  130. package/dist/toggle-DhJ_qwgw.js.map +0 -1
  131. package/dist/use-async-options-DHR8q5qX.d.ts.map +0 -1
  132. package/dist/use-async-options-wZ9LJ2BJ.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { r as TooltipProvider } from "../tooltip-CxZtG0tL.js";
2
- import { n as AnchoredToaster, o as ToasterProps } from "../toast-D_9k54-I.js";
3
- import * as react_jsx_runtime128 from "react/jsx-runtime";
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): react_jsx_runtime128.JSX.Element;
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 react_jsx_runtime178 from "react/jsx-runtime";
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): react_jsx_runtime178.JSX.Element;
9
+ }: Separator.Props): react_jsx_runtime69.JSX.Element;
10
10
  //#endregion
11
11
  export { Separator$1 as t };
12
- //# sourceMappingURL=separator-C-J7WHcn.d.ts.map
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 react_jsx_runtime173 from "react/jsx-runtime";
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): react_jsx_runtime173.JSX.Element;
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">): react_jsx_runtime173.JSX.Element;
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-D_9k54-I.d.ts.map
74
+ //# sourceMappingURL=toast-C_zQMC72.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast-D_9k54-I.d.ts","names":[],"sources":["../src/components/toast.tsx"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"toast-C_zQMC72.d.ts","names":[],"sources":["../src/components/toast.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
- import * as react_jsx_runtime177 from "react/jsx-runtime";
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 class_variance_authority_types6 from "class-variance-authority/types";
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
- } & class_variance_authority_types6.ClassProp) | undefined) => string;
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>): react_jsx_runtime177.JSX.Element;
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-CrkoxTHs.d.ts.map
19
+ //# sourceMappingURL=toggle-CASEgcGG.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-CrkoxTHs.d.ts","names":[],"sources":["../src/components/toggle.tsx"],"sourcesContent":[],"mappings":";;;;;;cAOM;;;IAoBL,+BAAA,CAAA;AAxBiE,iBA0BzD,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"}
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 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", {
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-DhJ_qwgw.js.map
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 react_jsx_runtime179 from "react/jsx-runtime";
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): react_jsx_runtime179.JSX.Element;
8
+ }: Tooltip.Provider.Props): react_jsx_runtime255.JSX.Element;
9
9
  declare function Tooltip$1({
10
10
  ...props
11
- }: Tooltip.Root.Props): react_jsx_runtime179.JSX.Element;
11
+ }: Tooltip.Root.Props): react_jsx_runtime255.JSX.Element;
12
12
  declare function TooltipTrigger({
13
13
  ...props
14
- }: Tooltip.Trigger.Props): react_jsx_runtime179.JSX.Element;
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">): react_jsx_runtime179.JSX.Element;
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-CxZtG0tL.d.ts.map
26
+ //# sourceMappingURL=tooltip-ChzCP6Bv.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-CxZtG0tL.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"}
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
- hasMore: boolean;
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-DHR8q5qX.d.ts.map
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, inputValue],
11
+ queryKey: [...params.cacheKey, effectiveSearch],
10
12
  queryFn: async ({ pageParam, signal }) => {
11
13
  const { error, data } = await params.loader({
12
- search: inputValue,
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) => lastPage.hasMore ? allPages.length + 1 : void 0,
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-wZ9LJ2BJ.js.map
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@px-ui/ui",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "A modern React component library built with Tailwind CSS and shadcn/ui",
5
5
  "type": "module",
6
6
  "files": [
@@ -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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"}
@@ -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"}
@@ -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"}