@definable/ui 0.1.13 → 0.1.15
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/README.md +0 -7
- package/dist/components/alert-dialog.js +55 -2
- package/dist/components/alert.js +63 -2
- package/dist/components/avatar.js +41 -2
- package/dist/components/badge.js +26 -2
- package/dist/components/button.d.ts +2 -2
- package/dist/components/button.js +49 -2
- package/dist/components/calendar.js +86 -2
- package/dist/components/card.js +61 -2
- package/dist/components/carousel.js +100 -2
- package/dist/components/checkbox.js +31 -2
- package/dist/components/collapse.js +49 -2
- package/dist/components/command-menu.js +89 -2
- package/dist/components/command.js +115 -2
- package/dist/components/confirmation-modal.js +44 -2
- package/dist/components/context-menu.js +185 -2
- package/dist/components/dialog.js +121 -2
- package/dist/components/dropdown-menu.js +48 -2
- package/dist/components/dropzone.js +44 -2
- package/dist/components/image-cropper-modal.js +250 -2
- package/dist/components/image-cropper.js +130 -2
- package/dist/components/input.js +21 -2
- package/dist/components/label.js +19 -2
- package/dist/components/loader.js +69 -2
- package/dist/components/loading-placeholder.js +24 -2
- package/dist/components/mention.js +153 -2
- package/dist/components/modal.js +135 -2
- package/dist/components/notification.js +25 -2
- package/dist/components/popover.js +23 -2
- package/dist/components/progress.js +34 -2
- package/dist/components/radio-group.js +47 -2
- package/dist/components/scroll-area.js +46 -2
- package/dist/components/select.js +130 -2
- package/dist/components/selection-bar.js +53 -2
- package/dist/components/separator.js +24 -2
- package/dist/components/sheet.js +128 -2
- package/dist/components/skeleton.js +17 -2
- package/dist/components/slider.js +32 -2
- package/dist/components/stepper/index.d.ts +4 -0
- package/dist/components/stepper/step-layout.d.ts +8 -0
- package/dist/components/stepper/stepper-modal.d.ts +26 -0
- package/dist/components/stepper/stepper.d.ts +7 -0
- package/dist/components/stepper/types.d.ts +6 -0
- package/dist/components/stepper.js +6 -2
- package/dist/components/switch.js +35 -2
- package/dist/components/table-empty.js +22 -2
- package/dist/components/table-mobile.js +91 -2
- package/dist/components/table.js +156 -2
- package/dist/components/tabs.js +46 -2
- package/dist/components/terminal.js +49 -2
- package/dist/components/textarea.js +20 -2
- package/dist/components/tooltip.js +75 -2
- package/dist/components/use-toast.js +64 -2
- package/dist/icons/icons.d.ts +8 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/providers/anthropic.d.ts +2 -0
- package/dist/icons/providers/claude.d.ts +2 -0
- package/dist/icons/providers/deepseek.d.ts +2 -0
- package/dist/icons/providers/gemini.d.ts +2 -0
- package/dist/icons/providers/grok.d.ts +2 -0
- package/dist/icons/providers/index.d.ts +6 -0
- package/dist/icons/providers/openai.d.ts +2 -0
- package/dist/icons/providers/types.d.ts +4 -0
- package/dist/index.d.ts +48 -962
- package/dist/index.js +444 -2
- package/dist/lib/icons.d.ts +14 -0
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/utils.js +8 -2
- package/dist/{stepper-modal-SYU9mbXs.js → stepper-modal-JXpOXOV2.js} +90 -91
- package/dist/styles.css +1 -1
- package/package.json +180 -134
- package/dist/MonacoEditor-COZcVMEj.cjs +0 -8
- package/dist/MonacoEditor-COZcVMEj.cjs.map +0 -1
- package/dist/MonacoEditor-D3QSSKa4.js +0 -295
- package/dist/MonacoEditor-D3QSSKa4.js.map +0 -1
- package/dist/alert-dialog.d.ts +0 -18
- package/dist/alert.d.ts +0 -25
- package/dist/avatar.d.ts +0 -9
- package/dist/badge.d.ts +0 -15
- package/dist/button.d.ts +0 -16
- package/dist/calendar.d.ts +0 -21
- package/dist/card.d.ts +0 -15
- package/dist/carousel.d.ts +0 -18
- package/dist/charts.d.ts +0 -26
- package/dist/checkbox.d.ts +0 -6
- package/dist/collapse.d.ts +0 -15
- package/dist/command-menu.d.ts +0 -12
- package/dist/command.d.ts +0 -89
- package/dist/components/alert-dialog.esm.js +0 -59
- package/dist/components/alert-dialog.esm.js.map +0 -1
- package/dist/components/alert-dialog.js.map +0 -1
- package/dist/components/alert.esm.js +0 -64
- package/dist/components/alert.esm.js.map +0 -1
- package/dist/components/alert.js.map +0 -1
- package/dist/components/avatar.esm.js +0 -42
- package/dist/components/avatar.esm.js.map +0 -1
- package/dist/components/avatar.js.map +0 -1
- package/dist/components/badge.esm.js +0 -27
- package/dist/components/badge.esm.js.map +0 -1
- package/dist/components/badge.js.map +0 -1
- package/dist/components/button.esm.js +0 -48
- package/dist/components/button.esm.js.map +0 -1
- package/dist/components/button.js.map +0 -1
- package/dist/components/calendar.esm.js +0 -5562
- package/dist/components/calendar.esm.js.map +0 -1
- package/dist/components/calendar.js.map +0 -1
- package/dist/components/card.esm.js +0 -62
- package/dist/components/card.esm.js.map +0 -1
- package/dist/components/card.js.map +0 -1
- package/dist/components/carousel.esm.js +0 -101
- package/dist/components/carousel.esm.js.map +0 -1
- package/dist/components/carousel.js.map +0 -1
- package/dist/components/charts.d.ts +0 -17
- package/dist/components/charts.esm.js +0 -48
- package/dist/components/charts.esm.js.map +0 -1
- package/dist/components/charts.js +0 -2
- package/dist/components/charts.js.map +0 -1
- package/dist/components/checkbox.esm.js +0 -32
- package/dist/components/checkbox.esm.js.map +0 -1
- package/dist/components/checkbox.js.map +0 -1
- package/dist/components/collapse.esm.js +0 -50
- package/dist/components/collapse.esm.js.map +0 -1
- package/dist/components/collapse.js.map +0 -1
- package/dist/components/command-menu.esm.js +0 -90
- package/dist/components/command-menu.esm.js.map +0 -1
- package/dist/components/command-menu.js.map +0 -1
- package/dist/components/command.esm.js +0 -425
- package/dist/components/command.esm.js.map +0 -1
- package/dist/components/command.js.map +0 -1
- package/dist/components/confirmation-modal.esm.js +0 -46
- package/dist/components/confirmation-modal.esm.js.map +0 -1
- package/dist/components/confirmation-modal.js.map +0 -1
- package/dist/components/context-menu.esm.js +0 -186
- package/dist/components/context-menu.esm.js.map +0 -1
- package/dist/components/context-menu.js.map +0 -1
- package/dist/components/dialog.esm.js +0 -122
- package/dist/components/dialog.esm.js.map +0 -1
- package/dist/components/dialog.js.map +0 -1
- package/dist/components/dropdown-menu.esm.js +0 -49
- package/dist/components/dropdown-menu.esm.js.map +0 -1
- package/dist/components/dropdown-menu.js.map +0 -1
- package/dist/components/dropzone.esm.js +0 -45
- package/dist/components/dropzone.esm.js.map +0 -1
- package/dist/components/dropzone.js.map +0 -1
- package/dist/components/image-cropper-modal.esm.js +0 -251
- package/dist/components/image-cropper-modal.esm.js.map +0 -1
- package/dist/components/image-cropper-modal.js.map +0 -1
- package/dist/components/image-cropper.esm.js +0 -131
- package/dist/components/image-cropper.esm.js.map +0 -1
- package/dist/components/image-cropper.js.map +0 -1
- package/dist/components/input.esm.js +0 -22
- package/dist/components/input.esm.js.map +0 -1
- package/dist/components/input.js.map +0 -1
- package/dist/components/label.esm.js +0 -20
- package/dist/components/label.esm.js.map +0 -1
- package/dist/components/label.js.map +0 -1
- package/dist/components/loader.esm.js +0 -70
- package/dist/components/loader.esm.js.map +0 -1
- package/dist/components/loader.js.map +0 -1
- package/dist/components/loading-placeholder.esm.js +0 -25
- package/dist/components/loading-placeholder.esm.js.map +0 -1
- package/dist/components/loading-placeholder.js.map +0 -1
- package/dist/components/markdown.d.ts +0 -2
- package/dist/components/markdown.esm.js +0 -12066
- package/dist/components/markdown.esm.js.map +0 -1
- package/dist/components/markdown.js +0 -18
- package/dist/components/markdown.js.map +0 -1
- package/dist/components/mention.esm.js +0 -154
- package/dist/components/mention.esm.js.map +0 -1
- package/dist/components/mention.js.map +0 -1
- package/dist/components/modal.esm.js +0 -136
- package/dist/components/modal.esm.js.map +0 -1
- package/dist/components/modal.js.map +0 -1
- package/dist/components/monaco-editor.d.ts +0 -2
- package/dist/components/monaco-editor.esm.js +0 -9
- package/dist/components/monaco-editor.esm.js.map +0 -1
- package/dist/components/monaco-editor.js +0 -2
- package/dist/components/monaco-editor.js.map +0 -1
- package/dist/components/notification.esm.js +0 -26
- package/dist/components/notification.esm.js.map +0 -1
- package/dist/components/notification.js.map +0 -1
- package/dist/components/popover.esm.js +0 -24
- package/dist/components/popover.esm.js.map +0 -1
- package/dist/components/popover.js.map +0 -1
- package/dist/components/progress.esm.js +0 -35
- package/dist/components/progress.esm.js.map +0 -1
- package/dist/components/progress.js.map +0 -1
- package/dist/components/radio-group.esm.js +0 -48
- package/dist/components/radio-group.esm.js.map +0 -1
- package/dist/components/radio-group.js.map +0 -1
- package/dist/components/scroll-area.esm.js +0 -47
- package/dist/components/scroll-area.esm.js.map +0 -1
- package/dist/components/scroll-area.js.map +0 -1
- package/dist/components/select.esm.js +0 -131
- package/dist/components/select.esm.js.map +0 -1
- package/dist/components/select.js.map +0 -1
- package/dist/components/selection-bar.esm.js +0 -54
- package/dist/components/selection-bar.esm.js.map +0 -1
- package/dist/components/selection-bar.js.map +0 -1
- package/dist/components/separator.esm.js +0 -25
- package/dist/components/separator.esm.js.map +0 -1
- package/dist/components/separator.js.map +0 -1
- package/dist/components/sheet.esm.js +0 -129
- package/dist/components/sheet.esm.js.map +0 -1
- package/dist/components/sheet.js.map +0 -1
- package/dist/components/skeleton.esm.js +0 -18
- package/dist/components/skeleton.esm.js.map +0 -1
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/slider.esm.js +0 -33
- package/dist/components/slider.esm.js.map +0 -1
- package/dist/components/slider.js.map +0 -1
- package/dist/components/stepper.d.ts +0 -2
- package/dist/components/stepper.esm.js +0 -7
- package/dist/components/stepper.esm.js.map +0 -1
- package/dist/components/stepper.js.map +0 -1
- package/dist/components/switch.esm.js +0 -36
- package/dist/components/switch.esm.js.map +0 -1
- package/dist/components/switch.js.map +0 -1
- package/dist/components/table-empty.esm.js +0 -23
- package/dist/components/table-empty.esm.js.map +0 -1
- package/dist/components/table-empty.js.map +0 -1
- package/dist/components/table-mobile.esm.js +0 -92
- package/dist/components/table-mobile.esm.js.map +0 -1
- package/dist/components/table-mobile.js.map +0 -1
- package/dist/components/table.esm.js +0 -157
- package/dist/components/table.esm.js.map +0 -1
- package/dist/components/table.js.map +0 -1
- package/dist/components/tabs.esm.js +0 -47
- package/dist/components/tabs.esm.js.map +0 -1
- package/dist/components/tabs.js.map +0 -1
- package/dist/components/terminal.esm.js +0 -50
- package/dist/components/terminal.esm.js.map +0 -1
- package/dist/components/terminal.js.map +0 -1
- package/dist/components/textarea.esm.js +0 -21
- package/dist/components/textarea.esm.js.map +0 -1
- package/dist/components/textarea.js.map +0 -1
- package/dist/components/tooltip.esm.js +0 -76
- package/dist/components/tooltip.esm.js.map +0 -1
- package/dist/components/tooltip.js.map +0 -1
- package/dist/components/use-toast.esm.js +0 -65
- package/dist/components/use-toast.esm.js.map +0 -1
- package/dist/components/use-toast.js.map +0 -1
- package/dist/confirmation-modal.d.ts +0 -16
- package/dist/context-menu.d.ts +0 -41
- package/dist/dialog.d.ts +0 -33
- package/dist/dropdown-menu.d.ts +0 -16
- package/dist/dropzone.d.ts +0 -16
- package/dist/image-cropper-modal.d.ts +0 -14
- package/dist/image-cropper.d.ts +0 -15
- package/dist/index-DACAHwoB.js +0 -35
- package/dist/index-DACAHwoB.js.map +0 -1
- package/dist/index-Deooizx8.cjs +0 -2
- package/dist/index-Deooizx8.cjs.map +0 -1
- package/dist/index.esm.js +0 -458
- package/dist/index.esm.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/input.d.ts +0 -8
- package/dist/jsx-runtime-BYECrxsp.cjs +0 -31
- package/dist/jsx-runtime-BYECrxsp.cjs.map +0 -1
- package/dist/jsx-runtime-DGlMoOmv.js +0 -631
- package/dist/jsx-runtime-DGlMoOmv.js.map +0 -1
- package/dist/label.d.ts +0 -6
- package/dist/lib/utils.esm.js +0 -5
- package/dist/lib/utils.esm.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/dist/loader.d.ts +0 -14
- package/dist/loading-placeholder.d.ts +0 -12
- package/dist/markdown.d.ts +0 -122
- package/dist/mention.d.ts +0 -29
- package/dist/modal.d.ts +0 -28
- package/dist/monaco-editor.d.ts +0 -76
- package/dist/notification.d.ts +0 -9
- package/dist/popover.d.ts +0 -10
- package/dist/progress.d.ts +0 -6
- package/dist/radio-group.d.ts +0 -8
- package/dist/scroll-area.d.ts +0 -8
- package/dist/select.d.ts +0 -31
- package/dist/selection-bar.d.ts +0 -15
- package/dist/separator.d.ts +0 -6
- package/dist/sheet.d.ts +0 -17
- package/dist/skeleton.d.ts +0 -5
- package/dist/slider.d.ts +0 -6
- package/dist/stepper-modal-CPlBpxWy.cjs +0 -2
- package/dist/stepper-modal-CPlBpxWy.cjs.map +0 -1
- package/dist/stepper-modal-SYU9mbXs.js.map +0 -1
- package/dist/stepper.d.ts +0 -75
- package/dist/switch.d.ts +0 -6
- package/dist/table-empty.d.ts +0 -13
- package/dist/table-mobile.d.ts +0 -37
- package/dist/table.d.ts +0 -37
- package/dist/tabs.d.ts +0 -12
- package/dist/terminal.d.ts +0 -47
- package/dist/textarea.d.ts +0 -8
- package/dist/tooltip.d.ts +0 -12
- package/dist/use-toast.d.ts +0 -28
- package/dist/utils-DSKoFOjv.cjs +0 -2
- package/dist/utils-DSKoFOjv.cjs.map +0 -1
- package/dist/utils-qaFjX9_3.js +0 -2279
- package/dist/utils-qaFjX9_3.js.map +0 -1
- package/dist/utils.d.ts +0 -5
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slider.js","sources":["../../src/components/slider.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\nimport { cn } from \"@/lib/utils\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<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-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\n <div\n className=\"absolute h-full bg-primary\"\n style={{ width: `${(props.value?.[0] || 0) * 100}%` }}\n />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 hover:scale-110 active:scale-90\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider } "],"names":["Slider","React","className","props","ref","jsxs","SliderPrimitive","cn","jsx","_a"],"mappings":"0fAIMA,EAASC,EAAM,WAGnB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,WAC1BC,OAAAA,EAAAA,kBAAAA,KAACC,EAAgB,KAAhB,CACC,IAAAF,EACA,UAAWG,EAAAA,GACT,2DACAL,CAAA,EAED,GAAGC,EAEJ,SAAA,CAAAK,EAAAA,kBAAAA,IAACF,EAAgB,MAAhB,CAAsB,UAAU,wEAC/B,SAAAE,EAAAA,kBAAAA,IAAC,MAAA,CACC,UAAU,6BACV,MAAO,CAAE,MAAO,MAAIC,EAAAN,EAAM,QAAN,YAAAM,EAAc,KAAM,GAAK,GAAG,GAAA,CAAI,CAAA,EAExD,EACAD,EAAAA,kBAAAA,IAACF,EAAgB,MAAhB,CAAsB,UAAU,qPAAA,CAAsP,CAAA,CAAA,CACzR,EACD,EACDN,EAAO,YAAcM,EAAgB,KAAK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stepper.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stepper.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { j as i } from "../jsx-runtime-DGlMoOmv.js";
|
|
2
|
-
import * as t from "react";
|
|
3
|
-
import * as e from "@radix-ui/react-switch";
|
|
4
|
-
import { c as a } from "../utils-qaFjX9_3.js";
|
|
5
|
-
import { motion as n } from "framer-motion";
|
|
6
|
-
const c = t.forwardRef(({ className: o, ...s }, r) => /* @__PURE__ */ i.jsx(
|
|
7
|
-
e.Root,
|
|
8
|
-
{
|
|
9
|
-
className: a(
|
|
10
|
-
"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
|
|
11
|
-
o
|
|
12
|
-
),
|
|
13
|
-
...s,
|
|
14
|
-
ref: r,
|
|
15
|
-
children: /* @__PURE__ */ i.jsx(e.Thumb, { asChild: !0, children: /* @__PURE__ */ i.jsx(
|
|
16
|
-
n.div,
|
|
17
|
-
{
|
|
18
|
-
className: "block h-4 w-4 rounded-full bg-background shadow-lg ring-0",
|
|
19
|
-
initial: !1,
|
|
20
|
-
animate: {
|
|
21
|
-
x: s.checked ? 16 : 0
|
|
22
|
-
},
|
|
23
|
-
transition: {
|
|
24
|
-
type: "spring",
|
|
25
|
-
stiffness: 500,
|
|
26
|
-
damping: 30
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
) })
|
|
30
|
-
}
|
|
31
|
-
));
|
|
32
|
-
c.displayName = e.Root.displayName;
|
|
33
|
-
export {
|
|
34
|
-
c as Switch
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=switch.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch.esm.js","sources":["../../src/components/switch.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\nimport { cn } from \"@/lib/utils\"\nimport { motion } from \"framer-motion\"\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb asChild>\n <motion.div\n className=\"block h-4 w-4 rounded-full bg-background shadow-lg ring-0\"\n initial={false}\n animate={{\n x: props.checked ? 16 : 0\n }}\n transition={{\n type: \"spring\",\n stiffness: 500,\n damping: 30\n }}\n />\n </SwitchPrimitives.Thumb>\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch } "],"names":["Switch","React","className","props","ref","jsx","SwitchPrimitives","cn","motion"],"mappings":";;;;;AAKA,MAAMA,IAASC,EAAM,WAGnB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACC,EAAiB;AAAA,EAAjB;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAL;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,IACJ,KAAAC;AAAA,IAEA,UAAAC,gBAAAA,EAAAA,IAACC,EAAiB,OAAjB,EAAuB,SAAO,IAC7B,UAAAD,gBAAAA,EAAAA;AAAAA,MAACG,EAAO;AAAA,MAAP;AAAA,QACC,WAAU;AAAA,QACV,SAAS;AAAA,QACT,SAAS;AAAA,UACP,GAAGL,EAAM,UAAU,KAAK;AAAA,QAAA;AAAA,QAE1B,YAAY;AAAA,UACV,MAAM;AAAA,UACN,WAAW;AAAA,UACX,SAAS;AAAA,QAAA;AAAA,MACX;AAAA,IAAA,EACF,CACF;AAAA,EAAA;AACF,CACD;AACDH,EAAO,cAAcM,EAAiB,KAAK;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","sources":["../../src/components/switch.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\nimport { cn } from \"@/lib/utils\"\nimport { motion } from \"framer-motion\"\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb asChild>\n <motion.div\n className=\"block h-4 w-4 rounded-full bg-background shadow-lg ring-0\"\n initial={false}\n animate={{\n x: props.checked ? 16 : 0\n }}\n transition={{\n type: \"spring\",\n stiffness: 500,\n damping: 30\n }}\n />\n </SwitchPrimitives.Thumb>\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch } "],"names":["Switch","React","className","props","ref","jsx","SwitchPrimitives","cn","motion"],"mappings":"qhBAKMA,EAASC,EAAM,WAGnB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAACC,EAAiB,KAAjB,CACC,UAAWC,EAAAA,GACT,8XACAL,CAAA,EAED,GAAGC,EACJ,IAAAC,EAEA,SAAAC,EAAAA,kBAAAA,IAACC,EAAiB,MAAjB,CAAuB,QAAO,GAC7B,SAAAD,EAAAA,kBAAAA,IAACG,EAAAA,OAAO,IAAP,CACC,UAAU,4DACV,QAAS,GACT,QAAS,CACP,EAAGL,EAAM,QAAU,GAAK,CAAA,EAE1B,WAAY,CACV,KAAM,SACN,UAAW,IACX,QAAS,EAAA,CACX,CAAA,CACF,CACF,CAAA,CACF,CACD,EACDH,EAAO,YAAcM,EAAiB,KAAK"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { j as e } from "../jsx-runtime-DGlMoOmv.js";
|
|
2
|
-
import { FolderOpen as l } from "lucide-react";
|
|
3
|
-
import { Button as m } from "./button.esm.js";
|
|
4
|
-
function n({
|
|
5
|
-
title: s = "No data available",
|
|
6
|
-
description: r = "Get started by creating your first record.",
|
|
7
|
-
actionLabel: a = "Create New",
|
|
8
|
-
onAction: t,
|
|
9
|
-
icon: c = /* @__PURE__ */ e.jsx(l, { className: "w-10 h-10 text-muted-foreground" })
|
|
10
|
-
}) {
|
|
11
|
-
return /* @__PURE__ */ e.jsx("div", { className: "flex flex-col items-center justify-center py-12 px-4", children: /* @__PURE__ */ e.jsxs("div", { className: "space-y-5 text-center", children: [
|
|
12
|
-
/* @__PURE__ */ e.jsx("div", { className: "flex justify-center", children: c }),
|
|
13
|
-
/* @__PURE__ */ e.jsxs("div", { className: "space-y-2", children: [
|
|
14
|
-
/* @__PURE__ */ e.jsx("h3", { className: "text-lg font-medium", children: s }),
|
|
15
|
-
/* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted-foreground max-w-sm mx-auto", children: r })
|
|
16
|
-
] }),
|
|
17
|
-
t && /* @__PURE__ */ e.jsx(m, { onClick: t, children: a })
|
|
18
|
-
] }) });
|
|
19
|
-
}
|
|
20
|
-
export {
|
|
21
|
-
n as TableEmpty
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=table-empty.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-empty.esm.js","sources":["../../src/components/table-empty.tsx"],"sourcesContent":["import { FolderOpen } from \"lucide-react\";\nimport { Button } from \"./button\";\n\ninterface TableEmptyProps {\n title?: string;\n description?: string;\n actionLabel?: string;\n onAction?: () => void;\n icon?: React.ReactNode;\n}\n\nexport function TableEmpty({\n title = \"No data available\",\n description = \"Get started by creating your first record.\",\n actionLabel = \"Create New\",\n onAction,\n icon = <FolderOpen className=\"w-10 h-10 text-muted-foreground\" />\n}: TableEmptyProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 px-4\">\n <div className=\"space-y-5 text-center\">\n <div className=\"flex justify-center\">{icon}</div>\n <div className=\"space-y-2\">\n <h3 className=\"text-lg font-medium\">{title}</h3>\n <p className=\"text-sm text-muted-foreground max-w-sm mx-auto\">\n {description}\n </p>\n </div>\n {onAction && (\n <Button onClick={onAction}>\n {actionLabel}\n </Button>\n )}\n </div>\n </div>\n );\n} "],"names":["TableEmpty","title","description","actionLabel","onAction","icon","jsx","FolderOpen","jsxs","Button"],"mappings":";;;AAWO,SAASA,EAAW;AAAA,EACzB,OAAAC,IAAQ;AAAA,EACR,aAAAC,IAAc;AAAA,EACd,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,MAAAC,IAAOC,gBAAAA,EAAAA,IAACC,GAAA,EAAW,WAAU,kCAAA,CAAkC;AACjE,GAAoB;AAClB,+BACG,OAAA,EAAI,WAAU,wDACb,UAAAC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,yBACb,UAAA;AAAA,IAAAF,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,uBAAuB,UAAAD,GAAK;AAAA,IAC3CG,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,MAAAF,gBAAAA,EAAAA,IAAC,MAAA,EAAG,WAAU,uBAAuB,UAAAL,GAAM;AAAA,MAC3CK,gBAAAA,EAAAA,IAAC,KAAA,EAAE,WAAU,kDACV,UAAAJ,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IACCE,KACCE,gBAAAA,EAAAA,IAACG,GAAA,EAAO,SAASL,GACd,UAAAD,EAAA,CACH;AAAA,EAAA,EAAA,CAEJ,EAAA,CACF;AAEJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-empty.js","sources":["../../src/components/table-empty.tsx"],"sourcesContent":["import { FolderOpen } from \"lucide-react\";\nimport { Button } from \"./button\";\n\ninterface TableEmptyProps {\n title?: string;\n description?: string;\n actionLabel?: string;\n onAction?: () => void;\n icon?: React.ReactNode;\n}\n\nexport function TableEmpty({\n title = \"No data available\",\n description = \"Get started by creating your first record.\",\n actionLabel = \"Create New\",\n onAction,\n icon = <FolderOpen className=\"w-10 h-10 text-muted-foreground\" />\n}: TableEmptyProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 px-4\">\n <div className=\"space-y-5 text-center\">\n <div className=\"flex justify-center\">{icon}</div>\n <div className=\"space-y-2\">\n <h3 className=\"text-lg font-medium\">{title}</h3>\n <p className=\"text-sm text-muted-foreground max-w-sm mx-auto\">\n {description}\n </p>\n </div>\n {onAction && (\n <Button onClick={onAction}>\n {actionLabel}\n </Button>\n )}\n </div>\n </div>\n );\n} "],"names":["TableEmpty","title","description","actionLabel","onAction","icon","jsx","FolderOpen","jsxs","Button"],"mappings":"kLAWO,SAASA,EAAW,CACzB,MAAAC,EAAQ,oBACR,YAAAC,EAAc,6CACd,YAAAC,EAAc,aACd,SAAAC,EACA,KAAAC,EAAOC,EAAAA,kBAAAA,IAACC,EAAAA,WAAA,CAAW,UAAU,iCAAA,CAAkC,CACjE,EAAoB,CAClB,+BACG,MAAA,CAAI,UAAU,uDACb,SAAAC,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,wBACb,SAAA,CAAAF,EAAAA,kBAAAA,IAAC,MAAA,CAAI,UAAU,sBAAuB,SAAAD,EAAK,EAC3CG,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAF,EAAAA,kBAAAA,IAAC,KAAA,CAAG,UAAU,sBAAuB,SAAAL,EAAM,EAC3CK,EAAAA,kBAAAA,IAAC,IAAA,CAAE,UAAU,iDACV,SAAAJ,CAAA,CACH,CAAA,EACF,EACCE,GACCE,EAAAA,kBAAAA,IAACG,SAAA,CAAO,QAASL,EACd,SAAAD,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CACF,CAEJ"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { j as r } from "../jsx-runtime-DGlMoOmv.js";
|
|
2
|
-
import { c as x } from "../utils-qaFjX9_3.js";
|
|
3
|
-
import { Checkbox as u } from "./checkbox.esm.js";
|
|
4
|
-
import { Tooltip as f } from "./tooltip.esm.js";
|
|
5
|
-
import { useState as v } from "react";
|
|
6
|
-
import { ChevronRight as b } from "lucide-react";
|
|
7
|
-
function T({
|
|
8
|
-
data: l,
|
|
9
|
-
columns: t,
|
|
10
|
-
showCheckbox: n = !0,
|
|
11
|
-
onRowClick: d,
|
|
12
|
-
selectedItems: a,
|
|
13
|
-
onSelect: o,
|
|
14
|
-
isLoading: p = !1,
|
|
15
|
-
loadingRows: c = 3
|
|
16
|
-
}) {
|
|
17
|
-
const [h, m] = v(null);
|
|
18
|
-
return p ? /* @__PURE__ */ r.jsx("div", { className: "space-y-4", children: Array(c).fill(0).map((s, i) => /* @__PURE__ */ r.jsxs(
|
|
19
|
-
"div",
|
|
20
|
-
{
|
|
21
|
-
className: "border border-border/40 rounded-xl p-4 space-y-4 shadow-sm bg-card/30 animate-pulse",
|
|
22
|
-
children: [
|
|
23
|
-
/* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
24
|
-
/* @__PURE__ */ r.jsx("div", { className: "h-5 bg-muted/70 rounded-md w-2/5" }),
|
|
25
|
-
n && /* @__PURE__ */ r.jsx("div", { className: "h-4 w-4 rounded-md bg-muted/50" })
|
|
26
|
-
] }),
|
|
27
|
-
/* @__PURE__ */ r.jsx("div", { className: "space-y-3 pt-2", children: t.slice(0, 4).map((e, j) => /* @__PURE__ */ r.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
28
|
-
/* @__PURE__ */ r.jsx("div", { className: "h-4 bg-muted/40 rounded-md w-1/4" }),
|
|
29
|
-
/* @__PURE__ */ r.jsx("div", { className: "h-4 bg-muted/60 rounded-md", style: { width: Math.random() * 50 + 30 + "%" } })
|
|
30
|
-
] }, `skeleton-col-${e.id}`)) })
|
|
31
|
-
]
|
|
32
|
-
},
|
|
33
|
-
`skeleton-${i}`
|
|
34
|
-
)) }) : l.length === 0 ? null : /* @__PURE__ */ r.jsx("div", { className: "space-y-4", children: l.map((s, i) => /* @__PURE__ */ r.jsxs(
|
|
35
|
-
"div",
|
|
36
|
-
{
|
|
37
|
-
className: x(
|
|
38
|
-
"border border-border/40 rounded-xl overflow-hidden bg-card/30 shadow-sm transition-all duration-200",
|
|
39
|
-
d && "cursor-pointer hover:border-primary/30 hover:shadow-md hover:bg-card/50"
|
|
40
|
-
),
|
|
41
|
-
onClick: () => d == null ? void 0 : d(s),
|
|
42
|
-
children: [
|
|
43
|
-
/* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between p-4 border-b border-border/30 bg-muted/5", children: [
|
|
44
|
-
/* @__PURE__ */ r.jsx("div", { className: "font-medium", children: t[0].cell(s) || `Item ${i + 1}` }),
|
|
45
|
-
/* @__PURE__ */ r.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
46
|
-
n && /* @__PURE__ */ r.jsx(
|
|
47
|
-
u,
|
|
48
|
-
{
|
|
49
|
-
checked: a == null ? void 0 : a.has(s.id),
|
|
50
|
-
onClick: (e) => {
|
|
51
|
-
e.stopPropagation(), o == null || o(s.id, !(a != null && a.has(s.id)));
|
|
52
|
-
},
|
|
53
|
-
className: "data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground"
|
|
54
|
-
}
|
|
55
|
-
),
|
|
56
|
-
d && /* @__PURE__ */ r.jsx(b, { className: "h-4 w-4 text-muted-foreground/50" })
|
|
57
|
-
] })
|
|
58
|
-
] }),
|
|
59
|
-
/* @__PURE__ */ r.jsx("div", { className: "px-4 py-3 space-y-3", children: t.slice(1).map((e) => /* @__PURE__ */ r.jsxs(
|
|
60
|
-
"div",
|
|
61
|
-
{
|
|
62
|
-
className: "flex items-start gap-3 text-sm group",
|
|
63
|
-
onMouseEnter: () => e.tooltipValue && m(`${i}-${e.id}`),
|
|
64
|
-
onMouseLeave: () => m(null),
|
|
65
|
-
children: [
|
|
66
|
-
/* @__PURE__ */ r.jsx("div", { className: "font-medium text-muted-foreground w-1/3 min-w-[80px] text-xs uppercase tracking-wide pt-0.5", children: e.header }),
|
|
67
|
-
/* @__PURE__ */ r.jsx("div", { className: x(
|
|
68
|
-
"flex-1 min-w-0 text-foreground/90 group-hover:text-foreground transition-colors",
|
|
69
|
-
e.truncate && "truncate"
|
|
70
|
-
), children: e.cell(s) }),
|
|
71
|
-
e.tooltipValue && h === `${i}-${e.id}` && /* @__PURE__ */ r.jsx(
|
|
72
|
-
f,
|
|
73
|
-
{
|
|
74
|
-
content: e.tooltipValue(s),
|
|
75
|
-
side: "bottom",
|
|
76
|
-
align: "start",
|
|
77
|
-
isVisible: !0
|
|
78
|
-
}
|
|
79
|
-
)
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
e.id
|
|
83
|
-
)) })
|
|
84
|
-
]
|
|
85
|
-
},
|
|
86
|
-
s.id
|
|
87
|
-
)) });
|
|
88
|
-
}
|
|
89
|
-
export {
|
|
90
|
-
T as TableMobile
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=table-mobile.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-mobile.esm.js","sources":["../../src/components/table-mobile.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\"\nimport { Checkbox } from \"./checkbox\"\nimport { Tooltip } from \"./tooltip\"\nimport { useState } from \"react\"\nimport { Column, TableProps } from \"./table\"\nimport { ChevronRight } from \"lucide-react\"\n\nexport function TableMobile<T extends { id: string }>({\n data,\n columns,\n showCheckbox = true,\n onRowClick,\n selectedItems,\n onSelect,\n isLoading = false,\n loadingRows = 3\n}: TableProps<T>) {\n const [hoveredText, setHoveredText] = useState<string | null>(null);\n\n // Loading skeleton component for mobile\n if (isLoading) {\n return (\n <div className=\"space-y-4\">\n {Array(loadingRows).fill(0).map((_, index) => (\n <div \n key={`skeleton-${index}`} \n className=\"border border-border/40 rounded-xl p-4 space-y-4 shadow-sm bg-card/30 animate-pulse\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"h-5 bg-muted/70 rounded-md w-2/5\" />\n {showCheckbox && (\n <div className=\"h-4 w-4 rounded-md bg-muted/50\" />\n )}\n </div>\n <div className=\"space-y-3 pt-2\">\n {columns.slice(0, 4).map((column, colIndex) => (\n <div key={`skeleton-col-${column.id}`} className=\"flex items-start gap-3\">\n <div className=\"h-4 bg-muted/40 rounded-md w-1/4\" />\n <div className=\"h-4 bg-muted/60 rounded-md\" style={{ width: Math.random() * 50 + 30 + '%' }} />\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n }\n\n if (data.length === 0) {\n return null; // Empty state is handled by the main Table component\n }\n\n return (\n <div className=\"space-y-4\">\n {data.map((item, index) => (\n <div\n key={item.id}\n className={cn(\n \"border border-border/40 rounded-xl overflow-hidden bg-card/30 shadow-sm transition-all duration-200\",\n onRowClick && \"cursor-pointer hover:border-primary/30 hover:shadow-md hover:bg-card/50\"\n )}\n onClick={() => onRowClick?.(item)}\n >\n <div className=\"flex items-center justify-between p-4 border-b border-border/30 bg-muted/5\">\n <div className=\"font-medium\">\n {/* Display a primary identifier */}\n {columns[0].cell(item) || `Item ${index + 1}`}\n </div>\n <div className=\"flex items-center gap-2\">\n {showCheckbox && (\n <Checkbox\n checked={selectedItems?.has(item.id)}\n onClick={(e) => {\n e.stopPropagation();\n onSelect?.(item.id, !selectedItems?.has(item.id));\n }}\n className=\"data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\"\n />\n )}\n {onRowClick && (\n <ChevronRight className=\"h-4 w-4 text-muted-foreground/50\" />\n )}\n </div>\n </div>\n \n <div className=\"px-4 py-3 space-y-3\">\n {columns.slice(1).map((column) => (\n <div\n key={column.id}\n className=\"flex items-start gap-3 text-sm group\"\n onMouseEnter={() => column.tooltipValue && setHoveredText(`${index}-${column.id}`)}\n onMouseLeave={() => setHoveredText(null)}\n >\n <div className=\"font-medium text-muted-foreground w-1/3 min-w-[80px] text-xs uppercase tracking-wide pt-0.5\">\n {column.header}\n </div>\n <div className={cn(\n \"flex-1 min-w-0 text-foreground/90 group-hover:text-foreground transition-colors\",\n column.truncate && \"truncate\"\n )}>\n {column.cell(item)}\n </div>\n {column.tooltipValue && hoveredText === `${index}-${column.id}` && (\n <Tooltip\n content={column.tooltipValue(item)}\n side=\"bottom\"\n align=\"start\"\n isVisible={true}\n />\n )}\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n} "],"names":["TableMobile","data","columns","showCheckbox","onRowClick","selectedItems","onSelect","isLoading","loadingRows","hoveredText","setHoveredText","useState","jsx","_","index","jsxs","column","colIndex","item","cn","Checkbox","ChevronRight","Tooltip"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-mobile.js","sources":["../../src/components/table-mobile.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\"\nimport { Checkbox } from \"./checkbox\"\nimport { Tooltip } from \"./tooltip\"\nimport { useState } from \"react\"\nimport { Column, TableProps } from \"./table\"\nimport { ChevronRight } from \"lucide-react\"\n\nexport function TableMobile<T extends { id: string }>({\n data,\n columns,\n showCheckbox = true,\n onRowClick,\n selectedItems,\n onSelect,\n isLoading = false,\n loadingRows = 3\n}: TableProps<T>) {\n const [hoveredText, setHoveredText] = useState<string | null>(null);\n\n // Loading skeleton component for mobile\n if (isLoading) {\n return (\n <div className=\"space-y-4\">\n {Array(loadingRows).fill(0).map((_, index) => (\n <div \n key={`skeleton-${index}`} \n className=\"border border-border/40 rounded-xl p-4 space-y-4 shadow-sm bg-card/30 animate-pulse\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"h-5 bg-muted/70 rounded-md w-2/5\" />\n {showCheckbox && (\n <div className=\"h-4 w-4 rounded-md bg-muted/50\" />\n )}\n </div>\n <div className=\"space-y-3 pt-2\">\n {columns.slice(0, 4).map((column, colIndex) => (\n <div key={`skeleton-col-${column.id}`} className=\"flex items-start gap-3\">\n <div className=\"h-4 bg-muted/40 rounded-md w-1/4\" />\n <div className=\"h-4 bg-muted/60 rounded-md\" style={{ width: Math.random() * 50 + 30 + '%' }} />\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n }\n\n if (data.length === 0) {\n return null; // Empty state is handled by the main Table component\n }\n\n return (\n <div className=\"space-y-4\">\n {data.map((item, index) => (\n <div\n key={item.id}\n className={cn(\n \"border border-border/40 rounded-xl overflow-hidden bg-card/30 shadow-sm transition-all duration-200\",\n onRowClick && \"cursor-pointer hover:border-primary/30 hover:shadow-md hover:bg-card/50\"\n )}\n onClick={() => onRowClick?.(item)}\n >\n <div className=\"flex items-center justify-between p-4 border-b border-border/30 bg-muted/5\">\n <div className=\"font-medium\">\n {/* Display a primary identifier */}\n {columns[0].cell(item) || `Item ${index + 1}`}\n </div>\n <div className=\"flex items-center gap-2\">\n {showCheckbox && (\n <Checkbox\n checked={selectedItems?.has(item.id)}\n onClick={(e) => {\n e.stopPropagation();\n onSelect?.(item.id, !selectedItems?.has(item.id));\n }}\n className=\"data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\"\n />\n )}\n {onRowClick && (\n <ChevronRight className=\"h-4 w-4 text-muted-foreground/50\" />\n )}\n </div>\n </div>\n \n <div className=\"px-4 py-3 space-y-3\">\n {columns.slice(1).map((column) => (\n <div\n key={column.id}\n className=\"flex items-start gap-3 text-sm group\"\n onMouseEnter={() => column.tooltipValue && setHoveredText(`${index}-${column.id}`)}\n onMouseLeave={() => setHoveredText(null)}\n >\n <div className=\"font-medium text-muted-foreground w-1/3 min-w-[80px] text-xs uppercase tracking-wide pt-0.5\">\n {column.header}\n </div>\n <div className={cn(\n \"flex-1 min-w-0 text-foreground/90 group-hover:text-foreground transition-colors\",\n column.truncate && \"truncate\"\n )}>\n {column.cell(item)}\n </div>\n {column.tooltipValue && hoveredText === `${index}-${column.id}` && (\n <Tooltip\n content={column.tooltipValue(item)}\n side=\"bottom\"\n align=\"start\"\n isVisible={true}\n />\n )}\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n} "],"names":["TableMobile","data","columns","showCheckbox","onRowClick","selectedItems","onSelect","isLoading","loadingRows","hoveredText","setHoveredText","useState","jsx","_","index","jsxs","column","colIndex","item","cn","Checkbox","e","ChevronRight","Tooltip"],"mappings":"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"}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { j as r } from "../jsx-runtime-DGlMoOmv.js";
|
|
2
|
-
import { c as s } from "../utils-qaFjX9_3.js";
|
|
3
|
-
import { Checkbox as u } from "./checkbox.esm.js";
|
|
4
|
-
import { Tooltip as T } from "./tooltip.esm.js";
|
|
5
|
-
import { useState as $ } from "react";
|
|
6
|
-
import { TableEmpty as k } from "./table-empty.esm.js";
|
|
7
|
-
const c = ({ children: d, className: t }) => /* @__PURE__ */ r.jsx("div", { className: s("border border-border/50 rounded-lg overflow-hidden bg-background shadow-sm", t), children: d });
|
|
8
|
-
function B({
|
|
9
|
-
data: d,
|
|
10
|
-
columns: t,
|
|
11
|
-
showCheckbox: o = !0,
|
|
12
|
-
onRowClick: p,
|
|
13
|
-
className: h,
|
|
14
|
-
selectedItems: a,
|
|
15
|
-
onSelect: l,
|
|
16
|
-
emptyState: f,
|
|
17
|
-
isLoading: g = !1,
|
|
18
|
-
loadingRows: b = 5,
|
|
19
|
-
tableHeightOffset: v
|
|
20
|
-
}) {
|
|
21
|
-
const [N, m] = $(null), j = { height: v ? `calc(100vh - ${v})` : "calc(100vh - 8rem)" }, x = [
|
|
22
|
-
o ? "40px" : null,
|
|
23
|
-
...t.map((i) => i.width || "1fr")
|
|
24
|
-
].filter(Boolean).join(" "), y = () => /* @__PURE__ */ r.jsx(
|
|
25
|
-
"div",
|
|
26
|
-
{
|
|
27
|
-
className: s("divide-y divide-border/50 overflow-y-auto"),
|
|
28
|
-
style: j,
|
|
29
|
-
children: Array(b).fill(0).map((i, n) => /* @__PURE__ */ r.jsxs(
|
|
30
|
-
"div",
|
|
31
|
-
{
|
|
32
|
-
className: "grid items-center px-6 py-4 text-sm",
|
|
33
|
-
style: { gridTemplateColumns: x },
|
|
34
|
-
children: [
|
|
35
|
-
o && /* @__PURE__ */ r.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ r.jsx("div", { className: "h-4 w-4 rounded bg-muted animate-pulse" }) }),
|
|
36
|
-
t.map((e) => /* @__PURE__ */ r.jsx(
|
|
37
|
-
"div",
|
|
38
|
-
{
|
|
39
|
-
className: s("px-2 relative min-w-0", e.className),
|
|
40
|
-
children: /* @__PURE__ */ r.jsx(
|
|
41
|
-
"div",
|
|
42
|
-
{
|
|
43
|
-
className: "h-4 bg-muted rounded animate-pulse",
|
|
44
|
-
style: { width: Math.random() * 40 + 40 + "%" }
|
|
45
|
-
}
|
|
46
|
-
)
|
|
47
|
-
},
|
|
48
|
-
`skeleton-col-${e.id}`
|
|
49
|
-
))
|
|
50
|
-
]
|
|
51
|
-
},
|
|
52
|
-
`skeleton-${n}`
|
|
53
|
-
))
|
|
54
|
-
}
|
|
55
|
-
);
|
|
56
|
-
return g ? /* @__PURE__ */ r.jsx(c, { className: h, children: /* @__PURE__ */ r.jsxs("div", { className: "relative bg-card", children: [
|
|
57
|
-
/* @__PURE__ */ r.jsxs(
|
|
58
|
-
"div",
|
|
59
|
-
{
|
|
60
|
-
className: s(
|
|
61
|
-
"grid items-center px-6 py-3 text-xs font-medium text-muted-foreground/80 bg-muted/30 border-b border-border/50 sticky top-0 z-10"
|
|
62
|
-
),
|
|
63
|
-
style: { gridTemplateColumns: x },
|
|
64
|
-
children: [
|
|
65
|
-
o && /* @__PURE__ */ r.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ r.jsx("div", { className: "h-4 w-4 rounded bg-muted animate-pulse" }) }),
|
|
66
|
-
t.map((i) => /* @__PURE__ */ r.jsx("div", { className: s("px-2 font-medium", i.className), children: i.header }, i.id))
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
),
|
|
70
|
-
/* @__PURE__ */ r.jsx(y, {})
|
|
71
|
-
] }) }) : d.length === 0 ? /* @__PURE__ */ r.jsx(c, { className: h, children: /* @__PURE__ */ r.jsx("div", { className: "relative bg-card", children: /* @__PURE__ */ r.jsx(k, { ...f }) }) }) : /* @__PURE__ */ r.jsx(c, { className: h, children: /* @__PURE__ */ r.jsxs("div", { className: "relative bg-card", children: [
|
|
72
|
-
/* @__PURE__ */ r.jsxs(
|
|
73
|
-
"div",
|
|
74
|
-
{
|
|
75
|
-
className: s(
|
|
76
|
-
"grid items-center px-6 py-3 text-xs font-medium text-muted-foreground/80 bg-muted/30 border-b border-border/50 sticky top-0 z-10"
|
|
77
|
-
),
|
|
78
|
-
style: { gridTemplateColumns: x },
|
|
79
|
-
children: [
|
|
80
|
-
o && /* @__PURE__ */ r.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ r.jsx(
|
|
81
|
-
u,
|
|
82
|
-
{
|
|
83
|
-
checked: d.length > 0 && (a == null ? void 0 : a.size) === d.length,
|
|
84
|
-
onClick: (i) => {
|
|
85
|
-
i.stopPropagation(), d.forEach((n) => l == null ? void 0 : l(n.id, !(a != null && a.has(n.id))));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
) }),
|
|
89
|
-
t.map((i) => /* @__PURE__ */ r.jsx("div", { className: s("px-2 font-medium", i.className), children: i.header }, i.id))
|
|
90
|
-
]
|
|
91
|
-
}
|
|
92
|
-
),
|
|
93
|
-
/* @__PURE__ */ r.jsx(
|
|
94
|
-
"div",
|
|
95
|
-
{
|
|
96
|
-
className: s("divide-y divide-border/30 overflow-y-auto"),
|
|
97
|
-
style: j,
|
|
98
|
-
children: d.map((i, n) => /* @__PURE__ */ r.jsxs(
|
|
99
|
-
"div",
|
|
100
|
-
{
|
|
101
|
-
className: s(
|
|
102
|
-
"grid items-center px-6 py-4 text-sm text-foreground hover:bg-muted/30 transition-colors duration-150 group cursor-pointer"
|
|
103
|
-
),
|
|
104
|
-
style: { gridTemplateColumns: x },
|
|
105
|
-
onClick: () => p == null ? void 0 : p(i),
|
|
106
|
-
children: [
|
|
107
|
-
o && /* @__PURE__ */ r.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ r.jsx(
|
|
108
|
-
u,
|
|
109
|
-
{
|
|
110
|
-
checked: a == null ? void 0 : a.has(i.id),
|
|
111
|
-
onClick: (e) => {
|
|
112
|
-
e.stopPropagation(), l == null || l(i.id, !(a != null && a.has(i.id)));
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
) }),
|
|
116
|
-
t.map((e) => /* @__PURE__ */ r.jsxs(
|
|
117
|
-
"div",
|
|
118
|
-
{
|
|
119
|
-
className: s(
|
|
120
|
-
"px-2 relative min-w-0",
|
|
121
|
-
e.className
|
|
122
|
-
),
|
|
123
|
-
onMouseEnter: () => e.tooltipValue && m(`${n}-${e.id}`),
|
|
124
|
-
onMouseLeave: () => m(null),
|
|
125
|
-
children: [
|
|
126
|
-
/* @__PURE__ */ r.jsx("div", { className: s(
|
|
127
|
-
"flex items-center gap-2",
|
|
128
|
-
e.truncate && "overflow-hidden"
|
|
129
|
-
), children: /* @__PURE__ */ r.jsx("div", { className: s(
|
|
130
|
-
"w-full",
|
|
131
|
-
e.truncate && "truncate"
|
|
132
|
-
), children: e.cell(i) }) }),
|
|
133
|
-
e.tooltipValue && N === `${n}-${e.id}` && /* @__PURE__ */ r.jsx(
|
|
134
|
-
T,
|
|
135
|
-
{
|
|
136
|
-
content: e.tooltipValue(i),
|
|
137
|
-
side: "bottom",
|
|
138
|
-
align: "start",
|
|
139
|
-
isVisible: !0
|
|
140
|
-
}
|
|
141
|
-
)
|
|
142
|
-
]
|
|
143
|
-
},
|
|
144
|
-
e.id
|
|
145
|
-
))
|
|
146
|
-
]
|
|
147
|
-
},
|
|
148
|
-
i.id
|
|
149
|
-
))
|
|
150
|
-
}
|
|
151
|
-
)
|
|
152
|
-
] }) });
|
|
153
|
-
}
|
|
154
|
-
export {
|
|
155
|
-
B as Table
|
|
156
|
-
};
|
|
157
|
-
//# sourceMappingURL=table.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.esm.js","sources":["../../src/components/table.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\"\nimport { Checkbox } from \"./checkbox\"\nimport { Tooltip } from \"./tooltip\"\nimport { useState } from \"react\"\nimport { TableEmpty } from \"./table-empty\"\n\nexport interface Column<T> {\n id: string\n header: string\n width?: string\n cell: (item: T) => React.ReactNode\n className?: string\n tooltipValue?: (item: T) => string\n truncate?: boolean\n}\n\nexport interface TableProps<T> {\n data: T[]\n columns: Column<T>[]\n showCheckbox?: boolean\n onRowClick?: (item: T) => void\n className?: string\n selectedItems?: Set<string>\n onSelect?: (id: string, checked: boolean) => void\n emptyState?: {\n title?: string\n description?: string\n actionLabel?: string\n onAction?: () => void\n icon?: React.ReactNode\n }\n isLoading?: boolean\n loadingRows?: number\n tableHeightOffset?: string\n}\n\nconst TableContainer = ({ children, className }: { children: React.ReactNode, className?: string }) => {\n return (\n <div className={cn(\"border border-border/50 rounded-lg overflow-hidden bg-background shadow-sm\", className)}>\n {children}\n </div>\n )\n} \nexport function Table<T extends { id: string }>({ \n data, \n columns, \n showCheckbox = true,\n onRowClick,\n className,\n selectedItems,\n onSelect,\n emptyState,\n isLoading = false,\n loadingRows = 5,\n tableHeightOffset\n}: TableProps<T>) {\n const [hoveredText, setHoveredText] = useState<string | null>(null);\n\n const height = tableHeightOffset ? `calc(100vh - ${tableHeightOffset})` : \"calc(100vh - 8rem)\";\n const heightStyle = { height };\n\n // Improved grid template calculation\n const gridTemplateColumns = [\n showCheckbox ? '40px' : null,\n ...columns.map(col => col.width || '1fr')\n ].filter(Boolean).join(' ');\n\n // Loading skeleton component\n const TableSkeleton = () => (\n <div className={cn(\"divide-y divide-border/50 overflow-y-auto\")}\n style={heightStyle}\n >\n {Array(loadingRows).fill(0).map((_, index) => (\n <div\n key={`skeleton-${index}`}\n className=\"grid items-center px-6 py-4 text-sm\"\n style={{ gridTemplateColumns }}\n >\n {showCheckbox && (\n <div className=\"flex items-center justify-center\">\n <div className=\"h-4 w-4 rounded bg-muted animate-pulse\" />\n </div>\n )}\n \n {columns.map(column => (\n <div \n key={`skeleton-col-${column.id}`} \n className={cn(\"px-2 relative min-w-0\", column.className)}\n >\n <div className=\"h-4 bg-muted rounded animate-pulse\" \n style={{ width: Math.random() * 40 + 40 + '%' }} />\n </div>\n ))}\n </div>\n ))}\n </div>\n );\n\n if (isLoading) {\n return (\n <TableContainer className={className}>\n <div className=\"relative bg-card\">\n {/* Header */}\n <div className={cn(\n \"grid items-center px-6 py-3 text-xs font-medium text-muted-foreground/80 bg-muted/30 border-b border-border/50 sticky top-0 z-10\",\n )}\n style={{ gridTemplateColumns }}\n >\n {showCheckbox && (\n <div className=\"flex items-center justify-center\">\n <div className=\"h-4 w-4 rounded bg-muted animate-pulse\" />\n </div>\n )}\n {columns.map(column => (\n <div key={column.id} className={cn(\"px-2 font-medium\", column.className)}>\n {column.header}\n </div>\n ))}\n </div>\n\n <TableSkeleton />\n </div>\n </TableContainer>\n );\n }\n\n if (data.length === 0) {\n return (\n <TableContainer className={className}>\n <div className=\"relative bg-card\">\n <TableEmpty {...emptyState} />\n </div>\n </TableContainer>\n );\n }\n\n return (\n <TableContainer className={className}>\n <div className=\"relative bg-card\">\n {/* Header */}\n <div className={cn(\n \"grid items-center px-6 py-3 text-xs font-medium text-muted-foreground/80 bg-muted/30 border-b border-border/50 sticky top-0 z-10\",\n )}\n style={{ gridTemplateColumns }}\n >\n {showCheckbox && (\n <div className=\"flex items-center justify-center\">\n <Checkbox \n checked={data.length > 0 && selectedItems?.size === data.length}\n onClick={(e) => {\n e.stopPropagation();\n data.forEach(item => onSelect?.(item.id, !selectedItems?.has(item.id)));\n }}\n />\n </div>\n )}\n {columns.map(column => (\n <div key={column.id} className={cn(\"px-2 font-medium\", column.className)}>\n {column.header}\n </div>\n ))}\n </div>\n\n {/* Body */}\n <div className={cn(\"divide-y divide-border/30 overflow-y-auto\")}\n style={heightStyle}\n >\n {data.map((item, index) => (\n <div\n key={item.id}\n className={cn(\n \"grid items-center px-6 py-4 text-sm text-foreground hover:bg-muted/30 transition-colors duration-150 group cursor-pointer\",\n )}\n style={{ gridTemplateColumns }}\n onClick={() => onRowClick?.(item)}\n >\n {showCheckbox && (\n <div className=\"flex items-center justify-center\">\n <Checkbox \n checked={selectedItems?.has(item.id)}\n onClick={(e) => {\n e.stopPropagation();\n onSelect?.(item.id, !selectedItems?.has(item.id));\n }}\n />\n </div>\n )}\n \n {columns.map(column => (\n <div \n key={column.id} \n className={cn(\n \"px-2 relative min-w-0\",\n column.className\n )}\n onMouseEnter={() => column.tooltipValue && setHoveredText(`${index}-${column.id}`)}\n onMouseLeave={() => setHoveredText(null)}\n >\n <div className={cn(\n \"flex items-center gap-2\",\n column.truncate && \"overflow-hidden\"\n )}>\n <div className={cn(\n \"w-full\",\n column.truncate && \"truncate\"\n )}>\n {column.cell(item)}\n </div>\n </div>\n {column.tooltipValue && hoveredText === `${index}-${column.id}` && (\n <Tooltip\n content={column.tooltipValue(item)}\n side=\"bottom\"\n align='start'\n isVisible={true}\n />\n )}\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n </TableContainer>\n );\n} "],"names":["TableContainer","children","className","cn","Table","data","columns","showCheckbox","onRowClick","selectedItems","onSelect","emptyState","isLoading","loadingRows","tableHeightOffset","hoveredText","setHoveredText","useState","heightStyle","gridTemplateColumns","col","TableSkeleton","jsx","_","index","jsxs","column","TableEmpty","Checkbox","e","item","Tooltip"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../src/components/table.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\"\nimport { Checkbox } from \"./checkbox\"\nimport { Tooltip } from \"./tooltip\"\nimport { useState } from \"react\"\nimport { TableEmpty } from \"./table-empty\"\n\nexport interface Column<T> {\n id: string\n header: string\n width?: string\n cell: (item: T) => React.ReactNode\n className?: string\n tooltipValue?: (item: T) => string\n truncate?: boolean\n}\n\nexport interface TableProps<T> {\n data: T[]\n columns: Column<T>[]\n showCheckbox?: boolean\n onRowClick?: (item: T) => void\n className?: string\n selectedItems?: Set<string>\n onSelect?: (id: string, checked: boolean) => void\n emptyState?: {\n title?: string\n description?: string\n actionLabel?: string\n onAction?: () => void\n icon?: React.ReactNode\n }\n isLoading?: boolean\n loadingRows?: number\n tableHeightOffset?: string\n}\n\nconst TableContainer = ({ children, className }: { children: React.ReactNode, className?: string }) => {\n return (\n <div className={cn(\"border border-border/50 rounded-lg overflow-hidden bg-background shadow-sm\", className)}>\n {children}\n </div>\n )\n} \nexport function Table<T extends { id: string }>({ \n data, \n columns, \n showCheckbox = true,\n onRowClick,\n className,\n selectedItems,\n onSelect,\n emptyState,\n isLoading = false,\n loadingRows = 5,\n tableHeightOffset\n}: TableProps<T>) {\n const [hoveredText, setHoveredText] = useState<string | null>(null);\n\n const height = tableHeightOffset ? `calc(100vh - ${tableHeightOffset})` : \"calc(100vh - 8rem)\";\n const heightStyle = { height };\n\n // Improved grid template calculation\n const gridTemplateColumns = [\n showCheckbox ? '40px' : null,\n ...columns.map(col => col.width || '1fr')\n ].filter(Boolean).join(' ');\n\n // Loading skeleton component\n const TableSkeleton = () => (\n <div className={cn(\"divide-y divide-border/50 overflow-y-auto\")}\n style={heightStyle}\n >\n {Array(loadingRows).fill(0).map((_, index) => (\n <div\n key={`skeleton-${index}`}\n className=\"grid items-center px-6 py-4 text-sm\"\n style={{ gridTemplateColumns }}\n >\n {showCheckbox && (\n <div className=\"flex items-center justify-center\">\n <div className=\"h-4 w-4 rounded bg-muted animate-pulse\" />\n </div>\n )}\n \n {columns.map(column => (\n <div \n key={`skeleton-col-${column.id}`} \n className={cn(\"px-2 relative min-w-0\", column.className)}\n >\n <div className=\"h-4 bg-muted rounded animate-pulse\" \n style={{ width: Math.random() * 40 + 40 + '%' }} />\n </div>\n ))}\n </div>\n ))}\n </div>\n );\n\n if (isLoading) {\n return (\n <TableContainer className={className}>\n <div className=\"relative bg-card\">\n {/* Header */}\n <div className={cn(\n \"grid items-center px-6 py-3 text-xs font-medium text-muted-foreground/80 bg-muted/30 border-b border-border/50 sticky top-0 z-10\",\n )}\n style={{ gridTemplateColumns }}\n >\n {showCheckbox && (\n <div className=\"flex items-center justify-center\">\n <div className=\"h-4 w-4 rounded bg-muted animate-pulse\" />\n </div>\n )}\n {columns.map(column => (\n <div key={column.id} className={cn(\"px-2 font-medium\", column.className)}>\n {column.header}\n </div>\n ))}\n </div>\n\n <TableSkeleton />\n </div>\n </TableContainer>\n );\n }\n\n if (data.length === 0) {\n return (\n <TableContainer className={className}>\n <div className=\"relative bg-card\">\n <TableEmpty {...emptyState} />\n </div>\n </TableContainer>\n );\n }\n\n return (\n <TableContainer className={className}>\n <div className=\"relative bg-card\">\n {/* Header */}\n <div className={cn(\n \"grid items-center px-6 py-3 text-xs font-medium text-muted-foreground/80 bg-muted/30 border-b border-border/50 sticky top-0 z-10\",\n )}\n style={{ gridTemplateColumns }}\n >\n {showCheckbox && (\n <div className=\"flex items-center justify-center\">\n <Checkbox \n checked={data.length > 0 && selectedItems?.size === data.length}\n onClick={(e) => {\n e.stopPropagation();\n data.forEach(item => onSelect?.(item.id, !selectedItems?.has(item.id)));\n }}\n />\n </div>\n )}\n {columns.map(column => (\n <div key={column.id} className={cn(\"px-2 font-medium\", column.className)}>\n {column.header}\n </div>\n ))}\n </div>\n\n {/* Body */}\n <div className={cn(\"divide-y divide-border/30 overflow-y-auto\")}\n style={heightStyle}\n >\n {data.map((item, index) => (\n <div\n key={item.id}\n className={cn(\n \"grid items-center px-6 py-4 text-sm text-foreground hover:bg-muted/30 transition-colors duration-150 group cursor-pointer\",\n )}\n style={{ gridTemplateColumns }}\n onClick={() => onRowClick?.(item)}\n >\n {showCheckbox && (\n <div className=\"flex items-center justify-center\">\n <Checkbox \n checked={selectedItems?.has(item.id)}\n onClick={(e) => {\n e.stopPropagation();\n onSelect?.(item.id, !selectedItems?.has(item.id));\n }}\n />\n </div>\n )}\n \n {columns.map(column => (\n <div \n key={column.id} \n className={cn(\n \"px-2 relative min-w-0\",\n column.className\n )}\n onMouseEnter={() => column.tooltipValue && setHoveredText(`${index}-${column.id}`)}\n onMouseLeave={() => setHoveredText(null)}\n >\n <div className={cn(\n \"flex items-center gap-2\",\n column.truncate && \"overflow-hidden\"\n )}>\n <div className={cn(\n \"w-full\",\n column.truncate && \"truncate\"\n )}>\n {column.cell(item)}\n </div>\n </div>\n {column.tooltipValue && hoveredText === `${index}-${column.id}` && (\n <Tooltip\n content={column.tooltipValue(item)}\n side=\"bottom\"\n align='start'\n isVisible={true}\n />\n )}\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n </TableContainer>\n );\n} "],"names":["TableContainer","children","className","cn","Table","data","columns","showCheckbox","onRowClick","selectedItems","onSelect","emptyState","isLoading","loadingRows","tableHeightOffset","hoveredText","setHoveredText","useState","heightStyle","gridTemplateColumns","col","TableSkeleton","jsx","_","index","jsxs","column","TableEmpty","Checkbox","item","e","Tooltip"],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { j as a } from "../jsx-runtime-DGlMoOmv.js";
|
|
2
|
-
import * as o from "react";
|
|
3
|
-
import * as e from "@radix-ui/react-tabs";
|
|
4
|
-
import { c as n } from "../utils-qaFjX9_3.js";
|
|
5
|
-
const m = e.Root, r = o.forwardRef(({ className: i, ...s }, t) => /* @__PURE__ */ a.jsx(
|
|
6
|
-
e.List,
|
|
7
|
-
{
|
|
8
|
-
ref: t,
|
|
9
|
-
className: n(
|
|
10
|
-
"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
|
|
11
|
-
i
|
|
12
|
-
),
|
|
13
|
-
...s
|
|
14
|
-
}
|
|
15
|
-
));
|
|
16
|
-
r.displayName = e.List.displayName;
|
|
17
|
-
const f = o.forwardRef(({ className: i, ...s }, t) => /* @__PURE__ */ a.jsx(
|
|
18
|
-
e.Trigger,
|
|
19
|
-
{
|
|
20
|
-
ref: t,
|
|
21
|
-
className: n(
|
|
22
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 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 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
|
|
23
|
-
i
|
|
24
|
-
),
|
|
25
|
-
...s
|
|
26
|
-
}
|
|
27
|
-
));
|
|
28
|
-
f.displayName = e.Trigger.displayName;
|
|
29
|
-
const c = o.forwardRef(({ className: i, ...s }, t) => /* @__PURE__ */ a.jsx(
|
|
30
|
-
e.Content,
|
|
31
|
-
{
|
|
32
|
-
ref: t,
|
|
33
|
-
className: n(
|
|
34
|
-
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
35
|
-
i
|
|
36
|
-
),
|
|
37
|
-
...s
|
|
38
|
-
}
|
|
39
|
-
));
|
|
40
|
-
c.displayName = e.Content.displayName;
|
|
41
|
-
export {
|
|
42
|
-
m as Tabs,
|
|
43
|
-
c as TabsContent,
|
|
44
|
-
r as TabsList,
|
|
45
|
-
f as TabsTrigger
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=tabs.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.esm.js","sources":["../../src/components/tabs.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { cn } from \"@/lib/utils\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 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 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\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))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent } "],"names":["Tabs","TabsPrimitive","TabsList","React","className","props","ref","jsx","cn","TabsTrigger","TabsContent"],"mappings":";;;;AAIA,MAAMA,IAAOC,EAAc,MAErBC,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcD,EAAc,KAAK;AAE1C,MAAMQ,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAcR,EAAc,QAAQ;AAEhD,MAAMS,IAAcP,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAY,cAAcT,EAAc,QAAQ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sources":["../../src/components/tabs.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { cn } from \"@/lib/utils\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 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 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\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))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent } "],"names":["Tabs","TabsPrimitive","TabsList","React","className","props","ref","jsx","cn","TabsTrigger","TabsContent"],"mappings":"wfAIMA,EAAOC,EAAc,KAErBC,EAAWC,EAAM,WAGrB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAACN,EAAc,KAAd,CACC,IAAAK,EACA,UAAWE,EAAAA,GACT,4FACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDH,EAAS,YAAcD,EAAc,KAAK,YAE1C,MAAMQ,EAAcN,EAAM,WAGxB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAACN,EAAc,QAAd,CACC,IAAAK,EACA,UAAWE,EAAAA,GACT,iYACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDI,EAAY,YAAcR,EAAc,QAAQ,YAEhD,MAAMS,EAAcP,EAAM,WAGxB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,kBAAAA,IAACN,EAAc,QAAd,CACC,IAAAK,EACA,UAAWE,EAAAA,GACT,kIACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDK,EAAY,YAAcT,EAAc,QAAQ"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
const B = {
|
|
2
|
-
RESET: "\x1B[0m",
|
|
3
|
-
BOLD: "\x1B[1m",
|
|
4
|
-
DIM: "\x1B[2m",
|
|
5
|
-
ITALIC: "\x1B[3m",
|
|
6
|
-
UNDERLINE: "\x1B[4m",
|
|
7
|
-
BLINK: "\x1B[5m",
|
|
8
|
-
REVERSE: "\x1B[7m",
|
|
9
|
-
STRIKETHROUGH: "\x1B[9m",
|
|
10
|
-
// Regular colors
|
|
11
|
-
BLACK: "\x1B[30m",
|
|
12
|
-
RED: "\x1B[31m",
|
|
13
|
-
GREEN: "\x1B[32m",
|
|
14
|
-
YELLOW: "\x1B[33m",
|
|
15
|
-
BLUE: "\x1B[34m",
|
|
16
|
-
MAGENTA: "\x1B[35m",
|
|
17
|
-
CYAN: "\x1B[36m",
|
|
18
|
-
WHITE: "\x1B[37m",
|
|
19
|
-
GRAY: "\x1B[90m",
|
|
20
|
-
// Bright colors
|
|
21
|
-
BRIGHT_BLACK: "\x1B[90m",
|
|
22
|
-
BRIGHT_RED: "\x1B[91m",
|
|
23
|
-
BRIGHT_GREEN: "\x1B[92m",
|
|
24
|
-
BRIGHT_YELLOW: "\x1B[93m",
|
|
25
|
-
BRIGHT_BLUE: "\x1B[94m",
|
|
26
|
-
BRIGHT_MAGENTA: "\x1B[95m",
|
|
27
|
-
BRIGHT_CYAN: "\x1B[96m",
|
|
28
|
-
BRIGHT_WHITE: "\x1B[97m",
|
|
29
|
-
// Background colors
|
|
30
|
-
BG_BLACK: "\x1B[40m",
|
|
31
|
-
BG_RED: "\x1B[41m",
|
|
32
|
-
BG_GREEN: "\x1B[42m",
|
|
33
|
-
BG_YELLOW: "\x1B[43m",
|
|
34
|
-
BG_BLUE: "\x1B[44m",
|
|
35
|
-
BG_MAGENTA: "\x1B[45m",
|
|
36
|
-
BG_CYAN: "\x1B[46m",
|
|
37
|
-
BG_WHITE: "\x1B[47m"
|
|
38
|
-
}, m = (E, x) => `${x}${E}${B.RESET}`, G = {
|
|
39
|
-
error: B.RED,
|
|
40
|
-
warning: B.YELLOW,
|
|
41
|
-
success: B.GREEN,
|
|
42
|
-
info: B.BLUE,
|
|
43
|
-
debug: B.GRAY
|
|
44
|
-
};
|
|
45
|
-
export {
|
|
46
|
-
B as ANSI,
|
|
47
|
-
G as LOG_COLORS,
|
|
48
|
-
m as colorize
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=terminal.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.esm.js","sources":["../../src/components/terminal.tsx"],"sourcesContent":["// This file now just exports ANSI constants for backward compatibility\n// The actual terminal functionality is handled by CodeBlock component\n\n// ANSI color constants for easy use (compatible with new React-based terminal)\nexport const ANSI = {\n RESET: '\\x1b[0m',\n BOLD: '\\x1b[1m',\n DIM: '\\x1b[2m',\n ITALIC: '\\x1b[3m',\n UNDERLINE: '\\x1b[4m',\n BLINK: '\\x1b[5m',\n REVERSE: '\\x1b[7m',\n STRIKETHROUGH: '\\x1b[9m',\n \n // Regular colors\n BLACK: '\\x1b[30m',\n RED: '\\x1b[31m',\n GREEN: '\\x1b[32m',\n YELLOW: '\\x1b[33m',\n BLUE: '\\x1b[34m',\n MAGENTA: '\\x1b[35m',\n CYAN: '\\x1b[36m',\n WHITE: '\\x1b[37m',\n GRAY: '\\x1b[90m',\n \n // Bright colors\n BRIGHT_BLACK: '\\x1b[90m',\n BRIGHT_RED: '\\x1b[91m',\n BRIGHT_GREEN: '\\x1b[92m',\n BRIGHT_YELLOW: '\\x1b[93m',\n BRIGHT_BLUE: '\\x1b[94m',\n BRIGHT_MAGENTA: '\\x1b[95m',\n BRIGHT_CYAN: '\\x1b[96m',\n BRIGHT_WHITE: '\\x1b[97m',\n \n // Background colors\n BG_BLACK: '\\x1b[40m',\n BG_RED: '\\x1b[41m',\n BG_GREEN: '\\x1b[42m',\n BG_YELLOW: '\\x1b[43m',\n BG_BLUE: '\\x1b[44m',\n BG_MAGENTA: '\\x1b[45m',\n BG_CYAN: '\\x1b[46m',\n BG_WHITE: '\\x1b[47m',\n} as const;\n\n// Helper function to colorize text\nexport const colorize = (text: string, color: string): string => {\n return `${color}${text}${ANSI.RESET}`;\n};\n\n// Log level color helpers\nexport const LOG_COLORS = {\n error: ANSI.RED,\n warning: ANSI.YELLOW,\n success: ANSI.GREEN,\n info: ANSI.BLUE,\n debug: ANSI.GRAY,\n} as const;"],"names":["ANSI","colorize","text","color","LOG_COLORS"],"mappings":"AAIO,MAAMA,IAAO;AAAA,EAClB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,EACT,eAAe;AAAA;AAAA,EAGf,OAAO;AAAA,EACP,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA;AAAA,EAGN,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,cAAc;AAAA;AAAA,EAGd,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,UAAU;AACZ,GAGaC,IAAW,CAACC,GAAcC,MAC9B,GAAGA,CAAK,GAAGD,CAAI,GAAGF,EAAK,KAAK,IAIxBI,IAAa;AAAA,EACxB,OAAOJ,EAAK;AAAA,EACZ,SAASA,EAAK;AAAA,EACd,SAASA,EAAK;AAAA,EACd,MAAMA,EAAK;AAAA,EACX,OAAOA,EAAK;AACd;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.js","sources":["../../src/components/terminal.tsx"],"sourcesContent":["// This file now just exports ANSI constants for backward compatibility\n// The actual terminal functionality is handled by CodeBlock component\n\n// ANSI color constants for easy use (compatible with new React-based terminal)\nexport const ANSI = {\n RESET: '\\x1b[0m',\n BOLD: '\\x1b[1m',\n DIM: '\\x1b[2m',\n ITALIC: '\\x1b[3m',\n UNDERLINE: '\\x1b[4m',\n BLINK: '\\x1b[5m',\n REVERSE: '\\x1b[7m',\n STRIKETHROUGH: '\\x1b[9m',\n \n // Regular colors\n BLACK: '\\x1b[30m',\n RED: '\\x1b[31m',\n GREEN: '\\x1b[32m',\n YELLOW: '\\x1b[33m',\n BLUE: '\\x1b[34m',\n MAGENTA: '\\x1b[35m',\n CYAN: '\\x1b[36m',\n WHITE: '\\x1b[37m',\n GRAY: '\\x1b[90m',\n \n // Bright colors\n BRIGHT_BLACK: '\\x1b[90m',\n BRIGHT_RED: '\\x1b[91m',\n BRIGHT_GREEN: '\\x1b[92m',\n BRIGHT_YELLOW: '\\x1b[93m',\n BRIGHT_BLUE: '\\x1b[94m',\n BRIGHT_MAGENTA: '\\x1b[95m',\n BRIGHT_CYAN: '\\x1b[96m',\n BRIGHT_WHITE: '\\x1b[97m',\n \n // Background colors\n BG_BLACK: '\\x1b[40m',\n BG_RED: '\\x1b[41m',\n BG_GREEN: '\\x1b[42m',\n BG_YELLOW: '\\x1b[43m',\n BG_BLUE: '\\x1b[44m',\n BG_MAGENTA: '\\x1b[45m',\n BG_CYAN: '\\x1b[46m',\n BG_WHITE: '\\x1b[47m',\n} as const;\n\n// Helper function to colorize text\nexport const colorize = (text: string, color: string): string => {\n return `${color}${text}${ANSI.RESET}`;\n};\n\n// Log level color helpers\nexport const LOG_COLORS = {\n error: ANSI.RED,\n warning: ANSI.YELLOW,\n success: ANSI.GREEN,\n info: ANSI.BLUE,\n debug: ANSI.GRAY,\n} as const;"],"names":["ANSI","colorize","text","color","LOG_COLORS"],"mappings":"gFAIO,MAAMA,EAAO,CAClB,MAAO,UACP,KAAM,UACN,IAAK,UACL,OAAQ,UACR,UAAW,UACX,MAAO,UACP,QAAS,UACT,cAAe,UAGf,MAAO,WACP,IAAK,WACL,MAAO,WACP,OAAQ,WACR,KAAM,WACN,QAAS,WACT,KAAM,WACN,MAAO,WACP,KAAM,WAGN,aAAc,WACd,WAAY,WACZ,aAAc,WACd,cAAe,WACf,YAAa,WACb,eAAgB,WAChB,YAAa,WACb,aAAc,WAGd,SAAU,WACV,OAAQ,WACR,SAAU,WACV,UAAW,WACX,QAAS,WACT,WAAY,WACZ,QAAS,WACT,SAAU,UACZ,EAGaC,EAAW,CAACC,EAAcC,IAC9B,GAAGA,CAAK,GAAGD,CAAI,GAAGF,EAAK,KAAK,GAIxBI,EAAa,CACxB,MAAOJ,EAAK,IACZ,QAASA,EAAK,OACd,QAASA,EAAK,MACd,KAAMA,EAAK,KACX,MAAOA,EAAK,IACd"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { j as i } from "../jsx-runtime-DGlMoOmv.js";
|
|
2
|
-
import * as s from "react";
|
|
3
|
-
import { c as t } from "../utils-qaFjX9_3.js";
|
|
4
|
-
const a = s.forwardRef(
|
|
5
|
-
({ className: e, ...r }, o) => /* @__PURE__ */ i.jsx(
|
|
6
|
-
"textarea",
|
|
7
|
-
{
|
|
8
|
-
className: t(
|
|
9
|
-
"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
10
|
-
e
|
|
11
|
-
),
|
|
12
|
-
ref: o,
|
|
13
|
-
...r
|
|
14
|
-
}
|
|
15
|
-
)
|
|
16
|
-
);
|
|
17
|
-
a.displayName = "Textarea";
|
|
18
|
-
export {
|
|
19
|
-
a as Textarea
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=textarea.esm.js.map
|