@px-ui/ui 0.1.4 → 1.0.1
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-C-yFMpI5.d.ts +41 -0
- package/dist/avatar-C-yFMpI5.d.ts.map +1 -0
- package/dist/avatar-DDdL9xDH.js +119 -0
- package/dist/avatar-DDdL9xDH.js.map +1 -0
- package/dist/button-KTVkwZNA.d.ts +19 -0
- package/dist/button-KTVkwZNA.d.ts.map +1 -0
- package/dist/button-hBUFMmsZ.js +47 -0
- package/dist/button-hBUFMmsZ.js.map +1 -0
- package/dist/combobox-CnpyzZ7B.js +334 -0
- package/dist/combobox-CnpyzZ7B.js.map +1 -0
- package/dist/combobox-GYXOAPSk.d.ts +109 -0
- package/dist/combobox-GYXOAPSk.d.ts.map +1 -0
- package/dist/components/accordion.d.ts +25 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +56 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.d.ts +59 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +99 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.d.ts +29 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +47 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/aspect-ratio.d.ts +13 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio.js +16 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/avatar-group.d.ts +30 -0
- package/dist/components/avatar-group.d.ts.map +1 -0
- package/dist/components/avatar-group.js +69 -0
- package/dist/components/avatar-group.js.map +1 -0
- package/dist/components/avatar.d.ts +2 -0
- package/dist/components/avatar.js +5 -0
- package/dist/components/badge.d.ts +18 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +31 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +38 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +75 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button-group.d.ts +29 -0
- package/dist/components/button-group.d.ts.map +1 -0
- package/dist/components/button-group.js +44 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.d.ts +2 -0
- package/dist/components/button.js +4 -0
- package/dist/components/calendar.d.ts +32 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +119 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.d.ts +38 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +59 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.d.ts +57 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +136 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/chart.d.ts +79 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.js +148 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.d.ts +11 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +24 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.d.ts +25 -0
- package/dist/components/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible.js +28 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.d.ts +3 -0
- package/dist/components/combobox.js +13 -0
- package/dist/components/command.d.ts +78 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +125 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/context-menu.d.ts +87 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +137 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/currency-select-field.d.ts +105 -0
- package/dist/components/currency-select-field.d.ts.map +1 -0
- package/dist/components/currency-select-field.js +266 -0
- package/dist/components/currency-select-field.js.map +1 -0
- package/dist/components/dialog.d.ts +61 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +5 -0
- package/dist/components/direction.d.ts +2 -0
- package/dist/components/direction.js +3 -0
- package/dist/components/drawer.d.ts +45 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +86 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +2 -0
- package/dist/components/dropdown-menu.js +4 -0
- package/dist/components/empty.d.ts +36 -0
- package/dist/components/empty.d.ts.map +1 -0
- package/dist/components/empty.js +62 -0
- package/dist/components/empty.js.map +1 -0
- package/dist/components/field.d.ts +72 -0
- package/dist/components/field.d.ts.map +1 -0
- package/dist/components/field.js +122 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/file-upload-field.d.ts +58 -0
- package/dist/components/file-upload-field.d.ts.map +1 -0
- package/dist/components/file-upload-field.js +90 -0
- package/dist/components/file-upload-field.js.map +1 -0
- package/dist/components/file-upload.d.ts +4 -0
- package/dist/components/file-upload.js +6 -0
- package/dist/components/hover-card.d.ts +21 -0
- package/dist/components/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card.js +40 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/input-group.d.ts +46 -0
- package/dist/components/input-group.d.ts.map +1 -0
- package/dist/components/input-group.js +9 -0
- package/dist/components/input-otp.d.ts +24 -0
- package/dist/components/input-otp.d.ts.map +1 -0
- package/dist/components/input-otp.js +40 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.d.ts +2 -0
- package/dist/components/input.js +4 -0
- package/dist/components/item.d.ts +62 -0
- package/dist/components/item.d.ts.map +1 -0
- package/dist/components/item.js +124 -0
- package/dist/components/item.js.map +1 -0
- package/dist/components/kbd.d.ts +14 -0
- package/dist/components/kbd.d.ts.map +1 -0
- package/dist/components/kbd.js +22 -0
- package/dist/components/kbd.js.map +1 -0
- package/dist/components/label.d.ts +2 -0
- package/dist/components/label.js +6 -0
- package/dist/components/menubar.d.ts +89 -0
- package/dist/components/menubar.d.ts.map +1 -0
- package/dist/components/menubar.js +140 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/native-select.d.ts +23 -0
- package/dist/components/native-select.d.ts.map +1 -0
- package/dist/components/native-select.js +41 -0
- package/dist/components/native-select.js.map +1 -0
- package/dist/components/navigation-menu.d.ts +48 -0
- package/dist/components/navigation-menu.d.ts.map +1 -0
- package/dist/components/navigation-menu.js +85 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/pagination.d.ts +46 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +89 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/phone-input.d.ts +28 -0
- package/dist/components/phone-input.d.ts.map +1 -0
- package/dist/components/phone-input.js +60 -0
- package/dist/components/phone-input.js.map +1 -0
- package/dist/components/popover.d.ts +34 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +4 -0
- package/dist/components/progress.d.ts +29 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +48 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.d.ts +16 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +29 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/resizable.d.ts +21 -0
- package/dist/components/resizable.d.ts.map +1 -0
- package/dist/components/resizable.js +32 -0
- package/dist/components/resizable.js.map +1 -0
- package/dist/components/scroll-area.d.ts +17 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +39 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.d.ts +56 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +102 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +2 -0
- package/dist/components/separator.js +4 -0
- package/dist/components/sheet.d.ts +43 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +7 -0
- package/dist/components/sidebar.d.ts +162 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +390 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.d.ts +10 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +4 -0
- package/dist/components/slider.d.ts +15 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +36 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/spinner.d.ts +11 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +4 -0
- package/dist/components/switch.d.ts +14 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +21 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +39 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +71 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +31 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +55 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.d.ts +11 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +4 -0
- package/dist/components/toast.d.ts +2 -0
- package/dist/components/toast.js +6 -0
- package/dist/components/toggle-group.d.ts +29 -0
- package/dist/components/toggle-group.d.ts.map +1 -0
- package/dist/components/toggle-group.js +55 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.d.ts +2 -0
- package/dist/components/toggle.js +6 -0
- package/dist/components/tooltip.d.ts +2 -0
- package/dist/components/tooltip.js +4 -0
- package/dist/dialog-CTqRrytc.js +103 -0
- package/dist/dialog-CTqRrytc.js.map +1 -0
- package/dist/direction-BKSh6e6q.js +3 -0
- package/dist/dropdown-menu-CcumvwhM.js +139 -0
- package/dist/dropdown-menu-CcumvwhM.js.map +1 -0
- package/dist/dropdown-menu-tIPvwiCD.d.ts +91 -0
- package/dist/dropdown-menu-tIPvwiCD.d.ts.map +1 -0
- package/dist/file-upload-CmWvJwwY.d.ts +145 -0
- package/dist/file-upload-CmWvJwwY.d.ts.map +1 -0
- package/dist/file-upload-DeCIv13t.js +434 -0
- package/dist/file-upload-DeCIv13t.js.map +1 -0
- package/dist/hooks/use-async-options.d.ts +2 -0
- package/dist/hooks/use-async-options.js +3 -0
- package/dist/hooks/use-debounce.d.ts +5 -0
- package/dist/hooks/use-debounce.d.ts.map +1 -0
- package/dist/hooks/use-debounce.js +3 -0
- package/dist/hooks/use-file-upload.d.ts +2 -0
- package/dist/hooks/use-file-upload.js +3 -0
- package/dist/hooks/use-infinite-scroll.d.ts +21 -0
- package/dist/hooks/use-infinite-scroll.d.ts.map +1 -0
- package/dist/hooks/use-infinite-scroll.js +4 -0
- package/dist/hooks/use-intersection-observer.d.ts +2 -0
- package/dist/hooks/use-intersection-observer.js +3 -0
- package/dist/hooks/use-mobile.d.ts +5 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +3 -0
- package/dist/input-8jqdnUZl.js +18 -0
- package/dist/input-8jqdnUZl.js.map +1 -0
- package/dist/input-CvG-4ebq.d.ts +12 -0
- package/dist/input-CvG-4ebq.d.ts.map +1 -0
- package/dist/input-group-DqEkmpXW.js +81 -0
- package/dist/input-group-DqEkmpXW.js.map +1 -0
- package/dist/label-AaH9ZYCZ.js +16 -0
- package/dist/label-AaH9ZYCZ.js.map +1 -0
- package/dist/label-CCHCFJeS.d.ts +11 -0
- package/dist/label-CCHCFJeS.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +3 -0
- package/dist/popover-C9D43EuT.js +57 -0
- package/dist/popover-C9D43EuT.js.map +1 -0
- package/dist/providers/px-ui-provider.d.ts +36 -0
- package/dist/providers/px-ui-provider.d.ts.map +1 -0
- package/dist/providers/px-ui-provider.js +26 -0
- package/dist/providers/px-ui-provider.js.map +1 -0
- package/dist/separator-BS3ilczC.js +17 -0
- package/dist/separator-BS3ilczC.js.map +1 -0
- package/dist/separator-CmcC4YJr.d.ts +12 -0
- package/dist/separator-CmcC4YJr.d.ts.map +1 -0
- package/dist/sheet-CLjNDrfL.js +91 -0
- package/dist/sheet-CLjNDrfL.js.map +1 -0
- package/dist/skeleton-BcIxI5Wq.js +15 -0
- package/dist/skeleton-BcIxI5Wq.js.map +1 -0
- package/dist/spinner-Bo0sUZEg.js +17 -0
- package/dist/spinner-Bo0sUZEg.js.map +1 -0
- package/dist/styles.css +196 -0
- package/dist/textarea-Cq0o323P.js +16 -0
- package/dist/textarea-Cq0o323P.js.map +1 -0
- package/dist/toast-COWAQbIk.js +211 -0
- package/dist/toast-COWAQbIk.js.map +1 -0
- package/dist/toast-FlYtbGl-.d.ts +74 -0
- package/dist/toast-FlYtbGl-.d.ts.map +1 -0
- package/dist/toggle-Bln33AlY.d.ts +19 -0
- package/dist/toggle-Bln33AlY.d.ts.map +1 -0
- package/dist/toggle-DhJ_qwgw.js +38 -0
- package/dist/toggle-DhJ_qwgw.js.map +1 -0
- package/dist/tooltip-D7qJywrH.d.ts +26 -0
- package/dist/tooltip-D7qJywrH.d.ts.map +1 -0
- package/dist/tooltip-DkPxCJIL.js +43 -0
- package/dist/tooltip-DkPxCJIL.js.map +1 -0
- package/dist/use-async-options-DHR8q5qX.d.ts +45 -0
- package/dist/use-async-options-DHR8q5qX.d.ts.map +1 -0
- package/dist/use-async-options-wZ9LJ2BJ.js +46 -0
- package/dist/use-async-options-wZ9LJ2BJ.js.map +1 -0
- package/dist/use-debounce-_qaEZqtt.js +24 -0
- package/dist/use-debounce-_qaEZqtt.js.map +1 -0
- package/dist/{index.js → use-file-upload-Dxrej28u.js} +3 -204
- package/dist/use-file-upload-Dxrej28u.js.map +1 -0
- package/dist/use-file-upload-yy-xLBtn.d.ts +133 -0
- package/dist/use-file-upload-yy-xLBtn.d.ts.map +1 -0
- package/dist/use-infinite-scroll-CpbhGGT5.js +38 -0
- package/dist/use-infinite-scroll-CpbhGGT5.js.map +1 -0
- package/dist/use-intersection-observer-C2xDq2SW.d.ts +11 -0
- package/dist/use-intersection-observer-C2xDq2SW.d.ts.map +1 -0
- package/dist/use-intersection-observer-CZfnep4z.js +33 -0
- package/dist/use-intersection-observer-CZfnep4z.js.map +1 -0
- package/dist/use-mobile-l5ebOdQl.js +21 -0
- package/dist/use-mobile-l5ebOdQl.js.map +1 -0
- package/dist/utils-mWJR2N24.js +28 -0
- package/dist/utils-mWJR2N24.js.map +1 -0
- package/package.json +289 -26
- package/dist/index.css +0 -143
- package/dist/index.d.ts +0 -229
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { t as cn } from "../utils-mWJR2N24.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Collapsible as Collapsible$1 } from "@base-ui/react/collapsible";
|
|
4
|
+
|
|
5
|
+
//#region src/components/collapsible.tsx
|
|
6
|
+
function Collapsible({ ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsx(Collapsible$1.Root, {
|
|
8
|
+
"data-slot": "collapsible",
|
|
9
|
+
...props
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function CollapsibleTrigger({ ...props }) {
|
|
13
|
+
return /* @__PURE__ */ jsx(Collapsible$1.Trigger, {
|
|
14
|
+
"data-slot": "collapsible-trigger",
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function CollapsibleContent({ animate, className, ...props }) {
|
|
19
|
+
return /* @__PURE__ */ jsx(Collapsible$1.Panel, {
|
|
20
|
+
"data-slot": "collapsible-content",
|
|
21
|
+
className: cn(animate && "h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0", className),
|
|
22
|
+
...props
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { Collapsible, CollapsibleContent, CollapsibleTrigger };
|
|
28
|
+
//# sourceMappingURL=collapsible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible.js","names":["CollapsiblePrimitive"],"sources":["../../src/components/collapsible.tsx"],"sourcesContent":["import { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\n return (\n <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n )\n}\n\ntype CollapsibleContentProps = CollapsiblePrimitive.Panel.Props & {\n /**\n * Animate the panel's open/close with a height transition.\n * Adds `overflow-hidden`, which can conflict with grid/subgrid layouts.\n */\n animate?: boolean\n}\n\nfunction CollapsibleContent({\n animate,\n className,\n ...props\n}: CollapsibleContentProps) {\n return (\n <CollapsiblePrimitive.Panel\n data-slot=\"collapsible-content\"\n className={cn(\n animate &&\n \"h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"],"mappings":";;;;;AAIA,SAAS,YAAY,EAAE,GAAG,SAA0C;AAClE,QAAO,oBAACA,cAAqB;EAAK,aAAU;EAAc,GAAI;GAAS;;AAGzE,SAAS,mBAAmB,EAAE,GAAG,SAA6C;AAC5E,QACE,oBAACA,cAAqB;EAAQ,aAAU;EAAsB,GAAI;GAAS;;AAY/E,SAAS,mBAAmB,EAC1B,SACA,WACA,GAAG,SACuB;AAC1B,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,WAAW,GACT,WACE,0IACF,UACD;EACD,GAAI;GACJ"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import "../use-async-options-DHR8q5qX.js";
|
|
2
|
+
import { _ as useComboboxAnchor, a as ComboboxClear, c as ComboboxGroup, d as ComboboxLabel, f as ComboboxList, g as ComboboxValue, h as ComboboxTrigger, i as ComboboxChipsInput, l as ComboboxInput, m as ComboboxStatus, n as ComboboxChip, o as ComboboxCollection, p as ComboboxSeparator, r as ComboboxChips, s as ComboboxContent, t as Combobox, u as ComboboxItem } from "../combobox-GYXOAPSk.js";
|
|
3
|
+
export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, useComboboxAnchor };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "../utils-mWJR2N24.js";
|
|
2
|
+
import "../button-hBUFMmsZ.js";
|
|
3
|
+
import "../input-8jqdnUZl.js";
|
|
4
|
+
import "../textarea-Cq0o323P.js";
|
|
5
|
+
import "../input-group-DqEkmpXW.js";
|
|
6
|
+
import "../spinner-Bo0sUZEg.js";
|
|
7
|
+
import "../use-async-options-wZ9LJ2BJ.js";
|
|
8
|
+
import "../use-intersection-observer-CZfnep4z.js";
|
|
9
|
+
import "../use-infinite-scroll-CpbhGGT5.js";
|
|
10
|
+
import "../use-debounce-_qaEZqtt.js";
|
|
11
|
+
import { _ as useComboboxAnchor, a as ComboboxClear, c as ComboboxGroup, d as ComboboxLabel, f as ComboboxList, g as ComboboxValue, h as ComboboxTrigger, i as ComboboxChipsInput, l as ComboboxInput, m as ComboboxStatus, n as ComboboxChip, o as ComboboxCollection, p as ComboboxSeparator, r as ComboboxChips, s as ComboboxContent, t as Combobox, u as ComboboxItem } from "../combobox-CnpyzZ7B.js";
|
|
12
|
+
|
|
13
|
+
export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, useComboboxAnchor };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as react_jsx_runtime290 from "react/jsx-runtime";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
import { Autocomplete } from "@base-ui/react/autocomplete";
|
|
4
|
+
|
|
5
|
+
//#region src/components/command.d.ts
|
|
6
|
+
declare function Command<ItemValue>({
|
|
7
|
+
className,
|
|
8
|
+
children,
|
|
9
|
+
...props
|
|
10
|
+
}: Autocomplete.Root.Props<ItemValue> & {
|
|
11
|
+
className?: string;
|
|
12
|
+
}): react_jsx_runtime290.JSX.Element;
|
|
13
|
+
declare function CommandDialog<ItemValue>({
|
|
14
|
+
title,
|
|
15
|
+
description,
|
|
16
|
+
showCloseButton,
|
|
17
|
+
className,
|
|
18
|
+
open,
|
|
19
|
+
defaultOpen,
|
|
20
|
+
onOpenChange,
|
|
21
|
+
modal,
|
|
22
|
+
children,
|
|
23
|
+
...props
|
|
24
|
+
}: Omit<Autocomplete.Root.Props<ItemValue>, "open" | "defaultOpen" | "onOpenChange" | "className"> & {
|
|
25
|
+
open?: boolean;
|
|
26
|
+
defaultOpen?: boolean;
|
|
27
|
+
onOpenChange?: (open: boolean) => void;
|
|
28
|
+
modal?: boolean;
|
|
29
|
+
title?: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
className?: string;
|
|
32
|
+
showCloseButton?: boolean;
|
|
33
|
+
}): react_jsx_runtime290.JSX.Element;
|
|
34
|
+
declare function CommandInput({
|
|
35
|
+
className,
|
|
36
|
+
...props
|
|
37
|
+
}: Autocomplete.Input.Props): react_jsx_runtime290.JSX.Element;
|
|
38
|
+
declare function CommandList({
|
|
39
|
+
className,
|
|
40
|
+
...props
|
|
41
|
+
}: Autocomplete.List.Props): react_jsx_runtime290.JSX.Element;
|
|
42
|
+
declare function CommandEmpty({
|
|
43
|
+
className,
|
|
44
|
+
...props
|
|
45
|
+
}: Autocomplete.Empty.Props): react_jsx_runtime290.JSX.Element;
|
|
46
|
+
declare function CommandGroup({
|
|
47
|
+
className,
|
|
48
|
+
heading,
|
|
49
|
+
children,
|
|
50
|
+
...props
|
|
51
|
+
}: Autocomplete.Group.Props & {
|
|
52
|
+
heading?: React$1.ReactNode;
|
|
53
|
+
}): react_jsx_runtime290.JSX.Element;
|
|
54
|
+
declare function CommandCollection({
|
|
55
|
+
...props
|
|
56
|
+
}: Autocomplete.Collection.Props): react_jsx_runtime290.JSX.Element;
|
|
57
|
+
declare function CommandItem({
|
|
58
|
+
className,
|
|
59
|
+
children,
|
|
60
|
+
value,
|
|
61
|
+
onSelect,
|
|
62
|
+
onClick,
|
|
63
|
+
...props
|
|
64
|
+
}: Autocomplete.Item.Props & {
|
|
65
|
+
onSelect?: (value: ItemValueArg) => void;
|
|
66
|
+
}): react_jsx_runtime290.JSX.Element;
|
|
67
|
+
type ItemValueArg = Autocomplete.Item.Props["value"];
|
|
68
|
+
declare function CommandShortcut({
|
|
69
|
+
className,
|
|
70
|
+
...props
|
|
71
|
+
}: React$1.ComponentProps<"span">): react_jsx_runtime290.JSX.Element;
|
|
72
|
+
declare function CommandSeparator({
|
|
73
|
+
className,
|
|
74
|
+
...props
|
|
75
|
+
}: Autocomplete.Separator.Props): react_jsx_runtime290.JSX.Element;
|
|
76
|
+
//#endregion
|
|
77
|
+
export { Command, CommandCollection, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
|
|
78
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","names":[],"sources":["../../src/components/command.tsx"],"sourcesContent":[],"mappings":";;;;;iBAmBS;;;;GAIN,YAAA,CAAa,IAAA,CAAK,MAAM;;IAAmC,oBAAA,CAAA,GAAA,CAAA;AApBJ,iBA0CjD,aA1BO,CAAA,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,WAAA;EAAA,eAAA;EAAA,SAAA;EAAA,IAAA;EAAA,WAAA;EAAA,YAAA;EAAA,KAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAqCb,IArCa,CAsCd,YAAA,CAAa,IAAA,CAAK,KAtCJ,CAsCU,SAtCV,CAAA,EAAA,MAAA,GAAA,aAAA,GAAA,cAAA,GAAA,WAAA,CAAA,GAAA;EACd,IAAA,CAAA,EAAA,OAAA;EACA,WAAA,CAAA,EAAA,OAAA;EAEyB,YAAA,CAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,GAAA,IAAA;EAAxB,KAAA,CAAA,EAAA,OAAkB;EAAyC,KAAA,CAAA,EAAA,MAAA;EAAA,WAAA,CAAA,EAAA,MAAA;EAsBrD,SAAA,CAAA,EAAA,MAAa;EACpB,eAAA,CAAA,EAAA,OAAA;CACA,CAAA,EAqBD,oBAAA,CAAA,GAAA,CAAA,OArBC;iBAgDO,YAAA,CA/CP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkDC,YAAA,CAAa,KAAA,CAAM,KAlDpB,CAAA,EAkDyB,oBAAA,CAAA,GAAA,CAAA,OAlDzB;iBAsEO,WAAA,CArEP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwEC,YAAA,CAAa,IAAA,CAAK,KAxEnB,CAAA,EAwEwB,oBAAA,CAAA,GAAA,CAAA,OAxExB;iBAqFO,YAAA,CApFP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuFC,YAAA,CAAa,KAAA,CAAM,KAvFpB,CAAA,EAuFyB,oBAAA,CAAA,GAAA,CAAA,OAvFzB;iBAoGO,YAAA,CAnGP;EAAA,SAAA;EAAA,OAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAwGC,YAAA,CAAa,KAAA,CAAM,KAxGpB,GAAA;EACA,OAAA,CAAA,EAuGwC,OAAA,CAAM,SAvG9C;CACA,CAAA,EAsGyD,oBAAA,CAAA,GAAA,CAAA,OAtGzD;iBA0HO,iBAAA,CAzHP;EAAA,GAAA;AAAA,CAAA,EA2HC,YAAA,CAAa,UAAA,CAAW,KA3HzB,CAAA,EA2H8B,oBAAA,CAAA,GAAA,CAAA,OA3H9B;iBA+HO,WAAA,CA5HiB;EAAA,SAAA;EAAA,QAAA;EAAA,KAAA;EAAA,QAAA;EAAA,OAAA;EAAA,GAAA;CAAA,EAmIvB,YAAA,CAAa,IAAA,CAAK,KAnIK,GAAA;EAAxB,QAAA,CAAA,EAAa,CAAA,KAAK,EAoIC,YApID,EAAA,GAAA,IAAA;CADjB,CAAA,EAsIF,oBAAA,CAAA,GAAA,CAAA,OAtIE;KA0JE,YAAA,GAAe,YAAA,CAAa,IAAA,CAAK,KA9IrC,CAAA,OAAA,CAAA;iBAgJQ,eAAA,CAhJR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmJE,OAAA,CAAM,cAnJR,CAAA,MAAA,CAAA,CAAA,EAmJ8B,oBAAA,CAAA,GAAA,CAAA,OAnJ9B;AAAA,iBAgKQ,gBAAA,CArIY;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwIlB,YAAA,CAAa,SAAA,CAAU,KAxIL,CAAA,EAwIU,oBAAA,CAAA,GAAA,CAAA,OAxIV"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { t as cn } from "../utils-mWJR2N24.js";
|
|
4
|
+
import "../button-hBUFMmsZ.js";
|
|
5
|
+
import "../input-8jqdnUZl.js";
|
|
6
|
+
import "../textarea-Cq0o323P.js";
|
|
7
|
+
import { n as InputGroupAddon, t as InputGroup } from "../input-group-DqEkmpXW.js";
|
|
8
|
+
import { i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "../dialog-CTqRrytc.js";
|
|
9
|
+
import { SearchIcon } from "lucide-react";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
import "react";
|
|
12
|
+
import { Autocomplete } from "@base-ui/react/autocomplete";
|
|
13
|
+
|
|
14
|
+
//#region src/components/command.tsx
|
|
15
|
+
function Command({ className, children, ...props }) {
|
|
16
|
+
const Root = Autocomplete.Root;
|
|
17
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
18
|
+
open: true,
|
|
19
|
+
inline: true,
|
|
20
|
+
autoHighlight: "always",
|
|
21
|
+
keepHighlight: true,
|
|
22
|
+
...props,
|
|
23
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
24
|
+
"data-slot": "command",
|
|
25
|
+
className: cn("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground", className),
|
|
26
|
+
children
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", showCloseButton = false, className, open, defaultOpen, onOpenChange, modal, children, ...props }) {
|
|
31
|
+
return /* @__PURE__ */ jsxs(Dialog, {
|
|
32
|
+
open,
|
|
33
|
+
defaultOpen,
|
|
34
|
+
onOpenChange,
|
|
35
|
+
modal,
|
|
36
|
+
children: [/* @__PURE__ */ jsxs(DialogHeader, {
|
|
37
|
+
className: "sr-only",
|
|
38
|
+
children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
|
|
39
|
+
}), /* @__PURE__ */ jsx(DialogContent, {
|
|
40
|
+
className: cn("top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0", className),
|
|
41
|
+
showCloseButton,
|
|
42
|
+
children: /* @__PURE__ */ jsx(Command, {
|
|
43
|
+
...props,
|
|
44
|
+
children
|
|
45
|
+
})
|
|
46
|
+
})]
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function CommandInput({ className, ...props }) {
|
|
50
|
+
return /* @__PURE__ */ jsx("div", {
|
|
51
|
+
"data-slot": "command-input-wrapper",
|
|
52
|
+
className: "p-1 pb-0",
|
|
53
|
+
children: /* @__PURE__ */ jsxs(InputGroup, {
|
|
54
|
+
className: "h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:ps-2!",
|
|
55
|
+
children: [/* @__PURE__ */ jsx(Autocomplete.Input, {
|
|
56
|
+
"data-slot": "command-input",
|
|
57
|
+
className: cn("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
58
|
+
...props
|
|
59
|
+
}), /* @__PURE__ */ jsx(InputGroupAddon, { children: /* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }) })]
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function CommandList({ className, ...props }) {
|
|
64
|
+
return /* @__PURE__ */ jsx(Autocomplete.List, {
|
|
65
|
+
"data-slot": "command-list",
|
|
66
|
+
className: cn("ppx-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto p-1 outline-none", className),
|
|
67
|
+
...props
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function CommandEmpty({ className, ...props }) {
|
|
71
|
+
return /* @__PURE__ */ jsx(Autocomplete.Empty, {
|
|
72
|
+
"data-slot": "command-empty",
|
|
73
|
+
className: cn("py-6 text-center text-sm empty:p-0", className),
|
|
74
|
+
...props
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function CommandGroup({ className, heading, children, ...props }) {
|
|
78
|
+
return /* @__PURE__ */ jsxs(Autocomplete.Group, {
|
|
79
|
+
"data-slot": "command-group",
|
|
80
|
+
className: cn("text-foreground not-last:mb-1", className),
|
|
81
|
+
...props,
|
|
82
|
+
children: [heading != null && /* @__PURE__ */ jsx(Autocomplete.GroupLabel, {
|
|
83
|
+
"data-slot": "command-group-heading",
|
|
84
|
+
className: "px-2 py-1.5 text-xs font-medium text-muted-foreground",
|
|
85
|
+
children: heading
|
|
86
|
+
}), children]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function CommandCollection({ ...props }) {
|
|
90
|
+
return /* @__PURE__ */ jsx(Autocomplete.Collection, {
|
|
91
|
+
"data-slot": "command-collection",
|
|
92
|
+
...props
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function CommandItem({ className, children, value, onSelect, onClick, ...props }) {
|
|
96
|
+
return /* @__PURE__ */ jsx(Autocomplete.Item, {
|
|
97
|
+
"data-slot": "command-item",
|
|
98
|
+
value,
|
|
99
|
+
onClick: (event) => {
|
|
100
|
+
onClick?.(event);
|
|
101
|
+
onSelect?.(value);
|
|
102
|
+
},
|
|
103
|
+
className: cn("group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-disabled:pointer-events-none data-disabled:opacity-50 data-highlighted:bg-muted data-highlighted:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-highlighted:**:[svg]:text-foreground", className),
|
|
104
|
+
...props,
|
|
105
|
+
children
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function CommandShortcut({ className, ...props }) {
|
|
109
|
+
return /* @__PURE__ */ jsx("span", {
|
|
110
|
+
"data-slot": "command-shortcut",
|
|
111
|
+
className: cn("ms-auto text-xs tracking-ppx-widest text-muted-foreground group-data-highlighted/command-item:text-foreground", className),
|
|
112
|
+
...props
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
function CommandSeparator({ className, ...props }) {
|
|
116
|
+
return /* @__PURE__ */ jsx(Autocomplete.Separator, {
|
|
117
|
+
"data-slot": "command-separator",
|
|
118
|
+
className: cn("-mx-1 h-px w-auto bg-border", className),
|
|
119
|
+
...props
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
//#endregion
|
|
124
|
+
export { Command, CommandCollection, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
|
|
125
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","names":[],"sources":["../../src/components/command.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Autocomplete } from \"@base-ui/react/autocomplete\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"@px-ui/ui/components/dialog\"\nimport {\n InputGroup,\n InputGroupAddon,\n} from \"@px-ui/ui/components/input-group\"\nimport { SearchIcon } from \"lucide-react\"\n\nfunction Command<ItemValue>({\n className,\n children,\n ...props\n}: Autocomplete.Root.Props<ItemValue> & { className?: string }) {\n // `Autocomplete.Root` is declared with two overloads (flat vs. grouped item\n // inference); spreading our generic `Props<ItemValue>` matches neither, so we\n // render through a single-signature alias.\n const Root = Autocomplete.Root as unknown as React.ComponentType<\n Autocomplete.Root.Props<ItemValue>\n >\n return (\n <Root open inline autoHighlight=\"always\" keepHighlight {...props}>\n <div\n data-slot=\"command\"\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground\",\n className\n )}\n >\n {children}\n </div>\n </Root>\n )\n}\n\nfunction CommandDialog<ItemValue>({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n showCloseButton = false,\n className,\n open,\n defaultOpen,\n onOpenChange,\n modal,\n children,\n ...props\n}: Omit<\n Autocomplete.Root.Props<ItemValue>,\n \"open\" | \"defaultOpen\" | \"onOpenChange\" | \"className\"\n> & {\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n modal?: boolean\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n}) {\n return (\n <Dialog\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n modal={modal}\n >\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n \"top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0\",\n className\n )}\n showCloseButton={showCloseButton}\n >\n <Command {...(props as Autocomplete.Root.Props<ItemValue>)}>\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: Autocomplete.Input.Props) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:ps-2!\">\n <Autocomplete.Input\n data-slot=\"command-input\"\n className={cn(\n \"w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n <InputGroupAddon>\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n}: Autocomplete.List.Props) {\n return (\n <Autocomplete.List\n data-slot=\"command-list\"\n className={cn(\n \"ppx-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto p-1 outline-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n className,\n ...props\n}: Autocomplete.Empty.Props) {\n return (\n <Autocomplete.Empty\n data-slot=\"command-empty\"\n // Base UI keeps this element mounted for screen-reader announcements and\n // only nulls its children when there are results — so collapse the padding\n // (via `:empty`) instead of hiding the element, to avoid an empty gap.\n className={cn(\"py-6 text-center text-sm empty:p-0\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n heading,\n children,\n ...props\n}: Autocomplete.Group.Props & { heading?: React.ReactNode }) {\n return (\n <Autocomplete.Group\n data-slot=\"command-group\"\n className={cn(\"text-foreground not-last:mb-1\", className)}\n {...props}\n >\n {heading != null && (\n <Autocomplete.GroupLabel\n data-slot=\"command-group-heading\"\n className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\"\n >\n {heading}\n </Autocomplete.GroupLabel>\n )}\n {children}\n </Autocomplete.Group>\n )\n}\n\nfunction CommandCollection({\n ...props\n}: Autocomplete.Collection.Props) {\n return <Autocomplete.Collection data-slot=\"command-collection\" {...props} />\n}\n\nfunction CommandItem({\n className,\n children,\n value,\n onSelect,\n onClick,\n ...props\n}: Autocomplete.Item.Props & {\n onSelect?: (value: ItemValueArg) => void\n}) {\n return (\n <Autocomplete.Item\n data-slot=\"command-item\"\n value={value}\n onClick={(event) => {\n onClick?.(event)\n onSelect?.(value)\n }}\n className={cn(\n \"group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-disabled:pointer-events-none data-disabled:opacity-50 data-highlighted:bg-muted data-highlighted:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-highlighted:**:[svg]:text-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </Autocomplete.Item>\n )\n}\n\ntype ItemValueArg = Autocomplete.Item.Props[\"value\"]\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-ppx-widest text-muted-foreground group-data-highlighted/command-item:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: Autocomplete.Separator.Props) {\n return (\n <Autocomplete.Separator\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px w-auto bg-border\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandCollection,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n"],"mappings":";;;;;;;;;;;;;;AAmBA,SAAS,QAAmB,EAC1B,WACA,UACA,GAAG,SAC2D;CAI9D,MAAM,OAAO,aAAa;AAG1B,QACE,oBAAC;EAAK;EAAK;EAAO,eAAc;EAAS;EAAc,GAAI;YACzD,oBAAC;GACC,aAAU;GACV,WAAW,GACT,8FACA,UACD;GAEA;IACG;GACD;;AAIX,SAAS,cAAyB,EAChC,QAAQ,mBACR,cAAc,kCACd,kBAAkB,OAClB,WACA,MACA,aACA,cACA,OACA,UACA,GAAG,SAaF;AACD,QACE,qBAAC;EACO;EACO;EACC;EACP;aAEP,qBAAC;GAAa,WAAU;cACtB,oBAAC,yBAAa,QAAoB,EAClC,oBAAC,+BAAmB,cAAgC;IACvC,EACf,oBAAC;GACC,WAAW,GACT,yDACA,UACD;GACgB;aAEjB,oBAAC;IAAQ,GAAK;IACX;KACO;IACI;GACT;;AAIb,SAAS,aAAa,EACpB,WACA,GAAG,SACwB;AAC3B,QACE,oBAAC;EAAI,aAAU;EAAwB,WAAU;YAC/C,qBAAC;GAAW,WAAU;cACpB,oBAAC,aAAa;IACZ,aAAU;IACV,WAAW,GACT,iFACA,UACD;IACD,GAAI;KACJ,EACF,oBAAC,6BACC,oBAAC,cAAW,WAAU,+BAA+B,GACrC;IACP;GACT;;AAIV,SAAS,YAAY,EACnB,WACA,GAAG,SACuB;AAC1B,QACE,oBAAC,aAAa;EACZ,aAAU;EACV,WAAW,GACT,yFACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,WACA,GAAG,SACwB;AAC3B,QACE,oBAAC,aAAa;EACZ,aAAU;EAIV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,WACA,SACA,UACA,GAAG,SACwD;AAC3D,QACE,qBAAC,aAAa;EACZ,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;aAEH,WAAW,QACV,oBAAC,aAAa;GACZ,aAAU;GACV,WAAU;aAET;IACuB,EAE3B;GACkB;;AAIzB,SAAS,kBAAkB,EACzB,GAAG,SAC6B;AAChC,QAAO,oBAAC,aAAa;EAAW,aAAU;EAAqB,GAAI;GAAS;;AAG9E,SAAS,YAAY,EACnB,WACA,UACA,OACA,UACA,SACA,GAAG,SAGF;AACD,QACE,oBAAC,aAAa;EACZ,aAAU;EACH;EACP,UAAU,UAAU;AAClB,aAAU,MAAM;AAChB,cAAW,MAAM;;EAEnB,WAAW,GACT,4ZACA,UACD;EACD,GAAI;EAEH;GACiB;;AAMxB,SAAS,gBAAgB,EACvB,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,iHACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC,aAAa;EACZ,aAAU;EACV,WAAW,GAAG,+BAA+B,UAAU;EACvD,GAAI;GACJ"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as react_jsx_runtime6 from "react/jsx-runtime";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
import { ContextMenu as ContextMenu$1 } from "@base-ui/react/context-menu";
|
|
4
|
+
|
|
5
|
+
//#region src/components/context-menu.d.ts
|
|
6
|
+
declare function ContextMenu({
|
|
7
|
+
...props
|
|
8
|
+
}: ContextMenu$1.Root.Props): react_jsx_runtime6.JSX.Element;
|
|
9
|
+
declare function ContextMenuPortal({
|
|
10
|
+
...props
|
|
11
|
+
}: ContextMenu$1.Portal.Props): react_jsx_runtime6.JSX.Element;
|
|
12
|
+
declare function ContextMenuTrigger({
|
|
13
|
+
className,
|
|
14
|
+
...props
|
|
15
|
+
}: ContextMenu$1.Trigger.Props): react_jsx_runtime6.JSX.Element;
|
|
16
|
+
declare function ContextMenuContent({
|
|
17
|
+
className,
|
|
18
|
+
align,
|
|
19
|
+
alignOffset,
|
|
20
|
+
side,
|
|
21
|
+
sideOffset,
|
|
22
|
+
...props
|
|
23
|
+
}: ContextMenu$1.Popup.Props & Pick<ContextMenu$1.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): react_jsx_runtime6.JSX.Element;
|
|
24
|
+
declare function ContextMenuGroup({
|
|
25
|
+
...props
|
|
26
|
+
}: ContextMenu$1.Group.Props): react_jsx_runtime6.JSX.Element;
|
|
27
|
+
declare function ContextMenuLabel({
|
|
28
|
+
className,
|
|
29
|
+
inset,
|
|
30
|
+
...props
|
|
31
|
+
}: ContextMenu$1.GroupLabel.Props & {
|
|
32
|
+
inset?: boolean;
|
|
33
|
+
}): react_jsx_runtime6.JSX.Element;
|
|
34
|
+
declare function ContextMenuItem({
|
|
35
|
+
className,
|
|
36
|
+
inset,
|
|
37
|
+
variant,
|
|
38
|
+
...props
|
|
39
|
+
}: ContextMenu$1.Item.Props & {
|
|
40
|
+
inset?: boolean;
|
|
41
|
+
variant?: "default" | "destructive";
|
|
42
|
+
}): react_jsx_runtime6.JSX.Element;
|
|
43
|
+
declare function ContextMenuSub({
|
|
44
|
+
...props
|
|
45
|
+
}: ContextMenu$1.SubmenuRoot.Props): react_jsx_runtime6.JSX.Element;
|
|
46
|
+
declare function ContextMenuSubTrigger({
|
|
47
|
+
className,
|
|
48
|
+
inset,
|
|
49
|
+
children,
|
|
50
|
+
...props
|
|
51
|
+
}: ContextMenu$1.SubmenuTrigger.Props & {
|
|
52
|
+
inset?: boolean;
|
|
53
|
+
}): react_jsx_runtime6.JSX.Element;
|
|
54
|
+
declare function ContextMenuSubContent({
|
|
55
|
+
...props
|
|
56
|
+
}: React$1.ComponentProps<typeof ContextMenuContent>): react_jsx_runtime6.JSX.Element;
|
|
57
|
+
declare function ContextMenuCheckboxItem({
|
|
58
|
+
className,
|
|
59
|
+
children,
|
|
60
|
+
checked,
|
|
61
|
+
inset,
|
|
62
|
+
...props
|
|
63
|
+
}: ContextMenu$1.CheckboxItem.Props & {
|
|
64
|
+
inset?: boolean;
|
|
65
|
+
}): react_jsx_runtime6.JSX.Element;
|
|
66
|
+
declare function ContextMenuRadioGroup({
|
|
67
|
+
...props
|
|
68
|
+
}: ContextMenu$1.RadioGroup.Props): react_jsx_runtime6.JSX.Element;
|
|
69
|
+
declare function ContextMenuRadioItem({
|
|
70
|
+
className,
|
|
71
|
+
children,
|
|
72
|
+
inset,
|
|
73
|
+
...props
|
|
74
|
+
}: ContextMenu$1.RadioItem.Props & {
|
|
75
|
+
inset?: boolean;
|
|
76
|
+
}): react_jsx_runtime6.JSX.Element;
|
|
77
|
+
declare function ContextMenuSeparator({
|
|
78
|
+
className,
|
|
79
|
+
...props
|
|
80
|
+
}: ContextMenu$1.Separator.Props): react_jsx_runtime6.JSX.Element;
|
|
81
|
+
declare function ContextMenuShortcut({
|
|
82
|
+
className,
|
|
83
|
+
...props
|
|
84
|
+
}: React$1.ComponentProps<"span">): react_jsx_runtime6.JSX.Element;
|
|
85
|
+
//#endregion
|
|
86
|
+
export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
|
|
87
|
+
//# sourceMappingURL=context-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.d.ts","names":[],"sources":["../../src/components/context-menu.tsx"],"sourcesContent":[],"mappings":";;;;;iBAQS,WAAA;;GAA0B,aAAA,CAAqB,IAAA,CAAK,QAAK,kBAAA,CAAA,GAAA,CAAA;iBAIzD,iBAAA;;GAAgC,aAAA,CAAqB,MAAA,CAAO,QAAK,kBAAA,CAAA,GAAA,CAAA;iBAMjE,kBAAA;;;GAGN,aAAA,CAAqB,OAAA,CAAQ,QAAK,kBAAA,CAAA,GAAA,CAAA;AAlB4C,iBA4BxE,kBAAA,CAvB0B;EAAA,SAAqB;EAAK,KAAA;EAAK,WAAA;EAAA,IAAA;EAAA,UAAA;EAAA,GAAA;AAAA,CAAA,EA8B/D,aAAA,CAAqB,KAAA,CAAM,KA9BoC,GA+BhE,IA/BgE,CAgC9D,aAAA,CAAqB,UAAA,CAAW,KAhC8B,EAAA,OAAA,GAAA,aAAA,GAAA,MAAA,GAAA,YAAA,CAAA,CAAA,EAkC/D,kBAAA,CAAA,GAAA,CAAA,OAlC+D;AAAA,iBAsDzD,gBAAA,CAlDiB;EAAe,GAAA;AAAiC,CAAjC,EAkDD,aAAA,CAAqB,KAAA,CAAM,KAlDO,CAAA,EAkDF,kBAAA,CAAA,GAAA,CAAA,OAlDE;AAAA,iBAwDjE,gBAAA,CAlDkB;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;CAAA,EAsDxB,aAAA,CAAqB,UAAA,CAAW,KAtDR,GAAA;EACzB,KAAA,CAAA,EAAA,OAAA;CAEC,CAAA,EAqDF,kBAAA,CAAA,GAAA,CAAA,OArD+B;iBAmEvB,eAAA,CAnE4B;EAAA,SAAA;EAAA,KAAA;EAAA,OAAA;EAAA,GAAA;CAAA,EAwElC,aAAA,CAAqB,IAAA,CAAK,KAxEQ,GAAA;EAAA,KAAA,CAAA,EAAA,OAAA;EAU5B,OAAA,CAAA,EAAA,SAAA,GAAkB,aAAA;CACzB,CAAA,EAgED,kBAAA,CAAA,GAAA,CAAA,OAhEC;iBA+EO,cAAA,CA9EP;EAAA,GAAA;AAAA,CAAA,EA8EoC,aAAA,CAAqB,WAAA,CAAY,KA9ErE,CAAA,EA8E0E,kBAAA,CAAA,GAAA,CAAA,OA9E1E;iBAoFO,qBAAA,CAnFP;EAAA,SAAA;EAAA,KAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAwFC,aAAA,CAAqB,cAAA,CAAe,KAxFrC,GAAA;EACA,KAAA,CAAA,EAAA,OAAA;CACA,CAAA,EAwFD,kBAAA,CAAA,GAAA,CAAA,OAxFC;iBAyGO,qBAAA,CAvGqB;EAAA,GAAA;AAAA,CAAA,EAyG3B,OAAA,CAAM,cAzGqB,CAAA,OAyGC,kBAzGD,CAAA,CAAA,EAyGoB,kBAAA,CAAA,GAAA,CAAA,OAzGpB;iBAoHrB,uBAAA,CAlH2B;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,KAAA;EAAA,GAAA;CAAA,EAwHjC,aAAA,CAAqB,YAAA,CAAa,KAxHD,GAAA;EADlC,KAAA,CAAA,EAAA,OAAA;CAGC,CAAA,EAwHF,kBAAA,CAAA,GAAA,CAAA,OAxHE;iBA+IM,qBAAA,CA/IN;EAAA,GAAA;AAAA,CAAA,EAiJA,aAAA,CAAqB,UAAA,CAAW,KAjJhC,CAAA,EAiJqC,kBAAA,CAAA,GAAA,CAAA,OAjJrC;AAAA,iBA0JM,oBAAA,CAtI+B;EAAA,SAAqB;EAAA,QAAM;EAAA,KAAK;EAAA,GAAA;CAAA,EA2IrE,aAAA,CAAqB,SAAA,CAAU,KA3IsC,GAAA;EAM/D,KAAA,CAAA,EAAA,OAAA;CACP,CAAA,EAsID,kBAAA,CAAA,GAAA,CAAA,OAtIC;iBA4JO,oBAAA,CA3JP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8JC,aAAA,CAAqB,SAAA,CAAU,KA9JhC,CAAA,EA8JqC,kBAAA,CAAA,GAAA,CAAA,OA9JrC;iBAwKO,mBAAA,CAtK0B;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyKhC,OAAA,CAAM,cAzK0B,CAAA,MAAA,CAAA,CAAA,EAyKJ,kBAAA,CAAA,GAAA,CAAA,OAzKI"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { t as cn } from "../utils-mWJR2N24.js";
|
|
4
|
+
import { CheckIcon, ChevronRightIcon } from "lucide-react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import "react";
|
|
7
|
+
import { ContextMenu as ContextMenu$1 } from "@base-ui/react/context-menu";
|
|
8
|
+
|
|
9
|
+
//#region src/components/context-menu.tsx
|
|
10
|
+
function ContextMenu({ ...props }) {
|
|
11
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.Root, {
|
|
12
|
+
"data-slot": "context-menu",
|
|
13
|
+
...props
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function ContextMenuPortal({ ...props }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.Portal, {
|
|
18
|
+
"data-slot": "context-menu-portal",
|
|
19
|
+
...props
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function ContextMenuTrigger({ className, ...props }) {
|
|
23
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.Trigger, {
|
|
24
|
+
"data-slot": "context-menu-trigger",
|
|
25
|
+
className: cn("select-none", className),
|
|
26
|
+
...props
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function ContextMenuContent({ className, align = "start", alignOffset = 4, side = "inline-end", sideOffset = 0, ...props }) {
|
|
30
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.Portal, { children: /* @__PURE__ */ jsx(ContextMenu$1.Positioner, {
|
|
31
|
+
className: "isolate z-50 outline-none",
|
|
32
|
+
align,
|
|
33
|
+
alignOffset,
|
|
34
|
+
side,
|
|
35
|
+
sideOffset,
|
|
36
|
+
children: /* @__PURE__ */ jsx(ContextMenu$1.Popup, {
|
|
37
|
+
"data-slot": "context-menu-content",
|
|
38
|
+
className: cn("z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none 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-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", className),
|
|
39
|
+
...props
|
|
40
|
+
})
|
|
41
|
+
}) });
|
|
42
|
+
}
|
|
43
|
+
function ContextMenuGroup({ ...props }) {
|
|
44
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.Group, {
|
|
45
|
+
"data-slot": "context-menu-group",
|
|
46
|
+
...props
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function ContextMenuLabel({ className, inset, ...props }) {
|
|
50
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.GroupLabel, {
|
|
51
|
+
"data-slot": "context-menu-label",
|
|
52
|
+
"data-inset": inset,
|
|
53
|
+
className: cn("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:ps-8", className),
|
|
54
|
+
...props
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function ContextMenuItem({ className, inset, variant = "default", ...props }) {
|
|
58
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.Item, {
|
|
59
|
+
"data-slot": "context-menu-item",
|
|
60
|
+
"data-inset": inset,
|
|
61
|
+
"data-variant": variant,
|
|
62
|
+
className: cn("group/context-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive", className),
|
|
63
|
+
...props
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function ContextMenuSub({ ...props }) {
|
|
67
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.SubmenuRoot, {
|
|
68
|
+
"data-slot": "context-menu-sub",
|
|
69
|
+
...props
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function ContextMenuSubTrigger({ className, inset, children, ...props }) {
|
|
73
|
+
return /* @__PURE__ */ jsxs(ContextMenu$1.SubmenuTrigger, {
|
|
74
|
+
"data-slot": "context-menu-sub-trigger",
|
|
75
|
+
"data-inset": inset,
|
|
76
|
+
className: cn("flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
77
|
+
...props,
|
|
78
|
+
children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "rtl:rotate-180 ms-auto" })]
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function ContextMenuSubContent({ ...props }) {
|
|
82
|
+
return /* @__PURE__ */ jsx(ContextMenuContent, {
|
|
83
|
+
"data-slot": "context-menu-sub-content",
|
|
84
|
+
className: "shadow-lg",
|
|
85
|
+
side: "inline-end",
|
|
86
|
+
...props
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function ContextMenuCheckboxItem({ className, children, checked, inset, ...props }) {
|
|
90
|
+
return /* @__PURE__ */ jsxs(ContextMenu$1.CheckboxItem, {
|
|
91
|
+
"data-slot": "context-menu-checkbox-item",
|
|
92
|
+
"data-inset": inset,
|
|
93
|
+
className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
94
|
+
checked,
|
|
95
|
+
...props,
|
|
96
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
97
|
+
className: "pointer-events-none absolute end-2",
|
|
98
|
+
children: /* @__PURE__ */ jsx(ContextMenu$1.CheckboxItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
|
|
99
|
+
}), children]
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
function ContextMenuRadioGroup({ ...props }) {
|
|
103
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.RadioGroup, {
|
|
104
|
+
"data-slot": "context-menu-radio-group",
|
|
105
|
+
...props
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function ContextMenuRadioItem({ className, children, inset, ...props }) {
|
|
109
|
+
return /* @__PURE__ */ jsxs(ContextMenu$1.RadioItem, {
|
|
110
|
+
"data-slot": "context-menu-radio-item",
|
|
111
|
+
"data-inset": inset,
|
|
112
|
+
className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
113
|
+
...props,
|
|
114
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
115
|
+
className: "pointer-events-none absolute end-2",
|
|
116
|
+
children: /* @__PURE__ */ jsx(ContextMenu$1.RadioItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
|
|
117
|
+
}), children]
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
function ContextMenuSeparator({ className, ...props }) {
|
|
121
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.Separator, {
|
|
122
|
+
"data-slot": "context-menu-separator",
|
|
123
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
124
|
+
...props
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
function ContextMenuShortcut({ className, ...props }) {
|
|
128
|
+
return /* @__PURE__ */ jsx("span", {
|
|
129
|
+
"data-slot": "context-menu-shortcut",
|
|
130
|
+
className: cn("ms-auto text-xs tracking-ppx-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground", className),
|
|
131
|
+
...props
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
//#endregion
|
|
136
|
+
export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
|
|
137
|
+
//# sourceMappingURL=context-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.js","names":["ContextMenuPrimitive"],"sources":["../../src/components/context-menu.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { ContextMenu as ContextMenuPrimitive } from \"@base-ui/react/context-menu\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport { ChevronRightIcon, CheckIcon } from \"lucide-react\"\n\nfunction ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Props) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n )\n}\n\nfunction ContextMenuTrigger({\n className,\n ...props\n}: ContextMenuPrimitive.Trigger.Props) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuContent({\n className,\n align = \"start\",\n alignOffset = 4,\n side = \"inline-end\",\n sideOffset = 0,\n ...props\n}: ContextMenuPrimitive.Popup.Props &\n Pick<\n ContextMenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <ContextMenuPrimitive.Popup\n data-slot=\"context-menu-content\"\n className={cn(\"z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none 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-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\", className )}\n {...props}\n />\n </ContextMenuPrimitive.Positioner>\n </ContextMenuPrimitive.Portal>\n )\n}\n\nfunction ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n )\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: ContextMenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.GroupLabel\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ContextMenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/context-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.Props) {\n return (\n <ContextMenuPrimitive.SubmenuRoot data-slot=\"context-menu-sub\" {...props} />\n )\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ContextMenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubmenuTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"rtl:rotate-180 ms-auto\" />\n </ContextMenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction ContextMenuSubContent({\n ...props\n}: React.ComponentProps<typeof ContextMenuContent>) {\n return (\n <ContextMenuContent\n data-slot=\"context-menu-sub-content\"\n className=\"shadow-lg\"\n side=\"inline-end\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: ContextMenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute end-2\">\n <ContextMenuPrimitive.CheckboxItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: ContextMenuPrimitive.RadioGroup.Props) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: ContextMenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute end-2\">\n <ContextMenuPrimitive.RadioItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: ContextMenuPrimitive.Separator.Props) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-ppx-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n}\n"],"mappings":";;;;;;;;;AAQA,SAAS,YAAY,EAAE,GAAG,SAA0C;AAClE,QAAO,oBAACA,cAAqB;EAAK,aAAU;EAAe,GAAI;GAAS;;AAG1E,SAAS,kBAAkB,EAAE,GAAG,SAA4C;AAC1E,QACE,oBAACA,cAAqB;EAAO,aAAU;EAAsB,GAAI;GAAS;;AAI9E,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACkC;AACrC,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,WAAW,GAAG,eAAe,UAAU;EACvC,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,WACA,QAAQ,SACR,cAAc,GACd,OAAO,cACP,aAAa,GACb,GAAG,SAKA;AACH,QACE,oBAACA,cAAqB,oBACpB,oBAACA,cAAqB;EACpB,WAAU;EACH;EACM;EACP;EACM;YAEZ,oBAACA,cAAqB;GACpB,aAAU;GACV,WAAW,GAAG,qlBAAqlB,UAAW;GAC9mB,GAAI;IACJ;GAC8B,GACN;;AAIlC,SAAS,iBAAiB,EAAE,GAAG,SAA2C;AACxE,QACE,oBAACA,cAAqB;EAAM,aAAU;EAAqB,GAAI;GAAS;;AAI5E,SAAS,iBAAiB,EACxB,WACA,OACA,GAAG,SAGF;AACD,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,yEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,WACA,OACA,UAAU,WACV,GAAG,SAIF;AACD,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,gBAAc;EACd,WAAW,GACT,inBACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,eAAe,EAAE,GAAG,SAAiD;AAC5E,QACE,oBAACA,cAAqB;EAAY,aAAU;EAAmB,GAAI;GAAS;;AAIhF,SAAS,sBAAsB,EAC7B,WACA,OACA,UACA,GAAG,SAGF;AACD,QACE,qBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,kSACA,UACD;EACD,GAAI;aAEH,UACD,oBAAC,oBAAiB,WAAU,2BAA2B;GACnB;;AAI1C,SAAS,sBAAsB,EAC7B,GAAG,SAC+C;AAClD,QACE,oBAAC;EACC,aAAU;EACV,WAAU;EACV,MAAK;EACL,GAAI;GACJ;;AAIN,SAAS,wBAAwB,EAC/B,WACA,UACA,SACA,OACA,GAAG,SAGF;AACD,QACE,qBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,4TACA,UACD;EACQ;EACT,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAACA,cAAqB,mCACpB,oBAAC,cACC,GACyC;IACxC,EACN;GACiC;;AAIxC,SAAS,sBAAsB,EAC7B,GAAG,SACqC;AACxC,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,qBAAqB,EAC5B,WACA,UACA,OACA,GAAG,SAGF;AACD,QACE,qBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,4TACA,UACD;EACD,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAACA,cAAqB,gCACpB,oBAAC,cACC,GACsC;IACrC,EACN;GAC8B;;AAIrC,SAAS,qBAAqB,EAC5B,WACA,GAAG,SACoC;AACvC,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAC3B,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,kHACA,UACD;EACD,GAAI;GACJ"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import "../use-async-options-DHR8q5qX.js";
|
|
2
|
+
import { s as ComboboxContent } from "../combobox-GYXOAPSk.js";
|
|
3
|
+
import * as react_jsx_runtime21 from "react/jsx-runtime";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/currency-select-field.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Mapping of currency abbreviations to country codes for flag display.
|
|
9
|
+
* Used internally by CurrencySelectField to display country flags.
|
|
10
|
+
*/
|
|
11
|
+
declare const CURRENCY_FLAG_CODE: Record<string, string>;
|
|
12
|
+
/**
|
|
13
|
+
* Currency type representing a currency option
|
|
14
|
+
*/
|
|
15
|
+
interface Currency {
|
|
16
|
+
/** Unique identifier for the currency */
|
|
17
|
+
id: string;
|
|
18
|
+
/** Full currency name (e.g., "United States dollar") */
|
|
19
|
+
name: string;
|
|
20
|
+
/** Currency abbreviation (e.g., "USD", "EUR") */
|
|
21
|
+
abbr: string;
|
|
22
|
+
/** Currency value/code used for form submission */
|
|
23
|
+
value: string;
|
|
24
|
+
}
|
|
25
|
+
interface CurrencySelectFieldProps {
|
|
26
|
+
/**
|
|
27
|
+
* Array of currency options to display
|
|
28
|
+
*/
|
|
29
|
+
currencies: ReadonlyArray<Currency>;
|
|
30
|
+
/** The selected currency. Use for a controlled field. */
|
|
31
|
+
value?: Currency | null;
|
|
32
|
+
/** Called when the selected currency changes. */
|
|
33
|
+
onValueChange?: (value: Currency | null, eventDetails: unknown) => void;
|
|
34
|
+
/** Whether the field is disabled. */
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
/** Whether the field is read only. */
|
|
37
|
+
readOnly?: boolean;
|
|
38
|
+
/** Applies error styling to the trigger input. */
|
|
39
|
+
invalid?: boolean;
|
|
40
|
+
/** Name used for form submission. */
|
|
41
|
+
name?: string;
|
|
42
|
+
/** Ref forwarded to the underlying input element. */
|
|
43
|
+
inputRef?: React$1.Ref<HTMLInputElement>;
|
|
44
|
+
/**
|
|
45
|
+
* Placeholder text when no currency is selected
|
|
46
|
+
* @default "Select currency"
|
|
47
|
+
*/
|
|
48
|
+
placeholder?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Additional className for the trigger input
|
|
51
|
+
*/
|
|
52
|
+
triggerClassName?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Additional className for the trigger input (alias of `triggerClassName`)
|
|
55
|
+
*/
|
|
56
|
+
className?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Accepted for API compatibility with the legacy field. Static currency
|
|
59
|
+
* lists render immediately, so this currently has no effect.
|
|
60
|
+
*/
|
|
61
|
+
isLoading?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Additional props forwarded to the dropdown content.
|
|
64
|
+
*/
|
|
65
|
+
contentProps?: Omit<React$1.ComponentProps<typeof ComboboxContent>, "children">;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A currency select component with search functionality and flag display.
|
|
69
|
+
* Country flags are automatically displayed based on the currency abbreviation
|
|
70
|
+
* using the built-in CURRENCY_FLAG_CODE mapping.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```tsx
|
|
74
|
+
* const currencies = [
|
|
75
|
+
* { id: "1", abbr: "USD", name: "United States dollar", value: "USD" },
|
|
76
|
+
* { id: "2", abbr: "EUR", name: "Euro", value: "EUR" },
|
|
77
|
+
* { id: "3", abbr: "GBP", name: "British Pound", value: "GBP" },
|
|
78
|
+
* ];
|
|
79
|
+
*
|
|
80
|
+
* <CurrencySelectField
|
|
81
|
+
* currencies={currencies}
|
|
82
|
+
* value={selectedCurrency}
|
|
83
|
+
* onValueChange={setSelectedCurrency}
|
|
84
|
+
* placeholder="Select currency"
|
|
85
|
+
* />
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
declare function CurrencySelectField({
|
|
89
|
+
currencies,
|
|
90
|
+
value,
|
|
91
|
+
onValueChange,
|
|
92
|
+
placeholder,
|
|
93
|
+
disabled,
|
|
94
|
+
readOnly,
|
|
95
|
+
invalid,
|
|
96
|
+
name,
|
|
97
|
+
inputRef,
|
|
98
|
+
triggerClassName,
|
|
99
|
+
className,
|
|
100
|
+
isLoading,
|
|
101
|
+
contentProps
|
|
102
|
+
}: CurrencySelectFieldProps): react_jsx_runtime21.JSX.Element;
|
|
103
|
+
//#endregion
|
|
104
|
+
export { CURRENCY_FLAG_CODE, Currency, CurrencySelectField, CurrencySelectFieldProps };
|
|
105
|
+
//# sourceMappingURL=currency-select-field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency-select-field.d.ts","names":[],"sources":["../../src/components/currency-select-field.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;AAqBa,cAAA,kBAAoB,EAAA,MAAM,CAAA,MAAA,EAAA,MAAA,CAAA;AAyKvC;AAWA;;AAIc,UAfG,QAAA,CAeH;EAGJ;EAGgB,EAAA,EAAA,MAAA;EAeH;EAAV,IAAA,EAAM,MAAA;EA2B+B;EAA5B,IAAA,EAAM,MAAA;EAAX;EAAI,KAAA,EAAA,MAAA;AA6ErB;AACE,UAlIe,wBAAA,CAkIf;EACA;;;EAGA,UAAA,EAlIY,aAkIZ,CAlI0B,QAkI1B,CAAA;EACA;EACA,KAAA,CAAA,EAjIQ,QAiIR,GAAA,IAAA;EACA;EACA,aAAA,CAAA,EAAA,CAAA,KAAA,EAhIwB,QAgIxB,GAAA,IAAA,EAAA,YAAA,EAAA,OAAA,EAAA,GAAA,IAAA;EACA;EACA,QAAA,CAAA,EAAA,OAAA;EACA;EACA,QAAA,CAAA,EAAA,OAAA;EACC;EAAwB,OAAA,CAAA,EAAA,OAAA;EAAA;;;aAtHd,OAAA,CAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;iBA2BN,KAAK,OAAA,CAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;iBA6ElC,mBAAA;;;;;;;;;;;;;;GAcb,2BAAwB,mBAAA,CAAA,GAAA,CAAA"}
|