@marktiderman/genesis-ui 1.0.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/ViewToggle-DDe_Luj2.d.ts +10 -0
- package/dist/chunk-2B3MFHBQ.js +94 -0
- package/dist/chunk-2B3MFHBQ.js.map +1 -0
- package/dist/chunk-2MQKBZBJ.js +87 -0
- package/dist/chunk-2MQKBZBJ.js.map +1 -0
- package/dist/chunk-2MXMWBDV.js +30 -0
- package/dist/chunk-2MXMWBDV.js.map +1 -0
- package/dist/chunk-2SBHHXAC.js +40 -0
- package/dist/chunk-2SBHHXAC.js.map +1 -0
- package/dist/chunk-4HUKJSKC.js +51 -0
- package/dist/chunk-4HUKJSKC.js.map +1 -0
- package/dist/chunk-4RAZJ6LL.js +27 -0
- package/dist/chunk-4RAZJ6LL.js.map +1 -0
- package/dist/chunk-4TROUCWO.js +43 -0
- package/dist/chunk-4TROUCWO.js.map +1 -0
- package/dist/chunk-4V4H2ZM7.js +170 -0
- package/dist/chunk-4V4H2ZM7.js.map +1 -0
- package/dist/chunk-5J7BP5DI.js +47 -0
- package/dist/chunk-5J7BP5DI.js.map +1 -0
- package/dist/chunk-5Q4FABZQ.js +44 -0
- package/dist/chunk-5Q4FABZQ.js.map +1 -0
- package/dist/chunk-63FW5ZUA.js +26 -0
- package/dist/chunk-63FW5ZUA.js.map +1 -0
- package/dist/chunk-6V4GJUE3.js +25 -0
- package/dist/chunk-6V4GJUE3.js.map +1 -0
- package/dist/chunk-7H3E5VOJ.js +205 -0
- package/dist/chunk-7H3E5VOJ.js.map +1 -0
- package/dist/chunk-7OBL3H5P.js +83 -0
- package/dist/chunk-7OBL3H5P.js.map +1 -0
- package/dist/chunk-A5WHNNXJ.js +22 -0
- package/dist/chunk-A5WHNNXJ.js.map +1 -0
- package/dist/chunk-AI6CCNWK.js +51 -0
- package/dist/chunk-AI6CCNWK.js.map +1 -0
- package/dist/chunk-AIODTBWP.js +23 -0
- package/dist/chunk-AIODTBWP.js.map +1 -0
- package/dist/chunk-C6H7AMO4.js +43 -0
- package/dist/chunk-C6H7AMO4.js.map +1 -0
- package/dist/chunk-CLK7JBZJ.js +288 -0
- package/dist/chunk-CLK7JBZJ.js.map +1 -0
- package/dist/chunk-EI5EGKHL.js +32 -0
- package/dist/chunk-EI5EGKHL.js.map +1 -0
- package/dist/chunk-F2JB7YFF.js +341 -0
- package/dist/chunk-F2JB7YFF.js.map +1 -0
- package/dist/chunk-FCGFG4RV.js +120 -0
- package/dist/chunk-FCGFG4RV.js.map +1 -0
- package/dist/chunk-FFSDFQQN.js +19 -0
- package/dist/chunk-FFSDFQQN.js.map +1 -0
- package/dist/chunk-FN3FZVUR.js +79 -0
- package/dist/chunk-FN3FZVUR.js.map +1 -0
- package/dist/chunk-FZYUVUXU.js +199 -0
- package/dist/chunk-FZYUVUXU.js.map +1 -0
- package/dist/chunk-GJ6XSCNF.js +64 -0
- package/dist/chunk-GJ6XSCNF.js.map +1 -0
- package/dist/chunk-HSHIZHYR.js +23 -0
- package/dist/chunk-HSHIZHYR.js.map +1 -0
- package/dist/chunk-HVQCZFJ7.js +115 -0
- package/dist/chunk-HVQCZFJ7.js.map +1 -0
- package/dist/chunk-IKIFQILN.js +124 -0
- package/dist/chunk-IKIFQILN.js.map +1 -0
- package/dist/chunk-JEECTX26.js +20 -0
- package/dist/chunk-JEECTX26.js.map +1 -0
- package/dist/chunk-JJ4NOMMI.js +73 -0
- package/dist/chunk-JJ4NOMMI.js.map +1 -0
- package/dist/chunk-JXI2MYL3.js +40 -0
- package/dist/chunk-JXI2MYL3.js.map +1 -0
- package/dist/chunk-JYPENH7T.js +95 -0
- package/dist/chunk-JYPENH7T.js.map +1 -0
- package/dist/chunk-K23AQNOM.js +51 -0
- package/dist/chunk-K23AQNOM.js.map +1 -0
- package/dist/chunk-K4YLKVMX.js +24 -0
- package/dist/chunk-K4YLKVMX.js.map +1 -0
- package/dist/chunk-KBS4BHME.js +11 -0
- package/dist/chunk-KBS4BHME.js.map +1 -0
- package/dist/chunk-LRXDZBV2.js +26 -0
- package/dist/chunk-LRXDZBV2.js.map +1 -0
- package/dist/chunk-M7AU5DDM.js +26 -0
- package/dist/chunk-M7AU5DDM.js.map +1 -0
- package/dist/chunk-MUQLZFUR.js +31 -0
- package/dist/chunk-MUQLZFUR.js.map +1 -0
- package/dist/chunk-N2ZFNOOT.js +57 -0
- package/dist/chunk-N2ZFNOOT.js.map +1 -0
- package/dist/chunk-NJMO3VPA.js +26 -0
- package/dist/chunk-NJMO3VPA.js.map +1 -0
- package/dist/chunk-NZ5WBA4R.js +18 -0
- package/dist/chunk-NZ5WBA4R.js.map +1 -0
- package/dist/chunk-OCTV3S4I.js +29 -0
- package/dist/chunk-OCTV3S4I.js.map +1 -0
- package/dist/chunk-OVU3Z2MT.js +22 -0
- package/dist/chunk-OVU3Z2MT.js.map +1 -0
- package/dist/chunk-OZ7ZAYCS.js +35 -0
- package/dist/chunk-OZ7ZAYCS.js.map +1 -0
- package/dist/chunk-OZZTPE7F.js +51 -0
- package/dist/chunk-OZZTPE7F.js.map +1 -0
- package/dist/chunk-QBZMY2AF.js +90 -0
- package/dist/chunk-QBZMY2AF.js.map +1 -0
- package/dist/chunk-QCJAASJT.js +242 -0
- package/dist/chunk-QCJAASJT.js.map +1 -0
- package/dist/chunk-QFM4Z2SS.js +19 -0
- package/dist/chunk-QFM4Z2SS.js.map +1 -0
- package/dist/chunk-SBJV3K4G.js +120 -0
- package/dist/chunk-SBJV3K4G.js.map +1 -0
- package/dist/chunk-SCUT2ZCD.js +109 -0
- package/dist/chunk-SCUT2ZCD.js.map +1 -0
- package/dist/chunk-SVXDWPLO.js +102 -0
- package/dist/chunk-SVXDWPLO.js.map +1 -0
- package/dist/chunk-SXSCHWZU.js +27 -0
- package/dist/chunk-SXSCHWZU.js.map +1 -0
- package/dist/chunk-T465NJRL.js +134 -0
- package/dist/chunk-T465NJRL.js.map +1 -0
- package/dist/chunk-TAP3PBQT.js +39 -0
- package/dist/chunk-TAP3PBQT.js.map +1 -0
- package/dist/chunk-TKA4LOMT.js +37 -0
- package/dist/chunk-TKA4LOMT.js.map +1 -0
- package/dist/chunk-UGHQFQOE.js +142 -0
- package/dist/chunk-UGHQFQOE.js.map +1 -0
- package/dist/chunk-W5Y3LG5K.js +26 -0
- package/dist/chunk-W5Y3LG5K.js.map +1 -0
- package/dist/chunk-W64GERJW.js +22 -0
- package/dist/chunk-W64GERJW.js.map +1 -0
- package/dist/chunk-WALXVR6V.js +9 -0
- package/dist/chunk-WALXVR6V.js.map +1 -0
- package/dist/chunk-WZWR2ELB.js +30 -0
- package/dist/chunk-WZWR2ELB.js.map +1 -0
- package/dist/chunk-X7KMF6NH.js +59 -0
- package/dist/chunk-X7KMF6NH.js.map +1 -0
- package/dist/chunk-XISSLIMH.js +20 -0
- package/dist/chunk-XISSLIMH.js.map +1 -0
- package/dist/chunk-YZEA5TGK.js +87 -0
- package/dist/chunk-YZEA5TGK.js.map +1 -0
- package/dist/chunk-ZD32TSOK.js +101 -0
- package/dist/chunk-ZD32TSOK.js.map +1 -0
- package/dist/chunk-ZDAT5JDH.js +82 -0
- package/dist/chunk-ZDAT5JDH.js.map +1 -0
- package/dist/components/data/index.d.ts +458 -0
- package/dist/components/data/index.js +2923 -0
- package/dist/components/data/index.js.map +1 -0
- package/dist/components/ui/accordion.d.ts +9 -0
- package/dist/components/ui/accordion.js +4 -0
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +17 -0
- package/dist/components/ui/alert-dialog.js +4 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/alert.d.ts +14 -0
- package/dist/components/ui/alert.js +4 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +6 -0
- package/dist/components/ui/aspect-ratio.js +3 -0
- package/dist/components/ui/aspect-ratio.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +8 -0
- package/dist/components/ui/avatar.js +4 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +13 -0
- package/dist/components/ui/badge.js +4 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +22 -0
- package/dist/components/ui/breadcrumb.js +4 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button-group.d.ts +9 -0
- package/dist/components/ui/button-group.js +4 -0
- package/dist/components/ui/button-group.js.map +1 -0
- package/dist/components/ui/button.d.ts +15 -0
- package/dist/components/ui/button.js +4 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/calendar.d.ts +13 -0
- package/dist/components/ui/calendar.js +5 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts +11 -0
- package/dist/components/ui/card.js +4 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/carousel.d.ts +24 -0
- package/dist/components/ui/carousel.js +5 -0
- package/dist/components/ui/carousel.js.map +1 -0
- package/dist/components/ui/chart.d.ts +51 -0
- package/dist/components/ui/chart.js +4 -0
- package/dist/components/ui/chart.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +6 -0
- package/dist/components/ui/checkbox.js +4 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +8 -0
- package/dist/components/ui/collapsible.js +3 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/command.d.ts +85 -0
- package/dist/components/ui/command.js +5 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/context-menu.d.ts +30 -0
- package/dist/components/ui/context-menu.js +4 -0
- package/dist/components/ui/context-menu.js.map +1 -0
- package/dist/components/ui/date-picker.d.ts +12 -0
- package/dist/components/ui/date-picker.js +7 -0
- package/dist/components/ui/date-picker.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +18 -0
- package/dist/components/ui/dialog.js +4 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/drawer.d.ts +27 -0
- package/dist/components/ui/drawer.js +4 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +30 -0
- package/dist/components/ui/dropdown-menu.js +4 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/empty-state.d.ts +22 -0
- package/dist/components/ui/empty-state.js +4 -0
- package/dist/components/ui/empty-state.js.map +1 -0
- package/dist/components/ui/form-field.d.ts +17 -0
- package/dist/components/ui/form-field.js +5 -0
- package/dist/components/ui/form-field.js.map +1 -0
- package/dist/components/ui/hover-card.d.ts +8 -0
- package/dist/components/ui/hover-card.js +4 -0
- package/dist/components/ui/hover-card.js.map +1 -0
- package/dist/components/ui/input-group.d.ts +14 -0
- package/dist/components/ui/input-group.js +4 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input-otp.d.ts +37 -0
- package/dist/components/ui/input-otp.js +4 -0
- package/dist/components/ui/input-otp.js.map +1 -0
- package/dist/components/ui/input.d.ts +5 -0
- package/dist/components/ui/input.js +4 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/kbd.d.ts +8 -0
- package/dist/components/ui/kbd.js +4 -0
- package/dist/components/ui/kbd.js.map +1 -0
- package/dist/components/ui/label.d.ts +8 -0
- package/dist/components/ui/label.js +4 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/menubar.d.ts +31 -0
- package/dist/components/ui/menubar.js +4 -0
- package/dist/components/ui/menubar.js.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +15 -0
- package/dist/components/ui/navigation-menu.js +4 -0
- package/dist/components/ui/navigation-menu.js.map +1 -0
- package/dist/components/ui/pagination.d.ts +33 -0
- package/dist/components/ui/pagination.js +5 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/popover.d.ts +8 -0
- package/dist/components/ui/popover.js +4 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/progress.d.ts +9 -0
- package/dist/components/ui/progress.js +4 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/radio-group.d.ts +7 -0
- package/dist/components/ui/radio-group.js +4 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/resizable.d.ts +27 -0
- package/dist/components/ui/resizable.js +4 -0
- package/dist/components/ui/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +9 -0
- package/dist/components/ui/scroll-area.js +4 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +13 -0
- package/dist/components/ui/select.js +4 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +10 -0
- package/dist/components/ui/separator.js +4 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +29 -0
- package/dist/components/ui/sheet.js +4 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +6 -0
- package/dist/components/ui/skeleton.js +4 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/slider.d.ts +6 -0
- package/dist/components/ui/slider.js +4 -0
- package/dist/components/ui/slider.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +9 -0
- package/dist/components/ui/sonner.js +4 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/spinner.d.ts +9 -0
- package/dist/components/ui/spinner.js +4 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +6 -0
- package/dist/components/ui/switch.js +4 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +12 -0
- package/dist/components/ui/table.js +4 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +20 -0
- package/dist/components/ui/tabs.js +4 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +5 -0
- package/dist/components/ui/textarea.js +4 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +15 -0
- package/dist/components/ui/toggle-group.js +5 -0
- package/dist/components/ui/toggle-group.js.map +1 -0
- package/dist/components/ui/toggle.d.ts +15 -0
- package/dist/components/ui/toggle.js +4 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +10 -0
- package/dist/components/ui/tooltip.js +4 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components/ui/typography.d.ts +14 -0
- package/dist/components/ui/typography.js +4 -0
- package/dist/components/ui/typography.js.map +1 -0
- package/dist/hooks/index.d.ts +13 -0
- package/dist/hooks/index.js +11 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/use-data-filters.d.ts +32 -0
- package/dist/hooks/use-data-filters.js +4 -0
- package/dist/hooks/use-data-filters.js.map +1 -0
- package/dist/hooks/use-keyboard-navigation.d.ts +29 -0
- package/dist/hooks/use-keyboard-navigation.js +3 -0
- package/dist/hooks/use-keyboard-navigation.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +3 -0
- package/dist/hooks/use-mobile.js +3 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-one.d.ts +18 -0
- package/dist/hooks/use-one.js +4 -0
- package/dist/hooks/use-one.js.map +1 -0
- package/dist/hooks/use-prefetch.d.ts +19 -0
- package/dist/hooks/use-prefetch.js +3 -0
- package/dist/hooks/use-prefetch.js.map +1 -0
- package/dist/hooks/use-resource-form.d.ts +37 -0
- package/dist/hooks/use-resource-form.js +7 -0
- package/dist/hooks/use-resource-form.js.map +1 -0
- package/dist/hooks/use-resource-page.d.ts +5 -0
- package/dist/hooks/use-resource-page.js +4 -0
- package/dist/hooks/use-resource-page.js.map +1 -0
- package/dist/hooks/use-resource.d.ts +46 -0
- package/dist/hooks/use-resource.js +4 -0
- package/dist/hooks/use-resource.js.map +1 -0
- package/dist/hooks/use-view-preference.d.ts +6 -0
- package/dist/hooks/use-view-preference.js +3 -0
- package/dist/hooks/use-view-preference.js.map +1 -0
- package/dist/hooks/use-view-settings.d.ts +15 -0
- package/dist/hooks/use-view-settings.js +3 -0
- package/dist/hooks/use-view-settings.js.map +1 -0
- package/dist/hooks/use-wizard.d.ts +25 -0
- package/dist/hooks/use-wizard.js +3 -0
- package/dist/hooks/use-wizard.js.map +1 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/navigation-qI86Ldug.d.ts +90 -0
- package/dist/provider/index.d.ts +1 -0
- package/dist/provider/index.js +3 -0
- package/dist/provider/index.js.map +1 -0
- package/dist/status-colors.d.ts +29 -0
- package/dist/status-colors.js +72 -0
- package/dist/status-colors.js.map +1 -0
- package/dist/types-HIZY7zxO.d.ts +61 -0
- package/dist/use-resource-page-BzvUM8de.d.ts +159 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.js +3 -0
- package/dist/utils.js.map +1 -0
- package/package.json +350 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
3
|
+
import { createContext, useState, useContext } from 'react';
|
|
4
|
+
import { jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var TabsContext = createContext(null);
|
|
7
|
+
function useTabs() {
|
|
8
|
+
const context = useContext(TabsContext);
|
|
9
|
+
if (!context) throw new Error("Tabs components must be used within <Tabs>");
|
|
10
|
+
return context;
|
|
11
|
+
}
|
|
12
|
+
function Tabs({
|
|
13
|
+
defaultValue,
|
|
14
|
+
value: controlledValue,
|
|
15
|
+
onValueChange: controlledOnValueChange,
|
|
16
|
+
className,
|
|
17
|
+
...props
|
|
18
|
+
}) {
|
|
19
|
+
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
20
|
+
const value = controlledValue ?? uncontrolledValue;
|
|
21
|
+
const onValueChange = controlledOnValueChange ?? setUncontrolledValue;
|
|
22
|
+
return /* @__PURE__ */ jsx(TabsContext.Provider, { value: { value, onValueChange }, children: /* @__PURE__ */ jsx("div", { className: cn("w-full", className), ...props }) });
|
|
23
|
+
}
|
|
24
|
+
function TabsList({
|
|
25
|
+
className,
|
|
26
|
+
...props
|
|
27
|
+
}) {
|
|
28
|
+
return /* @__PURE__ */ jsx(
|
|
29
|
+
"div",
|
|
30
|
+
{
|
|
31
|
+
className: cn(
|
|
32
|
+
"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
|
|
33
|
+
className
|
|
34
|
+
),
|
|
35
|
+
...props
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
function TabsTrigger({ className, value, ...props }) {
|
|
40
|
+
const { value: selectedValue, onValueChange } = useTabs();
|
|
41
|
+
const isActive = selectedValue === value;
|
|
42
|
+
return /* @__PURE__ */ jsx(
|
|
43
|
+
"button",
|
|
44
|
+
{
|
|
45
|
+
type: "button",
|
|
46
|
+
className: cn(
|
|
47
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
48
|
+
isActive && "bg-background text-foreground shadow-sm",
|
|
49
|
+
className
|
|
50
|
+
),
|
|
51
|
+
onClick: () => onValueChange(value),
|
|
52
|
+
...props
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
function TabsContent({ className, value, ...props }) {
|
|
57
|
+
const { value: selectedValue } = useTabs();
|
|
58
|
+
if (selectedValue !== value) return null;
|
|
59
|
+
return /* @__PURE__ */ jsx(
|
|
60
|
+
"div",
|
|
61
|
+
{
|
|
62
|
+
className: cn(
|
|
63
|
+
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
64
|
+
className
|
|
65
|
+
),
|
|
66
|
+
...props
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export { Tabs, TabsContent, TabsList, TabsTrigger };
|
|
72
|
+
//# sourceMappingURL=chunk-JJ4NOMMI.js.map
|
|
73
|
+
//# sourceMappingURL=chunk-JJ4NOMMI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/tabs.tsx"],"names":[],"mappings":";;;;AAWA,IAAM,WAAA,GAAc,cAAuC,IAAI,CAAA;AAE/D,SAAS,OAAA,GAAU;AACjB,EAAA,MAAM,OAAA,GAAU,WAAW,WAAW,CAAA;AACtC,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAC1E,EAAA,OAAO,OAAA;AACT;AAQA,SAAS,IAAA,CAAK;AAAA,EACZ,YAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,aAAA,EAAe,uBAAA;AAAA,EACf,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAc;AACZ,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,YAAY,CAAA;AACvE,EAAA,MAAM,QAAQ,eAAA,IAAmB,iBAAA;AACjC,EAAA,MAAM,gBAAgB,uBAAA,IAA2B,oBAAA;AAEjD,EAAA,2BACG,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAE,OAAO,aAAA,EAAc,EAClD,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA,EAAI,GAAG,OAAO,CAAA,EACtD,CAAA;AAEJ;AAEA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyC;AACvC,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,4FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,SAAS,YAAY,EAAE,SAAA,EAAW,KAAA,EAAO,GAAG,OAAM,EAAqB;AACrE,EAAA,MAAM,EAAE,KAAA,EAAO,aAAA,EAAe,aAAA,KAAkB,OAAA,EAAQ;AACxD,EAAA,MAAM,WAAW,aAAA,KAAkB,KAAA;AAEnC,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,iSAAA;AAAA,QACA,QAAA,IAAY,yCAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,OAAA,EAAS,MAAM,aAAA,CAAc,KAAK,CAAA;AAAA,MACjC,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,SAAS,YAAY,EAAE,SAAA,EAAW,KAAA,EAAO,GAAG,OAAM,EAAqB;AACrE,EAAA,MAAM,EAAE,KAAA,EAAO,aAAA,EAAc,GAAI,OAAA,EAAQ;AACzC,EAAA,IAAI,aAAA,KAAkB,OAAO,OAAO,IAAA;AAEpC,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,iIAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-JJ4NOMMI.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { createContext, useContext, useState } from \"react\";\nimport { cn } from \"../../utils\";\n\ninterface TabsContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nfunction useTabs() {\n const context = useContext(TabsContext);\n if (!context) throw new Error(\"Tabs components must be used within <Tabs>\");\n return context;\n}\n\ninterface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n defaultValue: string;\n value?: string;\n onValueChange?: (value: string) => void;\n}\n\nfunction Tabs({\n defaultValue,\n value: controlledValue,\n onValueChange: controlledOnValueChange,\n className,\n ...props\n}: TabsProps) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = controlledValue ?? uncontrolledValue;\n const onValueChange = controlledOnValueChange ?? setUncontrolledValue;\n\n return (\n <TabsContext.Provider value={{ value, onValueChange }}>\n <div className={cn(\"w-full\", className)} {...props} />\n </TabsContext.Provider>\n );\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n );\n}\n\ninterface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\n\nfunction TabsTrigger({ className, value, ...props }: TabsTriggerProps) {\n const { value: selectedValue, onValueChange } = useTabs();\n const isActive = selectedValue === value;\n\n return (\n <button\n type=\"button\"\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n isActive && \"bg-background text-foreground shadow-sm\",\n className\n )}\n onClick={() => onValueChange(value)}\n {...props}\n />\n );\n}\n\ninterface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nfunction TabsContent({ className, value, ...props }: TabsContentProps) {\n const { value: selectedValue } = useTabs();\n if (selectedValue !== value) return null;\n\n return (\n <div\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
|
+
import { jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var toggleVariants = cva(
|
|
9
|
+
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2",
|
|
10
|
+
{
|
|
11
|
+
variants: {
|
|
12
|
+
variant: {
|
|
13
|
+
default: "bg-transparent",
|
|
14
|
+
outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground"
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
default: "h-10 px-3 min-w-10",
|
|
18
|
+
sm: "h-9 px-2.5 min-w-9",
|
|
19
|
+
lg: "h-11 px-5 min-w-11"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: {
|
|
23
|
+
variant: "default",
|
|
24
|
+
size: "default"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
var Toggle = React.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
29
|
+
TogglePrimitive.Root,
|
|
30
|
+
{
|
|
31
|
+
ref,
|
|
32
|
+
className: cn(toggleVariants({ variant, size, className })),
|
|
33
|
+
...props
|
|
34
|
+
}
|
|
35
|
+
));
|
|
36
|
+
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
37
|
+
|
|
38
|
+
export { Toggle, toggleVariants };
|
|
39
|
+
//# sourceMappingURL=chunk-JXI2MYL3.js.map
|
|
40
|
+
//# sourceMappingURL=chunk-JXI2MYL3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/toggle.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,obAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,gBAAA;AAAA,QACT,OAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,oBAAA;AAAA,QACT,EAAA,EAAI,oBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,IAAM,MAAA,GAAe,KAAA,CAAA,UAAA,CAInB,CAAC,EAAE,SAAA,EAAW,SAAS,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBACzC,GAAA;AAAA,EAAiB,eAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,IACzD,GAAG;AAAA;AACN,CACD;AACD,MAAA,CAAO,cAA8B,eAAA,CAAA,IAAA,CAAK,WAAA","file":"chunk-JXI2MYL3.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-3 min-w-10\",\n sm: \"h-9 px-2.5 min-w-9\",\n lg: \"h-11 px-5 min-w-11\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nconst Toggle = React.forwardRef<\n React.ComponentRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n));\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport { Toggle, toggleVariants };\n"]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Drawer as Drawer$1 } from 'vaul';
|
|
5
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var Drawer = ({
|
|
8
|
+
shouldScaleBackground = true,
|
|
9
|
+
...props
|
|
10
|
+
}) => /* @__PURE__ */ jsx(
|
|
11
|
+
Drawer$1.Root,
|
|
12
|
+
{
|
|
13
|
+
shouldScaleBackground,
|
|
14
|
+
...props
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
Drawer.displayName = "Drawer";
|
|
18
|
+
var DrawerTrigger = Drawer$1.Trigger;
|
|
19
|
+
var DrawerPortal = Drawer$1.Portal;
|
|
20
|
+
var DrawerClose = Drawer$1.Close;
|
|
21
|
+
var DrawerOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
22
|
+
Drawer$1.Overlay,
|
|
23
|
+
{
|
|
24
|
+
ref,
|
|
25
|
+
className: cn("fixed inset-0 z-50 bg-black/50", className),
|
|
26
|
+
...props
|
|
27
|
+
}
|
|
28
|
+
));
|
|
29
|
+
DrawerOverlay.displayName = Drawer$1.Overlay.displayName;
|
|
30
|
+
var DrawerContent = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DrawerPortal, { children: [
|
|
31
|
+
/* @__PURE__ */ jsx(DrawerOverlay, {}),
|
|
32
|
+
/* @__PURE__ */ jsxs(
|
|
33
|
+
Drawer$1.Content,
|
|
34
|
+
{
|
|
35
|
+
ref,
|
|
36
|
+
className: cn(
|
|
37
|
+
"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",
|
|
38
|
+
className
|
|
39
|
+
),
|
|
40
|
+
...props,
|
|
41
|
+
children: [
|
|
42
|
+
/* @__PURE__ */ jsx("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
|
|
43
|
+
children
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
] }));
|
|
48
|
+
DrawerContent.displayName = "DrawerContent";
|
|
49
|
+
var DrawerHeader = ({
|
|
50
|
+
className,
|
|
51
|
+
...props
|
|
52
|
+
}) => /* @__PURE__ */ jsx(
|
|
53
|
+
"div",
|
|
54
|
+
{
|
|
55
|
+
className: cn("grid gap-1.5 p-4 text-center sm:text-left", className),
|
|
56
|
+
...props
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
DrawerHeader.displayName = "DrawerHeader";
|
|
60
|
+
var DrawerFooter = ({
|
|
61
|
+
className,
|
|
62
|
+
...props
|
|
63
|
+
}) => /* @__PURE__ */ jsx(
|
|
64
|
+
"div",
|
|
65
|
+
{
|
|
66
|
+
className: cn("mt-auto flex flex-col gap-2 p-4", className),
|
|
67
|
+
...props
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
DrawerFooter.displayName = "DrawerFooter";
|
|
71
|
+
var DrawerTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
72
|
+
Drawer$1.Title,
|
|
73
|
+
{
|
|
74
|
+
ref,
|
|
75
|
+
className: cn(
|
|
76
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
77
|
+
className
|
|
78
|
+
),
|
|
79
|
+
...props
|
|
80
|
+
}
|
|
81
|
+
));
|
|
82
|
+
DrawerTitle.displayName = Drawer$1.Title.displayName;
|
|
83
|
+
var DrawerDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
84
|
+
Drawer$1.Description,
|
|
85
|
+
{
|
|
86
|
+
ref,
|
|
87
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
88
|
+
...props
|
|
89
|
+
}
|
|
90
|
+
));
|
|
91
|
+
DrawerDescription.displayName = Drawer$1.Description.displayName;
|
|
92
|
+
|
|
93
|
+
export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger };
|
|
94
|
+
//# sourceMappingURL=chunk-JYPENH7T.js.map
|
|
95
|
+
//# sourceMappingURL=chunk-JYPENH7T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/drawer.tsx"],"names":["DrawerPrimitive"],"mappings":";;;;;AAMA,IAAM,SAAS,CAAC;AAAA,EACd,qBAAA,GAAwB,IAAA;AAAA,EACxB,GAAG;AACL,CAAA,qBACE,GAAA;AAAA,EAACA,QAAA,CAAgB,IAAA;AAAA,EAAhB;AAAA,IACC,qBAAA;AAAA,IACC,GAAG;AAAA;AACN;AAEF,MAAA,CAAO,WAAA,GAAc,QAAA;AAErB,IAAM,gBAAgBA,QAAA,CAAgB;AAEtC,IAAM,eAAeA,QAAA,CAAgB;AAErC,IAAM,cAAcA,QAAA,CAAgB;AAEpC,IAAM,aAAA,GAAsB,iBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAACA,QAAA,CAAgB,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,IACxD,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,WAAA,GAAcA,SAAgB,OAAA,CAAQ,WAAA;AAEpD,IAAM,aAAA,GAAsB,KAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpC,IAAA,CAAC,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,CAAA;AAAA,kBACf,IAAA;AAAA,IAACA,QAAA,CAAgB,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,gGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kDAAA,EAAmD,CAAA;AAAA,QACjE;AAAA;AAAA;AAAA;AACH,CAAA,EACF,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,eAAe,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACE,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA,CAAG,2CAAA,EAA6C,SAAS,CAAA;AAAA,IACnE,GAAG;AAAA;AACN;AAEF,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,eAAe,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACE,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA,CAAG,iCAAA,EAAmC,SAAS,CAAA;AAAA,IACzD,GAAG;AAAA;AACN;AAEF,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,WAAA,GAAoB,iBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAACA,QAAA,CAAgB,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAcA,SAAgB,KAAA,CAAM,WAAA;AAEhD,IAAM,iBAAA,GAA0B,iBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAACA,QAAA,CAAgB,WAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAA,GAAcA,SAAgB,WAAA,CAAY,WAAA","file":"chunk-JYPENH7T.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../../utils\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/50\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className,\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n"]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { OTPInput, OTPInputContext } from 'input-otp';
|
|
5
|
+
import { Dot } from 'lucide-react';
|
|
6
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var InputOTP = React.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
9
|
+
OTPInput,
|
|
10
|
+
{
|
|
11
|
+
ref,
|
|
12
|
+
containerClassName: cn(
|
|
13
|
+
"flex items-center gap-2 has-[:disabled]:opacity-50",
|
|
14
|
+
containerClassName
|
|
15
|
+
),
|
|
16
|
+
className: cn("disabled:cursor-not-allowed", className),
|
|
17
|
+
...props
|
|
18
|
+
}
|
|
19
|
+
));
|
|
20
|
+
InputOTP.displayName = "InputOTP";
|
|
21
|
+
var InputOTPGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
|
|
22
|
+
InputOTPGroup.displayName = "InputOTPGroup";
|
|
23
|
+
var InputOTPSlot = React.forwardRef(({ index, className, ...props }, ref) => {
|
|
24
|
+
const inputOTPContext = React.useContext(OTPInputContext);
|
|
25
|
+
const slot = inputOTPContext.slots[index];
|
|
26
|
+
if (!slot) return null;
|
|
27
|
+
const { char, hasFakeCaret, isActive } = slot;
|
|
28
|
+
return /* @__PURE__ */ jsxs(
|
|
29
|
+
"div",
|
|
30
|
+
{
|
|
31
|
+
ref,
|
|
32
|
+
className: cn(
|
|
33
|
+
"relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md",
|
|
34
|
+
isActive && "z-10 ring-2 ring-ring ring-offset-background",
|
|
35
|
+
className
|
|
36
|
+
),
|
|
37
|
+
...props,
|
|
38
|
+
children: [
|
|
39
|
+
char,
|
|
40
|
+
hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
});
|
|
45
|
+
InputOTPSlot.displayName = "InputOTPSlot";
|
|
46
|
+
var InputOTPSeparator = React.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Dot, {}) }));
|
|
47
|
+
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
48
|
+
|
|
49
|
+
export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
|
|
50
|
+
//# sourceMappingURL=chunk-K23AQNOM.js.map
|
|
51
|
+
//# sourceMappingURL=chunk-K23AQNOM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/input-otp.tsx"],"names":[],"mappings":";;;;;;AAQA,IAAM,QAAA,GAAiB,iBAGrB,CAAC,EAAE,WAAW,kBAAA,EAAoB,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC9C,GAAA;AAAA,EAAC,QAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,kBAAA,EAAoB,EAAA;AAAA,MAClB,oDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,IACrD,GAAG;AAAA;AACN,CACD;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,gBAAsB,KAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,yBACzB,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,mBAAA,EAAqB,SAAS,CAAA,EAAI,GAAG,OAAO,CAC1E;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,YAAA,GAAqB,iBAGzB,CAAC,EAAE,OAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACzC,EAAA,MAAM,eAAA,GAAwB,iBAAW,eAAe,CAAA;AACxD,EAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,KAAA,CAAM,KAAK,CAAA;AACxC,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,EAAA,MAAM,EAAE,IAAA,EAAM,YAAA,EAAc,QAAA,EAAS,GAAI,IAAA;AAEzC,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,+JAAA;AAAA,QACA,QAAA,IAAY,8CAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA;AAAA,QACA,YAAA,wBACE,KAAA,EAAA,EAAI,SAAA,EAAU,yEACb,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EAA2D,CAAA,EAC5E;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,oBAA0B,KAAA,CAAA,UAAA,CAG9B,CAAC,EAAE,GAAG,KAAA,IAAS,GAAA,qBACf,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,MAAK,WAAA,EAAa,GAAG,OAClC,QAAA,kBAAA,GAAA,CAAC,GAAA,EAAA,EAAI,GACP,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA","file":"chunk-K23AQNOM.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { Dot } from \"lucide-react\";\n\nimport { cn } from \"../../utils\";\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n));\nInputOTP.displayName = \"InputOTP\";\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props} />\n));\nInputOTPGroup.displayName = \"InputOTPGroup\";\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const slot = inputOTPContext.slots[index];\n if (!slot) return null;\n const { char, hasFakeCaret, isActive } = slot;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md\",\n isActive && \"z-10 ring-2 ring-ring ring-offset-background\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = \"InputOTPSlot\";\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Dot />\n </div>\n));\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
function ButtonGroup({
|
|
5
|
+
className,
|
|
6
|
+
orientation = "horizontal",
|
|
7
|
+
...props
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ jsx(
|
|
10
|
+
"div",
|
|
11
|
+
{
|
|
12
|
+
className: cn(
|
|
13
|
+
"inline-flex",
|
|
14
|
+
orientation === "horizontal" ? "[&>*:not(:first-child)]:-ml-px [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-l-none [&>*:not(:first-child):not(:last-child)]:rounded-none" : "flex-col [&>*:not(:first-child)]:-mt-px [&>*:first-child]:rounded-b-none [&>*:last-child]:rounded-t-none [&>*:not(:first-child):not(:last-child)]:rounded-none",
|
|
15
|
+
className
|
|
16
|
+
),
|
|
17
|
+
...props
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { ButtonGroup };
|
|
23
|
+
//# sourceMappingURL=chunk-K4YLKVMX.js.map
|
|
24
|
+
//# sourceMappingURL=chunk-K4YLKVMX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/button-group.tsx"],"names":[],"mappings":";;;AAOA,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,aAAA;AAAA,QACA,WAAA,KAAgB,eACZ,uJAAA,GACA,gKAAA;AAAA,QACJ;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-K4YLKVMX.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils\";\n\ninterface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\";\n}\n\nfunction ButtonGroup({\n className,\n orientation = \"horizontal\",\n ...props\n}: ButtonGroupProps) {\n return (\n <div\n className={cn(\n \"inline-flex\",\n orientation === \"horizontal\"\n ? \"[&>*:not(:first-child)]:-ml-px [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-l-none [&>*:not(:first-child):not(:last-child)]:rounded-none\"\n : \"flex-col [&>*:not(:first-child)]:-mt-px [&>*:first-child]:rounded-b-none [&>*:last-child]:rounded-t-none [&>*:not(:first-child):not(:last-child)]:rounded-none\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { ButtonGroup, type ButtonGroupProps };\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
3
|
+
|
|
4
|
+
// src/components/ui/collapsible.tsx
|
|
5
|
+
var Collapsible = CollapsiblePrimitive.Root;
|
|
6
|
+
var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
7
|
+
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
8
|
+
|
|
9
|
+
export { Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger };
|
|
10
|
+
//# sourceMappingURL=chunk-KBS4BHME.js.map
|
|
11
|
+
//# sourceMappingURL=chunk-KBS4BHME.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/collapsible.tsx"],"names":["CollapsibleTrigger","CollapsibleContent"],"mappings":";;;AAIA,IAAM,WAAA,GAAmC,oBAAA,CAAA;AACzC,IAAMA,mBAAAA,GAA0C,oBAAA,CAAA;AAChD,IAAMC,mBAAAA,GAA0C,oBAAA,CAAA","file":"chunk-KBS4BHME.js","sourcesContent":["\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nconst Collapsible = CollapsiblePrimitive.Root;\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var Slider = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
8
|
+
SliderPrimitive.Root,
|
|
9
|
+
{
|
|
10
|
+
ref,
|
|
11
|
+
className: cn(
|
|
12
|
+
"relative flex w-full touch-none select-none items-center",
|
|
13
|
+
className
|
|
14
|
+
),
|
|
15
|
+
...props,
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
18
|
+
/* @__PURE__ */ jsx(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" })
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
));
|
|
22
|
+
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
23
|
+
|
|
24
|
+
export { Slider };
|
|
25
|
+
//# sourceMappingURL=chunk-LRXDZBV2.js.map
|
|
26
|
+
//# sourceMappingURL=chunk-LRXDZBV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/slider.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,MAAA,GAAe,iBAGnB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,IAAA;AAAA,EAAiB,eAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,0DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAiB,eAAA,CAAA,KAAA,EAAhB,EAAsB,SAAA,EAAU,oEAAA,EAC/B,8BAAiB,eAAA,CAAA,KAAA,EAAhB,EAAsB,SAAA,EAAU,4BAAA,EAA6B,CAAA,EAChE,CAAA;AAAA,sBACA,GAAA,CAAiB,eAAA,CAAA,KAAA,EAAhB,EAAsB,SAAA,EAAU,gQAAA,EAAiQ;AAAA;AAAA;AACpS,CACD;AACD,MAAA,CAAO,cAA8B,eAAA,CAAA,IAAA,CAAK,WAAA","file":"chunk-LRXDZBV2.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"../../utils\";\n\nconst Slider = React.forwardRef<\n React.ComponentRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
// src/hooks/use-mobile.ts
|
|
5
|
+
var MOBILE_BREAKPOINT = 768;
|
|
6
|
+
function useIsMobile() {
|
|
7
|
+
const [isMobile, setIsMobile] = useState(() => {
|
|
8
|
+
if (typeof window === "undefined") return false;
|
|
9
|
+
return window.innerWidth < MOBILE_BREAKPOINT;
|
|
10
|
+
});
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (typeof window === "undefined") return;
|
|
13
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
14
|
+
const onChange = () => {
|
|
15
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
16
|
+
};
|
|
17
|
+
mql.addEventListener("change", onChange);
|
|
18
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
19
|
+
return () => mql.removeEventListener("change", onChange);
|
|
20
|
+
}, []);
|
|
21
|
+
return isMobile;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { useIsMobile };
|
|
25
|
+
//# sourceMappingURL=chunk-M7AU5DDM.js.map
|
|
26
|
+
//# sourceMappingURL=chunk-M7AU5DDM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-mobile.ts"],"names":[],"mappings":";;;AAIA,IAAM,iBAAA,GAAoB,GAAA;AAEnB,SAAS,WAAA,GAAuB;AACrC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAkB,MAAM;AACtD,IAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,KAAA;AAC1C,IAAA,OAAO,OAAO,UAAA,GAAa,iBAAA;AAAA,EAC7B,CAAC,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACnC,IAAA,MAAM,MAAM,MAAA,CAAO,UAAA,CAAW,CAAA,YAAA,EAAe,iBAAA,GAAoB,CAAC,CAAA,GAAA,CAAK,CAAA;AACvE,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,WAAA,CAAY,MAAA,CAAO,aAAa,iBAAiB,CAAA;AAAA,IACnD,CAAA;AACA,IAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAA,WAAA,CAAY,MAAA,CAAO,aAAa,iBAAiB,CAAA;AACjD,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,QAAA;AACT","file":"chunk-M7AU5DDM.js","sourcesContent":["\"use client\";\n\nimport { useState, useEffect } from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile(): boolean {\n const [isMobile, setIsMobile] = useState<boolean>(() => {\n if (typeof window === \"undefined\") return false;\n return window.innerWidth < MOBILE_BREAKPOINT;\n });\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return isMobile;\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var badgeVariants = cva(
|
|
6
|
+
"inline-flex w-fit items-center whitespace-nowrap rounded-full border px-2.5 py-0.5 text-xs font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
7
|
+
{
|
|
8
|
+
variants: {
|
|
9
|
+
variant: {
|
|
10
|
+
default: "border-transparent bg-primary text-primary-foreground",
|
|
11
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground",
|
|
12
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground",
|
|
13
|
+
outline: "text-foreground",
|
|
14
|
+
success: "border-transparent bg-success/15 text-success dark:bg-success/20",
|
|
15
|
+
warning: "border-transparent bg-warning/15 text-warning dark:bg-warning/20",
|
|
16
|
+
info: "border-transparent bg-info/15 text-info dark:bg-info/20",
|
|
17
|
+
muted: "border-transparent bg-muted text-muted-foreground"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
variant: "default"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
function Badge({ className, variant, ...props }) {
|
|
26
|
+
return /* @__PURE__ */ jsx("span", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { Badge, badgeVariants };
|
|
30
|
+
//# sourceMappingURL=chunk-MUQLZFUR.js.map
|
|
31
|
+
//# sourceMappingURL=chunk-MUQLZFUR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/badge.tsx"],"names":[],"mappings":";;;;AAIA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,8LAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,uDAAA;AAAA,QACF,SAAA,EACE,2DAAA;AAAA,QACF,WAAA,EACE,+DAAA;AAAA,QACF,OAAA,EAAS,iBAAA;AAAA,QACT,OAAA,EACE,kEAAA;AAAA,QACF,OAAA,EACE,kEAAA;AAAA,QACF,IAAA,EAAM,yDAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAMA,SAAS,MAAM,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,OAAM,EAAe;AAC3D,EAAA,uBACE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAE3E","file":"chunk-MUQLZFUR.js","sourcesContent":["import * as React from \"react\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst badgeVariants = cva(\n \"inline-flex w-fit items-center whitespace-nowrap rounded-full border px-2.5 py-0.5 text-xs font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground\",\n outline: \"text-foreground\",\n success:\n \"border-transparent bg-success/15 text-success dark:bg-success/20\",\n warning:\n \"border-transparent bg-warning/15 text-warning dark:bg-warning/20\",\n info: \"border-transparent bg-info/15 text-info dark:bg-info/20\",\n muted: \"border-transparent bg-muted text-muted-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <span className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var Table = React.forwardRef(
|
|
6
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
|
|
7
|
+
);
|
|
8
|
+
Table.displayName = "Table";
|
|
9
|
+
var TableHeader = React.forwardRef(
|
|
10
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
|
|
11
|
+
);
|
|
12
|
+
TableHeader.displayName = "TableHeader";
|
|
13
|
+
var TableBody = React.forwardRef(
|
|
14
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
|
|
15
|
+
);
|
|
16
|
+
TableBody.displayName = "TableBody";
|
|
17
|
+
var TableFooter = React.forwardRef(
|
|
18
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
|
|
19
|
+
);
|
|
20
|
+
TableFooter.displayName = "TableFooter";
|
|
21
|
+
var TableRow = React.forwardRef(
|
|
22
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
23
|
+
"tr",
|
|
24
|
+
{
|
|
25
|
+
ref,
|
|
26
|
+
className: cn("border-b transition-colors data-[state=selected]:bg-muted hover:bg-muted/50", className),
|
|
27
|
+
...props
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
);
|
|
31
|
+
TableRow.displayName = "TableRow";
|
|
32
|
+
var TableHead = React.forwardRef(
|
|
33
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
34
|
+
"th",
|
|
35
|
+
{
|
|
36
|
+
ref,
|
|
37
|
+
className: cn(
|
|
38
|
+
"h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-muted-foreground [&:has([role=checkbox])]:pr-0",
|
|
39
|
+
className
|
|
40
|
+
),
|
|
41
|
+
...props
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
);
|
|
45
|
+
TableHead.displayName = "TableHead";
|
|
46
|
+
var TableCell = React.forwardRef(
|
|
47
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("td", { ref, className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className), ...props })
|
|
48
|
+
);
|
|
49
|
+
TableCell.displayName = "TableCell";
|
|
50
|
+
var TableCaption = React.forwardRef(
|
|
51
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
|
|
52
|
+
);
|
|
53
|
+
TableCaption.displayName = "TableCaption";
|
|
54
|
+
|
|
55
|
+
export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
|
|
56
|
+
//# sourceMappingURL=chunk-N2ZFNOOT.js.map
|
|
57
|
+
//# sourceMappingURL=chunk-N2ZFNOOT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/table.tsx"],"names":[],"mappings":";;;;AAIA,IAAM,KAAA,GAAc,KAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,yBACvB,KAAA,EAAA,EAAI,SAAA,EAAU,iCACb,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAM,KAAU,SAAA,EAAW,EAAA,CAAG,iCAAiC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA,EACzF;AAEJ;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,WAAA,GAAoB,KAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBAAQ,GAAA,CAAC,OAAA,EAAA,EAAM,GAAA,EAAU,WAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAC7G;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,SAAA,GAAkB,KAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,OAAA,EAAA,EAAM,GAAA,EAAU,WAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAExF;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,WAAA,GAAoB,KAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,OAAA,EAAA,EAAM,GAAA,EAAU,WAAW,EAAA,CAAG,yDAAA,EAA2D,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAErH;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,QAAA,GAAiB,KAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,6EAAA,EAA+E,SAAS,CAAA;AAAA,MACrG,GAAG;AAAA;AAAA;AAGV;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,SAAA,GAAkB,KAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,oHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,SAAA,GAAkB,KAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,IAAA,EAAA,EAAG,GAAA,EAAU,WAAW,EAAA,CAAG,kEAAA,EAAoE,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE3H;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,YAAA,GAAqB,KAAA,CAAA,UAAA;AAAA,EACzB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,SAAA,EAAA,EAAQ,GAAA,EAAU,WAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAElG;AACA,YAAA,CAAa,WAAA,GAAc,cAAA","file":"chunk-N2ZFNOOT.js","sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"../../utils\";\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn(\"w-full caption-bottom text-sm\", className)} {...props} />\n </div>\n ),\n);\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />,\n);\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"[&_tr:last-child]:border-0\", className)} {...props} />\n ),\n);\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)} {...props} />\n ),\n);\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\"border-b transition-colors data-[state=selected]:bg-muted hover:bg-muted/50\", className)}\n {...props}\n />\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n ),\n);\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <td ref={ref} className={cn(\"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\", className)} {...props} />\n ),\n);\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\n ({ className, ...props }, ref) => (\n <caption ref={ref} className={cn(\"mt-4 text-sm text-muted-foreground\", className)} {...props} />\n ),\n);\nTableCaption.displayName = \"TableCaption\";\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var Popover = PopoverPrimitive.Root;
|
|
8
|
+
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
9
|
+
var PopoverContent = React.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
10
|
+
PopoverPrimitive.Content,
|
|
11
|
+
{
|
|
12
|
+
ref,
|
|
13
|
+
align,
|
|
14
|
+
sideOffset,
|
|
15
|
+
className: cn(
|
|
16
|
+
"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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",
|
|
17
|
+
className
|
|
18
|
+
),
|
|
19
|
+
...props
|
|
20
|
+
}
|
|
21
|
+
) }));
|
|
22
|
+
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
23
|
+
|
|
24
|
+
export { Popover, PopoverContent, PopoverTrigger };
|
|
25
|
+
//# sourceMappingURL=chunk-NJMO3VPA.js.map
|
|
26
|
+
//# sourceMappingURL=chunk-NJMO3VPA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/popover.tsx"],"names":[],"mappings":";;;;;AAOA,IAAM,OAAA,GAA2B,gBAAA,CAAA;AACjC,IAAM,cAAA,GAAkC,gBAAA,CAAA;AAExC,IAAM,cAAA,GAAuB,KAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,WAAW,KAAA,GAAQ,QAAA,EAAU,UAAA,GAAa,CAAA,EAAG,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC5D,GAAA,CAAkB,yBAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,EAAkB,gBAAA,CAAA,OAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,4aAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,cAAA,CAAe,cAA+B,gBAAA,CAAA,OAAA,CAAQ,WAAA","file":"chunk-NJMO3VPA.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"../../utils\";\n\nconst Popover = PopoverPrimitive.Root;\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent };\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { clsx } from 'clsx';
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import { format, formatDistanceToNow } from 'date-fns';
|
|
4
|
+
|
|
5
|
+
// src/utils.ts
|
|
6
|
+
function cn(...inputs) {
|
|
7
|
+
return twMerge(clsx(inputs));
|
|
8
|
+
}
|
|
9
|
+
function formatDate(date) {
|
|
10
|
+
return format(new Date(date), "MMM d, yyyy");
|
|
11
|
+
}
|
|
12
|
+
function formatRelativeTime(date) {
|
|
13
|
+
return formatDistanceToNow(new Date(date), { addSuffix: true });
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { cn, formatDate, formatRelativeTime };
|
|
17
|
+
//# sourceMappingURL=chunk-NZ5WBA4R.js.map
|
|
18
|
+
//# sourceMappingURL=chunk-NZ5WBA4R.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts"],"names":[],"mappings":";;;;;AAIO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AAEO,SAAS,WAAW,IAAA,EAAqB;AAC9C,EAAA,OAAO,MAAA,CAAO,IAAI,IAAA,CAAK,IAAI,GAAG,aAAa,CAAA;AAC7C;AAEO,SAAS,mBAAmB,IAAA,EAAqB;AACtD,EAAA,OAAO,mBAAA,CAAoB,IAAI,IAAA,CAAK,IAAI,GAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AAChE","file":"chunk-NZ5WBA4R.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport { format, formatDistanceToNow } from \"date-fns\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function formatDate(date: string | Date) {\n return format(new Date(date), \"MMM d, yyyy\");\n}\n\nexport function formatRelativeTime(date: string | Date) {\n return formatDistanceToNow(new Date(date), { addSuffix: true });\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { cn } from './chunk-NZ5WBA4R.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
function ScrollArea({
|
|
5
|
+
className,
|
|
6
|
+
orientation = "vertical",
|
|
7
|
+
children,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
className: cn(
|
|
14
|
+
"relative",
|
|
15
|
+
orientation === "vertical" && "overflow-y-auto overflow-x-hidden",
|
|
16
|
+
orientation === "horizontal" && "overflow-x-auto overflow-y-hidden",
|
|
17
|
+
orientation === "both" && "overflow-auto",
|
|
18
|
+
"[&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/30",
|
|
19
|
+
className
|
|
20
|
+
),
|
|
21
|
+
...props,
|
|
22
|
+
children
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { ScrollArea };
|
|
28
|
+
//# sourceMappingURL=chunk-OCTV3S4I.js.map
|
|
29
|
+
//# sourceMappingURL=chunk-OCTV3S4I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/scroll-area.tsx"],"names":[],"mappings":";;;AAOA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,WAAA,GAAc,UAAA;AAAA,EACd,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,gBAAgB,UAAA,IAAc,mCAAA;AAAA,QAC9B,gBAAgB,YAAA,IAAgB,mCAAA;AAAA,QAChC,gBAAgB,MAAA,IAAU,eAAA;AAAA,QAC1B,mNAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"chunk-OCTV3S4I.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils\";\n\ninterface ScrollAreaProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"vertical\" | \"horizontal\" | \"both\";\n}\n\nfunction ScrollArea({\n className,\n orientation = \"vertical\",\n children,\n ...props\n}: ScrollAreaProps) {\n return (\n <div\n className={cn(\n \"relative\",\n orientation === \"vertical\" && \"overflow-y-auto overflow-x-hidden\",\n orientation === \"horizontal\" && \"overflow-x-auto overflow-y-hidden\",\n orientation === \"both\" && \"overflow-auto\",\n \"[&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/30\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport { ScrollArea };\n"]}
|