@health-samurai/react-components 0.0.0-alpha.1 → 0.0.0-alpha.2
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/bundle.css +100 -7
- package/dist/src/components/code-editor/index.js +53 -29
- package/dist/src/components/code-editor/index.js.map +1 -1
- package/dist/src/components/code-editor.stories.js +22 -7
- package/dist/src/components/code-editor.stories.js.map +1 -1
- package/dist/src/components/copy-icon.js +11 -4
- package/dist/src/components/copy-icon.js.map +1 -1
- package/dist/src/components/request-line-editor.js +56 -14
- package/dist/src/components/request-line-editor.js.map +1 -1
- package/dist/src/components/request-line-editor.stories.js +71 -22
- package/dist/src/components/request-line-editor.stories.js.map +1 -1
- package/dist/src/global.d.js +2 -0
- package/dist/src/global.d.js.map +1 -0
- package/dist/src/index.css +6 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +52 -50
- package/dist/src/index.js.map +1 -1
- package/dist/src/index.stories.js +8 -5
- package/dist/src/index.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/accordion.js +34 -5
- package/dist/src/shadcn/components/ui/accordion.js.map +1 -1
- package/dist/src/shadcn/components/ui/accordion.stories.js +68 -3
- package/dist/src/shadcn/components/ui/accordion.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.js +61 -14
- package/dist/src/shadcn/components/ui/alert-dialog.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.stories.js +39 -4
- package/dist/src/shadcn/components/ui/alert-dialog.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert.js +24 -8
- package/dist/src/shadcn/components/ui/alert.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert.stories.js +57 -3
- package/dist/src/shadcn/components/ui/alert.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.js +5 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.js.map +1 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.stories.js +12 -3
- package/dist/src/shadcn/components/ui/aspect-ratio.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.js +17 -4
- package/dist/src/shadcn/components/ui/avatar.js.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.stories.js +69 -3
- package/dist/src/shadcn/components/ui/avatar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/badge.js +13 -6
- package/dist/src/shadcn/components/ui/badge.js.map +1 -1
- package/dist/src/shadcn/components/ui/badge.stories.js +55 -3
- package/dist/src/shadcn/components/ui/badge.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.js +56 -11
- package/dist/src/shadcn/components/ui/breadcrumb.js.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.stories.js +69 -4
- package/dist/src/shadcn/components/ui/breadcrumb.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/button.js +23 -13
- package/dist/src/shadcn/components/ui/button.js.map +1 -1
- package/dist/src/shadcn/components/ui/button.stories.js +190 -10
- package/dist/src/shadcn/components/ui/button.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/calendar.js +75 -33
- package/dist/src/shadcn/components/ui/calendar.js.map +1 -1
- package/dist/src/shadcn/components/ui/calendar.stories.js +12 -5
- package/dist/src/shadcn/components/ui/calendar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/card.js +38 -9
- package/dist/src/shadcn/components/ui/card.js.map +1 -1
- package/dist/src/shadcn/components/ui/card.stories.js +91 -6
- package/dist/src/shadcn/components/ui/card.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/carousel.js +99 -39
- package/dist/src/shadcn/components/ui/carousel.js.map +1 -1
- package/dist/src/shadcn/components/ui/carousel.stories.js +30 -6
- package/dist/src/shadcn/components/ui/carousel.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/chart.js +118 -55
- package/dist/src/shadcn/components/ui/chart.js.map +1 -1
- package/dist/src/shadcn/components/ui/chart.stories.js +72 -12
- package/dist/src/shadcn/components/ui/chart.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.js +14 -2
- package/dist/src/shadcn/components/ui/checkbox.js.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.stories.js +79 -4
- package/dist/src/shadcn/components/ui/checkbox.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/collapsible.js +13 -3
- package/dist/src/shadcn/components/ui/collapsible.js.map +1 -1
- package/dist/src/shadcn/components/ui/collapsible.stories.js +54 -6
- package/dist/src/shadcn/components/ui/collapsible.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/command.js +77 -12
- package/dist/src/shadcn/components/ui/command.js.map +1 -1
- package/dist/src/shadcn/components/ui/command.stories.js +88 -4
- package/dist/src/shadcn/components/ui/command.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/context-menu.js +106 -17
- package/dist/src/shadcn/components/ui/context-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/context-menu.stories.js +101 -3
- package/dist/src/shadcn/components/ui/context-menu.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/dialog.js +69 -12
- package/dist/src/shadcn/components/ui/dialog.js.map +1 -1
- package/dist/src/shadcn/components/ui/dialog.stories.js +82 -6
- package/dist/src/shadcn/components/ui/dialog.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/drawer.js +61 -12
- package/dist/src/shadcn/components/ui/drawer.js.map +1 -1
- package/dist/src/shadcn/components/ui/drawer.stories.js +154 -21
- package/dist/src/shadcn/components/ui/drawer.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.js +107 -17
- package/dist/src/shadcn/components/ui/dropdown-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.js +119 -4
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/form.js +58 -18
- package/dist/src/shadcn/components/ui/form.js.map +1 -1
- package/dist/src/shadcn/components/ui/form.stories.js +45 -11
- package/dist/src/shadcn/components/ui/form.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/hover-card.js +20 -4
- package/dist/src/shadcn/components/ui/hover-card.js.map +1 -1
- package/dist/src/shadcn/components/ui/hover-card.stories.js +51 -5
- package/dist/src/shadcn/components/ui/hover-card.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/input-otp.js +35 -7
- package/dist/src/shadcn/components/ui/input-otp.js.map +1 -1
- package/dist/src/shadcn/components/ui/input-otp.stories.js +35 -3
- package/dist/src/shadcn/components/ui/input-otp.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/input.js +59 -40
- package/dist/src/shadcn/components/ui/input.js.map +1 -1
- package/dist/src/shadcn/components/ui/input.stories.js +391 -23
- package/dist/src/shadcn/components/ui/input.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/label.js +7 -2
- package/dist/src/shadcn/components/ui/label.js.map +1 -1
- package/dist/src/shadcn/components/ui/label.stories.js +18 -4
- package/dist/src/shadcn/components/ui/label.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/menubar.js +116 -19
- package/dist/src/shadcn/components/ui/menubar.js.map +1 -1
- package/dist/src/shadcn/components/ui/menubar.stories.js +216 -3
- package/dist/src/shadcn/components/ui/menubar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/navigation-menu.js +62 -10
- package/dist/src/shadcn/components/ui/navigation-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/navigation-menu.stories.js +263 -11
- package/dist/src/shadcn/components/ui/navigation-menu.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.js +73 -16
- package/dist/src/shadcn/components/ui/pagination.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.stories.js +41 -3
- package/dist/src/shadcn/components/ui/pagination.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/popover.js +23 -5
- package/dist/src/shadcn/components/ui/popover.js.map +1 -1
- package/dist/src/shadcn/components/ui/popover.stories.js +99 -6
- package/dist/src/shadcn/components/ui/popover.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/progress.js +14 -2
- package/dist/src/shadcn/components/ui/progress.js.map +1 -1
- package/dist/src/shadcn/components/ui/progress.stories.js +12 -8
- package/dist/src/shadcn/components/ui/progress.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/radio-group.js +19 -3
- package/dist/src/shadcn/components/ui/radio-group.js.map +1 -1
- package/dist/src/shadcn/components/ui/radio-group.stories.js +48 -4
- package/dist/src/shadcn/components/ui/radio-group.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.js +22 -4
- package/dist/src/shadcn/components/ui/resizable.js.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.stories.js +49 -3
- package/dist/src/shadcn/components/ui/resizable.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/scroll-area.js +26 -5
- package/dist/src/shadcn/components/ui/scroll-area.js.map +1 -1
- package/dist/src/shadcn/components/ui/scroll-area.stories.js +30 -5
- package/dist/src/shadcn/components/ui/scroll-area.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/select.js +98 -19
- package/dist/src/shadcn/components/ui/select.js.map +1 -1
- package/dist/src/shadcn/components/ui/select.stories.js +84 -5
- package/dist/src/shadcn/components/ui/select.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/separator.js +9 -2
- package/dist/src/shadcn/components/ui/separator.js.map +1 -1
- package/dist/src/shadcn/components/ui/separator.stories.js +43 -3
- package/dist/src/shadcn/components/ui/separator.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/sheet.js +69 -16
- package/dist/src/shadcn/components/ui/sheet.js.map +1 -1
- package/dist/src/shadcn/components/ui/sheet.stories.js +77 -6
- package/dist/src/shadcn/components/ui/sheet.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/sidebar.js +304 -79
- package/dist/src/shadcn/components/ui/sidebar.js.map +1 -1
- package/dist/src/shadcn/components/ui/sidebar.stories.js +321 -59
- package/dist/src/shadcn/components/ui/sidebar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/skeleton.js +7 -2
- package/dist/src/shadcn/components/ui/skeleton.js.map +1 -1
- package/dist/src/shadcn/components/ui/skeleton.stories.js +22 -3
- package/dist/src/shadcn/components/ui/skeleton.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/slider.js +40 -7
- package/dist/src/shadcn/components/ui/slider.js.map +1 -1
- package/dist/src/shadcn/components/ui/slider.stories.js +11 -3
- package/dist/src/shadcn/components/ui/slider.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.js +10 -4
- package/dist/src/shadcn/components/ui/sonner.js.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.stories.js +14 -9
- package/dist/src/shadcn/components/ui/sonner.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/switch.js +11 -2
- package/dist/src/shadcn/components/ui/switch.js.map +1 -1
- package/dist/src/shadcn/components/ui/switch.stories.js +16 -4
- package/dist/src/shadcn/components/ui/switch.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/table.js +47 -10
- package/dist/src/shadcn/components/ui/table.js.map +1 -1
- package/dist/src/shadcn/components/ui/table.stories.js +72 -11
- package/dist/src/shadcn/components/ui/table.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.d.ts +9 -5
- package/dist/src/shadcn/components/ui/tabs.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.js +75 -18
- package/dist/src/shadcn/components/ui/tabs.js.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.stories.d.ts +6 -0
- package/dist/src/shadcn/components/ui/tabs.stories.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.stories.js +221 -10
- package/dist/src/shadcn/components/ui/tabs.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.js +7 -2
- package/dist/src/shadcn/components/ui/textarea.js.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.stories.js +6 -3
- package/dist/src/shadcn/components/ui/textarea.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle-group.js +29 -8
- package/dist/src/shadcn/components/ui/toggle-group.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle-group.stories.js +30 -3
- package/dist/src/shadcn/components/ui/toggle-group.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.js +16 -7
- package/dist/src/shadcn/components/ui/toggle.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.stories.js +9 -3
- package/dist/src/shadcn/components/ui/toggle.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/tooltip.js +26 -5
- package/dist/src/shadcn/components/ui/tooltip.js.map +1 -1
- package/dist/src/shadcn/components/ui/tooltip.stories.js +20 -4
- package/dist/src/shadcn/components/ui/tooltip.stories.js.map +1 -1
- package/dist/src/shadcn/hooks/use-mobile.js +4 -3
- package/dist/src/shadcn/hooks/use-mobile.js.map +1 -1
- package/dist/src/shadcn/lib/utils.js +1 -0
- package/dist/src/shadcn/lib/utils.js.map +1 -1
- package/package.json +8 -4
- package/src/index.css +6 -0
- package/src/index.tsx +1 -0
- package/src/shadcn/components/ui/tabs.stories.tsx +57 -0
- package/src/shadcn/components/ui/tabs.tsx +76 -26
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
3
|
-
import { cn } from "
|
|
3
|
+
import { cn } from "../../lib/utils.js";
|
|
4
4
|
function HoverCard({ ...props }) {
|
|
5
|
-
return _jsx(HoverCardPrimitive.Root, {
|
|
5
|
+
return /*#__PURE__*/ _jsx(HoverCardPrimitive.Root, {
|
|
6
|
+
"data-slot": "hover-card",
|
|
7
|
+
...props
|
|
8
|
+
});
|
|
6
9
|
}
|
|
7
10
|
function HoverCardTrigger({ ...props }) {
|
|
8
|
-
return
|
|
11
|
+
return /*#__PURE__*/ _jsx(HoverCardPrimitive.Trigger, {
|
|
12
|
+
"data-slot": "hover-card-trigger",
|
|
13
|
+
...props
|
|
14
|
+
});
|
|
9
15
|
}
|
|
10
16
|
function HoverCardContent({ className, align = "center", sideOffset = 4, ...props }) {
|
|
11
|
-
return
|
|
17
|
+
return /*#__PURE__*/ _jsx(HoverCardPrimitive.Portal, {
|
|
18
|
+
"data-slot": "hover-card-portal",
|
|
19
|
+
children: /*#__PURE__*/ _jsx(HoverCardPrimitive.Content, {
|
|
20
|
+
"data-slot": "hover-card-content",
|
|
21
|
+
align: align,
|
|
22
|
+
sideOffset: sideOffset,
|
|
23
|
+
className: cn("bg-popover text-popover-foreground 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 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden", className),
|
|
24
|
+
...props
|
|
25
|
+
})
|
|
26
|
+
});
|
|
12
27
|
}
|
|
13
28
|
export { HoverCard, HoverCardTrigger, HoverCardContent };
|
|
29
|
+
|
|
14
30
|
//# sourceMappingURL=hover-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/hover-card.tsx"],"sourcesContent":["import * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\nimport type * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\nfunction HoverCard({\n\t...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n\treturn <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({\n\t...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n\treturn (\n\t\t<HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n\t);\n}\n\nfunction HoverCardContent({\n\tclassName,\n\talign = \"center\",\n\tsideOffset = 4,\n\t...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n\treturn (\n\t\t<HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n\t\t\t<HoverCardPrimitive.Content\n\t\t\t\tdata-slot=\"hover-card-content\"\n\t\t\t\talign={align}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground 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 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</HoverCardPrimitive.Portal>\n\t);\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"names":["HoverCardPrimitive","cn","HoverCard","props","Root","data-slot","HoverCardTrigger","Trigger","HoverCardContent","className","align","sideOffset","Portal","Content"],"mappings":";AAAA,YAAYA,wBAAwB,6BAA6B;AAGjE,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,SAASC,UAAU,EAClB,GAAGC,OACmD;IACtD,qBAAO,KAACH,mBAAmBI,IAAI;QAACC,aAAU;QAAc,GAAGF,KAAK;;AACjE;AAEA,SAASG,iBAAiB,EACzB,GAAGH,OACsD;IACzD,qBACC,KAACH,mBAAmBO,OAAO;QAACF,aAAU;QAAsB,GAAGF,KAAK;;AAEtE;AAEA,SAASK,iBAAiB,EACzBC,SAAS,EACTC,QAAQ,QAAQ,EAChBC,aAAa,CAAC,EACd,GAAGR,OACsD;IACzD,qBACC,KAACH,mBAAmBY,MAAM;QAACP,aAAU;kBACpC,cAAA,KAACL,mBAAmBa,OAAO;YAC1BR,aAAU;YACVK,OAAOA;YACPC,YAAYA;YACZF,WAAWR,GACV,qeACAQ;YAEA,GAAGN,KAAK;;;AAIb;AAEA,SAASD,SAAS,EAAEI,gBAAgB,EAAEE,gBAAgB,GAAG"}
|
|
@@ -1,12 +1,58 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Avatar, AvatarFallback, AvatarImage
|
|
3
|
-
import { Button } from "
|
|
4
|
-
import { HoverCard, HoverCardContent, HoverCardTrigger
|
|
2
|
+
import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
|
|
3
|
+
import { Button } from "./button.js";
|
|
4
|
+
import { HoverCard, HoverCardContent, HoverCardTrigger } from "./hover-card.js";
|
|
5
5
|
const meta = {
|
|
6
|
-
title: "Component/Hover card"
|
|
6
|
+
title: "Component/Hover card"
|
|
7
7
|
};
|
|
8
8
|
export default meta;
|
|
9
9
|
export const Demo = {
|
|
10
|
-
render: ()
|
|
10
|
+
render: ()=>/*#__PURE__*/ _jsxs(HoverCard, {
|
|
11
|
+
children: [
|
|
12
|
+
/*#__PURE__*/ _jsx(HoverCardTrigger, {
|
|
13
|
+
asChild: true,
|
|
14
|
+
children: /*#__PURE__*/ _jsx(Button, {
|
|
15
|
+
variant: "link",
|
|
16
|
+
children: "@nextjs"
|
|
17
|
+
})
|
|
18
|
+
}),
|
|
19
|
+
/*#__PURE__*/ _jsx(HoverCardContent, {
|
|
20
|
+
className: "w-80",
|
|
21
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
22
|
+
className: "flex justify-between gap-4",
|
|
23
|
+
children: [
|
|
24
|
+
/*#__PURE__*/ _jsxs(Avatar, {
|
|
25
|
+
children: [
|
|
26
|
+
/*#__PURE__*/ _jsx(AvatarImage, {
|
|
27
|
+
src: "https://github.com/vercel.png"
|
|
28
|
+
}),
|
|
29
|
+
/*#__PURE__*/ _jsx(AvatarFallback, {
|
|
30
|
+
children: "VC"
|
|
31
|
+
})
|
|
32
|
+
]
|
|
33
|
+
}),
|
|
34
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
35
|
+
className: "space-y-1",
|
|
36
|
+
children: [
|
|
37
|
+
/*#__PURE__*/ _jsx("h4", {
|
|
38
|
+
className: "text-sm font-semibold",
|
|
39
|
+
children: "@nextjs"
|
|
40
|
+
}),
|
|
41
|
+
/*#__PURE__*/ _jsx("p", {
|
|
42
|
+
className: "text-sm",
|
|
43
|
+
children: "The React Framework – created and maintained by @vercel."
|
|
44
|
+
}),
|
|
45
|
+
/*#__PURE__*/ _jsx("div", {
|
|
46
|
+
className: "text-muted-foreground text-xs",
|
|
47
|
+
children: "Joined December 2021"
|
|
48
|
+
})
|
|
49
|
+
]
|
|
50
|
+
})
|
|
51
|
+
]
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
]
|
|
55
|
+
})
|
|
11
56
|
};
|
|
57
|
+
|
|
12
58
|
//# sourceMappingURL=hover-card.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/hover-card.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport {\n\tAvatar,\n\tAvatarFallback,\n\tAvatarImage,\n} from \"#shadcn/components/ui/avatar\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport {\n\tHoverCard,\n\tHoverCardContent,\n\tHoverCardTrigger,\n} from \"#shadcn/components/ui/hover-card\";\n\nconst meta = {\n\ttitle: \"Component/Hover card\",\n} satisfies Meta;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Demo = {\n\trender: () => (\n\t\t<HoverCard>\n\t\t\t<HoverCardTrigger asChild>\n\t\t\t\t<Button variant=\"link\">@nextjs</Button>\n\t\t\t</HoverCardTrigger>\n\t\t\t<HoverCardContent className=\"w-80\">\n\t\t\t\t<div className=\"flex justify-between gap-4\">\n\t\t\t\t\t<Avatar>\n\t\t\t\t\t\t<AvatarImage src=\"https://github.com/vercel.png\" />\n\t\t\t\t\t\t<AvatarFallback>VC</AvatarFallback>\n\t\t\t\t\t</Avatar>\n\t\t\t\t\t<div className=\"space-y-1\">\n\t\t\t\t\t\t<h4 className=\"text-sm font-semibold\">@nextjs</h4>\n\t\t\t\t\t\t<p className=\"text-sm\">\n\t\t\t\t\t\t\tThe React Framework – created and maintained by @vercel.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<div className=\"text-muted-foreground text-xs\">\n\t\t\t\t\t\t\tJoined December 2021\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</HoverCardContent>\n\t\t</HoverCard>\n\t),\n} satisfies Story;\n"],"names":["Avatar","AvatarFallback","AvatarImage","Button","HoverCard","HoverCardContent","HoverCardTrigger","meta","title","Demo","render","asChild","variant","className","div","src","h4","p"],"mappings":";AACA,SACCA,MAAM,EACNC,cAAc,EACdC,WAAW,QACL,cAA+B;AACtC,SAASC,MAAM,QAAQ,cAA+B;AACtD,SACCC,SAAS,EACTC,gBAAgB,EAChBC,gBAAgB,QACV,kBAAmC;AAE1C,MAAMC,OAAO;IACZC,OAAO;AACR;AACA,eAAeD,KAAK;AAIpB,OAAO,MAAME,OAAO;IACnBC,QAAQ,kBACP,MAACN;;8BACA,KAACE;oBAAiBK,OAAO;8BACxB,cAAA,KAACR;wBAAOS,SAAQ;kCAAO;;;8BAExB,KAACP;oBAAiBQ,WAAU;8BAC3B,cAAA,MAACC;wBAAID,WAAU;;0CACd,MAACb;;kDACA,KAACE;wCAAYa,KAAI;;kDACjB,KAACd;kDAAe;;;;0CAEjB,MAACa;gCAAID,WAAU;;kDACd,KAACG;wCAAGH,WAAU;kDAAwB;;kDACtC,KAACI;wCAAEJ,WAAU;kDAAU;;kDAGvB,KAACC;wCAAID,WAAU;kDAAgC;;;;;;;;;AAQrD,EAAkB"}
|
|
@@ -2,24 +2,52 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
3
3
|
import { MinusIcon } from "lucide-react";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { cn } from "
|
|
5
|
+
import { cn } from "../../lib/utils.js";
|
|
6
6
|
function InputOTP({ className, containerClassName, ...props }) {
|
|
7
|
-
return
|
|
7
|
+
return /*#__PURE__*/ _jsx(OTPInput, {
|
|
8
|
+
"data-slot": "input-otp",
|
|
9
|
+
containerClassName: cn("flex items-center gap-2 has-disabled:opacity-50", containerClassName),
|
|
10
|
+
className: cn("disabled:cursor-not-allowed", className),
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
8
13
|
}
|
|
9
14
|
function InputOTPGroup({ className, ...props }) {
|
|
10
|
-
return
|
|
15
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
16
|
+
"data-slot": "input-otp-group",
|
|
17
|
+
className: cn("flex items-center", className),
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
11
20
|
}
|
|
12
21
|
function InputOTPSlot({ index, className, ...props }) {
|
|
13
22
|
const inputOTPContext = React.useContext(OTPInputContext);
|
|
14
23
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
15
|
-
return
|
|
24
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
25
|
+
"data-slot": "input-otp-slot",
|
|
26
|
+
"data-active": isActive,
|
|
27
|
+
className: cn("data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]", className),
|
|
28
|
+
...props,
|
|
29
|
+
children: [
|
|
30
|
+
char,
|
|
31
|
+
hasFakeCaret && /*#__PURE__*/ _jsx("div", {
|
|
32
|
+
className: "pointer-events-none absolute inset-0 flex items-center justify-center",
|
|
33
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
34
|
+
className: "animate-caret-blink bg-foreground h-4 w-px duration-1000"
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
]
|
|
38
|
+
});
|
|
16
39
|
}
|
|
17
40
|
function InputOTPSeparator({ ...props }) {
|
|
18
|
-
return
|
|
19
|
-
// biome-ignore lint/a11y/useFocusableInteractive: FIXME: unchanged shadcn
|
|
41
|
+
return(// biome-ignore lint/a11y/useFocusableInteractive: FIXME: unchanged shadcn
|
|
20
42
|
// biome-ignore lint/a11y/useSemanticElements: FIXME: unchanged shadcn
|
|
21
43
|
// biome-ignore lint/a11y/useAriaPropsForRole: FIXME: unchanged shadcn
|
|
22
|
-
_jsx("div", {
|
|
44
|
+
/*#__PURE__*/ _jsx("div", {
|
|
45
|
+
"data-slot": "input-otp-separator",
|
|
46
|
+
role: "separator",
|
|
47
|
+
...props,
|
|
48
|
+
children: /*#__PURE__*/ _jsx(MinusIcon, {})
|
|
49
|
+
}));
|
|
23
50
|
}
|
|
24
51
|
export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
|
|
52
|
+
|
|
25
53
|
//# sourceMappingURL=input-otp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/input-otp.tsx"],"sourcesContent":["import { OTPInput, OTPInputContext } from \"input-otp\";\nimport { MinusIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\nfunction InputOTP({\n\tclassName,\n\tcontainerClassName,\n\t...props\n}: React.ComponentProps<typeof OTPInput> & {\n\tcontainerClassName?: string;\n}) {\n\treturn (\n\t\t<OTPInput\n\t\t\tdata-slot=\"input-otp\"\n\t\t\tcontainerClassName={cn(\n\t\t\t\t\"flex items-center gap-2 has-disabled:opacity-50\",\n\t\t\t\tcontainerClassName,\n\t\t\t)}\n\t\t\tclassName={cn(\"disabled:cursor-not-allowed\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"input-otp-group\"\n\t\t\tclassName={cn(\"flex items-center\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction InputOTPSlot({\n\tindex,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tindex: number;\n}) {\n\tconst inputOTPContext = React.useContext(OTPInputContext);\n\tconst { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"input-otp-slot\"\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{char}\n\t\t\t{hasFakeCaret && (\n\t\t\t\t<div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n\t\t\t\t\t<div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t// biome-ignore lint/a11y/useFocusableInteractive: FIXME: unchanged shadcn\n\t\t// biome-ignore lint/a11y/useSemanticElements: FIXME: unchanged shadcn\n\t\t// biome-ignore lint/a11y/useAriaPropsForRole: FIXME: unchanged shadcn\n\t\t<div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n\t\t\t<MinusIcon />\n\t\t</div>\n\t);\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"names":["OTPInput","OTPInputContext","MinusIcon","React","cn","InputOTP","className","containerClassName","props","data-slot","InputOTPGroup","div","InputOTPSlot","index","inputOTPContext","useContext","char","hasFakeCaret","isActive","slots","data-active","InputOTPSeparator","role"],"mappings":";AAAA,SAASA,QAAQ,EAAEC,eAAe,QAAQ,YAAY;AACtD,SAASC,SAAS,QAAQ,eAAe;AACzC,YAAYC,WAAW,QAAQ;AAE/B,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,SAASC,SAAS,EACjBC,SAAS,EACTC,kBAAkB,EAClB,GAAGC,OAGH;IACA,qBACC,KAACR;QACAS,aAAU;QACVF,oBAAoBH,GACnB,mDACAG;QAEDD,WAAWF,GAAG,+BAA+BE;QAC5C,GAAGE,KAAK;;AAGZ;AAEA,SAASE,cAAc,EAAEJ,SAAS,EAAE,GAAGE,OAAoC;IAC1E,qBACC,KAACG;QACAF,aAAU;QACVH,WAAWF,GAAG,qBAAqBE;QAClC,GAAGE,KAAK;;AAGZ;AAEA,SAASI,aAAa,EACrBC,KAAK,EACLP,SAAS,EACT,GAAGE,OAGH;IACA,MAAMM,kBAAkBX,MAAMY,UAAU,CAACd;IACzC,MAAM,EAAEe,IAAI,EAAEC,YAAY,EAAEC,QAAQ,EAAE,GAAGJ,iBAAiBK,KAAK,CAACN,MAAM,IAAI,CAAC;IAE3E,qBACC,MAACF;QACAF,aAAU;QACVW,eAAaF;QACbZ,WAAWF,GACV,4fACAE;QAEA,GAAGE,KAAK;;YAERQ;YACAC,8BACA,KAACN;gBAAIL,WAAU;0BACd,cAAA,KAACK;oBAAIL,WAAU;;;;;AAKpB;AAEA,SAASe,kBAAkB,EAAE,GAAGb,OAAoC;IACnE,OACC,0EAA0E;IAC1E,sEAAsE;IACtE,sEAAsE;kBACtE,KAACG;QAAIF,aAAU;QAAsBa,MAAK;QAAa,GAAGd,KAAK;kBAC9D,cAAA,KAACN;;AAGJ;AAEA,SAASG,QAAQ,EAAEK,aAAa,EAAEE,YAAY,EAAES,iBAAiB,GAAG"}
|
|
@@ -1,10 +1,42 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot
|
|
2
|
+
import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from "./input-otp.js";
|
|
3
3
|
const meta = {
|
|
4
|
-
title: "Component/Input OTP"
|
|
4
|
+
title: "Component/Input OTP"
|
|
5
5
|
};
|
|
6
6
|
export default meta;
|
|
7
7
|
export const Demo = {
|
|
8
|
-
render: ()
|
|
8
|
+
render: ()=>/*#__PURE__*/ _jsxs(InputOTP, {
|
|
9
|
+
maxLength: 6,
|
|
10
|
+
children: [
|
|
11
|
+
/*#__PURE__*/ _jsxs(InputOTPGroup, {
|
|
12
|
+
children: [
|
|
13
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
14
|
+
index: 0
|
|
15
|
+
}),
|
|
16
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
17
|
+
index: 1
|
|
18
|
+
}),
|
|
19
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
20
|
+
index: 2
|
|
21
|
+
})
|
|
22
|
+
]
|
|
23
|
+
}),
|
|
24
|
+
/*#__PURE__*/ _jsx(InputOTPSeparator, {}),
|
|
25
|
+
/*#__PURE__*/ _jsxs(InputOTPGroup, {
|
|
26
|
+
children: [
|
|
27
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
28
|
+
index: 3
|
|
29
|
+
}),
|
|
30
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
31
|
+
index: 4
|
|
32
|
+
}),
|
|
33
|
+
/*#__PURE__*/ _jsx(InputOTPSlot, {
|
|
34
|
+
index: 5
|
|
35
|
+
})
|
|
36
|
+
]
|
|
37
|
+
})
|
|
38
|
+
]
|
|
39
|
+
})
|
|
9
40
|
};
|
|
41
|
+
|
|
10
42
|
//# sourceMappingURL=input-otp.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/input-otp.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport {\n\tInputOTP,\n\tInputOTPGroup,\n\tInputOTPSeparator,\n\tInputOTPSlot,\n} from \"#shadcn/components/ui/input-otp\";\n\nconst meta = {\n\ttitle: \"Component/Input OTP\",\n} satisfies Meta;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Demo = {\n\trender: () => (\n\t\t<InputOTP maxLength={6}>\n\t\t\t<InputOTPGroup>\n\t\t\t\t<InputOTPSlot index={0} />\n\t\t\t\t<InputOTPSlot index={1} />\n\t\t\t\t<InputOTPSlot index={2} />\n\t\t\t</InputOTPGroup>\n\t\t\t<InputOTPSeparator />\n\t\t\t<InputOTPGroup>\n\t\t\t\t<InputOTPSlot index={3} />\n\t\t\t\t<InputOTPSlot index={4} />\n\t\t\t\t<InputOTPSlot index={5} />\n\t\t\t</InputOTPGroup>\n\t\t</InputOTP>\n\t),\n} satisfies Story;\n"],"names":["InputOTP","InputOTPGroup","InputOTPSeparator","InputOTPSlot","meta","title","Demo","render","maxLength","index"],"mappings":";AACA,SACCA,QAAQ,EACRC,aAAa,EACbC,iBAAiB,EACjBC,YAAY,QACN,iBAAkC;AAEzC,MAAMC,OAAO;IACZC,OAAO;AACR;AACA,eAAeD,KAAK;AAIpB,OAAO,MAAME,OAAO;IACnBC,QAAQ,kBACP,MAACP;YAASQ,WAAW;;8BACpB,MAACP;;sCACA,KAACE;4BAAaM,OAAO;;sCACrB,KAACN;4BAAaM,OAAO;;sCACrB,KAACN;4BAAaM,OAAO;;;;8BAEtB,KAACP;8BACD,MAACD;;sCACA,KAACE;4BAAaM,OAAO;;sCACrB,KAACN;4BAAaM,OAAO;;sCACrB,KAACN;4BAAaM,OAAO;;;;;;AAIzB,EAAkB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cva } from "class-variance-authority";
|
|
3
|
-
import { cn } from "
|
|
3
|
+
import { cn } from "../../lib/utils.js";
|
|
4
4
|
const iconBaseClasses = "absolute top-1/2 -translate-y-1/2 cursor-pointer z-10 flex items-center justify-center [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0";
|
|
5
5
|
const iconLeftPosition = "left-3 hover:text-text-tertiary hover:cursor-default transition-colors duration-300";
|
|
6
6
|
const iconRightContainer = "absolute right-3 top-1/2 -translate-y-1/2 flex gap-2 z-10";
|
|
@@ -15,65 +15,84 @@ const suffixInvalidClasses = "border-border-error bg-bg-secondary flex items-cen
|
|
|
15
15
|
const inputVariants = cva(cn("h-9 file:text-text-primary placeholder:text-text-quternary disabled:placeholder:text-text-disabled selection:bg-bg-primary selection:text-text-primary-foreground border-border-primary hover:border-border-primary_hover flex w-full min-w-0 border bg-transparent px-3 py-2 typo-body text-base transition-all duration-300 outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-md file:font-medium disabled:bg-bg-secondary disabled:cursor-not-allowed disabled:border-border-primary md:text-md selection:bg-selection", "focus-visible:ring-4 focus-visible:ring-ring-blue focus-visible:border-border-link", "aria-invalid:ring-destructive aria-invalid:text-text-error-primary aria-invalid:border-border-error-primary", "", "rounded-md"), {
|
|
16
16
|
variants: {
|
|
17
17
|
hasLeftSlot: {
|
|
18
|
-
true: "pl-9"
|
|
18
|
+
true: "pl-9"
|
|
19
19
|
},
|
|
20
20
|
hasRightSlot: {
|
|
21
|
-
true: "pr-9"
|
|
21
|
+
true: "pr-9"
|
|
22
22
|
},
|
|
23
23
|
hasSuffix: {
|
|
24
|
-
true: "border-r-0 focus-visible:ring-offset-0 rounded-l-md rounded-r-none focus-visible:border-r-1"
|
|
24
|
+
true: "border-r-0 focus-visible:ring-offset-0 rounded-l-md rounded-r-none focus-visible:border-r-1"
|
|
25
25
|
},
|
|
26
26
|
invalid: {
|
|
27
|
-
true: "border-border-error focus-visible:ring-4 focus-visible:ring-ring-red focus-visible:border-border-error hover:border-border-error_inverse transition-all duration-300"
|
|
28
|
-
}
|
|
27
|
+
true: "border-border-error focus-visible:ring-4 focus-visible:ring-ring-red focus-visible:border-border-error hover:border-border-error_inverse transition-all duration-300"
|
|
28
|
+
}
|
|
29
29
|
},
|
|
30
30
|
defaultVariants: {
|
|
31
31
|
hasSuffix: false,
|
|
32
|
-
invalid: false
|
|
33
|
-
}
|
|
32
|
+
invalid: false
|
|
33
|
+
}
|
|
34
34
|
});
|
|
35
35
|
function Input({ className, type, invalid, suffix, leftSlot, rightSlot, ...props }) {
|
|
36
36
|
const processedLeftSlot = leftSlot === "None" ? undefined : leftSlot;
|
|
37
37
|
const processedRightSlot = rightSlot === "None" ? undefined : rightSlot;
|
|
38
|
-
const hasLeftIcon = processedLeftSlot &&
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
? iconInvalidColor
|
|
51
|
-
: iconNormalColor;
|
|
52
|
-
return (_jsx("div", { className: `${iconBaseClasses} ${iconLeftPosition} ${colorClasses}`, children: _jsx("div", { className: iconWrapperClasses, children: processedLeftSlot }) }));
|
|
38
|
+
const hasLeftIcon = processedLeftSlot && processedLeftSlot !== null && processedLeftSlot !== undefined;
|
|
39
|
+
const hasRightIcon = processedRightSlot && processedRightSlot !== null && processedRightSlot !== undefined;
|
|
40
|
+
const renderLeftSlot = ()=>{
|
|
41
|
+
if (!hasLeftIcon) return null;
|
|
42
|
+
const colorClasses = props.disabled ? iconDisabledColor : invalid ? iconInvalidColor : iconNormalColor;
|
|
43
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
44
|
+
className: `${iconBaseClasses} ${iconLeftPosition} ${colorClasses}`,
|
|
45
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
46
|
+
className: iconWrapperClasses,
|
|
47
|
+
children: processedLeftSlot
|
|
48
|
+
})
|
|
49
|
+
});
|
|
53
50
|
};
|
|
54
|
-
const renderRightSlot = ()
|
|
55
|
-
if (!hasRightIcon)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
:
|
|
60
|
-
|
|
61
|
-
:
|
|
62
|
-
|
|
51
|
+
const renderRightSlot = ()=>{
|
|
52
|
+
if (!hasRightIcon) return null;
|
|
53
|
+
const colorClasses = props.disabled ? iconDisabledColor : invalid ? iconInvalidColor : iconNormalColor;
|
|
54
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
55
|
+
className: `${iconRightContainer} ${iconBaseClasses}`,
|
|
56
|
+
children: hasRightIcon && /*#__PURE__*/ _jsx("div", {
|
|
57
|
+
className: `${iconRightItemClasses} ${colorClasses}`,
|
|
58
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
59
|
+
className: iconWrapperClasses,
|
|
60
|
+
children: processedRightSlot
|
|
61
|
+
})
|
|
62
|
+
})
|
|
63
|
+
});
|
|
63
64
|
};
|
|
64
65
|
// Input tag
|
|
65
|
-
const inputElement =
|
|
66
|
+
const inputElement = /*#__PURE__*/ _jsx("input", {
|
|
67
|
+
type: type,
|
|
68
|
+
"data-slot": "input",
|
|
69
|
+
className: cn(inputVariants({
|
|
66
70
|
invalid,
|
|
67
71
|
hasLeftSlot: !!leftSlot,
|
|
68
72
|
hasRightSlot: !!rightSlot,
|
|
69
73
|
hasSuffix: !!suffix,
|
|
70
|
-
className
|
|
71
|
-
})),
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
className
|
|
75
|
+
})),
|
|
76
|
+
...props
|
|
77
|
+
});
|
|
78
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
79
|
+
className: "flex w-full min-w-0",
|
|
80
|
+
children: [
|
|
81
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
82
|
+
className: "flex-1 relative",
|
|
83
|
+
children: [
|
|
84
|
+
renderLeftSlot(),
|
|
85
|
+
inputElement,
|
|
86
|
+
renderRightSlot()
|
|
87
|
+
]
|
|
88
|
+
}),
|
|
89
|
+
suffix && /*#__PURE__*/ _jsx("div", {
|
|
90
|
+
className: props.disabled ? suffixDisabledClasses : invalid ? suffixInvalidClasses : suffixClasses,
|
|
91
|
+
children: suffix
|
|
92
|
+
})
|
|
93
|
+
]
|
|
94
|
+
});
|
|
77
95
|
}
|
|
78
96
|
export { Input, inputVariants };
|
|
97
|
+
|
|
79
98
|
//# sourceMappingURL=input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/input.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\nconst iconBaseClasses =\n\t\"absolute top-1/2 -translate-y-1/2 cursor-pointer z-10 flex items-center justify-center [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0\";\n\nconst iconLeftPosition =\n\t\"left-3 hover:text-text-tertiary hover:cursor-default transition-colors duration-300\";\n\nconst iconRightContainer =\n\t\"absolute right-3 top-1/2 -translate-y-1/2 flex gap-2 z-10\";\n\nconst iconNormalColor =\n\t\"text-text-tertiary hover:text-fg-secondary transition-colors duration-300\";\nconst iconInvalidColor =\n\t\"text-fg-tertiary hover:text-fg-secondary transition-colors duration-300\";\nconst iconDisabledColor =\n\t\"text-text-disabled hover:cursor-not-allowed transition-colors duration-300\";\n\nconst iconWrapperClasses = \"[&>svg]:w-full [&>svg]:h-full [&>svg]:stroke-[1.5]\";\n\nconst iconRightItemClasses =\n\t\"cursor-pointer flex items-center justify-center transition-colors duration-300\";\n\nconst suffixClasses =\n\t\"border-border-primary bg-bg-tertiary text-text-tertiary flex items-center rounded-r-md border px-3 py-1 typo-body cursor-default transition-colors duration-300\";\n\nconst suffixDisabledClasses =\n\t\"border-border-primary bg-bg-tertiary text-text-disabled flex items-center rounded-r-md border px-3 py-1 typo-body hover:cursor-not-allowed transition-colors duration-300\";\n\nconst suffixInvalidClasses =\n\t\"border-border-error bg-bg-secondary flex items-center rounded-r-md border px-3 py-1 text-text-tertiary typo-body cursor-default transition-colors duration-300\";\n\nconst inputVariants = cva(\n\tcn(\n\t\t\"h-9 file:text-text-primary placeholder:text-text-quternary disabled:placeholder:text-text-disabled selection:bg-bg-primary selection:text-text-primary-foreground border-border-primary hover:border-border-primary_hover flex w-full min-w-0 border bg-transparent px-3 py-2 typo-body text-base transition-all duration-300 outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-md file:font-medium disabled:bg-bg-secondary disabled:cursor-not-allowed disabled:border-border-primary md:text-md selection:bg-selection\",\n\t\t\"focus-visible:ring-4 focus-visible:ring-ring-blue focus-visible:border-border-link\",\n\t\t\"aria-invalid:ring-destructive aria-invalid:text-text-error-primary aria-invalid:border-border-error-primary\",\n\t\t\"\",\n\t\t\"rounded-md\",\n\t),\n\t{\n\t\tvariants: {\n\t\t\thasLeftSlot: {\n\t\t\t\ttrue: \"pl-9\",\n\t\t\t},\n\t\t\thasRightSlot: {\n\t\t\t\ttrue: \"pr-9\",\n\t\t\t},\n\t\t\thasSuffix: {\n\t\t\t\ttrue: \"border-r-0 focus-visible:ring-offset-0 rounded-l-md rounded-r-none focus-visible:border-r-1\",\n\t\t\t},\n\t\t\tinvalid: {\n\t\t\t\ttrue: \"border-border-error focus-visible:ring-4 focus-visible:ring-ring-red focus-visible:border-border-error hover:border-border-error_inverse transition-all duration-300\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\thasSuffix: false,\n\t\t\tinvalid: false,\n\t\t},\n\t},\n);\n\ninterface InputProps\n\textends React.ComponentProps<\"input\">,\n\t\tVariantProps<typeof inputVariants> {\n\ttype?: \"text\" | \"password\";\n\tsuffix?: string;\n\tinvalid?: boolean;\n\tleftSlot?: React.ReactNode;\n\trightSlot?: React.ReactNode;\n}\n\nfunction Input({\n\tclassName,\n\ttype,\n\tinvalid,\n\tsuffix,\n\tleftSlot,\n\trightSlot,\n\t...props\n}: InputProps) {\n\tconst processedLeftSlot = leftSlot === \"None\" ? undefined : leftSlot;\n\tconst processedRightSlot = rightSlot === \"None\" ? undefined : rightSlot;\n\n\tconst hasLeftIcon =\n\t\tprocessedLeftSlot &&\n\t\tprocessedLeftSlot !== null &&\n\t\tprocessedLeftSlot !== undefined;\n\tconst hasRightIcon =\n\t\tprocessedRightSlot &&\n\t\tprocessedRightSlot !== null &&\n\t\tprocessedRightSlot !== undefined;\n\n\tconst renderLeftSlot = () => {\n\t\tif (!hasLeftIcon) return null;\n\t\tconst colorClasses = props.disabled\n\t\t\t? iconDisabledColor\n\t\t\t: invalid\n\t\t\t\t? iconInvalidColor\n\t\t\t\t: iconNormalColor;\n\t\treturn (\n\t\t\t<div className={`${iconBaseClasses} ${iconLeftPosition} ${colorClasses}`}>\n\t\t\t\t<div className={iconWrapperClasses}>{processedLeftSlot}</div>\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst renderRightSlot = () => {\n\t\tif (!hasRightIcon) return null;\n\n\t\tconst colorClasses = props.disabled\n\t\t\t? iconDisabledColor\n\t\t\t: invalid\n\t\t\t\t? iconInvalidColor\n\t\t\t\t: iconNormalColor;\n\n\t\treturn (\n\t\t\t<div className={`${iconRightContainer} ${iconBaseClasses}`}>\n\t\t\t\t{hasRightIcon && (\n\t\t\t\t\t<div className={`${iconRightItemClasses} ${colorClasses}`}>\n\t\t\t\t\t\t<div className={iconWrapperClasses}>{processedRightSlot}</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\t// Input tag\n\tconst inputElement = (\n\t\t<input\n\t\t\ttype={type}\n\t\t\tdata-slot=\"input\"\n\t\t\tclassName={cn(\n\t\t\t\tinputVariants({\n\t\t\t\t\tinvalid,\n\t\t\t\t\thasLeftSlot: !!leftSlot,\n\t\t\t\t\thasRightSlot: !!rightSlot,\n\t\t\t\t\thasSuffix: !!suffix,\n\t\t\t\t\tclassName,\n\t\t\t\t}),\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div className=\"flex w-full min-w-0\">\n\t\t\t<div className=\"flex-1 relative\">\n\t\t\t\t{renderLeftSlot()}\n\t\t\t\t{inputElement}\n\t\t\t\t{renderRightSlot()}\n\t\t\t</div>\n\t\t\t{suffix && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tprops.disabled\n\t\t\t\t\t\t\t? suffixDisabledClasses\n\t\t\t\t\t\t\t: invalid\n\t\t\t\t\t\t\t\t? suffixInvalidClasses\n\t\t\t\t\t\t\t\t: suffixClasses\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{suffix}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport { Input, inputVariants };\n"],"names":["cva","cn","iconBaseClasses","iconLeftPosition","iconRightContainer","iconNormalColor","iconInvalidColor","iconDisabledColor","iconWrapperClasses","iconRightItemClasses","suffixClasses","suffixDisabledClasses","suffixInvalidClasses","inputVariants","variants","hasLeftSlot","true","hasRightSlot","hasSuffix","invalid","defaultVariants","Input","className","type","suffix","leftSlot","rightSlot","props","processedLeftSlot","undefined","processedRightSlot","hasLeftIcon","hasRightIcon","renderLeftSlot","colorClasses","disabled","div","renderRightSlot","inputElement","input","data-slot"],"mappings":";AAAA,SAASA,GAAG,QAA2B,2BAA2B;AAGlE,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,MAAMC,kBACL;AAED,MAAMC,mBACL;AAED,MAAMC,qBACL;AAED,MAAMC,kBACL;AACD,MAAMC,mBACL;AACD,MAAMC,oBACL;AAED,MAAMC,qBAAqB;AAE3B,MAAMC,uBACL;AAED,MAAMC,gBACL;AAED,MAAMC,wBACL;AAED,MAAMC,uBACL;AAED,MAAMC,gBAAgBb,IACrBC,GACC,8hBACA,sFACA,+GACA,IACA,eAED;IACCa,UAAU;QACTC,aAAa;YACZC,MAAM;QACP;QACAC,cAAc;YACbD,MAAM;QACP;QACAE,WAAW;YACVF,MAAM;QACP;QACAG,SAAS;YACRH,MAAM;QACP;IACD;IACAI,iBAAiB;QAChBF,WAAW;QACXC,SAAS;IACV;AACD;AAaD,SAASE,MAAM,EACdC,SAAS,EACTC,IAAI,EACJJ,OAAO,EACPK,MAAM,EACNC,QAAQ,EACRC,SAAS,EACT,GAAGC,OACS;IACZ,MAAMC,oBAAoBH,aAAa,SAASI,YAAYJ;IAC5D,MAAMK,qBAAqBJ,cAAc,SAASG,YAAYH;IAE9D,MAAMK,cACLH,qBACAA,sBAAsB,QACtBA,sBAAsBC;IACvB,MAAMG,eACLF,sBACAA,uBAAuB,QACvBA,uBAAuBD;IAExB,MAAMI,iBAAiB;QACtB,IAAI,CAACF,aAAa,OAAO;QACzB,MAAMG,eAAeP,MAAMQ,QAAQ,GAChC5B,oBACAY,UACCb,mBACAD;QACJ,qBACC,KAAC+B;YAAId,WAAW,GAAGpB,gBAAgB,CAAC,EAAEC,iBAAiB,CAAC,EAAE+B,cAAc;sBACvE,cAAA,KAACE;gBAAId,WAAWd;0BAAqBoB;;;IAGxC;IAEA,MAAMS,kBAAkB;QACvB,IAAI,CAACL,cAAc,OAAO;QAE1B,MAAME,eAAeP,MAAMQ,QAAQ,GAChC5B,oBACAY,UACCb,mBACAD;QAEJ,qBACC,KAAC+B;YAAId,WAAW,GAAGlB,mBAAmB,CAAC,EAAEF,iBAAiB;sBACxD8B,8BACA,KAACI;gBAAId,WAAW,GAAGb,qBAAqB,CAAC,EAAEyB,cAAc;0BACxD,cAAA,KAACE;oBAAId,WAAWd;8BAAqBsB;;;;IAK1C;IAEA,YAAY;IACZ,MAAMQ,6BACL,KAACC;QACAhB,MAAMA;QACNiB,aAAU;QACVlB,WAAWrB,GACVY,cAAc;YACbM;YACAJ,aAAa,CAAC,CAACU;YACfR,cAAc,CAAC,CAACS;YAChBR,WAAW,CAAC,CAACM;YACbF;QACD;QAEA,GAAGK,KAAK;;IAIX,qBACC,MAACS;QAAId,WAAU;;0BACd,MAACc;gBAAId,WAAU;;oBACbW;oBACAK;oBACAD;;;YAEDb,wBACA,KAACY;gBACAd,WACCK,MAAMQ,QAAQ,GACXxB,wBACAQ,UACCP,uBACAF;0BAGJc;;;;AAKN;AAEA,SAASH,KAAK,EAAER,aAAa,GAAG"}
|