@px-ui/ui 1.0.2 → 1.0.3
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-DDdL9xDH.js → avatar-B2FY4pgk.js} +9 -8
- package/dist/avatar-B2FY4pgk.js.map +1 -0
- package/dist/{avatar-DmWdHRhV.d.ts → avatar-CtZEW1Kd.d.ts} +9 -6
- package/dist/avatar-CtZEW1Kd.d.ts.map +1 -0
- package/dist/{button-hBUFMmsZ.js → button-B3SNyz-U.js} +2 -2
- package/dist/{button-hBUFMmsZ.js.map → button-B3SNyz-U.js.map} +1 -1
- package/dist/{button-CyWFGUr9.d.ts → button-peTbHgr6.d.ts} +7 -7
- package/dist/{button-CyWFGUr9.d.ts.map → button-peTbHgr6.d.ts.map} +1 -1
- package/dist/{combobox-26YfHkRT.d.ts → combobox-BGJkF5tM.d.ts} +18 -18
- package/dist/combobox-BGJkF5tM.d.ts.map +1 -0
- package/dist/{combobox-CnpyzZ7B.js → combobox-CBerynHz.js} +14 -11
- package/dist/{combobox-CnpyzZ7B.js.map → combobox-CBerynHz.js.map} +1 -1
- package/dist/components/accordion.js +1 -1
- package/dist/components/alert-dialog.d.ts +14 -14
- package/dist/components/alert-dialog.d.ts.map +1 -1
- package/dist/components/alert-dialog.js +3 -3
- package/dist/components/alert.d.ts +7 -7
- package/dist/components/alert.d.ts.map +1 -1
- package/dist/components/alert.js +2 -2
- package/dist/components/aspect-ratio.d.ts +2 -2
- package/dist/components/aspect-ratio.d.ts.map +1 -1
- package/dist/components/aspect-ratio.js +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 +5 -5
- package/dist/components/avatar.d.ts +1 -1
- package/dist/components/avatar.js +3 -3
- package/dist/components/badge.d.ts +3 -3
- package/dist/components/badge.js +1 -1
- package/dist/components/breadcrumb.d.ts +7 -7
- package/dist/components/breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb.js +2 -2
- package/dist/components/button-group.d.ts +6 -6
- package/dist/components/button-group.d.ts.map +1 -1
- package/dist/components/button-group.js +2 -2
- package/dist/components/button.d.ts +1 -1
- package/dist/components/button.js +2 -2
- package/dist/components/calendar.d.ts +4 -4
- package/dist/components/calendar.js +3 -3
- package/dist/components/card.d.ts +8 -8
- package/dist/components/card.js +2 -2
- package/dist/components/carousel.d.ts +7 -7
- package/dist/components/carousel.d.ts.map +1 -1
- package/dist/components/carousel.js +3 -3
- package/dist/components/chart.d.ts +5 -5
- package/dist/components/chart.d.ts.map +1 -1
- package/dist/components/chart.js +2 -2
- package/dist/components/checkbox.d.ts +2 -2
- package/dist/components/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/collapsible.d.ts +4 -4
- package/dist/components/collapsible.d.ts.map +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/combobox.d.ts +1 -1
- package/dist/components/combobox.js +11 -11
- package/dist/components/command.d.ts +11 -11
- package/dist/components/command.d.ts.map +1 -1
- package/dist/components/command.js +7 -7
- package/dist/components/context-menu.d.ts +16 -16
- package/dist/components/context-menu.d.ts.map +1 -1
- package/dist/components/context-menu.js +2 -2
- package/dist/components/currency-select-field.d.ts +3 -3
- package/dist/components/currency-select-field.d.ts.map +1 -1
- package/dist/components/currency-select-field.js +12 -12
- package/dist/components/dialog.d.ts +11 -11
- package/dist/components/dialog.d.ts.map +1 -1
- package/dist/components/dialog.js +3 -3
- package/dist/components/direction.js +1 -1
- package/dist/components/drawer.d.ts +11 -11
- package/dist/components/drawer.js +2 -2
- package/dist/components/dropdown-menu.d.ts +1 -1
- package/dist/components/dropdown-menu.js +2 -2
- package/dist/components/empty.d.ts +9 -9
- package/dist/components/empty.js +1 -1
- package/dist/components/field.d.ts +15 -15
- package/dist/components/field.d.ts.map +1 -1
- package/dist/components/field.js +4 -4
- package/dist/components/file-upload-field.d.ts +2 -2
- package/dist/components/file-upload-field.js +6 -6
- package/dist/components/file-upload.d.ts +2 -2
- package/dist/components/file-upload.js +4 -4
- package/dist/components/hover-card.d.ts +4 -4
- package/dist/components/hover-card.js +1 -1
- package/dist/components/input-group.d.ts +11 -11
- package/dist/components/input-group.js +5 -5
- package/dist/components/input-otp.d.ts +5 -5
- package/dist/components/input-otp.js +2 -2
- package/dist/components/input.d.ts +1 -1
- package/dist/components/input.js +2 -2
- package/dist/components/item.d.ts +14 -14
- package/dist/components/item.d.ts.map +1 -1
- package/dist/components/item.js +3 -3
- package/dist/components/kbd.d.ts +3 -3
- package/dist/components/kbd.d.ts.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/label.d.ts +1 -1
- package/dist/components/label.js +2 -2
- package/dist/components/menubar.d.ts +18 -18
- package/dist/components/menubar.d.ts.map +1 -1
- package/dist/components/menubar.js +3 -3
- package/dist/components/native-select.d.ts +4 -4
- package/dist/components/native-select.d.ts.map +1 -1
- package/dist/components/native-select.js +2 -2
- package/dist/components/navigation-menu.d.ts +11 -11
- package/dist/components/navigation-menu.js +1 -1
- package/dist/components/pagination.d.ts +9 -9
- package/dist/components/pagination.js +3 -3
- package/dist/components/phone-input.d.ts +2 -2
- package/dist/components/phone-input.js +2 -2
- package/dist/components/popover.d.ts +7 -7
- package/dist/components/popover.js +2 -2
- package/dist/components/progress.d.ts +6 -6
- package/dist/components/progress.js +1 -1
- package/dist/components/radio-group.d.ts +3 -3
- package/dist/components/radio-group.js +1 -1
- package/dist/components/resizable.d.ts +4 -4
- package/dist/components/resizable.js +1 -1
- package/dist/components/scroll-area.d.ts +3 -3
- package/dist/components/scroll-area.js +2 -2
- package/dist/components/select.d.ts +10 -10
- package/dist/components/select.js +2 -2
- package/dist/components/separator.d.ts +1 -1
- package/dist/components/separator.js +2 -2
- package/dist/components/sheet.d.ts +9 -9
- package/dist/components/sheet.js +3 -3
- package/dist/components/sidebar.d.ts +26 -26
- package/dist/components/sidebar.js +9 -9
- package/dist/components/skeleton.d.ts +2 -2
- package/dist/components/skeleton.js +2 -2
- package/dist/components/slider.d.ts +2 -2
- package/dist/components/slider.js +1 -1
- package/dist/components/spinner.d.ts +2 -2
- package/dist/components/spinner.js +2 -2
- package/dist/components/switch.d.ts +2 -2
- package/dist/components/switch.js +1 -1
- package/dist/components/table.d.ts +9 -9
- package/dist/components/table.js +2 -2
- package/dist/components/tabs.d.ts +7 -7
- package/dist/components/tabs.js +1 -1
- package/dist/components/textarea.d.ts +2 -2
- package/dist/components/textarea.js +2 -2
- package/dist/components/toast.d.ts +1 -1
- package/dist/components/toast.js +2 -2
- package/dist/components/toggle-group.d.ts +4 -4
- package/dist/components/toggle-group.js +3 -3
- package/dist/components/toggle.d.ts +1 -1
- package/dist/components/toggle.js +2 -2
- package/dist/components/tooltip.d.ts +1 -1
- package/dist/components/tooltip.js +2 -2
- package/dist/{dialog-DrdXva1a.js → dialog-6oTB2jEH.js} +4 -4
- package/dist/{dialog-DrdXva1a.js.map → dialog-6oTB2jEH.js.map} +1 -1
- package/dist/{dropdown-menu-CcumvwhM.js → dropdown-menu-CN7gHXiF.js} +3 -3
- package/dist/{dropdown-menu-CcumvwhM.js.map → dropdown-menu-CN7gHXiF.js.map} +1 -1
- package/dist/{dropdown-menu-k8EpuZUs.d.ts → dropdown-menu-z9weMtW6.d.ts} +17 -17
- package/dist/{dropdown-menu-k8EpuZUs.d.ts.map → dropdown-menu-z9weMtW6.d.ts.map} +1 -1
- package/dist/{file-upload-SjxuvdHQ.d.ts → file-upload-CHIguMmH.d.ts} +12 -12
- package/dist/{file-upload-SjxuvdHQ.d.ts.map → file-upload-CHIguMmH.d.ts.map} +1 -1
- package/dist/{file-upload-DeCIv13t.js → file-upload-CPaU1bTN.js} +5 -5
- package/dist/{file-upload-DeCIv13t.js.map → file-upload-CPaU1bTN.js.map} +1 -1
- package/dist/hooks/use-async-options.js +1 -1
- package/dist/hooks/use-debounce.js +1 -1
- package/dist/hooks/use-file-upload.js +1 -1
- package/dist/hooks/use-infinite-scroll.js +2 -2
- package/dist/hooks/use-intersection-observer.js +1 -1
- package/dist/hooks/use-mobile.js +1 -1
- package/dist/{input-stLmd1eW.d.ts → input-BY_HLiBI.d.ts} +3 -3
- package/dist/input-BY_HLiBI.d.ts.map +1 -0
- package/dist/{input-8jqdnUZl.js → input-ByI__4Tb.js} +3 -3
- package/dist/{input-8jqdnUZl.js.map → input-ByI__4Tb.js.map} +1 -1
- package/dist/{input-group-DqEkmpXW.js → input-group-Dw3LpMMS.js} +6 -6
- package/dist/{input-group-DqEkmpXW.js.map → input-group-Dw3LpMMS.js.map} +1 -1
- package/dist/label-C3yvmi-S.d.ts +11 -0
- package/dist/label-C3yvmi-S.d.ts.map +1 -0
- package/dist/{label-AaH9ZYCZ.js → label-DJ-ONU1d.js} +3 -3
- package/dist/{label-AaH9ZYCZ.js.map → label-DJ-ONU1d.js.map} +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/{popover-C9D43EuT.js → popover-z4aFoVCA.js} +3 -3
- package/dist/{popover-C9D43EuT.js.map → popover-z4aFoVCA.js.map} +1 -1
- package/dist/providers/px-ui-provider.d.ts +3 -3
- package/dist/providers/px-ui-provider.js +4 -4
- package/dist/{separator-BPiu2k9V.d.ts → separator-7n2clBT1.d.ts} +3 -3
- package/dist/{separator-BPiu2k9V.d.ts.map → separator-7n2clBT1.d.ts.map} +1 -1
- package/dist/{separator-BS3ilczC.js → separator-Cay2tYJi.js} +2 -2
- package/dist/{separator-BS3ilczC.js.map → separator-Cay2tYJi.js.map} +1 -1
- package/dist/{sheet-CLjNDrfL.js → sheet-BLGcp2vY.js} +4 -4
- package/dist/{sheet-CLjNDrfL.js.map → sheet-BLGcp2vY.js.map} +1 -1
- package/dist/{skeleton-BcIxI5Wq.js → skeleton-Cpayevuv.js} +2 -2
- package/dist/{skeleton-BcIxI5Wq.js.map → skeleton-Cpayevuv.js.map} +1 -1
- package/dist/{spinner-Bo0sUZEg.js → spinner-EaERkwNt.js} +2 -2
- package/dist/{spinner-Bo0sUZEg.js.map → spinner-EaERkwNt.js.map} +1 -1
- package/dist/{textarea-Cq0o323P.js → textarea-CD4lb4bT.js} +3 -3
- package/dist/{textarea-Cq0o323P.js.map → textarea-CD4lb4bT.js.map} +1 -1
- package/dist/{toast-COWAQbIk.js → toast-BIAksZXy.js} +3 -3
- package/dist/{toast-COWAQbIk.js.map → toast-BIAksZXy.js.map} +1 -1
- package/dist/{toast-BBU6Q5ZU.d.ts → toast-C3bNvyqf.d.ts} +4 -4
- package/dist/{toast-BBU6Q5ZU.d.ts.map → toast-C3bNvyqf.d.ts.map} +1 -1
- package/dist/{toggle-DhJ_qwgw.js → toggle-Cwsbk1jY.js} +2 -2
- package/dist/{toggle-DhJ_qwgw.js.map → toggle-Cwsbk1jY.js.map} +1 -1
- package/dist/{toggle-DB_9fDC8.d.ts → toggle-E0JXUyzs.d.ts} +5 -5
- package/dist/{toggle-DB_9fDC8.d.ts.map → toggle-E0JXUyzs.d.ts.map} +1 -1
- package/dist/{tooltip-DkPxCJIL.js → tooltip-CIwyqk_3.js} +2 -2
- package/dist/{tooltip-DkPxCJIL.js.map → tooltip-CIwyqk_3.js.map} +1 -1
- package/dist/{tooltip--8PhLdia.d.ts → tooltip-ChzCP6Bv.d.ts} +6 -6
- package/dist/{tooltip--8PhLdia.d.ts.map → tooltip-ChzCP6Bv.d.ts.map} +1 -1
- package/dist/{use-async-options-wZ9LJ2BJ.js → use-async-options-MznolA0k.js} +1 -1
- package/dist/{use-async-options-wZ9LJ2BJ.js.map → use-async-options-MznolA0k.js.map} +1 -1
- package/dist/{use-debounce-_qaEZqtt.js → use-debounce-CwnVqtDF.js} +1 -1
- package/dist/{use-debounce-_qaEZqtt.js.map → use-debounce-CwnVqtDF.js.map} +1 -1
- package/dist/{use-file-upload-Dxrej28u.js → use-file-upload-CiAqUFFh.js} +1 -1
- package/dist/{use-file-upload-Dxrej28u.js.map → use-file-upload-CiAqUFFh.js.map} +1 -1
- package/dist/{use-infinite-scroll-CpbhGGT5.js → use-infinite-scroll-DHi7CKyt.js} +2 -2
- package/dist/{use-infinite-scroll-CpbhGGT5.js.map → use-infinite-scroll-DHi7CKyt.js.map} +1 -1
- package/dist/{use-intersection-observer-CZfnep4z.js → use-intersection-observer-h5ZpX18y.js} +1 -1
- package/dist/{use-intersection-observer-CZfnep4z.js.map → use-intersection-observer-h5ZpX18y.js.map} +1 -1
- package/dist/{use-mobile-l5ebOdQl.js → use-mobile-CFSCadSm.js} +1 -1
- package/dist/{use-mobile-l5ebOdQl.js.map → use-mobile-CFSCadSm.js.map} +1 -1
- package/dist/{utils-mWJR2N24.js → utils-8o789qxH.js} +1 -1
- package/dist/{utils-mWJR2N24.js.map → utils-8o789qxH.js.map} +1 -1
- package/package.json +3 -2
- package/dist/avatar-DDdL9xDH.js.map +0 -1
- package/dist/avatar-DmWdHRhV.d.ts.map +0 -1
- package/dist/combobox-26YfHkRT.d.ts.map +0 -1
- package/dist/input-stLmd1eW.d.ts.map +0 -1
- package/dist/label-CokIQ6Ry.d.ts +0 -11
- package/dist/label-CokIQ6Ry.d.ts.map +0 -1
- /package/dist/{direction-BKSh6e6q.js → direction-CB0IW0WZ.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
2
|
-
import { i as TooltipTrigger, n as TooltipContent, t as Tooltip } from "./tooltip-
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { t as cn } from "./utils-8o789qxH.js";
|
|
2
|
+
import { i as TooltipTrigger, n as TooltipContent, t as Tooltip } from "./tooltip-CIwyqk_3.js";
|
|
4
3
|
import * as React$1 from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { Avatar } from "@base-ui/react/avatar";
|
|
6
6
|
|
|
7
7
|
//#region src/components/avatar.tsx
|
|
@@ -71,11 +71,12 @@ function getAvatarLabelFromChildren(children) {
|
|
|
71
71
|
});
|
|
72
72
|
return name ?? alt;
|
|
73
73
|
}
|
|
74
|
-
function Avatar$1({ className, size = "default", tooltip, children, ...props }) {
|
|
74
|
+
function Avatar$1({ className, size = "default", shape = "rounded", tooltip, children, ...props }) {
|
|
75
75
|
const root = /* @__PURE__ */ jsx(Avatar.Root, {
|
|
76
76
|
"data-slot": "avatar",
|
|
77
77
|
"data-size": size,
|
|
78
|
-
|
|
78
|
+
"data-shape": shape,
|
|
79
|
+
className: cn("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", className),
|
|
79
80
|
...props,
|
|
80
81
|
children
|
|
81
82
|
});
|
|
@@ -86,7 +87,7 @@ function Avatar$1({ className, size = "default", tooltip, children, ...props })
|
|
|
86
87
|
function AvatarImage({ className, ...props }) {
|
|
87
88
|
return /* @__PURE__ */ jsx(Avatar.Image, {
|
|
88
89
|
"data-slot": "avatar-image",
|
|
89
|
-
className: cn("aspect-square size-full rounded-full object-cover", className),
|
|
90
|
+
className: cn("aspect-square size-full rounded-full object-cover group-data-[shape=squared]/avatar:rounded-lg", className),
|
|
90
91
|
...props
|
|
91
92
|
});
|
|
92
93
|
}
|
|
@@ -97,7 +98,7 @@ function AvatarFallback({ className, name, children, style, ...props }) {
|
|
|
97
98
|
const initials = React$1.useMemo(() => name && children == null ? getInitialsFromName(name) : void 0, [name, children]);
|
|
98
99
|
return /* @__PURE__ */ jsx(Avatar.Fallback, {
|
|
99
100
|
"data-slot": "avatar-fallback",
|
|
100
|
-
className: cn("flex size-full items-center justify-center rounded-full font-medium text-sm group-data-[size=sm]/avatar:text-xs", className),
|
|
101
|
+
className: cn("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", className),
|
|
101
102
|
style: {
|
|
102
103
|
...colorStyle,
|
|
103
104
|
...style
|
|
@@ -116,4 +117,4 @@ function AvatarBadge({ className, ...props }) {
|
|
|
116
117
|
|
|
117
118
|
//#endregion
|
|
118
119
|
export { getAvatarColorByName as a, AvatarImage as i, AvatarBadge as n, getAvatarLabelFromChildren as o, AvatarFallback as r, getInitialsFromName as s, Avatar$1 as t };
|
|
119
|
-
//# sourceMappingURL=avatar-
|
|
120
|
+
//# sourceMappingURL=avatar-B2FY4pgk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar-B2FY4pgk.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,27 +1,30 @@
|
|
|
1
|
-
import * as react_jsx_runtime42 from "react/jsx-runtime";
|
|
2
1
|
import * as React$1 from "react";
|
|
2
|
+
import * as react_jsx_runtime136 from "react/jsx-runtime";
|
|
3
3
|
import { Avatar } from "@base-ui/react/avatar";
|
|
4
4
|
|
|
5
5
|
//#region src/components/avatar.d.ts
|
|
6
6
|
declare function getInitialsFromName(name: string | null | undefined): string;
|
|
7
7
|
declare function getAvatarColorByName(name: string | null | undefined): React$1.CSSProperties;
|
|
8
8
|
type AvatarSize = "default" | "sm" | "lg";
|
|
9
|
+
type AvatarShape = "rounded" | "squared";
|
|
9
10
|
type AvatarProps = Avatar.Root.Props & {
|
|
10
11
|
size?: AvatarSize;
|
|
12
|
+
shape?: AvatarShape;
|
|
11
13
|
tooltip?: React$1.ReactNode | false;
|
|
12
14
|
};
|
|
13
15
|
declare function getAvatarLabelFromChildren(children: React$1.ReactNode): React$1.ReactNode | undefined;
|
|
14
16
|
declare function Avatar$1({
|
|
15
17
|
className,
|
|
16
18
|
size,
|
|
19
|
+
shape,
|
|
17
20
|
tooltip,
|
|
18
21
|
children,
|
|
19
22
|
...props
|
|
20
|
-
}: AvatarProps):
|
|
23
|
+
}: AvatarProps): react_jsx_runtime136.JSX.Element;
|
|
21
24
|
declare function AvatarImage({
|
|
22
25
|
className,
|
|
23
26
|
...props
|
|
24
|
-
}: Avatar.Image.Props):
|
|
27
|
+
}: Avatar.Image.Props): react_jsx_runtime136.JSX.Element;
|
|
25
28
|
type AvatarFallbackProps = Avatar.Fallback.Props & {
|
|
26
29
|
name?: string | null;
|
|
27
30
|
};
|
|
@@ -31,11 +34,11 @@ declare function AvatarFallback({
|
|
|
31
34
|
children,
|
|
32
35
|
style,
|
|
33
36
|
...props
|
|
34
|
-
}: AvatarFallbackProps):
|
|
37
|
+
}: AvatarFallbackProps): react_jsx_runtime136.JSX.Element;
|
|
35
38
|
declare function AvatarBadge({
|
|
36
39
|
className,
|
|
37
40
|
...props
|
|
38
|
-
}: React$1.ComponentProps<"span">):
|
|
41
|
+
}: React$1.ComponentProps<"span">): react_jsx_runtime136.JSX.Element;
|
|
39
42
|
//#endregion
|
|
40
43
|
export { AvatarImage as a, getAvatarLabelFromChildren as c, AvatarFallbackProps as i, getInitialsFromName as l, AvatarBadge as n, AvatarProps as o, AvatarFallback as r, getAvatarColorByName as s, Avatar$1 as t };
|
|
41
|
-
//# sourceMappingURL=avatar-
|
|
44
|
+
//# sourceMappingURL=avatar-CtZEW1Kd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar-CtZEW1Kd.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,4 +1,4 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
1
|
+
import { t as cn } from "./utils-8o789qxH.js";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { Button } from "@base-ui/react/button";
|
|
4
4
|
import { cva } from "class-variance-authority";
|
|
@@ -44,4 +44,4 @@ function Button$1({ className, variant = "default", size = "default", ...props }
|
|
|
44
44
|
|
|
45
45
|
//#endregion
|
|
46
46
|
export { buttonVariants as n, Button$1 as t };
|
|
47
|
-
//# sourceMappingURL=button-
|
|
47
|
+
//# sourceMappingURL=button-B3SNyz-U.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-
|
|
1
|
+
{"version":3,"file":"button-B3SNyz-U.js","names":["Button","ButtonPrimitive"],"sources":["../src/components/button.tsx"],"sourcesContent":["import { Button as ButtonPrimitive } from \"@base-ui/react/button\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 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-primary text-primary-foreground hover:bg-primary/80\",\n outline:\n \"border-border bg-background shadow-xs hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n destructive:\n \"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5\",\n lg: \"h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n icon: \"size-9\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"mappings":";;;;;;AAKA,MAAM,iBAAiB,IACrB,8lBACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SACE;GACF,WACE;GACF,OACE;GACF,aACE;GACF,MAAM;GACP;EACD,MAAM;GACJ,SACE;GACF,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,MAAM;GACN,WACE;GACF,WACE;GACF,WAAW;GACZ;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,19 +1,19 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime140 from "react/jsx-runtime";
|
|
2
2
|
import { Button } from "@base-ui/react/button";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
|
-
import * as
|
|
4
|
+
import * as class_variance_authority_types8 from "class-variance-authority/types";
|
|
5
5
|
|
|
6
6
|
//#region src/components/button.d.ts
|
|
7
7
|
declare const buttonVariants: (props?: ({
|
|
8
|
-
variant?: "link" | "default" | "
|
|
9
|
-
size?: "default" | "sm" | "
|
|
10
|
-
} &
|
|
8
|
+
variant?: "link" | "default" | "outline" | "destructive" | "secondary" | "ghost" | null | undefined;
|
|
9
|
+
size?: "default" | "sm" | "xs" | "icon" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
10
|
+
} & class_variance_authority_types8.ClassProp) | undefined) => string;
|
|
11
11
|
declare function Button$1({
|
|
12
12
|
className,
|
|
13
13
|
variant,
|
|
14
14
|
size,
|
|
15
15
|
...props
|
|
16
|
-
}: Button.Props & VariantProps<typeof buttonVariants>):
|
|
16
|
+
}: Button.Props & VariantProps<typeof buttonVariants>): react_jsx_runtime140.JSX.Element;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { buttonVariants as n, Button$1 as t };
|
|
19
|
-
//# sourceMappingURL=button-
|
|
19
|
+
//# sourceMappingURL=button-peTbHgr6.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-
|
|
1
|
+
{"version":3,"file":"button-peTbHgr6.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,oBAAA,CAAA,GAAA,CAAA,OAP7D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as LoadOptionsConfig } from "./use-async-options-DHR8q5qX.js";
|
|
2
|
-
import * as react_jsx_runtime46 from "react/jsx-runtime";
|
|
3
2
|
import * as React$1 from "react";
|
|
3
|
+
import * as react_jsx_runtime157 from "react/jsx-runtime";
|
|
4
4
|
import { Combobox } from "@base-ui/react";
|
|
5
5
|
|
|
6
6
|
//#region src/components/combobox.d.ts
|
|
@@ -14,20 +14,20 @@ declare function Combobox$1<Value, Multiple extends boolean | undefined = false>
|
|
|
14
14
|
debounceMs,
|
|
15
15
|
isLoading,
|
|
16
16
|
...props
|
|
17
|
-
}: ComboboxProps<Value, Multiple>):
|
|
17
|
+
}: ComboboxProps<Value, Multiple>): react_jsx_runtime157.JSX.Element;
|
|
18
18
|
declare function ComboboxValue({
|
|
19
19
|
...props
|
|
20
|
-
}: Combobox.Value.Props):
|
|
20
|
+
}: Combobox.Value.Props): react_jsx_runtime157.JSX.Element;
|
|
21
21
|
declare function ComboboxTrigger({
|
|
22
22
|
className,
|
|
23
23
|
children,
|
|
24
24
|
ref,
|
|
25
25
|
...props
|
|
26
|
-
}: Combobox.Trigger.Props):
|
|
26
|
+
}: Combobox.Trigger.Props): react_jsx_runtime157.JSX.Element;
|
|
27
27
|
declare function ComboboxClear({
|
|
28
28
|
className,
|
|
29
29
|
...props
|
|
30
|
-
}: Combobox.Clear.Props):
|
|
30
|
+
}: Combobox.Clear.Props): react_jsx_runtime157.JSX.Element;
|
|
31
31
|
declare function ComboboxInput({
|
|
32
32
|
className,
|
|
33
33
|
children,
|
|
@@ -38,7 +38,7 @@ declare function ComboboxInput({
|
|
|
38
38
|
}: Combobox.Input.Props & {
|
|
39
39
|
showTrigger?: boolean;
|
|
40
40
|
showClear?: boolean;
|
|
41
|
-
}):
|
|
41
|
+
}): react_jsx_runtime157.JSX.Element;
|
|
42
42
|
declare function ComboboxContent({
|
|
43
43
|
className,
|
|
44
44
|
side,
|
|
@@ -48,29 +48,29 @@ declare function ComboboxContent({
|
|
|
48
48
|
anchor,
|
|
49
49
|
children,
|
|
50
50
|
...props
|
|
51
|
-
}: Combobox.Popup.Props & Pick<Combobox.Positioner.Props, "side" | "align" | "sideOffset" | "alignOffset" | "anchor">):
|
|
51
|
+
}: Combobox.Popup.Props & Pick<Combobox.Positioner.Props, "side" | "align" | "sideOffset" | "alignOffset" | "anchor">): react_jsx_runtime157.JSX.Element;
|
|
52
52
|
declare function ComboboxList({
|
|
53
53
|
className,
|
|
54
54
|
children,
|
|
55
55
|
ref,
|
|
56
56
|
...props
|
|
57
|
-
}: React$1.ComponentPropsWithRef<typeof Combobox.List>):
|
|
57
|
+
}: React$1.ComponentPropsWithRef<typeof Combobox.List>): react_jsx_runtime157.JSX.Element;
|
|
58
58
|
declare function ComboboxItem({
|
|
59
59
|
className,
|
|
60
60
|
children,
|
|
61
61
|
...props
|
|
62
|
-
}: Combobox.Item.Props):
|
|
62
|
+
}: Combobox.Item.Props): react_jsx_runtime157.JSX.Element;
|
|
63
63
|
declare function ComboboxGroup({
|
|
64
64
|
className,
|
|
65
65
|
...props
|
|
66
|
-
}: Combobox.Group.Props):
|
|
66
|
+
}: Combobox.Group.Props): react_jsx_runtime157.JSX.Element;
|
|
67
67
|
declare function ComboboxLabel({
|
|
68
68
|
className,
|
|
69
69
|
...props
|
|
70
|
-
}: Combobox.GroupLabel.Props):
|
|
70
|
+
}: Combobox.GroupLabel.Props): react_jsx_runtime157.JSX.Element;
|
|
71
71
|
declare function ComboboxCollection({
|
|
72
72
|
...props
|
|
73
|
-
}: Combobox.Collection.Props):
|
|
73
|
+
}: Combobox.Collection.Props): react_jsx_runtime157.JSX.Element;
|
|
74
74
|
declare function ComboboxStatus({
|
|
75
75
|
loading,
|
|
76
76
|
error,
|
|
@@ -81,16 +81,16 @@ declare function ComboboxStatus({
|
|
|
81
81
|
loading?: React$1.ReactNode;
|
|
82
82
|
error?: React$1.ReactNode;
|
|
83
83
|
empty?: React$1.ReactNode;
|
|
84
|
-
}):
|
|
84
|
+
}): react_jsx_runtime157.JSX.Element;
|
|
85
85
|
declare function ComboboxSeparator({
|
|
86
86
|
className,
|
|
87
87
|
...props
|
|
88
|
-
}: Combobox.Separator.Props):
|
|
88
|
+
}: Combobox.Separator.Props): react_jsx_runtime157.JSX.Element;
|
|
89
89
|
declare function ComboboxChips({
|
|
90
90
|
className,
|
|
91
91
|
ref,
|
|
92
92
|
...props
|
|
93
|
-
}: React$1.ComponentPropsWithRef<typeof Combobox.Chips> & Combobox.Chips.Props):
|
|
93
|
+
}: React$1.ComponentPropsWithRef<typeof Combobox.Chips> & Combobox.Chips.Props): react_jsx_runtime157.JSX.Element;
|
|
94
94
|
declare function ComboboxChip({
|
|
95
95
|
className,
|
|
96
96
|
children,
|
|
@@ -98,12 +98,12 @@ declare function ComboboxChip({
|
|
|
98
98
|
...props
|
|
99
99
|
}: Combobox.Chip.Props & {
|
|
100
100
|
showRemove?: boolean;
|
|
101
|
-
}):
|
|
101
|
+
}): react_jsx_runtime157.JSX.Element;
|
|
102
102
|
declare function ComboboxChipsInput({
|
|
103
103
|
className,
|
|
104
104
|
...props
|
|
105
|
-
}: Combobox.Input.Props):
|
|
105
|
+
}: Combobox.Input.Props): react_jsx_runtime157.JSX.Element;
|
|
106
106
|
declare function useComboboxAnchor(): React$1.RefObject<HTMLDivElement | null>;
|
|
107
107
|
//#endregion
|
|
108
108
|
export { useComboboxAnchor as _, ComboboxClear as a, ComboboxGroup as c, ComboboxLabel as d, ComboboxList as f, ComboboxValue as g, ComboboxTrigger as h, ComboboxChipsInput as i, ComboboxInput as l, ComboboxStatus as m, ComboboxChip as n, ComboboxCollection as o, ComboboxSeparator as p, ComboboxChips as r, ComboboxContent as s, Combobox$1 as t, ComboboxItem as u };
|
|
109
|
-
//# sourceMappingURL=combobox-
|
|
109
|
+
//# sourceMappingURL=combobox-BGJkF5tM.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-BGJkF5tM.d.ts","names":[],"sources":["../src/components/combobox.tsx"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
7
|
-
import { t as
|
|
1
|
+
import { n as useAsyncOptions } from "./use-async-options-MznolA0k.js";
|
|
2
|
+
import { t as useDebounce } from "./use-debounce-CwnVqtDF.js";
|
|
3
|
+
import { t as use_infinite_scroll_default } from "./use-infinite-scroll-DHi7CKyt.js";
|
|
4
|
+
import { t as cn } from "./utils-8o789qxH.js";
|
|
5
|
+
import { t as Button } from "./button-B3SNyz-U.js";
|
|
6
|
+
import { i as InputGroupInput, n as InputGroupAddon, r as InputGroupButton, t as InputGroup } from "./input-group-Dw3LpMMS.js";
|
|
7
|
+
import { t as Spinner } from "./spinner-EaERkwNt.js";
|
|
8
|
+
import * as React$1 from "react";
|
|
8
9
|
import { CheckIcon, ChevronDownIcon, XIcon } from "lucide-react";
|
|
9
10
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
-
import * as React$1 from "react";
|
|
11
11
|
import { Combobox } from "@base-ui/react";
|
|
12
12
|
|
|
13
13
|
//#region src/components/combobox.tsx
|
|
@@ -275,9 +275,12 @@ function ComboboxStatus({ loading = "Loading…", error = "Failed to load option
|
|
|
275
275
|
const { isAsync, isLoading, isError } = useComboboxAsyncContext();
|
|
276
276
|
if (isLoading || isAsync && isError) return /* @__PURE__ */ jsx(Combobox.Status, {
|
|
277
277
|
"data-slot": "combobox-status",
|
|
278
|
-
className: cn("text-muted-foreground flex w-full items-center justify-center py-2 text-center text-sm", className),
|
|
278
|
+
className: cn("text-muted-foreground flex w-full items-center justify-center gap-2 py-2 text-center text-sm", className),
|
|
279
279
|
...props,
|
|
280
|
-
children: isLoading ?
|
|
280
|
+
children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Spinner, {
|
|
281
|
+
"aria-hidden": true,
|
|
282
|
+
className: "size-4"
|
|
283
|
+
}), loading] }) : error
|
|
281
284
|
});
|
|
282
285
|
return /* @__PURE__ */ jsx(Combobox.Empty, {
|
|
283
286
|
"data-slot": "combobox-empty",
|
|
@@ -331,4 +334,4 @@ function useComboboxAnchor() {
|
|
|
331
334
|
|
|
332
335
|
//#endregion
|
|
333
336
|
export { useComboboxAnchor as _, ComboboxClear as a, ComboboxGroup as c, ComboboxLabel as d, ComboboxList as f, ComboboxValue as g, ComboboxTrigger as h, ComboboxChipsInput as i, ComboboxInput as l, ComboboxStatus as m, ComboboxChip as n, ComboboxCollection as o, ComboboxSeparator as p, ComboboxChips as r, ComboboxContent as s, Combobox$1 as t, ComboboxItem as u };
|
|
334
|
-
//# sourceMappingURL=combobox-
|
|
337
|
+
//# sourceMappingURL=combobox-CBerynHz.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-CnpyzZ7B.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 py-2 text-center text-sm\",\n className,\n )}\n {...props}\n >\n {isLoading ? loading : error}\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
|
+
{"version":3,"file":"combobox-CBerynHz.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":";;;;;;;;;;;;;AA6BA,MAAM,uBAAuBA,QAAM,cAAyC;CAC1E,SAAS;CACT,WAAW;CACX,eAAe;CACf,SAAS;CACT,SAAS;CACT,kBAAkB;CACnB,CAAC;AAEF,SAAS,0BAA0B;AACjC,QAAOA,QAAM,WAAW,qBAAqB;;AAG/C,MAAM,yBAAyBA,QAAM,cAAkC,KAAK;AAE5E,MAAM,wBACJA,QAAM,cAAiE,KAAK;AAE9E,MAAM,6BAA6BA,QAAM,cAAc,MAAM;AAE7D,SAAS,wBACP,SACA;CACA,MAAM,SAASA,QAAM,WAAW,sBAAsB;CACtD,MAAM,cAAcA,QAAM,WAAW,2BAA2B;AAChE,QAAOA,QAAM,aACV,SAAmB;AAClB,MAAI,OAAO,YAAY,WAAY,SAAQ,KAAK;WACvC,WAAW,OAAO,YAAY,SACrC,CAAC,QAA6C,UAAU;AAE1D,MAAI,UAAU,CAAC,YAAa,QAAO,UAAU;IAE/C;EAAC;EAAQ;EAAa;EAAQ,CAC/B;;AAGH,SAAS,oBAAoB,OAAgB;AAC3C,QAAO,MAAM,QAAQ,MAAM,GAAG,MAAM,KAAK,IAAI,GAAG,OAAO,SAAS,GAAG;;AAYrE,SAASC,WAA8D,EACrE,aACA,YACA,YAAY,OACZ,GAAG,SAC8B;CACjC,MAAM,YAAYD,QAAM,OAA2B,KAAK;CACxD,MAAM,QAAQ,cACZ,oBAAC;EACc;EACD;EACD;EACX,GAAK;GACL,GAEF,oBAAC,qBAAqB;EACpB,OAAO;GACL,SAAS;GACT;GACA,eAAe;GACf,SAAS;GACT,SAAS;GACT,kBAAkB;GACnB;YAED,oBAACE,SAAkB;GAAK;GAAc,GAAI;IAAS;GACrB;AAElC,QACE,oBAAC,sBAAsB;EAAS,OAAO;YACpC;GAC8B;;AAIrC,SAAS,kBAGP,EACA,aACA,aAAa,KACb,MAAM,UACN,YAAY,gBACZ,mBACA,cACA,oBACA,QAAQ,gBACR,OAAO,eACP,gBAAgB,UAChB,WAAW,gBAAgB,OAC3B,UACA,GAAG,SAMF;CACD,MAAM,CAAC,cAAc,mBAAmBF,QAAM,SAAS,MAAM;CAC7D,MAAM,OAAO,YAAY;CACzB,MAAM,oBACJ,MACA,iBACG;AACH,MAAI,aAAa,OAAW,iBAAgB,KAAK;AACjD,iBAAe,MAAM,aAAa;;CAGpC,MAAM,qBAAqB,oBACzB,kBAAkB,kBACnB;CACD,MAAM,CAAC,aAAa,kBAAkBA,QAAM,SAAS,mBAAmB;CACxE,MAAM,CAAC,sBAAsB,2BAC3BA,QAAM,SAAS,mBAAmB;AAEpC,SAAM,gBAAgB;AACpB,MAAI,mBAAmB,OACrB,gBAAe,oBAAoB,eAAe,CAAC;IAEpD,CAAC,eAAe,CAAC;AAEpB,mBACQ;AACJ,0BAAwB,YAAY;IAEtC,YACA,CAAC,YAAY,CACd;CAED,MAAM,0BACJ,KACA,iBACG;AACH,MAAI,cAAc,WAAW,aAC3B,gBAAe,IAAI;AAErB,uBAAqB,KAAK,aAAa;;CAGzC,MAAM,aAAa,gBAAuB,aAAa;EACrD,QAAQ;EACR,YAAY;EACb,CAAC;CAEF,MAAM,eAAeA,QAAM,eAClB;EACL,SAAS;EACT,WAAW,iBAAiB,WAAW;EACvC,eAAe,WAAW;EAC1B,SAAS,WAAW;EACpB,SAAS,CAAC,CAAC,WAAW;EACtB,YAAY,WAAW;EACxB,GACD;EACE;EACA,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;EACZ,CACF;AAED,QACE,oBAAC,qBAAqB;EAAS,OAAO;YACpC,oBAACE,SAAkB;GACjB,GAAK;GACL,OAAO,WAAW;GAClB,QAAQ;GACO;GACT;GACN,YAAY;GACO;GACnB,cAAc;GACd,oBAAoB;GAEnB;IACsB;GACK;;AAIpC,SAAS,cAAc,EAAE,GAAG,SAAwC;AAClE,QAAO,oBAACA,SAAkB;EAAM,aAAU;EAAiB,GAAI;GAAS;;AAG1E,SAAS,gBAAgB,EACvB,WACA,UACA,KACA,GAAG,SAC+B;CAClC,MAAM,eAAe,wBACnB,IACD;AACD,QACE,qBAACA,SAAkB;EACjB,KAAK;EACL,aAAU;EACV,WAAW,GAAG,wCAAwC,UAAU;EAChE,GAAI;aAEH,UACD,oBAAC,mBAAgB,WAAU,qDAAqD;GACtD;;AAIhC,SAAS,cAAc,EAAE,WAAW,GAAG,SAAwC;AAC7E,QACE,oBAACA,SAAkB;EACjB,aAAU;EACV,QAAQ,oBAAC;GAAiB,SAAQ;GAAQ,MAAK;IAAY;EAC3D,WAAW,GAAG,UAAU;EACxB,GAAI;YAEJ,oBAAC,SAAM,WAAU,wBAAwB;GACjB;;AAI9B,SAAS,cAAc,EACrB,WACA,UACA,UACA,cAAc,MACd,YAAY,MACZ,GAAG,SAIF;AAED,QACE,qBAAC;EAAW,KAFO,yBAAyC;EAE7B,WAAW,GAAG,UAAU,UAAU;;GAC/D,oBAACA,SAAkB;IACjB,QACE,oBAAC,mBAAgB,GAAK,aAAa,SAAY,EAAE,UAAU,GAAG,EAAE,GAAK;IAEvE,GAAI;KACJ;GACF,qBAAC;IAAgB,OAAM;eACpB,eACC,oBAAC;KACC,MAAK;KACL,SAAQ;KACR,QAAQ,oBAAC,oBAAkB;KAC3B,aAAU;KACV,WAAU;KACV,GAAK,aAAa,SAAY,EAAE,UAAU,GAAG,EAAE;MAC/C,EAEH,aACC,oBAAC,iBAAc,GAAK,aAAa,SAAY,EAAE,UAAU,GAAG,EAAE,GAAK;KAErD;GACjB;;GACU;;AAIjB,SAAS,gBAAgB,EACvB,WACA,OAAO,UACP,aAAa,GACb,QAAQ,SACR,cAAc,GACd,QACA,UACA,GAAG,SAKA;CACH,MAAM,YAAYF,QAAM,WAAW,sBAAsB;CACzD,MAAM,iBAAiB,UAAU,aAAa;AAC9C,QACE,oBAACE,SAAkB,oBACjB,oBAACA,SAAkB;EACX;EACM;EACL;EACM;EACb,QAAQ;EACR,WAAU;YAEV,oBAACA,SAAkB;GACjB,aAAU;GACV,WAAW,GACT,k0BACA,UACD;GACD,GAAI;aAEJ,oBAAC,2BAA2B;IAAS,OAAO;IACzC;KACmC;IACd;GACG,GACN;;AAI/B,SAAS,aAAa,EACpB,WACA,UACA,KACA,GAAG,SAC0D;CAC7D,MAAM,EAAE,SAAS,YAAY,yBAAyB;CACtD,MAAM,CAAC,QAAQ,aAAaF,QAAM,SAA6B,KAAK;CAEpE,MAAM,gBAAgBA,QAAM,aACzB,SAAgC;AAC/B,YAAU,KAAK;AAEf,MAAI,OAAO,QAAQ,WACjB,KAAI,KAAK;WACA,IACT,KAAI,UAAU;IAGlB,CAAC,IAAI,CACN;CAED,MAAM,mBAAmBA,QAAM,cAAc;AAC3C,MAAI,WAAW,OAAO,aAAa,WACjC,QACE,4CACE,oBAACE,SAAkB,cAChB,WAC4B,EAC9B,UAAU,oBAAC,6BAA2B,GAAG,QACzC;AAGP,SAAO;IACN;EAAC;EAAS;EAAS;EAAS,CAAC;AAEhC,QACE,oBAAC,uBAAuB;EAAS,OAAO;YACtC,oBAACA,SAAkB;GACjB,KAAK;GACL,aAAU;GACV,WAAW,GACT,4KACA,UACD;GACD,GAAI;aAEH;IACsB;GACO;;AAItC,SAAS,2BAA2B;CAClC,MAAM,EAAE,eAAe,SAAS,YAAY,YAC1C,yBAAyB;CAE3B,MAAM,CAAC,OAAOC,4BAAkB;EAC9B;EACA;EACA;EACA,UAAU;EACV,MANaH,QAAM,WAAW,uBAAuB;EAOrD,YAAY;EACb,CAAC;AACF,QACE,oBAACE,SAAkB;EACZ;EACL,aAAU;EACV,cAAY,gBAAgB,yBAAyB;EACrD,WAAU;YAET,iBAAiB,oBAAC,WAAQ,WAAU,iCAAiC;GAC7C;;AAI/B,SAAS,aAAa,EACpB,WACA,UACA,GAAG,SAC4B;AAC/B,QACE,qBAACA,SAAkB;EACjB,aAAU;EACV,WAAW,GACT,mZACA,UACD;EACD,GAAI;aAEH,UACD,oBAACA,SAAkB;GACjB,QACE,oBAAC,UAAK,WAAU,+EAA+E;aAGjG,oBAAC,aAAU,WAAU,wBAAwB;IACb;GACX;;AAI7B,SAAS,cAAc,EAAE,WAAW,GAAG,SAAwC;AAC7E,QACE,oBAACA,SAAkB;EACjB,aAAU;EACV,WAAW,GAAG,UAAU;EACxB,GAAI;GACJ;;AAIN,SAAS,cAAc,EACrB,WACA,GAAG,SACkC;AACrC,QACE,oBAACA,SAAkB;EACjB,aAAU;EACV,WAAW,GAAG,6CAA6C,UAAU;EACrE,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAAE,GAAG,SAA6C;AAC5E,QACE,oBAACA,SAAkB;EAAW,aAAU;EAAsB,GAAI;GAAS;;AAI/E,SAAS,eAAe,EACtB,UAAU,YACV,QAAQ,0BACR,QAAQ,oBACR,WACA,GAAG,SAKF;CACD,MAAM,EAAE,SAAS,WAAW,YAAY,yBAAyB;AAEjE,KAAI,aAAc,WAAW,QAC3B,QACE,oBAACA,SAAkB;EACjB,aAAU;EACV,WAAW,GACT,gGACA,UACD;EACD,GAAI;YAEH,YACC,4CACE,oBAAC;GAAQ;GAAY,WAAU;IAAW,EACzC,WACA,GAEH;GAEuB;AAI/B,QACE,oBAACA,SAAkB;EACjB,aAAU;EACV,WAAW,GACT,sHACA,UACD;EACD,GAAI;YAEH;GACuB;;AAI9B,SAAS,kBAAkB,EACzB,WACA,GAAG,SACiC;AACpC,QACE,oBAACA,SAAkB;EACjB,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,cAAc,EACrB,WACA,KACA,GAAG,SAE4B;CAC/B,MAAM,eAAe,wBACnB,IACD;AACD,QACE,oBAACA,SAAkB;EACjB,KAAK;EACL,aAAU;EACV,WAAW,GACT,+dACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,WACA,UACA,aAAa,MACb,GAAG,SAGF;AACD,QACE,qBAACA,SAAkB;EACjB,aAAU;EACV,WAAW,GACT,6RACA,UACD;EACD,GAAI;aAEH,UACA,cACC,oBAACA,SAAkB;GACjB,QAAQ,oBAAC;IAAO,SAAQ;IAAQ,MAAK;KAAY;GACjD,WAAU;GACV,aAAU;aAEV,oBAAC,SAAM,WAAU,wBAAwB;IACZ;GAEV;;AAI7B,SAAS,mBAAmB,EAC1B,WACA,GAAG,SAC6B;AAChC,QACE,oBAACA,SAAkB;EACjB,aAAU;EACV,WAAW,GAAG,gCAAgC,UAAU;EACxD,GAAI;GACJ;;AAIN,SAAS,oBAAoB;AAC3B,QAAOF,QAAM,OAA8B,KAAK"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as cn } from "../utils-
|
|
1
|
+
import { t as cn } from "../utils-8o789qxH.js";
|
|
2
2
|
import { Accordion as Accordion$1 } from "@base-ui/react/accordion";
|
|
3
3
|
import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import { t as Button } from "../button-
|
|
2
|
-
import * as react_jsx_runtime3 from "react/jsx-runtime";
|
|
1
|
+
import { t as Button } from "../button-peTbHgr6.js";
|
|
3
2
|
import * as React$1 from "react";
|
|
3
|
+
import * as react_jsx_runtime13 from "react/jsx-runtime";
|
|
4
4
|
import { AlertDialog as AlertDialog$1 } from "@base-ui/react/alert-dialog";
|
|
5
5
|
|
|
6
6
|
//#region src/components/alert-dialog.d.ts
|
|
7
7
|
declare function AlertDialog({
|
|
8
8
|
...props
|
|
9
|
-
}: AlertDialog$1.Root.Props):
|
|
9
|
+
}: AlertDialog$1.Root.Props): react_jsx_runtime13.JSX.Element;
|
|
10
10
|
declare function AlertDialogTrigger({
|
|
11
11
|
...props
|
|
12
|
-
}: AlertDialog$1.Trigger.Props):
|
|
12
|
+
}: AlertDialog$1.Trigger.Props): react_jsx_runtime13.JSX.Element;
|
|
13
13
|
declare function AlertDialogPortal({
|
|
14
14
|
...props
|
|
15
|
-
}: AlertDialog$1.Portal.Props):
|
|
15
|
+
}: AlertDialog$1.Portal.Props): react_jsx_runtime13.JSX.Element;
|
|
16
16
|
declare function AlertDialogOverlay({
|
|
17
17
|
className,
|
|
18
18
|
...props
|
|
19
|
-
}: AlertDialog$1.Backdrop.Props):
|
|
19
|
+
}: AlertDialog$1.Backdrop.Props): react_jsx_runtime13.JSX.Element;
|
|
20
20
|
declare function AlertDialogContent({
|
|
21
21
|
className,
|
|
22
22
|
size,
|
|
23
23
|
...props
|
|
24
24
|
}: AlertDialog$1.Popup.Props & {
|
|
25
25
|
size?: "default" | "sm";
|
|
26
|
-
}):
|
|
26
|
+
}): react_jsx_runtime13.JSX.Element;
|
|
27
27
|
declare function AlertDialogHeader({
|
|
28
28
|
className,
|
|
29
29
|
...props
|
|
30
|
-
}: React$1.ComponentProps<"div">):
|
|
30
|
+
}: React$1.ComponentProps<"div">): react_jsx_runtime13.JSX.Element;
|
|
31
31
|
declare function AlertDialogFooter({
|
|
32
32
|
className,
|
|
33
33
|
...props
|
|
34
|
-
}: React$1.ComponentProps<"div">):
|
|
34
|
+
}: React$1.ComponentProps<"div">): react_jsx_runtime13.JSX.Element;
|
|
35
35
|
declare function AlertDialogMedia({
|
|
36
36
|
className,
|
|
37
37
|
...props
|
|
38
|
-
}: React$1.ComponentProps<"div">):
|
|
38
|
+
}: React$1.ComponentProps<"div">): react_jsx_runtime13.JSX.Element;
|
|
39
39
|
declare function AlertDialogTitle({
|
|
40
40
|
className,
|
|
41
41
|
...props
|
|
42
|
-
}: React$1.ComponentProps<typeof AlertDialog$1.Title>):
|
|
42
|
+
}: React$1.ComponentProps<typeof AlertDialog$1.Title>): react_jsx_runtime13.JSX.Element;
|
|
43
43
|
declare function AlertDialogDescription({
|
|
44
44
|
className,
|
|
45
45
|
...props
|
|
46
|
-
}: React$1.ComponentProps<typeof AlertDialog$1.Description>):
|
|
46
|
+
}: React$1.ComponentProps<typeof AlertDialog$1.Description>): react_jsx_runtime13.JSX.Element;
|
|
47
47
|
declare function AlertDialogAction({
|
|
48
48
|
className,
|
|
49
49
|
...props
|
|
50
|
-
}: React$1.ComponentProps<typeof Button>):
|
|
50
|
+
}: React$1.ComponentProps<typeof Button>): react_jsx_runtime13.JSX.Element;
|
|
51
51
|
declare function AlertDialogCancel({
|
|
52
52
|
className,
|
|
53
53
|
variant,
|
|
54
54
|
size,
|
|
55
55
|
...props
|
|
56
|
-
}: AlertDialog$1.Close.Props & Pick<React$1.ComponentProps<typeof Button>, "variant" | "size">):
|
|
56
|
+
}: AlertDialog$1.Close.Props & Pick<React$1.ComponentProps<typeof Button>, "variant" | "size">): react_jsx_runtime13.JSX.Element;
|
|
57
57
|
//#endregion
|
|
58
58
|
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
|
|
59
59
|
//# sourceMappingURL=alert-dialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-dialog.d.ts","names":[],"sources":["../../src/components/alert-dialog.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAQS,WAAA;;GAA0B,aAAA,CAAqB,IAAA,CAAK,QAAK,
|
|
1
|
+
{"version":3,"file":"alert-dialog.d.ts","names":[],"sources":["../../src/components/alert-dialog.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAQS,WAAA;;GAA0B,aAAA,CAAqB,IAAA,CAAK,QAAK,mBAAA,CAAA,GAAA,CAAA;iBAIzD,kBAAA;;GAAiC,aAAA,CAAqB,OAAA,CAAQ,QAAK,mBAAA,CAAA,GAAA,CAAA;iBAMnE,iBAAA;;GAAgC,aAAA,CAAqB,MAAA,CAAO,QAAK,mBAAA,CAAA,GAAA,CAAA;AAZtB,iBAkB3C,kBAAA,CAhB0B;EAAA,SAAqB;EAAK,GAAA;AAAK,CAAA,EAmB/D,aAAA,CAAqB,QAAA,CAAS,KAnBiC,CAAA,EAmB5B,mBAAA,CAAA,GAAA,CAAA,OAnB4B;AAAA,iBAgCzD,kBAAA,CA5BkB;EAAe,SAAA;EAAA,IAAqB;EAAA,GAAA;AAMW,CANH,EAgCpE,aAAA,CAAqB,KAAA,CAAM,KAhC8C,GAAA;EAMnE,IAAA,CAAA,EAAA,SAAA,GAAA,IAAiB;AAAgD,CAAA,CAAA,EA4BzE,mBAAA,CAAA,GAAA,CAAA,OAtB0B;iBAuClB,iBAAA,CAtCP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyCC,OAAA,CAAM,cAzCP,CAAA,KAAA,CAAA,CAAA,EAyC4B,mBAAA,CAAA,GAAA,CAAA,OAzC5B;iBAsDO,iBAAA,CApDwB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuD9B,OAAA,CAAM,cAvDwB,CAAA,KAAA,CAAA,CAAA,EAuDH,mBAAA,CAAA,GAAA,CAAA,OAvDG;iBAoExB,gBAAA,CApE6B;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuEnC,OAAA,CAAM,cAvE6B,CAAA,KAAA,CAAA,CAAA,EAuER,mBAAA,CAAA,GAAA,CAAA,OAvEQ;iBAoF7B,gBAAA,CApF6B;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuFnC,OAAA,CAAM,cAvF6B,CAAA,OAuFP,aAAA,CAAqB,KAvFd,CAAA,CAAA,EAuFoB,mBAAA,CAAA,GAAA,CAAA,OAvFpB;AAAA,iBAoG7B,sBAAA,CAvFkB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0FxB,OAAA,CAAM,cA1FkB,CAAA,OA0FI,aAAA,CAAqB,WA1FzB,CAAA,CAAA,EA0FqC,mBAAA,CAAA,GAAA,CAAA,OA1FrC;iBAuGlB,iBAAA,CAtGP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyGC,OAAA,CAAM,cAzGP,CAAA,OAyG6B,MAzG7B,CAAA,CAAA,EAyGoC,mBAAA,CAAA,GAAA,CAAA,OAzGpC;iBAmHO,iBAAA,CAlHP;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAuHC,aAAA,CAAqB,KAAA,CAAM,KAvH5B,GAwHA,IAxHA,CAwHK,OAAA,CAAM,cAxHX,CAAA,OAwHiC,MAxHjC,CAAA,EAAA,SAAA,GAAA,MAAA,CAAA,CAAA,EAwH6D,mBAAA,CAAA,GAAA,CAAA,OAxH7D"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { t as cn } from "../utils-
|
|
4
|
-
import { t as Button } from "../button-
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { t as cn } from "../utils-8o789qxH.js";
|
|
4
|
+
import { t as Button } from "../button-B3SNyz-U.js";
|
|
6
5
|
import "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { AlertDialog as AlertDialog$1 } from "@base-ui/react/alert-dialog";
|
|
8
8
|
|
|
9
9
|
//#region src/components/alert-dialog.tsx
|