@px-ui/ui 1.0.11 → 1.1.0
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-cLlUF5Lz.d.ts → avatar-DTxH_yTY.d.ts} +6 -6
- package/dist/{avatar-cLlUF5Lz.d.ts.map → avatar-DTxH_yTY.d.ts.map} +1 -1
- package/dist/{avatar-a40DzPi3.js → avatar-DnDnGmSj.js} +4 -4
- package/dist/{avatar-a40DzPi3.js.map → avatar-DnDnGmSj.js.map} +1 -1
- package/dist/{button-BJ727apo.d.ts → button-Cfd9X6pX.d.ts} +6 -6
- package/dist/{button-BJ727apo.d.ts.map → button-Cfd9X6pX.d.ts.map} +1 -1
- package/dist/{button-Cp2S1spE.js → button-DnHwqwy0.js} +2 -2
- package/dist/{button-Cp2S1spE.js.map → button-DnHwqwy0.js.map} +1 -1
- package/dist/checkbox-CwkX29tL.js +22 -0
- package/dist/checkbox-CwkX29tL.js.map +1 -0
- package/dist/collapsible-DsrYXIW5.js +28 -0
- package/dist/collapsible-DsrYXIW5.js.map +1 -0
- package/dist/{combobox-Di5naqIR.js → combobox-5IAivvXw.js} +9 -9
- package/dist/{combobox-Di5naqIR.js.map → combobox-5IAivvXw.js.map} +1 -1
- package/dist/{combobox-B73nb6Tq.d.ts → combobox-BBMYGrI2.d.ts} +19 -19
- package/dist/{combobox-B73nb6Tq.d.ts.map → combobox-BBMYGrI2.d.ts.map} +1 -1
- package/dist/components/accordion.d.ts +5 -5
- package/dist/components/accordion.d.ts.map +1 -1
- package/dist/components/accordion.js +2 -2
- 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 +5 -5
- 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/attachment.d.ts +14 -14
- package/dist/components/attachment.js +3 -3
- package/dist/components/avatar-group.d.ts +4 -4
- 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 +4 -4
- package/dist/components/badge.js +1 -1
- package/dist/components/breadcrumb.d.ts +7 -7
- package/dist/components/breadcrumb.js +2 -2
- package/dist/components/bubble.d.ts +7 -7
- package/dist/components/bubble.js +2 -2
- package/dist/components/button-group.d.ts +9 -9
- 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.d.ts.map +1 -1
- package/dist/components/calendar.js +3 -3
- package/dist/components/card.d.ts +8 -8
- package/dist/components/card.d.ts.map +1 -1
- 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 +3 -21
- package/dist/components/collapsible.d.ts +4 -4
- package/dist/components/collapsible.d.ts.map +1 -1
- package/dist/components/collapsible.js +3 -27
- package/dist/components/combobox.d.ts +2 -2
- package/dist/components/combobox.js +11 -11
- package/dist/components/command.d.ts +11 -11
- 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 +4 -4
- 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.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/editor-output.d.ts +87 -0
- package/dist/components/editor-output.d.ts.map +1 -0
- package/dist/components/editor-output.js +158 -0
- package/dist/components/editor-output.js.map +1 -0
- package/dist/components/empty.d.ts +7 -7
- package/dist/components/empty.js +3 -61
- package/dist/components/field.d.ts +16 -16
- package/dist/components/field.d.ts.map +1 -1
- package/dist/components/field.js +4 -4
- package/dist/components/file-upload-field.d.ts +3 -3
- package/dist/components/file-upload-field.js +6 -6
- package/dist/components/file-upload.d.ts +3 -3
- 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/icon.d.ts +83 -0
- package/dist/components/icon.d.ts.map +1 -0
- package/dist/components/icon.js +188 -0
- package/dist/components/icon.js.map +1 -0
- package/dist/components/input-group.d.ts +11 -11
- package/dist/components/input-group.d.ts.map +1 -1
- 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 +15 -15
- 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.js +1 -1
- package/dist/components/label.d.ts +1 -1
- package/dist/components/label.js +2 -2
- package/dist/components/marker.d.ts +5 -5
- package/dist/components/marker.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 +8 -8
- package/dist/components/menubar.js.map +1 -1
- package/dist/components/message-scroller.d.ts +8 -8
- package/dist/components/message-scroller.js +3 -3
- package/dist/components/message.d.ts +7 -7
- package/dist/components/message.js +2 -2
- package/dist/components/native-select.d.ts +4 -4
- 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/rich-text-editor.d.ts +204 -0
- package/dist/components/rich-text-editor.d.ts.map +1 -0
- package/dist/components/rich-text-editor.js +359 -0
- package/dist/components/rich-text-editor.js.map +1 -0
- package/dist/components/scroll-area.d.ts +13 -3
- package/dist/components/scroll-area.d.ts.map +1 -1
- package/dist/components/scroll-area.js +3 -38
- 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/sortable-list.d.ts +153 -0
- package/dist/components/sortable-list.d.ts.map +1 -0
- package/dist/components/sortable-list.js +191 -0
- package/dist/components/sortable-list.js.map +1 -0
- package/dist/components/spinner.d.ts +2 -2
- package/dist/components/spinner.js +2 -2
- package/dist/components/stepper.d.ts +171 -0
- package/dist/components/stepper.d.ts.map +1 -0
- package/dist/components/stepper.js +281 -0
- package/dist/components/stepper.js.map +1 -0
- 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/components/tree-select.d.ts +192 -0
- package/dist/components/tree-select.d.ts.map +1 -0
- package/dist/components/tree-select.js +421 -0
- package/dist/components/tree-select.js.map +1 -0
- package/dist/{dialog-B3HhbIdv.js → dialog-DuGJUPQl.js} +4 -4
- package/dist/{dialog-B3HhbIdv.js.map → dialog-DuGJUPQl.js.map} +1 -1
- package/dist/{dropdown-menu-vwX--mgm.js → dropdown-menu-BWEfcvmP.js} +20 -20
- package/dist/{dropdown-menu-vwX--mgm.js.map → dropdown-menu-BWEfcvmP.js.map} +1 -1
- package/dist/{dropdown-menu-C6n_oYre.d.ts → dropdown-menu-DGgfWYrK.d.ts} +17 -17
- package/dist/{dropdown-menu-C6n_oYre.d.ts.map → dropdown-menu-DGgfWYrK.d.ts.map} +1 -1
- package/dist/empty-U4zrLmFU.js +62 -0
- package/dist/empty-U4zrLmFU.js.map +1 -0
- package/dist/{file-upload-CGfXHKPZ.d.ts → file-upload-BvAtAxLc.d.ts} +13 -13
- package/dist/{file-upload-CGfXHKPZ.d.ts.map → file-upload-BvAtAxLc.d.ts.map} +1 -1
- package/dist/{file-upload-B0fHdUBL.js → file-upload-DU5FAkHm.js} +5 -5
- package/dist/{file-upload-B0fHdUBL.js.map → file-upload-DU5FAkHm.js.map} +1 -1
- package/dist/hooks/use-async-options.d.ts +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.d.ts +1 -1
- package/dist/hooks/use-file-upload.js +1 -1
- package/dist/hooks/use-infinite-scroll.d.ts +1 -1
- package/dist/hooks/use-infinite-scroll.js +2 -2
- package/dist/hooks/use-intersection-observer.d.ts +1 -1
- package/dist/hooks/use-intersection-observer.js +1 -1
- package/dist/hooks/use-mobile.js +1 -1
- package/dist/{input-BtI3FvrB.d.ts → input-BExbcSu4.d.ts} +3 -3
- package/dist/input-BExbcSu4.d.ts.map +1 -0
- package/dist/{input-group-C78_1dEy.js → input-group-B5PMRYld.js} +6 -6
- package/dist/{input-group-C78_1dEy.js.map → input-group-B5PMRYld.js.map} +1 -1
- package/dist/{input-B-RCmrtR.js → input-jIoNIdLQ.js} +3 -3
- package/dist/{input-B-RCmrtR.js.map → input-jIoNIdLQ.js.map} +1 -1
- package/dist/label-BFg2hxuL.d.ts +11 -0
- package/dist/label-BFg2hxuL.d.ts.map +1 -0
- package/dist/{label-Cmlhz-uF.js → label-DsRhOKY_.js} +3 -3
- package/dist/{label-Cmlhz-uF.js.map → label-DsRhOKY_.js.map} +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/{popover-CsTnnBvx.js → popover-BGkU46G7.js} +3 -3
- package/dist/{popover-CsTnnBvx.js.map → popover-BGkU46G7.js.map} +1 -1
- package/dist/providers/px-ui-provider.d.ts +4 -4
- package/dist/providers/px-ui-provider.d.ts.map +1 -1
- package/dist/providers/px-ui-provider.js +4 -4
- package/dist/scroll-area-mNVMQ0Of.js +40 -0
- package/dist/scroll-area-mNVMQ0Of.js.map +1 -0
- package/dist/{separator-BQBOLUMc.js → separator-D0bew2D_.js} +2 -2
- package/dist/{separator-BQBOLUMc.js.map → separator-D0bew2D_.js.map} +1 -1
- package/dist/{separator-pyhTqgkN.d.ts → separator-Df76guaT.d.ts} +3 -3
- package/dist/{separator-pyhTqgkN.d.ts.map → separator-Df76guaT.d.ts.map} +1 -1
- package/dist/{sheet-Chg_afex.js → sheet-BB23q6wd.js} +4 -4
- package/dist/{sheet-Chg_afex.js.map → sheet-BB23q6wd.js.map} +1 -1
- package/dist/{skeleton-J879XBBA.js → skeleton-knxLhbA5.js} +2 -2
- package/dist/{skeleton-J879XBBA.js.map → skeleton-knxLhbA5.js.map} +1 -1
- package/dist/{spinner-C7yzrK_s.js → spinner-9MdgLDTZ.js} +2 -2
- package/dist/{spinner-C7yzrK_s.js.map → spinner-9MdgLDTZ.js.map} +1 -1
- package/dist/{textarea-CaHmr0re.js → textarea-hZg0gA8u.js} +3 -3
- package/dist/{textarea-CaHmr0re.js.map → textarea-hZg0gA8u.js.map} +1 -1
- package/dist/{toast-BrPEQywl.js → toast-BdxoP8vz.js} +4 -4
- package/dist/{toast-BrPEQywl.js.map → toast-BdxoP8vz.js.map} +1 -1
- package/dist/{toast-CSU7vJkV.d.ts → toast-C5FRpq1P.d.ts} +5 -5
- package/dist/{toast-CSU7vJkV.d.ts.map → toast-C5FRpq1P.d.ts.map} +1 -1
- package/dist/{toggle-CA4KsgWs.js → toggle-BZXrLBLK.js} +2 -2
- package/dist/{toggle-CA4KsgWs.js.map → toggle-BZXrLBLK.js.map} +1 -1
- package/dist/{toggle-gjMAPmkg.d.ts → toggle-CyTngkhT.d.ts} +6 -6
- package/dist/{toggle-gjMAPmkg.d.ts.map → toggle-CyTngkhT.d.ts.map} +1 -1
- package/dist/{tooltip-7bptiThf.d.ts → tooltip-CkX3CD71.d.ts} +6 -6
- package/dist/{tooltip-7bptiThf.d.ts.map → tooltip-CkX3CD71.d.ts.map} +1 -1
- package/dist/{tooltip-BhxGE3Gb.js → tooltip-Dsfn_zZD.js} +2 -2
- package/dist/{tooltip-BhxGE3Gb.js.map → tooltip-Dsfn_zZD.js.map} +1 -1
- package/dist/{use-async-options-rNdyxIrQ.d.ts → use-async-options-DdyHJxHh.d.ts} +1 -1
- package/dist/{use-async-options-rNdyxIrQ.d.ts.map → use-async-options-DdyHJxHh.d.ts.map} +1 -1
- package/dist/{use-async-options-CtB4wZrr.js → use-async-options-tueAuVs_.js} +1 -1
- package/dist/{use-async-options-CtB4wZrr.js.map → use-async-options-tueAuVs_.js.map} +1 -1
- package/dist/{use-debounce--Lv1ABSa.js → use-debounce-7gIeOwla.js} +1 -1
- package/dist/{use-debounce--Lv1ABSa.js.map → use-debounce-7gIeOwla.js.map} +1 -1
- package/dist/{use-file-upload-Cbb_9kTw.d.ts → use-file-upload-Bc7CyQ7O.d.ts} +1 -1
- package/dist/{use-file-upload-Cbb_9kTw.d.ts.map → use-file-upload-Bc7CyQ7O.d.ts.map} +1 -1
- package/dist/{use-file-upload-BbERd3Nw.js → use-file-upload-DQD1vY_Z.js} +1 -1
- package/dist/{use-file-upload-BbERd3Nw.js.map → use-file-upload-DQD1vY_Z.js.map} +1 -1
- package/dist/{use-infinite-scroll-CC_Guyvn.js → use-infinite-scroll-HpeMA2MK.js} +2 -2
- package/dist/{use-infinite-scroll-CC_Guyvn.js.map → use-infinite-scroll-HpeMA2MK.js.map} +1 -1
- package/dist/{use-intersection-observer-CgAaXczI.d.ts → use-intersection-observer-DNPextJs.d.ts} +1 -1
- package/dist/{use-intersection-observer-CgAaXczI.d.ts.map → use-intersection-observer-DNPextJs.d.ts.map} +1 -1
- package/dist/{use-intersection-observer-S0wsPmhF.js → use-intersection-observer-rlKEjyL1.js} +1 -1
- package/dist/{use-intersection-observer-S0wsPmhF.js.map → use-intersection-observer-rlKEjyL1.js.map} +1 -1
- package/dist/{use-mobile--NaMWuCj.js → use-mobile-DUqQzj2D.js} +1 -1
- package/dist/{use-mobile--NaMWuCj.js.map → use-mobile-DUqQzj2D.js.map} +1 -1
- package/dist/{utils-DeIaBj75.js → utils-DUlptRpf.js} +1 -1
- package/dist/{utils-DeIaBj75.js.map → utils-DUlptRpf.js.map} +1 -1
- package/package.json +60 -1
- package/dist/components/checkbox.js.map +0 -1
- package/dist/components/collapsible.js.map +0 -1
- package/dist/components/empty.js.map +0 -1
- package/dist/components/scroll-area.js.map +0 -1
- package/dist/input-BtI3FvrB.d.ts.map +0 -1
- package/dist/label-BnSHwOyi.d.ts +0 -11
- package/dist/label-BnSHwOyi.d.ts.map +0 -1
- /package/dist/{direction-ZS2Hta3v.js → direction-DFPbwDSF.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet-
|
|
1
|
+
{"version":3,"file":"sheet-BB23q6wd.js","names":["SheetPrimitive"],"sources":["../src/components/sheet.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport { Button } from \"@px-ui/ui/components/button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-e data-[side=left]:data-ending-style:translate-x-[-2.5rem] rtl:data-[side=left]:data-ending-style:-translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] rtl:data-[side=left]:data-starting-style:-translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-s data-[side=right]:data-ending-style:translate-x-[2.5rem] rtl:data-[side=right]:data-ending-style:-translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] rtl:data-[side=right]:data-starting-style:-translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:ppx-sm:max-w-sm data-[side=right]:ppx-sm:max-w-sm\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-4 end-4\"\n size=\"icon-sm\"\n />\n }\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"font-heading font-medium text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n"],"mappings":";;;;;;;;AASA,SAAS,MAAM,EAAE,GAAG,SAAoC;AACtD,QAAO,oBAACA,OAAe;EAAK,aAAU;EAAQ,GAAI;GAAS;;AAG7D,SAAS,aAAa,EAAE,GAAG,SAAuC;AAChE,QAAO,oBAACA,OAAe;EAAQ,aAAU;EAAgB,GAAI;GAAS;;AAGxE,SAAS,WAAW,EAAE,GAAG,SAAqC;AAC5D,QAAO,oBAACA,OAAe;EAAM,aAAU;EAAc,GAAI;GAAS;;AAGpE,SAAS,YAAY,EAAE,GAAG,SAAsC;AAC9D,QAAO,oBAACA,OAAe;EAAO,aAAU;EAAe,GAAI;GAAS;;AAGtE,SAAS,aAAa,EAAE,WAAW,GAAG,SAAwC;AAC5E,QACE,oBAACA,OAAe;EACd,aAAU;EACV,WAAW,GACT,sKACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,WACA,UACA,OAAO,SACP,kBAAkB,MAClB,GAAG,SAIF;AACD,QACE,qBAAC,0BACC,oBAAC,iBAAe,EAChB,qBAACA,OAAe;EACd,aAAU;EACV,aAAW;EACX,WAAW,GACT,i6CACA,UACD;EACD,GAAI;aAEH,UACA,mBACC,qBAACA,OAAe;GACd,aAAU;GACV,QACE,oBAAC;IACC,SAAQ;IACR,WAAU;IACV,MAAK;KACL;cAGJ,oBAAC,UACC,EACF,oBAAC;IAAK,WAAU;cAAU;KAAY;IACjB;GAEJ,IACX;;AAIlB,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,mCAAmC,UAAU;EAC3D,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAqC;AACvE,QACE,oBAACA,OAAe;EACd,aAAU;EACV,WAAW,GAAG,4CAA4C,UAAU;EACpE,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,WACA,GAAG,SACgC;AACnC,QACE,oBAACA,OAAe;EACd,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
1
|
+
import { t as cn } from "./utils-DUlptRpf.js";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/skeleton.tsx
|
|
@@ -12,4 +12,4 @@ function Skeleton({ className, ...props }) {
|
|
|
12
12
|
|
|
13
13
|
//#endregion
|
|
14
14
|
export { Skeleton as t };
|
|
15
|
-
//# sourceMappingURL=skeleton-
|
|
15
|
+
//# sourceMappingURL=skeleton-knxLhbA5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton-
|
|
1
|
+
{"version":3,"file":"skeleton-knxLhbA5.js","names":[],"sources":["../src/components/skeleton.tsx"],"sourcesContent":["import { cn } from \"@px-ui/ui/lib/utils\"\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"],"mappings":";;;;AAEA,SAAS,SAAS,EAAE,WAAW,GAAG,SAAsC;AACtE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,qCAAqC,UAAU;EAC7D,GAAI;GACJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
1
|
+
import { t as cn } from "./utils-DUlptRpf.js";
|
|
2
2
|
import { Loader2Icon } from "lucide-react";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
|
|
@@ -14,4 +14,4 @@ function Spinner({ className, ...props }) {
|
|
|
14
14
|
|
|
15
15
|
//#endregion
|
|
16
16
|
export { Spinner as t };
|
|
17
|
-
//# sourceMappingURL=spinner-
|
|
17
|
+
//# sourceMappingURL=spinner-9MdgLDTZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner-
|
|
1
|
+
{"version":3,"file":"spinner-9MdgLDTZ.js","names":[],"sources":["../src/components/spinner.tsx"],"sourcesContent":["import { cn } from \"@px-ui/ui/lib/utils\";\nimport { Loader2Icon } from \"lucide-react\";\n\nfunction Spinner({\n className,\n ...props\n}: React.ComponentProps<typeof Loader2Icon>) {\n return (\n <Loader2Icon\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\"size-4 animate-spin\", className)}\n {...props}\n />\n );\n}\n\nexport { Spinner };\n"],"mappings":";;;;;AAGA,SAAS,QAAQ,EACf,WACA,GAAG,SACwC;AAC3C,QACE,oBAAC;EACC,MAAK;EACL,cAAW;EACX,WAAW,GAAG,uBAAuB,UAAU;EAC/C,GAAI;GACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
2
|
-
import "react";
|
|
1
|
+
import { t as cn } from "./utils-DUlptRpf.js";
|
|
3
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/textarea.tsx
|
|
6
6
|
function Textarea({ className, ...props }) {
|
|
@@ -13,4 +13,4 @@ function Textarea({ className, ...props }) {
|
|
|
13
13
|
|
|
14
14
|
//#endregion
|
|
15
15
|
export { Textarea as t };
|
|
16
|
-
//# sourceMappingURL=textarea-
|
|
16
|
+
//# sourceMappingURL=textarea-hZg0gA8u.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-
|
|
1
|
+
{"version":3,"file":"textarea-hZg0gA8u.js","names":[],"sources":["../src/components/textarea.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 ppx-md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n"],"mappings":";;;;;AAIA,SAAS,SAAS,EAAE,WAAW,GAAG,SAA2C;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,qgBACA,UACD;EACD,GAAI;GACJ"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
2
|
-
import "react";
|
|
3
|
-
import { Toast } from "@base-ui/react/toast";
|
|
1
|
+
import { t as cn } from "./utils-DUlptRpf.js";
|
|
4
2
|
import { CircleCheckIcon, InfoIcon, Loader2Icon, OctagonXIcon, TriangleAlertIcon, XIcon } from "lucide-react";
|
|
5
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import "react";
|
|
5
|
+
import { Toast } from "@base-ui/react/toast";
|
|
6
6
|
|
|
7
7
|
//#region src/components/toast.tsx
|
|
8
8
|
const toastManager = Toast.createToastManager();
|
|
@@ -208,4 +208,4 @@ function AnchoredToastList() {
|
|
|
208
208
|
|
|
209
209
|
//#endregion
|
|
210
210
|
export { toast as a, anchoredToastManager as i, Toaster as n, toastManager as o, anchoredToast as r, AnchoredToaster as t };
|
|
211
|
-
//# sourceMappingURL=toast-
|
|
211
|
+
//# sourceMappingURL=toast-BdxoP8vz.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-BrPEQywl.js","names":["VIEWPORT_POSITION: Record<ToasterPosition, string>","toast"],"sources":["../src/components/toast.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Toast } from \"@base-ui/react/toast\"\nimport type {\n ToastManagerAddOptions,\n ToastManagerPromiseOptions,\n ToastManagerUpdateOptions,\n} from \"@base-ui/react/toast\"\nimport {\n CircleCheckIcon,\n InfoIcon,\n Loader2Icon,\n OctagonXIcon,\n TriangleAlertIcon,\n XIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\n// A global manager so toasts can be dispatched from anywhere — including outside\n// the React tree — while still rendering inside the mounted `<Toaster />`.\nconst toastManager = Toast.createToastManager()\n\ntype ToasterPosition =\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\"\n\nconst VIEWPORT_POSITION: Record<ToasterPosition, string> = {\n \"top-left\": \"top-4 left-4 ppx-sm:top-8 ppx-sm:left-8\",\n \"top-center\": \"top-4 left-1/2 -translate-x-1/2 rtl:translate-x-1/2 ppx-sm:top-8\",\n \"top-right\": \"top-4 right-4 ppx-sm:top-8 ppx-sm:right-8\",\n \"bottom-left\": \"bottom-4 left-4 ppx-sm:bottom-8 ppx-sm:left-8\",\n \"bottom-center\":\n \"bottom-4 left-1/2 -translate-x-1/2 rtl:translate-x-1/2 ppx-sm:bottom-8\",\n \"bottom-right\": \"bottom-4 right-4 ppx-sm:bottom-8 ppx-sm:right-8\",\n}\n\ntype ToasterProps = Omit<Toast.Provider.Props, \"toastManager\" | \"children\"> & {\n /**\n * Where toasts are anchored on the screen.\n * @default \"bottom-right\"\n */\n position?: ToasterPosition\n}\n\n/**\n * Host component for toasts. Mount it once near the root of your app. Toasts are\n * dispatched with the exported `toast` helper.\n */\nfunction Toaster({ position = \"bottom-right\", ...props }: ToasterProps) {\n return (\n <Toast.Provider toastManager={toastManager} {...props}>\n <Toast.Portal>\n <Toast.Viewport\n data-slot=\"toaster\"\n className={cn(\n \"fixed z-[100] mx-auto flex w-[calc(100vw-2rem)] outline-none ppx-sm:w-90\",\n VIEWPORT_POSITION[position]\n )}\n >\n <ToastList position={position} />\n </Toast.Viewport>\n </Toast.Portal>\n </Toast.Provider>\n )\n}\n\nfunction ToastList({ position }: { position: ToasterPosition }) {\n const { toasts } = Toast.useToastManager()\n const side = position.startsWith(\"top\") ? \"top\" : \"bottom\"\n const swipeDirection = [\n side === \"top\" ? \"up\" : \"down\",\n position.includes(\"left\")\n ? \"left\"\n : position.includes(\"right\")\n ? \"right\"\n : null,\n ].filter(Boolean) as (\"up\" | \"down\" | \"left\" | \"right\")[]\n\n return toasts.map((toast) => (\n <Toast.Root\n key={toast.id}\n toast={toast}\n data-side={side}\n swipeDirection={swipeDirection}\n className={cn(\n // Stacking + swipe driver variables exposed by Base UI.\n \"[--gap:0.75rem] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))] [--height:var(--toast-frontmost-height,var(--toast-height))] [--dir:1] data-[side=top]:[--dir:-1]\",\n \"[--offset-y:calc(var(--toast-swipe-movement-y)+var(--dir)*(var(--toast-offset-y)*-1-var(--toast-index)*var(--gap)))]\",\n // Layout + appearance.\n \"absolute right-0 left-auto z-[calc(1000-var(--toast-index))] mr-0 w-full origin-bottom rounded-lg border bg-popover text-popover-foreground shadow-lg ring-1 ring-foreground/10 select-none\",\n toastTint(toast.type),\n \"bottom-0 data-[side=top]:top-0 data-[side=top]:bottom-auto data-[side=top]:origin-top\",\n \"h-[var(--height)] data-expanded:h-[var(--toast-height)]\",\n // Hover bridge so the stack stays expanded between toasts.\n \"after:absolute after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-[''] after:top-full data-[side=top]:after:top-auto data-[side=top]:after:bottom-full\",\n // Collapsed (stacked) transform.\n \"[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+var(--dir)*(var(--toast-index)*var(--peek)*-1-var(--shrink)*var(--height))))_scale(var(--scale))]\",\n // Expanded transform.\n \"data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]\",\n // Enter / exit.\n \"data-starting-style:[transform:translateY(calc(var(--dir)*150%))]\",\n \"data-ending-style:opacity-0 data-limited:opacity-0\",\n \"[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(calc(var(--dir)*150%))]\",\n // Swipe-to-dismiss exits.\n \"data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))] data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\n \"data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))] data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\n \"data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]\",\n \"data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\n \"[transition:transform_0.5s_cubic-bezier(0.22,1,0.36,1),opacity_0.5s,height_0.15s]\"\n )}\n >\n {/*\n Each control (icon, action, close) is wrapped in an `h-[1lh]` box so it\n centers on the *first* line of text. With `items-start`, that means a\n single-line toast centers in the card (equal padding) while a wrapped /\n multi-line toast keeps the icon and close aligned to the title's first\n line instead of floating in the vertical middle. `text-sm leading-tight`\n sets the line-height that `1lh` resolves against, matching the title.\n */}\n <Toast.Content className=\"flex h-full items-start gap-3 overflow-hidden p-4 text-sm leading-tight transition-opacity duration-[250ms] ease-[cubic-bezier(0.22,1,0.36,1)] data-behind:opacity-0 data-expanded:opacity-100\">\n <ToastIcon type={toast.type} />\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n {toast.title ? (\n <Toast.Title className=\"text-sm leading-tight font-medium\" />\n ) : null}\n {toast.description ? (\n <Toast.Description className=\"text-sm text-muted-foreground\" />\n ) : null}\n </div>\n {toast.actionProps ? (\n <div className=\"flex h-[1lh] shrink-0 items-center\">\n <Toast.Action className=\"inline-flex h-8 shrink-0 items-center justify-center gap-1.5 rounded-md border bg-transparent px-3 text-xs font-medium whitespace-nowrap transition-colors hover:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\" />\n </div>\n ) : null}\n <div className=\"-me-1 flex h-[1lh] shrink-0 items-center\">\n <Toast.Close\n aria-label=\"Dismiss\"\n className=\"inline-flex size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none\"\n >\n <XIcon className=\"size-4\" />\n </Toast.Close>\n </div>\n </Toast.Content>\n </Toast.Root>\n ))\n}\n\nconst TOAST_ICONS = {\n success: { Icon: CircleCheckIcon, color: \"text-success\" },\n info: { Icon: InfoIcon, color: \"text-info\" },\n warning: { Icon: TriangleAlertIcon, color: \"text-warning\" },\n error: { Icon: OctagonXIcon, color: \"text-destructive\" },\n loading: { Icon: Loader2Icon, color: \"text-muted-foreground\" },\n} as const\n\nfunction ToastIcon({ type }: { type?: string }) {\n const entry = type\n ? TOAST_ICONS[type as keyof typeof TOAST_ICONS]\n : undefined\n if (!entry) return null\n const { Icon, color } = entry\n // `h-[1lh]` sizes the icon box to one line of text, so the icon centers on the\n // first line whether the toast is a single line or wraps to several.\n return (\n <span\n className={cn(\"flex h-[1lh] shrink-0 items-center justify-center\", color)}\n >\n <Icon className={cn(\"size-4\", type === \"loading\" && \"animate-spin\")} />\n </span>\n )\n}\n\n// Per-type tinted card — a 10% mix of the status color into the popover surface,\n// reproducing px-ui's classic soft-tinted toast look. Shared by both toasters.\nfunction toastTint(type?: string) {\n switch (type) {\n case \"success\":\n return \"bg-[color-mix(in_srgb,var(--success)_10%,var(--popover))]\"\n case \"info\":\n return \"bg-[color-mix(in_srgb,var(--info)_10%,var(--popover))]\"\n case \"warning\":\n return \"bg-[color-mix(in_srgb,var(--warning)_10%,var(--popover))]\"\n case \"error\":\n return \"bg-[color-mix(in_srgb,var(--destructive)_10%,var(--popover))]\"\n default:\n return undefined\n }\n}\n\ntype ToastOptions = Omit<ToastManagerAddOptions<any>, \"title\" | \"type\">\n\nfunction makeToast(type?: string) {\n return (title: React.ReactNode, options?: ToastOptions) =>\n toastManager.add({ title, ...(type ? { type } : {}), ...options })\n}\n\n/**\n * Dispatch a toast from anywhere. Backed by a global Base UI toast manager, so\n * it works even outside the React tree.\n *\n * @example\n * toast(\"Event has been created\")\n * toast.success(\"Saved\", { description: \"Your changes are live.\" })\n */\nconst toast = Object.assign(makeToast(), {\n success: makeToast(\"success\"),\n info: makeToast(\"info\"),\n warning: makeToast(\"warning\"),\n error: makeToast(\"error\"),\n message: makeToast(),\n loading: (title: React.ReactNode, options?: ToastOptions) =>\n toastManager.add({ title, type: \"loading\", timeout: 0, ...options }),\n promise: <Value,>(\n promise: Promise<Value> | (() => Promise<Value>),\n options: ToastManagerPromiseOptions<Value, any>\n ) =>\n toastManager.promise(\n typeof promise === \"function\" ? promise() : promise,\n options\n ),\n update: (id: string, options: ToastManagerUpdateOptions<any>) =>\n toastManager.update(id, options),\n dismiss: (id?: string) => toastManager.close(id),\n})\n\n// A separate manager + host for anchored toasts: small popovers positioned next\n// to a trigger element (e.g. a \"Copied\" confirmation beside a button) rather\n// than stacked in a screen corner.\nconst anchoredToastManager = Toast.createToastManager()\n\ntype AnchoredToastOptions = ToastOptions & {\n /** Element to position the toast against, e.g. `event.currentTarget`. */\n anchor: Element | null\n}\n\nfunction makeAnchoredToast(type?: string) {\n return (title: React.ReactNode, options: AnchoredToastOptions) => {\n const { anchor, ...rest } = options\n // The anchor element rides along in `data`; `AnchoredToaster` reads it back\n // out and hands it to `Toast.Positioner`.\n return anchoredToastManager.add({\n title,\n ...(type ? { type } : {}),\n ...rest,\n data: { ...rest.data, anchor },\n })\n }\n}\n\n/**\n * Dispatch a toast anchored to an element instead of a screen corner. Render\n * `<AnchoredToaster />` once, then pass the trigger element as `anchor`.\n *\n * @example\n * <Button\n * onClick={(e) => anchoredToast.success(\"Copied\", { anchor: e.currentTarget })}\n * >\n * Copy\n * </Button>\n */\nconst anchoredToast = Object.assign(makeAnchoredToast(), {\n success: makeAnchoredToast(\"success\"),\n info: makeAnchoredToast(\"info\"),\n warning: makeAnchoredToast(\"warning\"),\n error: makeAnchoredToast(\"error\"),\n dismiss: (id?: string) => anchoredToastManager.close(id),\n})\n\n/**\n * Host for anchored toasts. Mount it once near the app root; dispatch with the\n * exported `anchoredToast` helper.\n */\nfunction AnchoredToaster(\n props: Omit<Toast.Provider.Props, \"toastManager\" | \"children\">\n) {\n return (\n <Toast.Provider toastManager={anchoredToastManager} {...props}>\n <Toast.Portal>\n <Toast.Viewport data-slot=\"anchored-toaster\" className=\"outline-none\">\n <AnchoredToastList />\n </Toast.Viewport>\n </Toast.Portal>\n </Toast.Provider>\n )\n}\n\nfunction AnchoredToastList() {\n const { toasts } = Toast.useToastManager()\n\n return toasts.map((toast) => {\n const anchor = (toast.data as { anchor?: Element | null } | undefined)\n ?.anchor\n if (!anchor) return null\n\n return (\n <Toast.Positioner\n key={toast.id}\n toast={toast}\n anchor={anchor}\n sideOffset={6}\n className=\"z-[100] max-w-[min(20rem,var(--available-width))]\"\n >\n <Toast.Root\n toast={toast}\n className={cn(\n \"rounded-lg border bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10\",\n \"scale-100 transition-[transform,opacity] data-starting-style:scale-95 data-starting-style:opacity-0 data-ending-style:scale-95 data-ending-style:opacity-0\",\n toastTint(toast.type)\n )}\n >\n <Toast.Content className=\"flex items-start gap-2.5 px-3 py-2 text-sm leading-tight\">\n <ToastIcon type={toast.type} />\n <div className=\"flex min-w-0 flex-col gap-0.5\">\n <Toast.Title className=\"text-sm leading-tight font-medium\" />\n {toast.description ? (\n <Toast.Description className=\"text-sm text-muted-foreground\" />\n ) : null}\n </div>\n </Toast.Content>\n </Toast.Root>\n </Toast.Positioner>\n )\n })\n}\n\nexport {\n Toaster,\n toast,\n toastManager,\n AnchoredToaster,\n anchoredToast,\n anchoredToastManager,\n}\nexport type {\n ToasterProps,\n ToasterPosition,\n ToastOptions,\n AnchoredToastOptions,\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toast-BdxoP8vz.js","names":["VIEWPORT_POSITION: Record<ToasterPosition, string>","toast"],"sources":["../src/components/toast.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Toast } from \"@base-ui/react/toast\"\nimport type {\n ToastManagerAddOptions,\n ToastManagerPromiseOptions,\n ToastManagerUpdateOptions,\n} from \"@base-ui/react/toast\"\nimport {\n CircleCheckIcon,\n InfoIcon,\n Loader2Icon,\n OctagonXIcon,\n TriangleAlertIcon,\n XIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\n// A global manager so toasts can be dispatched from anywhere — including outside\n// the React tree — while still rendering inside the mounted `<Toaster />`.\nconst toastManager = Toast.createToastManager()\n\ntype ToasterPosition =\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\"\n\nconst VIEWPORT_POSITION: Record<ToasterPosition, string> = {\n \"top-left\": \"top-4 left-4 ppx-sm:top-8 ppx-sm:left-8\",\n \"top-center\": \"top-4 left-1/2 -translate-x-1/2 rtl:translate-x-1/2 ppx-sm:top-8\",\n \"top-right\": \"top-4 right-4 ppx-sm:top-8 ppx-sm:right-8\",\n \"bottom-left\": \"bottom-4 left-4 ppx-sm:bottom-8 ppx-sm:left-8\",\n \"bottom-center\":\n \"bottom-4 left-1/2 -translate-x-1/2 rtl:translate-x-1/2 ppx-sm:bottom-8\",\n \"bottom-right\": \"bottom-4 right-4 ppx-sm:bottom-8 ppx-sm:right-8\",\n}\n\ntype ToasterProps = Omit<Toast.Provider.Props, \"toastManager\" | \"children\"> & {\n /**\n * Where toasts are anchored on the screen.\n * @default \"bottom-right\"\n */\n position?: ToasterPosition\n}\n\n/**\n * Host component for toasts. Mount it once near the root of your app. Toasts are\n * dispatched with the exported `toast` helper.\n */\nfunction Toaster({ position = \"bottom-right\", ...props }: ToasterProps) {\n return (\n <Toast.Provider toastManager={toastManager} {...props}>\n <Toast.Portal>\n <Toast.Viewport\n data-slot=\"toaster\"\n className={cn(\n \"fixed z-[100] mx-auto flex w-[calc(100vw-2rem)] outline-none ppx-sm:w-90\",\n VIEWPORT_POSITION[position]\n )}\n >\n <ToastList position={position} />\n </Toast.Viewport>\n </Toast.Portal>\n </Toast.Provider>\n )\n}\n\nfunction ToastList({ position }: { position: ToasterPosition }) {\n const { toasts } = Toast.useToastManager()\n const side = position.startsWith(\"top\") ? \"top\" : \"bottom\"\n const swipeDirection = [\n side === \"top\" ? \"up\" : \"down\",\n position.includes(\"left\")\n ? \"left\"\n : position.includes(\"right\")\n ? \"right\"\n : null,\n ].filter(Boolean) as (\"up\" | \"down\" | \"left\" | \"right\")[]\n\n return toasts.map((toast) => (\n <Toast.Root\n key={toast.id}\n toast={toast}\n data-side={side}\n swipeDirection={swipeDirection}\n className={cn(\n // Stacking + swipe driver variables exposed by Base UI.\n \"[--gap:0.75rem] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))] [--height:var(--toast-frontmost-height,var(--toast-height))] [--dir:1] data-[side=top]:[--dir:-1]\",\n \"[--offset-y:calc(var(--toast-swipe-movement-y)+var(--dir)*(var(--toast-offset-y)*-1-var(--toast-index)*var(--gap)))]\",\n // Layout + appearance.\n \"absolute right-0 left-auto z-[calc(1000-var(--toast-index))] mr-0 w-full origin-bottom rounded-lg border bg-popover text-popover-foreground shadow-lg ring-1 ring-foreground/10 select-none\",\n toastTint(toast.type),\n \"bottom-0 data-[side=top]:top-0 data-[side=top]:bottom-auto data-[side=top]:origin-top\",\n \"h-[var(--height)] data-expanded:h-[var(--toast-height)]\",\n // Hover bridge so the stack stays expanded between toasts.\n \"after:absolute after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-[''] after:top-full data-[side=top]:after:top-auto data-[side=top]:after:bottom-full\",\n // Collapsed (stacked) transform.\n \"[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+var(--dir)*(var(--toast-index)*var(--peek)*-1-var(--shrink)*var(--height))))_scale(var(--scale))]\",\n // Expanded transform.\n \"data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]\",\n // Enter / exit.\n \"data-starting-style:[transform:translateY(calc(var(--dir)*150%))]\",\n \"data-ending-style:opacity-0 data-limited:opacity-0\",\n \"[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(calc(var(--dir)*150%))]\",\n // Swipe-to-dismiss exits.\n \"data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))] data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\n \"data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))] data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\n \"data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]\",\n \"data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\n \"[transition:transform_0.5s_cubic-bezier(0.22,1,0.36,1),opacity_0.5s,height_0.15s]\"\n )}\n >\n {/*\n Each control (icon, action, close) is wrapped in an `h-[1lh]` box so it\n centers on the *first* line of text. With `items-start`, that means a\n single-line toast centers in the card (equal padding) while a wrapped /\n multi-line toast keeps the icon and close aligned to the title's first\n line instead of floating in the vertical middle. `text-sm leading-tight`\n sets the line-height that `1lh` resolves against, matching the title.\n */}\n <Toast.Content className=\"flex h-full items-start gap-3 overflow-hidden p-4 text-sm leading-tight transition-opacity duration-[250ms] ease-[cubic-bezier(0.22,1,0.36,1)] data-behind:opacity-0 data-expanded:opacity-100\">\n <ToastIcon type={toast.type} />\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n {toast.title ? (\n <Toast.Title className=\"text-sm leading-tight font-medium\" />\n ) : null}\n {toast.description ? (\n <Toast.Description className=\"text-sm text-muted-foreground\" />\n ) : null}\n </div>\n {toast.actionProps ? (\n <div className=\"flex h-[1lh] shrink-0 items-center\">\n <Toast.Action className=\"inline-flex h-8 shrink-0 items-center justify-center gap-1.5 rounded-md border bg-transparent px-3 text-xs font-medium whitespace-nowrap transition-colors hover:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\" />\n </div>\n ) : null}\n <div className=\"-me-1 flex h-[1lh] shrink-0 items-center\">\n <Toast.Close\n aria-label=\"Dismiss\"\n className=\"inline-flex size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none\"\n >\n <XIcon className=\"size-4\" />\n </Toast.Close>\n </div>\n </Toast.Content>\n </Toast.Root>\n ))\n}\n\nconst TOAST_ICONS = {\n success: { Icon: CircleCheckIcon, color: \"text-success\" },\n info: { Icon: InfoIcon, color: \"text-info\" },\n warning: { Icon: TriangleAlertIcon, color: \"text-warning\" },\n error: { Icon: OctagonXIcon, color: \"text-destructive\" },\n loading: { Icon: Loader2Icon, color: \"text-muted-foreground\" },\n} as const\n\nfunction ToastIcon({ type }: { type?: string }) {\n const entry = type\n ? TOAST_ICONS[type as keyof typeof TOAST_ICONS]\n : undefined\n if (!entry) return null\n const { Icon, color } = entry\n // `h-[1lh]` sizes the icon box to one line of text, so the icon centers on the\n // first line whether the toast is a single line or wraps to several.\n return (\n <span\n className={cn(\"flex h-[1lh] shrink-0 items-center justify-center\", color)}\n >\n <Icon className={cn(\"size-4\", type === \"loading\" && \"animate-spin\")} />\n </span>\n )\n}\n\n// Per-type tinted card — a 10% mix of the status color into the popover surface,\n// reproducing px-ui's classic soft-tinted toast look. Shared by both toasters.\nfunction toastTint(type?: string) {\n switch (type) {\n case \"success\":\n return \"bg-[color-mix(in_srgb,var(--success)_10%,var(--popover))]\"\n case \"info\":\n return \"bg-[color-mix(in_srgb,var(--info)_10%,var(--popover))]\"\n case \"warning\":\n return \"bg-[color-mix(in_srgb,var(--warning)_10%,var(--popover))]\"\n case \"error\":\n return \"bg-[color-mix(in_srgb,var(--destructive)_10%,var(--popover))]\"\n default:\n return undefined\n }\n}\n\ntype ToastOptions = Omit<ToastManagerAddOptions<any>, \"title\" | \"type\">\n\nfunction makeToast(type?: string) {\n return (title: React.ReactNode, options?: ToastOptions) =>\n toastManager.add({ title, ...(type ? { type } : {}), ...options })\n}\n\n/**\n * Dispatch a toast from anywhere. Backed by a global Base UI toast manager, so\n * it works even outside the React tree.\n *\n * @example\n * toast(\"Event has been created\")\n * toast.success(\"Saved\", { description: \"Your changes are live.\" })\n */\nconst toast = Object.assign(makeToast(), {\n success: makeToast(\"success\"),\n info: makeToast(\"info\"),\n warning: makeToast(\"warning\"),\n error: makeToast(\"error\"),\n message: makeToast(),\n loading: (title: React.ReactNode, options?: ToastOptions) =>\n toastManager.add({ title, type: \"loading\", timeout: 0, ...options }),\n promise: <Value,>(\n promise: Promise<Value> | (() => Promise<Value>),\n options: ToastManagerPromiseOptions<Value, any>\n ) =>\n toastManager.promise(\n typeof promise === \"function\" ? promise() : promise,\n options\n ),\n update: (id: string, options: ToastManagerUpdateOptions<any>) =>\n toastManager.update(id, options),\n dismiss: (id?: string) => toastManager.close(id),\n})\n\n// A separate manager + host for anchored toasts: small popovers positioned next\n// to a trigger element (e.g. a \"Copied\" confirmation beside a button) rather\n// than stacked in a screen corner.\nconst anchoredToastManager = Toast.createToastManager()\n\ntype AnchoredToastOptions = ToastOptions & {\n /** Element to position the toast against, e.g. `event.currentTarget`. */\n anchor: Element | null\n}\n\nfunction makeAnchoredToast(type?: string) {\n return (title: React.ReactNode, options: AnchoredToastOptions) => {\n const { anchor, ...rest } = options\n // The anchor element rides along in `data`; `AnchoredToaster` reads it back\n // out and hands it to `Toast.Positioner`.\n return anchoredToastManager.add({\n title,\n ...(type ? { type } : {}),\n ...rest,\n data: { ...rest.data, anchor },\n })\n }\n}\n\n/**\n * Dispatch a toast anchored to an element instead of a screen corner. Render\n * `<AnchoredToaster />` once, then pass the trigger element as `anchor`.\n *\n * @example\n * <Button\n * onClick={(e) => anchoredToast.success(\"Copied\", { anchor: e.currentTarget })}\n * >\n * Copy\n * </Button>\n */\nconst anchoredToast = Object.assign(makeAnchoredToast(), {\n success: makeAnchoredToast(\"success\"),\n info: makeAnchoredToast(\"info\"),\n warning: makeAnchoredToast(\"warning\"),\n error: makeAnchoredToast(\"error\"),\n dismiss: (id?: string) => anchoredToastManager.close(id),\n})\n\n/**\n * Host for anchored toasts. Mount it once near the app root; dispatch with the\n * exported `anchoredToast` helper.\n */\nfunction AnchoredToaster(\n props: Omit<Toast.Provider.Props, \"toastManager\" | \"children\">\n) {\n return (\n <Toast.Provider toastManager={anchoredToastManager} {...props}>\n <Toast.Portal>\n <Toast.Viewport data-slot=\"anchored-toaster\" className=\"outline-none\">\n <AnchoredToastList />\n </Toast.Viewport>\n </Toast.Portal>\n </Toast.Provider>\n )\n}\n\nfunction AnchoredToastList() {\n const { toasts } = Toast.useToastManager()\n\n return toasts.map((toast) => {\n const anchor = (toast.data as { anchor?: Element | null } | undefined)\n ?.anchor\n if (!anchor) return null\n\n return (\n <Toast.Positioner\n key={toast.id}\n toast={toast}\n anchor={anchor}\n sideOffset={6}\n className=\"z-[100] max-w-[min(20rem,var(--available-width))]\"\n >\n <Toast.Root\n toast={toast}\n className={cn(\n \"rounded-lg border bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10\",\n \"scale-100 transition-[transform,opacity] data-starting-style:scale-95 data-starting-style:opacity-0 data-ending-style:scale-95 data-ending-style:opacity-0\",\n toastTint(toast.type)\n )}\n >\n <Toast.Content className=\"flex items-start gap-2.5 px-3 py-2 text-sm leading-tight\">\n <ToastIcon type={toast.type} />\n <div className=\"flex min-w-0 flex-col gap-0.5\">\n <Toast.Title className=\"text-sm leading-tight font-medium\" />\n {toast.description ? (\n <Toast.Description className=\"text-sm text-muted-foreground\" />\n ) : null}\n </div>\n </Toast.Content>\n </Toast.Root>\n </Toast.Positioner>\n )\n })\n}\n\nexport {\n Toaster,\n toast,\n toastManager,\n AnchoredToaster,\n anchoredToast,\n anchoredToastManager,\n}\nexport type {\n ToasterProps,\n ToasterPosition,\n ToastOptions,\n AnchoredToastOptions,\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import * as react_jsx_runtime288 from "react/jsx-runtime";
|
|
1
2
|
import * as React$1 from "react";
|
|
2
|
-
import { Toast, ToastManagerAddOptions, ToastManagerPromiseOptions, ToastManagerUpdateOptions } from "@base-ui/react/toast";
|
|
3
|
-
import * as react_jsx_runtime318 from "react/jsx-runtime";
|
|
4
3
|
import * as _base_ui_react0 from "@base-ui/react";
|
|
4
|
+
import { Toast, ToastManagerAddOptions, ToastManagerPromiseOptions, ToastManagerUpdateOptions } from "@base-ui/react/toast";
|
|
5
5
|
|
|
6
6
|
//#region src/components/toast.d.ts
|
|
7
7
|
declare const toastManager: _base_ui_react0.ToastManager<any>;
|
|
@@ -20,7 +20,7 @@ type ToasterProps = Omit<Toast.Provider.Props, "toastManager" | "children"> & {
|
|
|
20
20
|
declare function Toaster({
|
|
21
21
|
position,
|
|
22
22
|
...props
|
|
23
|
-
}: ToasterProps):
|
|
23
|
+
}: ToasterProps): react_jsx_runtime288.JSX.Element;
|
|
24
24
|
type ToastOptions = Omit<ToastManagerAddOptions<any>, "title" | "type">;
|
|
25
25
|
/**
|
|
26
26
|
* Dispatch a toast from anywhere. Backed by a global Base UI toast manager, so
|
|
@@ -68,7 +68,7 @@ declare const anchoredToast: ((title: React$1.ReactNode, options: AnchoredToastO
|
|
|
68
68
|
* Host for anchored toasts. Mount it once near the app root; dispatch with the
|
|
69
69
|
* exported `anchoredToast` helper.
|
|
70
70
|
*/
|
|
71
|
-
declare function AnchoredToaster(props: Omit<Toast.Provider.Props, "toastManager" | "children">):
|
|
71
|
+
declare function AnchoredToaster(props: Omit<Toast.Provider.Props, "toastManager" | "children">): react_jsx_runtime288.JSX.Element;
|
|
72
72
|
//#endregion
|
|
73
73
|
export { ToasterPosition as a, anchoredToastManager as c, Toaster as i, toast as l, AnchoredToaster as n, ToasterProps as o, ToastOptions as r, anchoredToast as s, AnchoredToastOptions as t, toastManager as u };
|
|
74
|
-
//# sourceMappingURL=toast-
|
|
74
|
+
//# sourceMappingURL=toast-C5FRpq1P.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-
|
|
1
|
+
{"version":3,"file":"toast-C5FRpq1P.d.ts","names":[],"sources":["../src/components/toast.tsx"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
1
|
+
import { t as cn } from "./utils-DUlptRpf.js";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { cva } from "class-variance-authority";
|
|
4
4
|
import { Toggle } from "@base-ui/react/toggle";
|
|
@@ -36,4 +36,4 @@ function Toggle$1({ className, variant = "default", size = "default", ...props }
|
|
|
36
36
|
|
|
37
37
|
//#endregion
|
|
38
38
|
export { toggleVariants as n, Toggle$1 as t };
|
|
39
|
-
//# sourceMappingURL=toggle-
|
|
39
|
+
//# sourceMappingURL=toggle-BZXrLBLK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-
|
|
1
|
+
{"version":3,"file":"toggle-BZXrLBLK.js","names":["Toggle","TogglePrimitive"],"sources":["../src/components/toggle.tsx"],"sourcesContent":["\"use client\";\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@px-ui/ui/lib/utils\";\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-transparent hover:bg-muted hover:text-foreground aria-pressed:bg-muted\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-muted hover:text-foreground aria-pressed:bg-muted\",\n accent:\n \"bg-transparent hover:bg-accent hover:text-accent-foreground aria-pressed:bg-accent aria-pressed:text-accent-foreground\",\n },\n size: {\n default:\n \"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n sm: \"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5\",\n lg: \"h-10 min-w-10 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n"],"mappings":";;;;;;AAOA,MAAM,iBAAiB,IACrB,kdACA;CACE,UAAU;EACR,SAAS;GACP,SACE;GACF,SACE;GACF,QACE;GACH;EACD,MAAM;GACJ,SACE;GACF,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;AAED,SAASA,SAAO,EACd,WACA,UAAU,WACV,OAAO,WACP,GAAG,SAC2D;AAC9D,QACE,oBAACC;EACC,aAAU;EACV,WAAW,GAAG,eAAe;GAAE;GAAS;GAAM;GAAW,CAAC,CAAC;EAC3D,GAAI;GACJ"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime292 from "react/jsx-runtime";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
3
|
import { Toggle } from "@base-ui/react/toggle";
|
|
4
|
-
import * as
|
|
4
|
+
import * as class_variance_authority_types22 from "class-variance-authority/types";
|
|
5
5
|
|
|
6
6
|
//#region src/components/toggle.d.ts
|
|
7
7
|
declare const toggleVariants: (props?: ({
|
|
8
|
-
variant?: "
|
|
8
|
+
variant?: "default" | "accent" | "outline" | null | undefined;
|
|
9
9
|
size?: "default" | "sm" | "lg" | null | undefined;
|
|
10
|
-
} &
|
|
10
|
+
} & class_variance_authority_types22.ClassProp) | undefined) => string;
|
|
11
11
|
declare function Toggle$1({
|
|
12
12
|
className,
|
|
13
13
|
variant,
|
|
14
14
|
size,
|
|
15
15
|
...props
|
|
16
|
-
}: Toggle.Props & VariantProps<typeof toggleVariants>):
|
|
16
|
+
}: Toggle.Props & VariantProps<typeof toggleVariants>): react_jsx_runtime292.JSX.Element;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { toggleVariants as n, Toggle$1 as t };
|
|
19
|
-
//# sourceMappingURL=toggle-
|
|
19
|
+
//# sourceMappingURL=toggle-CyTngkhT.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-
|
|
1
|
+
{"version":3,"file":"toggle-CyTngkhT.d.ts","names":[],"sources":["../src/components/toggle.tsx"],"sourcesContent":[],"mappings":";;;;;;cAOM;;;IAwBL,gCAAA,CAAA;AA5BiE,iBA8BzD,QAAA,CAFR;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAOE,MAAA,CAAgB,KAPlB,GAO0B,YAP1B,CAAA,OAO8C,cAP9C,CAAA,CAAA,EAO6D,oBAAA,CAAA,GAAA,CAAA,OAP7D"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime293 from "react/jsx-runtime";
|
|
2
2
|
import { Tooltip } from "@base-ui/react/tooltip";
|
|
3
3
|
|
|
4
4
|
//#region src/components/tooltip.d.ts
|
|
5
5
|
declare function TooltipProvider({
|
|
6
6
|
delay,
|
|
7
7
|
...props
|
|
8
|
-
}: Tooltip.Provider.Props):
|
|
8
|
+
}: Tooltip.Provider.Props): react_jsx_runtime293.JSX.Element;
|
|
9
9
|
declare function Tooltip$1({
|
|
10
10
|
...props
|
|
11
|
-
}: Tooltip.Root.Props):
|
|
11
|
+
}: Tooltip.Root.Props): react_jsx_runtime293.JSX.Element;
|
|
12
12
|
declare function TooltipTrigger({
|
|
13
13
|
...props
|
|
14
|
-
}: Tooltip.Trigger.Props):
|
|
14
|
+
}: Tooltip.Trigger.Props): react_jsx_runtime293.JSX.Element;
|
|
15
15
|
declare function TooltipContent({
|
|
16
16
|
className,
|
|
17
17
|
side,
|
|
@@ -20,7 +20,7 @@ declare function TooltipContent({
|
|
|
20
20
|
alignOffset,
|
|
21
21
|
children,
|
|
22
22
|
...props
|
|
23
|
-
}: Tooltip.Popup.Props & Pick<Tooltip.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">):
|
|
23
|
+
}: Tooltip.Popup.Props & Pick<Tooltip.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): react_jsx_runtime293.JSX.Element;
|
|
24
24
|
//#endregion
|
|
25
25
|
export { TooltipTrigger as i, TooltipContent as n, TooltipProvider as r, Tooltip$1 as t };
|
|
26
|
-
//# sourceMappingURL=tooltip-
|
|
26
|
+
//# sourceMappingURL=tooltip-CkX3CD71.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip-
|
|
1
|
+
{"version":3,"file":"tooltip-CkX3CD71.d.ts","names":[],"sources":["../src/components/tooltip.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,eAAA;;;GAGN,OAAA,CAAiB,QAAA,CAAS,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAUzB,SAAA;;GAAsB,OAAA,CAAiB,IAAA,CAAK,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAIjD,cAAA;;GAA6B,OAAA,CAAiB,OAAA,CAAQ,QAAK,oBAAA,CAAA,GAAA,CAAA;AArBA,iBAyB3D,cAAA,CArBe;EAAA,SAAA;EAAA,IAAA;EAAA,UAAA;EAAA,KAAA;EAAA,WAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA6BrB,OAAA,CAAiB,KAAA,CAAM,KA7BF,GA8BtB,IA9BsB,CA+BpB,OAAA,CAAiB,UAAA,CAAW,KA/BR,EAAA,OAAA,GAAA,aAAA,GAAA,MAAA,GAAA,YAAA,CAAA,CAAA,EAiCrB,oBAAA,CAAA,GAAA,CAAA,OAjCqB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as cn } from "./utils-
|
|
1
|
+
import { t as cn } from "./utils-DUlptRpf.js";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Tooltip } from "@base-ui/react/tooltip";
|
|
4
4
|
|
|
@@ -40,4 +40,4 @@ function TooltipContent({ className, side = "top", sideOffset = 4, align = "cent
|
|
|
40
40
|
|
|
41
41
|
//#endregion
|
|
42
42
|
export { TooltipTrigger as i, TooltipContent as n, TooltipProvider as r, Tooltip$1 as t };
|
|
43
|
-
//# sourceMappingURL=tooltip-
|
|
43
|
+
//# sourceMappingURL=tooltip-Dsfn_zZD.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip-
|
|
1
|
+
{"version":3,"file":"tooltip-Dsfn_zZD.js","names":["TooltipPrimitive","Tooltip"],"sources":["../src/components/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pe-1.5 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=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 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\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-start-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-end-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":";;;;;AAIA,SAAS,gBAAgB,EACvB,QAAQ,GACR,GAAG,SAC+B;AAClC,QACE,oBAACA,QAAiB;EAChB,aAAU;EACH;EACP,GAAI;GACJ;;AAIN,SAASC,UAAQ,EAAE,GAAG,SAAsC;AAC1D,QAAO,oBAACD,QAAiB;EAAK,aAAU;EAAU,GAAI;GAAS;;AAGjE,SAAS,eAAe,EAAE,GAAG,SAAyC;AACpE,QAAO,oBAACA,QAAiB;EAAQ,aAAU;EAAkB,GAAI;GAAS;;AAG5E,SAAS,eAAe,EACtB,WACA,OAAO,OACP,aAAa,GACb,QAAQ,UACR,cAAc,GACd,UACA,GAAG,SAKA;AACH,QACE,oBAACA,QAAiB,oBAChB,oBAACA,QAAiB;EACT;EACM;EACP;EACM;EACZ,WAAU;YAEV,qBAACA,QAAiB;GAChB,aAAU;GACV,WAAW,GACT,kwBACA,UACD;GACD,GAAI;cAEH,UACD,oBAACA,QAAiB,SAAM,WAAU,4hBAA4hB;IACviB;GACG,GACN"}
|
|
@@ -60,4 +60,4 @@ type InferOption<T> = T extends LoadOptionsConfig<infer TData> ? TData : never;
|
|
|
60
60
|
type InferOptions<T> = T extends LoadOptionsConfig<infer TData> ? TData[] : never;
|
|
61
61
|
//#endregion
|
|
62
62
|
export { useAsyncOptions as a, defineLoadOptions as i, InferOptions as n, LoadOptionsConfig as r, InferOption as t };
|
|
63
|
-
//# sourceMappingURL=use-async-options-
|
|
63
|
+
//# sourceMappingURL=use-async-options-DdyHJxHh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-async-options-
|
|
1
|
+
{"version":3,"file":"use-async-options-DdyHJxHh.d.ts","names":[],"sources":["../src/hooks/use-async-options.ts"],"sourcesContent":[],"mappings":";;;;KAKK;WACM;;AAL6D;AAKxD;AAkBO;;;EAQT,OAAA,CAAA,EAAA,OAAA;EAAR;;AAEN;;;;EAMI,KAAA,CAAA,EAAA,MAAA;CACA;KAlBC,iBAmBD,CAAA,OAAA,CAAA,GAAA;EACA,IAAA,EAnBI,eAmBJ,CAnBoB,OAmBpB,CAAA;;;KAfC;;;UAGK;MACJ,QAAQ,kBAAkB;AAuGpB,iBArGI,eAqGa,CAAA,UAAA,GAAA,CAAA,CAAA,MAAA,EAAA;EACjB,QAAA,EApGE,QAoGF;EACY,MAAA,EApGZ,aAoGY,CApGE,OAoGF,CAAA;CAAd,EAAA;EAAA,MAAA;EAAA,UAAA;EAAA,KAAA;EAAA;CAAA,EAAA;EAAa,MAAA,EAAA,OAAA;EAGP,UAAA,EAAA,MAAA;EACiB,KAAA,CAAA,EAAA,OAAA;EAAlB,WAAA,CAAA,EAAA,OAAA;CAAwB,CAAA,EAAA;EAAA,KAAA,SAAA,EAAA;EAAA,SAAA,EAAA,OAAA;EAK3B,aAAA,EAAW,OAAA;EAEX,OAAA,EAAA,OAAY;EACtB,OAAA,EAAA,OAAA;EAAU,aAAA,EAAA,OAAA;EAAiC,UAAA,EAAA,GAAA,GAAA,IAAA;EAAK,MAAA,+CAAA,oCAAA,gBAAA,QAAA,CAAA,EAAA,OAAA,CAAA,OAAA,CAAA;;KAdtC;YACA;UACF,cAAc;;iBAGR,8CACD,kBAAkB,WAAM,kBAAA;KAK3B,iBACV,UAAU;KACA,kBACV,UAAU,iCAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-async-options-
|
|
1
|
+
{"version":3,"file":"use-async-options-tueAuVs_.js","names":["EMPTY_ITEMS: readonly unknown[]"],"sources":["../src/hooks/use-async-options.ts"],"sourcesContent":["import { useCallback, useMemo, useRef } from \"react\";\nimport { useInfiniteQuery, type QueryKey } from \"@tanstack/react-query\";\n\nconst EMPTY_ITEMS: readonly unknown[] = Object.freeze([]);\n\ntype LoadOptionsData<TData> = {\n options: TData[];\n /**\n * Whether more pages remain — the recommended default. Most list APIs do\n * server-side keyword search, so the result set changes per query and the API\n * reports whether more pages exist (`has_more`, a `next` cursor,\n * `page < totalPages`). Takes precedence over `total` when both are present.\n */\n hasMore?: boolean;\n /**\n * Total number of records matching the current search. For lists without\n * server-side search — a bounded \"simple name\" list you load once and filter\n * on the client (pair with `localFilter`). The hook derives `hasMore` by\n * comparing `total` against the item count accumulated across fetched pages.\n */\n total?: number;\n};\n\ntype LoadOptionsReturn<TData> = {\n data: LoadOptionsData<TData>;\n error: any;\n};\n\ntype LoadOptionsFn<TData> = (params: {\n search: string;\n page: number;\n signal: AbortSignal;\n}) => Promise<LoadOptionsReturn<TData>>;\n\nexport function useAsyncOptions<TData = any>(\n params: {\n cacheKey: QueryKey;\n loader: LoadOptionsFn<TData>;\n },\n {\n isOpen,\n inputValue,\n eager = false,\n localFilter = false,\n }: {\n isOpen: boolean;\n inputValue: string;\n eager?: boolean;\n localFilter?: boolean;\n },\n) {\n const isFetchedAfterMount = useRef(false);\n // Once the initial empty-search page reports `hasMore: false`, the entire\n // dataset is already in memory — freeze the query search so typing filters\n // locally instead of refetching.\n const isFullyLoaded = useRef(false);\n\n const effectiveSearch =\n localFilter && isFullyLoaded.current ? \"\" : inputValue;\n\n const query = useInfiniteQuery({\n queryKey: [...params.cacheKey, effectiveSearch],\n queryFn: async ({ pageParam, signal }) => {\n const { error, data } = await params.loader({\n search: effectiveSearch,\n page: pageParam,\n signal,\n });\n\n if (error) {\n throw new Error(error);\n }\n\n return data;\n },\n enabled: isOpen || eager,\n initialPageParam: 1,\n staleTime: () => (isFetchedAfterMount.current ? Infinity : 0),\n getNextPageParam: (lastPage, allPages) => {\n // Explicit hasMore from the server wins.\n if (typeof lastPage.hasMore === \"boolean\") {\n return lastPage.hasMore ? allPages.length + 1 : undefined;\n }\n // Otherwise derive it from total vs. the accumulated item count —\n // allPages already holds every page React Query has fetched.\n if (typeof lastPage.total === \"number\") {\n const loaded = allPages.reduce(\n (count, page) => count + page.options.length,\n 0,\n );\n return loaded < lastPage.total ? allPages.length + 1 : undefined;\n }\n return undefined;\n },\n retry: false,\n });\n\n if (query.isFetchedAfterMount && !isFetchedAfterMount.current) {\n isFetchedAfterMount.current = true;\n }\n\n if (\n localFilter &&\n !isFullyLoaded.current &&\n effectiveSearch === \"\" &&\n query.isSuccess &&\n query.data.pages.length === 1 &&\n query.hasNextPage === false\n ) {\n isFullyLoaded.current = true;\n }\n\n const items = useMemo(\n () =>\n (query.data?.pages.flatMap((page) => page.options) ??\n EMPTY_ITEMS) as TData[],\n [query.data?.pages],\n );\n\n const handleLoadMore = useCallback(() => {\n query.fetchNextPage();\n }, [query.fetchNextPage]);\n\n return {\n items,\n isLoading: query.isLoading,\n isLoadingMore: query.isFetchingNextPage,\n hasMore: query.hasNextPage,\n isError: query.isError,\n isLocalFilter: localFilter && isFullyLoaded.current,\n onLoadMore: handleLoadMore,\n _query: query,\n };\n}\n\nexport type LoadOptionsConfig<TData> = {\n cacheKey: QueryKey;\n loader: LoadOptionsFn<TData>;\n};\n\nexport function defineLoadOptions<TData = any>(\n loadOptions: LoadOptionsConfig<TData>,\n) {\n return loadOptions;\n}\n\nexport type InferOption<T> =\n T extends LoadOptionsConfig<infer TData> ? TData : never;\nexport type InferOptions<T> =\n T extends LoadOptionsConfig<infer TData> ? TData[] : never;\n"],"mappings":";;;;AAGA,MAAMA,cAAkC,OAAO,OAAO,EAAE,CAAC;AA+BzD,SAAgB,gBACd,QAIA,EACE,QACA,YACA,QAAQ,OACR,cAAc,SAOhB;CACA,MAAM,sBAAsB,OAAO,MAAM;CAIzC,MAAM,gBAAgB,OAAO,MAAM;CAEnC,MAAM,kBACJ,eAAe,cAAc,UAAU,KAAK;CAE9C,MAAM,QAAQ,iBAAiB;EAC7B,UAAU,CAAC,GAAG,OAAO,UAAU,gBAAgB;EAC/C,SAAS,OAAO,EAAE,WAAW,aAAa;GACxC,MAAM,EAAE,OAAO,SAAS,MAAM,OAAO,OAAO;IAC1C,QAAQ;IACR,MAAM;IACN;IACD,CAAC;AAEF,OAAI,MACF,OAAM,IAAI,MAAM,MAAM;AAGxB,UAAO;;EAET,SAAS,UAAU;EACnB,kBAAkB;EAClB,iBAAkB,oBAAoB,UAAU,WAAW;EAC3D,mBAAmB,UAAU,aAAa;AAExC,OAAI,OAAO,SAAS,YAAY,UAC9B,QAAO,SAAS,UAAU,SAAS,SAAS,IAAI;AAIlD,OAAI,OAAO,SAAS,UAAU,SAK5B,QAJe,SAAS,QACrB,OAAO,SAAS,QAAQ,KAAK,QAAQ,QACtC,EACD,GACe,SAAS,QAAQ,SAAS,SAAS,IAAI;;EAI3D,OAAO;EACR,CAAC;AAEF,KAAI,MAAM,uBAAuB,CAAC,oBAAoB,QACpD,qBAAoB,UAAU;AAGhC,KACE,eACA,CAAC,cAAc,WACf,oBAAoB,MACpB,MAAM,aACN,MAAM,KAAK,MAAM,WAAW,KAC5B,MAAM,gBAAgB,MAEtB,eAAc,UAAU;CAG1B,MAAM,QAAQ,cAET,MAAM,MAAM,MAAM,SAAS,SAAS,KAAK,QAAQ,IAChD,aACJ,CAAC,MAAM,MAAM,MAAM,CACpB;CAED,MAAM,iBAAiB,kBAAkB;AACvC,QAAM,eAAe;IACpB,CAAC,MAAM,cAAc,CAAC;AAEzB,QAAO;EACL;EACA,WAAW,MAAM;EACjB,eAAe,MAAM;EACrB,SAAS,MAAM;EACf,SAAS,MAAM;EACf,eAAe,eAAe,cAAc;EAC5C,YAAY;EACZ,QAAQ;EACT;;AAQH,SAAgB,kBACd,aACA;AACA,QAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-debounce
|
|
1
|
+
{"version":3,"file":"use-debounce-7gIeOwla.js","names":[],"sources":["../src/hooks/use-debounce.ts"],"sourcesContent":["import { useEffect, useEffectEvent, useRef } from \"react\";\n\nexport default function useDebounce<T>(\n callback: () => void,\n delay: number,\n deps: React.DependencyList,\n) {\n const timeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n const cb = useEffectEvent(callback);\n\n useEffect(() => {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n\n timeout.current = setTimeout(() => {\n cb();\n timeout.current = null;\n }, delay);\n\n return () => {\n if (timeout.current) {\n clearTimeout(timeout.current);\n timeout.current = null;\n }\n };\n }, [...deps, delay]);\n}\n"],"mappings":";;;AAEA,SAAwB,YACtB,UACA,OACA,MACA;CACA,MAAM,UAAU,OAA6C,KAAK;CAClE,MAAM,KAAK,eAAe,SAAS;AAEnC,iBAAgB;AACd,MAAI,QAAQ,QACV,cAAa,QAAQ,QAAQ;AAG/B,UAAQ,UAAU,iBAAiB;AACjC,OAAI;AACJ,WAAQ,UAAU;KACjB,MAAM;AAET,eAAa;AACX,OAAI,QAAQ,SAAS;AACnB,iBAAa,QAAQ,QAAQ;AAC7B,YAAQ,UAAU;;;IAGrB,CAAC,GAAG,MAAM,MAAM,CAAC"}
|
|
@@ -130,4 +130,4 @@ type FileUploadOptions = UseFileUploadOptions;
|
|
|
130
130
|
type FileUploadWithUploaderOptions = UseFileUploadOptions;
|
|
131
131
|
//#endregion
|
|
132
132
|
export { FileWithPreview as a, UploadConfig as c, UseFileUploadReturn as d, formatBytes as f, FileUploadWithUploaderOptions as i, UploadStatus as l, FileUploadItem as n, FileWithUploadStatus as o, useFileUpload as p, FileUploadOptions as r, PresignedUrlResponse as s, FileMetadata as t, UseFileUploadOptions as u };
|
|
133
|
-
//# sourceMappingURL=use-file-upload-
|
|
133
|
+
//# sourceMappingURL=use-file-upload-Bc7CyQ7O.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-file-upload-
|
|
1
|
+
{"version":3,"file":"use-file-upload-Bc7CyQ7O.d.ts","names":[],"sources":["../src/hooks/use-file-upload.ts"],"sourcesContent":[],"mappings":";;;KAaY,YAAA;;EAAA,IAAA,EAAA,MAAA;EAQA,IAAA,EAAA,MAAA;EAEA,GAAA,EAAA,MAAA;EACJ,EAAA,EAAA,MAAA;CAAO;AAIL,KAPE,YAAA,GAOF,MAAA,GAAA,WAAA,GAAA,UAAA,GAAA,OAAA;AAAY,KALV,cAAA,GAKU;EAKV,IAAA,EATJ,IASI,GATG,YASiB;EA2BpB,EAAA,EAAA,MAAA;EAQC,OAAA,CAAA,EAAA,MAAA;EAEA,QAAA,EAAA,MAAA;EADL,MAAA,EAzCE,YAyCF;EAUE,KAAA,CAAA,EAAA,MAAA;EACS,WAAA,CAAA,EAAA,MAAA;CAEN;AACN,KAlDK,oBAAA,GAkDL;EAcqB;EAKH,GAAA,EAAA,MAAA;EAKQ;EAAc,SAAA,EAAA,MAAA;EAGnC;EAMK,GAAA,CAAA,EAAA,MAAA;EACS;EACA,GAAA,CAAA,EAAA,MAAA;EACK;EACpB,qBAAA,CAAA,EAAA,MAAA;EAAY;EAGX,cAAA,CAAA,EAAA,MAAmB;EAEtB;EAMW,MAAA,CAAA,EAAA,MAAA;EAAW;EAMV,kBAAA,CAAA,EAAA,MAAA;EAEV;EAA2B,iBAAA,CAAA,EAAA,MAAA;EAAqB;EAKnC,YAAA,CAAA,EAAA,MAAA;EAA6B;EAAR,iBAAA,CAAA,EAAA,MAAA;EACd;EAIE,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,OAAA;CAAV;AACU,KA1FrB,YAAA,GA0FqB;EAAV;;;EAEK,eAAA,EAAA,CAAA,MAAA,EAAA;IAAV,QAAA,EAAA,MAAA;IACkB,WAAA,EAAA,MAAA;IAAZ,IAAA,EAAA,MAAA;IAGQ,MAAA,CAAA,EAxFnB,WAwFmB;EAApB,CAAA,EAAA,GAvFJ,OAuFI,CAAA;IACe,MAAA,CAAA,EAvFd,oBAuFc,GAAA,IAAA;IAApB,KAAA,CAAA,EAAA,OAAA;EAAmB,CAAA,CAAA;EAOb;AAiEb;AAulBA;EACY,UAAA,EAAA,CAAA,GAAA,EAAA,MAAoB,EAAA,IAAA,EA9uBtB,IA8uByB,EAAA,aAAc,EA7uB9B,oBA6uB8B,EAAA,UAAA,CAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EAAA,MAAA,CAAA,EA3uBpC,WA2uBoC,EAAA,GA1uB1C,OA0uB0C,CAAA;IACrC,MAAA,CAAA,EAAA;MACA,GAAA,EAAA,MAAA;;;;;;;;;;;;;4BA9tBgB;;;;yBAKH;;;;iCAKQ;;KAGrB,oBAAA;;;;;;iBAMK;0BACS;0BACA;+BACK;WACpB;;KAGC,mBAAA;SAEH;;;;oBAMW,WAAW;;;;qBAMV;oBAEV,2BAA2B,qBAAqB;;wBAKnC,qBAAqB,QAAQ;+BACtB;;uBAIR,UAAU;uBACV,UAAU;sBACX,UAAU;kBACd,UAAU;wBACJ,YAAY;;0BAGxB,oBAAoB,sBACzB,oBAAoB;;;;cAOd;cAiEA,0BACF,yBACR;KAqlBS,eAAA,GAAkB;KAClB,oBAAA,GAAuB;KACvB,iBAAA,GAAoB;KACpB,6BAAA,GAAgC"}
|