@jarllyng/nostromo 3.2.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-35I2BJC3.js +3 -0
- package/dist/chunk-35I2BJC3.js.map +1 -0
- package/dist/chunk-35RWQSO2.cjs +3 -0
- package/dist/chunk-35RWQSO2.cjs.map +1 -0
- package/dist/chunk-3QVQ2TNE.cjs +3 -0
- package/dist/chunk-3QVQ2TNE.cjs.map +1 -0
- package/dist/{chunk-ZC4HJSII.cjs → chunk-5Z3MYAVM.cjs} +2 -2
- package/dist/{chunk-ZC4HJSII.cjs.map → chunk-5Z3MYAVM.cjs.map} +1 -1
- package/dist/{chunk-ZQDFYSZB.cjs → chunk-AYEM2M4H.cjs} +2 -2
- package/dist/{chunk-ZQDFYSZB.cjs.map → chunk-AYEM2M4H.cjs.map} +1 -1
- package/dist/chunk-BL2TM4YT.js +3 -0
- package/dist/chunk-BL2TM4YT.js.map +1 -0
- package/dist/{chunk-BSUHBLZO.cjs → chunk-BZ5ZCZJX.cjs} +2 -2
- package/dist/{chunk-BSUHBLZO.cjs.map → chunk-BZ5ZCZJX.cjs.map} +1 -1
- package/dist/chunk-C7HZAQBX.cjs +3 -0
- package/dist/chunk-C7HZAQBX.cjs.map +1 -0
- package/dist/chunk-DNTPD3PJ.js +3 -0
- package/dist/chunk-DNTPD3PJ.js.map +1 -0
- package/dist/{chunk-TGPWW7FC.js → chunk-HRJXPCGF.js} +2 -2
- package/dist/{chunk-TGPWW7FC.js.map → chunk-HRJXPCGF.js.map} +1 -1
- package/dist/chunk-JCETHQ55.cjs +3 -0
- package/dist/chunk-JCETHQ55.cjs.map +1 -0
- package/dist/chunk-MY2KMTUS.js +3 -0
- package/dist/chunk-MY2KMTUS.js.map +1 -0
- package/dist/chunk-NBX6FKCA.cjs +3 -0
- package/dist/chunk-NBX6FKCA.cjs.map +1 -0
- package/dist/chunk-NC27D5Y3.cjs +3 -0
- package/dist/chunk-NC27D5Y3.cjs.map +1 -0
- package/dist/chunk-NPSIDFOF.cjs +3 -0
- package/dist/chunk-NPSIDFOF.cjs.map +1 -0
- package/dist/chunk-QKM5LPRW.js +3 -0
- package/dist/chunk-QKM5LPRW.js.map +1 -0
- package/dist/chunk-SVWQWRPZ.js +3 -0
- package/dist/chunk-SVWQWRPZ.js.map +1 -0
- package/dist/chunk-TCA5Z7FL.js +3 -0
- package/dist/chunk-TCA5Z7FL.js.map +1 -0
- package/dist/chunk-UIEGBT4T.js +3 -0
- package/dist/chunk-UIEGBT4T.js.map +1 -0
- package/dist/chunk-VNDL67OG.cjs +3 -0
- package/dist/chunk-VNDL67OG.cjs.map +1 -0
- package/dist/chunk-WK6LNC2E.cjs +3 -0
- package/dist/chunk-WK6LNC2E.cjs.map +1 -0
- package/dist/{chunk-M5IBD3KV.js → chunk-WO3KCAN6.js} +2 -2
- package/dist/{chunk-M5IBD3KV.js.map → chunk-WO3KCAN6.js.map} +1 -1
- package/dist/{chunk-7W456HZL.js → chunk-XJJJEWSU.js} +2 -2
- package/dist/{chunk-7W456HZL.js.map → chunk-XJJJEWSU.js.map} +1 -1
- package/dist/chunk-XLZJ6HBL.js +3 -0
- package/dist/chunk-XLZJ6HBL.js.map +1 -0
- package/dist/chunk-XRVHMGMD.js +3 -0
- package/dist/chunk-XRVHMGMD.js.map +1 -0
- package/dist/chunk-Z7WEJ5IQ.cjs +3 -0
- package/dist/chunk-Z7WEJ5IQ.cjs.map +1 -0
- package/dist/components/core/breadcrumb.cjs +1 -1
- package/dist/components/core/breadcrumb.d.cts +7 -1
- package/dist/components/core/breadcrumb.d.ts +7 -1
- package/dist/components/core/breadcrumb.js +1 -1
- package/dist/components/core/calendar.cjs +1 -1
- package/dist/components/core/calendar.js +1 -1
- package/dist/components/core/charts-lazy.cjs +1 -1
- package/dist/components/core/charts-lazy.js +1 -1
- package/dist/components/core/charts.cjs +1 -1
- package/dist/components/core/charts.js +1 -1
- package/dist/components/core/checkbox.cjs +1 -1
- package/dist/components/core/checkbox.js +1 -1
- package/dist/components/core/data-table.cjs +1 -1
- package/dist/components/core/data-table.js +1 -1
- package/dist/components/core/dialog.cjs +1 -1
- package/dist/components/core/dialog.d.cts +20 -2
- package/dist/components/core/dialog.d.ts +20 -2
- package/dist/components/core/dialog.js +1 -1
- package/dist/components/core/icon.cjs +1 -1
- package/dist/components/core/icon.d.cts +1 -1
- package/dist/components/core/icon.d.ts +1 -1
- package/dist/components/core/icon.js +1 -1
- package/dist/components/core/separator.cjs +1 -1
- package/dist/components/core/separator.js +1 -1
- package/dist/components/core/skeleton.cjs +1 -1
- package/dist/components/core/skeleton.js +1 -1
- package/dist/components/core/table.cjs +1 -1
- package/dist/components/core/table.d.cts +11 -1
- package/dist/components/core/table.d.ts +11 -1
- package/dist/components/core/table.js +1 -1
- package/dist/components/core/toast.cjs +1 -1
- package/dist/components/core/toast.js +1 -1
- package/dist/components/core/tooltip.cjs +1 -1
- package/dist/components/core/tooltip.d.cts +9 -1
- package/dist/components/core/tooltip.d.ts +9 -1
- package/dist/components/core/tooltip.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
- package/dist/chunk-4PN7OGLX.cjs +0 -3
- package/dist/chunk-4PN7OGLX.cjs.map +0 -1
- package/dist/chunk-4TYVEXRA.cjs +0 -3
- package/dist/chunk-4TYVEXRA.cjs.map +0 -1
- package/dist/chunk-B2BWBKZA.cjs +0 -3
- package/dist/chunk-B2BWBKZA.cjs.map +0 -1
- package/dist/chunk-CVOSWGQZ.js +0 -3
- package/dist/chunk-CVOSWGQZ.js.map +0 -1
- package/dist/chunk-EGQ2Q37R.cjs +0 -3
- package/dist/chunk-EGQ2Q37R.cjs.map +0 -1
- package/dist/chunk-EIXD3Y4R.js +0 -3
- package/dist/chunk-EIXD3Y4R.js.map +0 -1
- package/dist/chunk-G5ZSOVJY.cjs +0 -3
- package/dist/chunk-G5ZSOVJY.cjs.map +0 -1
- package/dist/chunk-G6TR5RGR.js +0 -3
- package/dist/chunk-G6TR5RGR.js.map +0 -1
- package/dist/chunk-GUJB555L.js +0 -3
- package/dist/chunk-GUJB555L.js.map +0 -1
- package/dist/chunk-JZROH43C.js +0 -3
- package/dist/chunk-JZROH43C.js.map +0 -1
- package/dist/chunk-MRZOLUSF.js +0 -3
- package/dist/chunk-MRZOLUSF.js.map +0 -1
- package/dist/chunk-OZ3RIKZO.cjs +0 -3
- package/dist/chunk-OZ3RIKZO.cjs.map +0 -1
- package/dist/chunk-PEYPRWZP.js +0 -3
- package/dist/chunk-PEYPRWZP.js.map +0 -1
- package/dist/chunk-PVHTEE5T.cjs +0 -3
- package/dist/chunk-PVHTEE5T.cjs.map +0 -1
- package/dist/chunk-QF5CRDZI.js +0 -3
- package/dist/chunk-QF5CRDZI.js.map +0 -1
- package/dist/chunk-RPRISB7O.cjs +0 -3
- package/dist/chunk-RPRISB7O.cjs.map +0 -1
- package/dist/chunk-SD4IIQ2I.cjs +0 -3
- package/dist/chunk-SD4IIQ2I.cjs.map +0 -1
- package/dist/chunk-TJFZAMBB.js +0 -3
- package/dist/chunk-TJFZAMBB.js.map +0 -1
- package/dist/chunk-VXMDVKAD.js +0 -3
- package/dist/chunk-VXMDVKAD.js.map +0 -1
- package/dist/chunk-ZYP2PDSX.cjs +0 -3
- package/dist/chunk-ZYP2PDSX.cjs.map +0 -1
package/dist/chunk-OZ3RIKZO.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var chunk7SPPGTBT_cjs=require('./chunk-7SPPGTBT.cjs'),chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),e=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var e__default=/*#__PURE__*/_interopDefault(e);var c=classVarianceAuthority.cva("animate-pulse rounded-md bg-muted",{variants:{variant:{default:"bg-muted",light:"bg-muted/50",dark:"bg-muted",primary:"bg-primary/10",success:"bg-success-200",warning:"bg-warning-200",error:"bg-error-200"},size:{xs:"h-2",sm:"h-3",md:"h-4",lg:"h-6",xl:"h-8","2xl":"h-12","3xl":"h-16"},shape:{rectangle:"rounded-md",circle:"rounded-full",square:"rounded-lg",pill:"rounded-full"},animation:{pulse:"animate-pulse",wave:"animate-wave",none:"animate-none"}},defaultVariants:{variant:"default",size:"md",shape:"rectangle",animation:"pulse"}}),N=e__default.default.forwardRef(({className:n,children:s,width:a,height:r,variant:t="default",size:o="md",shape:i="rectangle",animation:d="pulse",loading:u=true,...f},h)=>{if(!u&&s)return e__default.default.createElement(e__default.default.Fragment,null,s);let p={width:a||void 0,height:r||void 0};return e__default.default.createElement("div",{ref:h,className:chunkITRGJNWL_cjs.a(c({variant:t,size:o,shape:i,animation:d}),n),style:p,"aria-label":"Loading content",role:"status",...f})});N.displayName="Skeleton";var l=chunk7SPPGTBT_cjs.a(N),k=e__default.default.forwardRef(({className:n,lines:s=3,lastLineWidth:a="75%",spacing:r="md",variant:t="default",animation:o="pulse",loading:i=true,...d},u)=>i?e__default.default.createElement("div",{ref:u,className:chunkITRGJNWL_cjs.a("space-y-2",{none:"space-y-0",sm:"space-y-1",md:"space-y-2",lg:"space-y-3"}[r],n),"aria-label":"Loading text content",role:"status",...d},Array.from({length:s},(h,p)=>e__default.default.createElement("div",{key:p,className:chunkITRGJNWL_cjs.a(c({variant:t,animation:o}),"h-4 rounded-md",p===s-1&&"w-3/4"),style:{width:p===s-1?a:"100%"}}))):null);k.displayName="SkeletonText";var v=e__default.default.forwardRef(({className:n,size:s="md",variant:a="default",animation:r="pulse",loading:t=true,...o},i)=>{if(!t)return null;let d={xs:"h-6 w-6",sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12",xl:"h-16 w-16","2xl":"h-20 w-20"};return e__default.default.createElement("div",{ref:i,className:chunkITRGJNWL_cjs.a(c({variant:a,animation:r}),"rounded-full",d[s],n),"aria-label":"Loading avatar",role:"status",...o})});v.displayName="SkeletonAvatar";var g=e__default.default.forwardRef(({className:n,size:s="md",variant:a="default",animation:r="pulse",loading:t=true,...o},i)=>{if(!t)return null;let d={sm:"h-8 px-3",md:"h-10 px-4",lg:"h-12 px-6"},u={default:"bg-muted",primary:"bg-primary/10",secondary:"bg-secondary",outline:"bg-muted/50 border border-border",ghost:"bg-muted/50"},f=a||"default";return e__default.default.createElement("div",{ref:i,className:chunkITRGJNWL_cjs.a(c({animation:r}),"rounded-md",d[s],u[f],n),"aria-label":"Loading button",role:"status",...o})});g.displayName="SkeletonButton";var y=e__default.default.forwardRef(({className:n,showAvatar:s=true,showActions:a=true,variant:r="default",animation:t="pulse",loading:o=true,...i},d)=>o?e__default.default.createElement("div",{ref:d,className:chunkITRGJNWL_cjs.a("p-6 border border-border rounded-lg bg-card",n),"aria-label":"Loading card content",role:"status",...i},e__default.default.createElement("div",{className:"space-y-4"},e__default.default.createElement("div",{className:"flex items-center space-x-3"},s&&e__default.default.createElement(v,{size:"md",variant:r,animation:t}),e__default.default.createElement("div",{className:"flex-1 space-y-2"},e__default.default.createElement(l,{className:"h-4 w-3/4",variant:r,animation:t}),e__default.default.createElement(l,{className:"h-3 w-1/2",variant:r,animation:t}))),e__default.default.createElement("div",{className:"space-y-2"},e__default.default.createElement(l,{className:"h-4 w-full",variant:r,animation:t}),e__default.default.createElement(l,{className:"h-4 w-5/6",variant:r,animation:t}),e__default.default.createElement(l,{className:"h-4 w-4/5",variant:r,animation:t})),a&&e__default.default.createElement("div",{className:"flex space-x-2 pt-4"},e__default.default.createElement(g,{size:"sm",animation:t}),e__default.default.createElement(g,{size:"sm",animation:t})))):null);y.displayName="SkeletonCard";var S=e__default.default.forwardRef(({className:n,variant:s="default",animation:a="pulse",loading:r=true,...t},o)=>r?e__default.default.createElement("div",{ref:o,className:chunkITRGJNWL_cjs.a("space-y-3",n),"aria-label":"Loading table content",role:"status",...t},e__default.default.createElement("div",{className:"grid grid-cols-4 gap-4"},e__default.default.createElement(l,{className:"h-4",variant:s,animation:a}),e__default.default.createElement(l,{className:"h-4",variant:s,animation:a}),e__default.default.createElement(l,{className:"h-4",variant:s,animation:a}),e__default.default.createElement(l,{className:"h-4",variant:s,animation:a})),Array.from({length:5},(i,d)=>e__default.default.createElement("div",{key:d,className:"grid grid-cols-4 gap-4"},e__default.default.createElement(l,{className:"h-4",variant:s,animation:a}),e__default.default.createElement(l,{className:"h-4",variant:s,animation:a}),e__default.default.createElement(l,{className:"h-4",variant:s,animation:a}),e__default.default.createElement(l,{className:"h-4",variant:s,animation:a})))):null);S.displayName="SkeletonTable";var w=e__default.default.forwardRef(({className:n,items:s=5,variant:a="default",animation:r="pulse",loading:t=true,...o},i)=>t?e__default.default.createElement("div",{ref:i,className:chunkITRGJNWL_cjs.a("space-y-3",n),"aria-label":"Loading list content",role:"status",...o},Array.from({length:s},(d,u)=>e__default.default.createElement("div",{key:u,className:"flex items-center space-x-3"},e__default.default.createElement(v,{size:"sm",variant:a,animation:r}),e__default.default.createElement("div",{className:"flex-1 space-y-2"},e__default.default.createElement(l,{className:"h-4 w-3/4",variant:a,animation:r}),e__default.default.createElement(l,{className:"h-3 w-1/2",variant:a,animation:r}))))):null);w.displayName="SkeletonList";exports.a=c;exports.b=l;exports.c=k;exports.d=v;exports.e=g;exports.f=y;exports.g=S;exports.h=w;//# sourceMappingURL=chunk-OZ3RIKZO.cjs.map
|
|
3
|
-
//# sourceMappingURL=chunk-OZ3RIKZO.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/skeleton.tsx"],"names":["skeletonVariants","cva","SkeletonComponent","React","className","children","width","height","variant","size","shape","animation","loading","props","ref","style","cn","Skeleton","memo","SkeletonText","lines","lastLineWidth","spacing","_","index","SkeletonAvatar","sizeClasses","SkeletonButton","variantClasses","finalVariant","SkeletonCard","showAvatar","showActions","SkeletonTable","SkeletonList","items"],"mappings":"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","file":"chunk-OZ3RIKZO.cjs","sourcesContent":["import React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { memo } from \"../../lib/memo\";\n\n// Skeleton variants\nconst skeletonVariants = cva(\"animate-pulse rounded-md bg-muted\", {\n variants: {\n variant: {\n default: \"bg-muted\",\n light: \"bg-muted/50\",\n dark: \"bg-muted\",\n primary: \"bg-primary/10\",\n success: \"bg-success-200\",\n warning: \"bg-warning-200\",\n error: \"bg-error-200\",\n },\n size: {\n xs: \"h-2\",\n sm: \"h-3\",\n md: \"h-4\",\n lg: \"h-6\",\n xl: \"h-8\",\n \"2xl\": \"h-12\",\n \"3xl\": \"h-16\",\n },\n shape: {\n rectangle: \"rounded-md\",\n circle: \"rounded-full\",\n square: \"rounded-lg\",\n pill: \"rounded-full\",\n },\n animation: {\n pulse: \"animate-pulse\",\n wave: \"animate-wave\",\n none: \"animate-none\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n shape: \"rectangle\",\n animation: \"pulse\",\n },\n});\n\n// Types\nexport interface SkeletonProps extends VariantProps<typeof skeletonVariants> {\n className?: string;\n children?: React.ReactNode;\n width?: string | number;\n height?: string | number;\n lines?: number;\n spacing?: \"none\" | \"sm\" | \"md\" | \"lg\";\n loading?: boolean;\n}\n\nexport interface SkeletonTextProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\"\n> {\n lines?: number;\n lastLineWidth?: string | number;\n}\n\nexport interface SkeletonAvatarProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\"\n> {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n}\n\nexport interface SkeletonButtonProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\" | \"variant\"\n> {\n size?: \"sm\" | \"md\" | \"lg\";\n variant?: \"default\" | \"primary\" | \"secondary\" | \"outline\" | \"ghost\";\n}\n\nexport interface SkeletonCardProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\"\n> {\n showAvatar?: boolean;\n showActions?: boolean;\n}\n\n// Main Skeleton Component\nconst SkeletonComponent = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n className,\n children,\n width,\n height,\n variant = \"default\",\n size = \"md\",\n shape = \"rectangle\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading && children) {\n return <>{children}</>;\n }\n\n const style = {\n width: width || undefined,\n height: height || undefined,\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n skeletonVariants({ variant, size, shape, animation }),\n className,\n )}\n style={style}\n aria-label=\"Loading content\"\n role=\"status\"\n {...props}\n />\n );\n },\n);\n\nSkeletonComponent.displayName = \"Skeleton\";\n\n// Memoize Skeleton for performance optimization\nexport const Skeleton = memo(SkeletonComponent) as typeof SkeletonComponent;\n\n// Skeleton Text Component\nexport const SkeletonText = React.forwardRef<HTMLDivElement, SkeletonTextProps>(\n (\n {\n className,\n lines = 3,\n lastLineWidth = \"75%\",\n spacing = \"md\",\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n const spacingClasses = {\n none: \"space-y-0\",\n sm: \"space-y-1\",\n md: \"space-y-2\",\n lg: \"space-y-3\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(\"space-y-2\", spacingClasses[spacing], className)}\n aria-label=\"Loading text content\"\n role=\"status\"\n {...props}\n >\n {Array.from({ length: lines }, (_, index) => (\n <div\n key={index}\n className={cn(\n skeletonVariants({ variant, animation }),\n \"h-4 rounded-md\",\n index === lines - 1 && \"w-3/4\",\n )}\n style={{\n width: index === lines - 1 ? lastLineWidth : \"100%\",\n }}\n />\n ))}\n </div>\n );\n },\n);\n\nSkeletonText.displayName = \"SkeletonText\";\n\n// Skeleton Avatar Component\nexport const SkeletonAvatar = React.forwardRef<\n HTMLDivElement,\n SkeletonAvatarProps\n>(\n (\n {\n className,\n size = \"md\",\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n const sizeClasses = {\n xs: \"h-6 w-6\",\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-12 w-12\",\n xl: \"h-16 w-16\",\n \"2xl\": \"h-20 w-20\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n skeletonVariants({ variant, animation }),\n \"rounded-full\",\n sizeClasses[size],\n className,\n )}\n aria-label=\"Loading avatar\"\n role=\"status\"\n {...props}\n />\n );\n },\n);\n\nSkeletonAvatar.displayName = \"SkeletonAvatar\";\n\n// Skeleton Button Component\nexport const SkeletonButton = React.forwardRef<\n HTMLDivElement,\n SkeletonButtonProps\n>(\n (\n {\n className,\n size = \"md\",\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n const sizeClasses = {\n sm: \"h-8 px-3\",\n md: \"h-10 px-4\",\n lg: \"h-12 px-6\",\n };\n\n const variantClasses = {\n default: \"bg-muted\",\n primary: \"bg-primary/10\",\n secondary: \"bg-secondary\",\n outline: \"bg-muted/50 border border-border\",\n ghost: \"bg-muted/50\",\n };\n\n const finalVariant = variant || \"default\";\n\n return (\n <div\n ref={ref}\n className={cn(\n skeletonVariants({ animation }),\n \"rounded-md\",\n sizeClasses[size],\n variantClasses[finalVariant],\n className,\n )}\n aria-label=\"Loading button\"\n role=\"status\"\n {...props}\n />\n );\n },\n);\n\nSkeletonButton.displayName = \"SkeletonButton\";\n\n// Skeleton Card Component\nexport const SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonCardProps>(\n (\n {\n className,\n showAvatar = true,\n showActions = true,\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"p-6 border border-border rounded-lg bg-card\", className)}\n aria-label=\"Loading card content\"\n role=\"status\"\n {...props}\n >\n <div className=\"space-y-4\">\n {/* Header with avatar and title */}\n <div className=\"flex items-center space-x-3\">\n {showAvatar && (\n <SkeletonAvatar\n size=\"md\"\n variant={variant}\n animation={animation}\n />\n )}\n <div className=\"flex-1 space-y-2\">\n <Skeleton\n className=\"h-4 w-3/4\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-3 w-1/2\"\n variant={variant}\n animation={animation}\n />\n </div>\n </div>\n\n {/* Content */}\n <div className=\"space-y-2\">\n <Skeleton\n className=\"h-4 w-full\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-4 w-5/6\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-4 w-4/5\"\n variant={variant}\n animation={animation}\n />\n </div>\n\n {/* Actions */}\n {showActions && (\n <div className=\"flex space-x-2 pt-4\">\n <SkeletonButton size=\"sm\" animation={animation} />\n <SkeletonButton size=\"sm\" animation={animation} />\n </div>\n )}\n </div>\n </div>\n );\n },\n);\n\nSkeletonCard.displayName = \"SkeletonCard\";\n\n// Skeleton Table Component\nexport const SkeletonTable = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n className,\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"space-y-3\", className)}\n aria-label=\"Loading table content\"\n role=\"status\"\n {...props}\n >\n {/* Header */}\n <div className=\"grid grid-cols-4 gap-4\">\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n </div>\n\n {/* Rows */}\n {Array.from({ length: 5 }, (_, index) => (\n <div key={index} className=\"grid grid-cols-4 gap-4\">\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n </div>\n ))}\n </div>\n );\n },\n);\n\nSkeletonTable.displayName = \"SkeletonTable\";\n\n// Skeleton List Component\nexport const SkeletonList = React.forwardRef<\n HTMLDivElement,\n SkeletonProps & { items?: number }\n>(\n (\n {\n className,\n items = 5,\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"space-y-3\", className)}\n aria-label=\"Loading list content\"\n role=\"status\"\n {...props}\n >\n {Array.from({ length: items }, (_, index) => (\n <div key={index} className=\"flex items-center space-x-3\">\n <SkeletonAvatar size=\"sm\" variant={variant} animation={animation} />\n <div className=\"flex-1 space-y-2\">\n <Skeleton\n className=\"h-4 w-3/4\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-3 w-1/2\"\n variant={variant}\n animation={animation}\n />\n </div>\n </div>\n ))}\n </div>\n );\n },\n);\n\nSkeletonList.displayName = \"SkeletonList\";\n\n// Export variants for external use\nexport { skeletonVariants };\n"]}
|
package/dist/chunk-PEYPRWZP.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import {b}from'./chunk-AVTJE2O2.js';import {a as a$1}from'./chunk-AC2JBXHQ.js';import a,{useState,useRef,useMemo,useEffect}from'react';import*as v from'@radix-ui/react-popover';import {cva}from'class-variance-authority';import {format,getDay,startOfMonth,getDaysInMonth,isSameDay,isWithinInterval,startOfDay,endOfDay,isBefore,isAfter}from'date-fns';var ye=cva("inline-block rounded-lg border bg-background shadow-lg",{variants:{variant:{default:"border-border bg-card",outline:"border-2 border-border",ghost:"border-transparent bg-transparent shadow-none"},size:{sm:"p-2",md:"p-3",lg:"p-4"}},defaultVariants:{variant:"default",size:"md"}}),we=cva("flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"hover:bg-muted text-foreground",selected:"bg-primary text-primary-foreground hover:bg-primary/90 font-semibold",range:"bg-primary/10 text-primary hover:bg-primary/20 font-medium",today:"border-2 border-primary text-foreground font-semibold",outside:"text-muted-foreground",disabled:"text-muted-foreground/50 cursor-not-allowed"},size:{sm:"h-7 w-7 text-xs",md:"h-9 w-9 text-sm",lg:"h-11 w-11 text-base"}},defaultVariants:{variant:"default",size:"md"}}),W=n=>getDaysInMonth(n),xe=(n,o)=>{let s=getDay(startOfMonth(n));return o===1?s===0?6:s-1:s},h=(n,o)=>!n||!o?false:isSameDay(n,o),Ce=(n,o,s)=>!o&&!s?false:o&&s?isWithinInterval(startOfDay(n),{start:startOfDay(o),end:endOfDay(s)}):o?!isBefore(startOfDay(n),startOfDay(o)):s?!isAfter(startOfDay(n),endOfDay(s)):false,_=(n,o,s,V,N)=>!!(o&&isBefore(startOfDay(n),startOfDay(o))||s&&isAfter(startOfDay(n),endOfDay(s))||V?.some(Y=>h(Y,n))||N?.includes(getDay(n))),C=(n,o="en-US")=>n?format(n,"MMM d, yyyy"):"",ke=(n,o,s="en-US")=>!n&&!o?"":n&&o?`${C(n,s)} - ${C(o,s)}`:n?C(n,s):o?C(o,s):"",Fe=(n,o="en-US")=>n.length===0?"":n.length===1?C(n[0],o):`${n.length} dates selected`,Ne=a.forwardRef(({mode:n="single",value:o,defaultValue:s,onChange:V,minDate:N,maxDate:Y,disabledDates:A,disabledDays:H,locale:y="en-US",placeholder:X,label:I,error:L,helperText:U,className:Z,inputClassName:R,calendarClassName:ee,variant:te,size:K,showOutsideDays:k=true,firstDayOfWeek:P=1,...ne},re)=>{let[F,w]=useState(false),[i,D]=useState(new Date),[p,m]=useState(null),ae=useRef(null),$=useRef(new Map),[oe,se]=useState(s),j=o!==void 0,l=j?o:oe;a.useLayoutEffect(()=>{if(F&&!p){let e=new Date;e.setHours(0,0,0,0),m(e);}},[F,p]);let x=e=>{j||se(e),V?.(e);},z=e=>{if(!_(e,N,Y,A,H)){if(n==="single")x(e),w(false);else if(n==="range"){let r=l;if(!r?.from||r.from&&r.to)x({from:e});else {let t=r.from,d=e;d<t?x({from:d,to:t}):x({from:t,to:d}),w(false);}}else if(n==="multiple"){let r=l||[],t=r.findIndex(d=>h(d,e));t>=0?x(r.filter((d,u)=>u!==t)):x([...r,e]);}}},ie=useMemo(()=>{if(!l)return "";if(n==="single")return C(l,y);if(n==="range"){let e=l;return ke(e.from,e.to,y)}else return Fe(l,y)},[l,n,y]),le=useMemo(()=>{let e=[],r=new Date;r.setHours(0,0,0,0);let t=xe(i,P),d=W(i);if(k&&t>0){let u=new Date(i.getFullYear(),i.getMonth()-1),g=W(u);for(let c=g-t+1;c<=g;c++){let f=new Date(u.getFullYear(),u.getMonth(),c);e.push({date:f,isCurrentMonth:false,isToday:h(f,r)});}}for(let u=1;u<=d;u++){let g=new Date(i.getFullYear(),i.getMonth(),u);e.push({date:g,isCurrentMonth:true,isToday:h(g,r)});}if(k){let u=42-e.length,g=new Date(i.getFullYear(),i.getMonth()+1);for(let c=1;c<=u;c++){let f=new Date(g.getFullYear(),g.getMonth(),c);e.push({date:f,isCurrentMonth:false,isToday:h(f,r)});}}return e},[i,k,P]),ue=()=>{D(new Date(i.getFullYear(),i.getMonth()-1,1));},de=()=>{D(new Date(i.getFullYear(),i.getMonth()+1,1));},fe=()=>{let e=new Date;D(e),m(e);},ge=(e,r)=>{if(e.key==="Enter"||e.key===" "){e.preventDefault(),z(r);return}if(e.key==="ArrowRight"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()+1),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="ArrowLeft"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()-1),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="ArrowDown"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()+7),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="ArrowUp"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()-7),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="Home"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth(),1);m(t);return}if(e.key==="End"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth()+1,0);m(t);return}if(e.key==="PageUp"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth()-1,r.getDate());m(t),D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="PageDown"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth()+1,r.getDate());m(t),D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="Escape"){e.preventDefault(),w(false);return}};useEffect(()=>{if(p&&F){let e=`${p.getFullYear()}-${p.getMonth()}-${p.getDate()}`,r=$.current.get(e);r&&r.focus();}},[p,F]);let De=useMemo(()=>{let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];return P===1?[...e.slice(1),e[0]]:e},[P]),me=i.toLocaleDateString(y,{month:"long",year:"numeric"});return a.createElement("div",{ref:re,className:a$1("w-full",Z),...ne},a.createElement(v.Root,{open:F,onOpenChange:w},a.createElement("div",{className:"space-y-2"},I&&a.createElement("label",{className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"},I),a.createElement(v.Trigger,{asChild:true},a.createElement("button",{type:"button",className:a$1("flex w-full rounded-md border 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-offset-2","disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 text-left",L?"border-error-500 shadow-sm hover:border-error-600 focus-visible:ring-error-500/20 focus-visible:border-error-500":"border-border shadow-sm hover:border-primary focus-visible:ring-ring/20 focus-visible:border-primary","h-10",R),onClick:()=>w(true),onFocus:()=>w(true),"aria-label":I||"Open calendar","aria-invalid":L},ie||a.createElement("span",{className:"text-muted-foreground"},X||"Select date..."))),U&&a.createElement("p",{className:a$1("text-sm text-muted-foreground",L&&"text-error-600")},U)),a.createElement(v.Portal,null,a.createElement(v.Content,{className:a$1("z-50 w-auto rounded-lg border bg-popover p-4 shadow-lg","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"),sideOffset:5,align:"start"},a.createElement("div",{ref:ae,className:a$1(ye({variant:te,size:K}),ee),role:"application","aria-label":"Calendar"},a.createElement("div",{className:"flex items-center justify-between mb-4"},a.createElement("div",{className:"flex items-center gap-2"},a.createElement(b,{variant:"ghost",size:"sm",onClick:ue,"aria-label":"Previous month"},a.createElement("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),a.createElement("h3",{className:"text-sm font-semibold text-popover-foreground","data-testid":"calendar-month-year"},me),a.createElement(b,{variant:"ghost",size:"sm",onClick:de,"aria-label":"Next month"},a.createElement("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})))),a.createElement(b,{variant:"ghost",size:"sm",onClick:fe,className:"text-xs"},"Today")),a.createElement("div",{className:"grid grid-cols-7 gap-1 mb-2"},De.map(e=>a.createElement("div",{key:e,className:"text-center text-xs font-medium text-muted-foreground"},e))),a.createElement("div",{className:"grid grid-cols-7 gap-1"},le.map((e,r)=>{let t=n==="single"?h(e.date,l):n==="range"?Ce(e.date,l?.from,l?.to):l?.some(f=>h(f,e.date)),d=_(e.date,N,Y,A,H),u=n==="range"&&l?.from&&!l?.to&&e.date>=l.from,g=`${e.date.getFullYear()}-${e.date.getMonth()}-${e.date.getDate()}`,c=p&&h(e.date,p);return a.createElement("button",{key:`${e.date.getTime()}-${r}`,ref:f=>{f?$.current.set(g,f):$.current.delete(g);},type:"button",onClick:()=>{k&&!e.isCurrentMonth?(D(new Date(e.date.getFullYear(),e.date.getMonth(),1)),setTimeout(()=>z(e.date),0)):z(e.date);},onKeyDown:f=>ge(f,e.date),disabled:d||(k?false:!e.isCurrentMonth),className:a$1(we({variant:t?"selected":u?"range":e.isToday?"today":e.isCurrentMonth?d?"disabled":"default":"outside",size:K}),!e.isCurrentMonth&&"opacity-50",c&&"ring-2 ring-brand-500 ring-offset-2 z-10"),"aria-label":e.date.toLocaleDateString(y,{weekday:"long",year:"numeric",month:"long",day:"numeric"}),"aria-selected":t,"aria-disabled":d,tabIndex:c?0:-1},e.date.getDate())})),n==="range"&&l?.from&&!l?.to&&a.createElement("div",{className:"mt-4 pt-4 border-t border-border"},a.createElement("p",{className:"text-xs text-muted-foreground text-center"},"Select end date")))))))});Ne.displayName="Calendar";export{ye as a,we as b,Ne as c};//# sourceMappingURL=chunk-PEYPRWZP.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-PEYPRWZP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/calendar.tsx"],"names":["calendarVariants","cva","calendarDayVariants","getDaysInMonth","date","dateFnsGetDaysInMonth","getFirstDayOfMonth","firstDayOfWeek","firstDay","getDay","startOfMonth","isSameDay","date1","date2","dateFnsIsSameDay","isDateInRange","from","to","isWithinInterval","startOfDay","endOfDay","isBefore","isAfter","isDateDisabled","minDate","maxDate","disabledDates","disabledDays","d","formatDate","_locale","dateFnsFormat","formatDateRange","locale","formatMultipleDates","dates","Calendar","React","mode","value","defaultValue","onChange","placeholder","label","error","helperText","className","inputClassName","calendarClassName","variant","size","showOutsideDays","props","ref","open","setOpen","useState","currentMonth","setCurrentMonth","focusedDate","setFocusedDate","calendarRef","useRef","dayButtonRefs","internalValue","setInternalValue","isControlled","calendarValue","today","handleValueChange","newValue","handleDateClick","rangeValue","multipleValue","dateIndex","_","i","displayValue","useMemo","range","calendarDays","days","daysInMonth","prevMonth","daysInPrevMonth","remainingDays","nextMonth","goToPreviousMonth","goToNextMonth","goToToday","handleKeyDown","nextDate","prevDate","lastDay","useEffect","dateKey","button","dayNames","names","monthYearDisplay","cn","Button","day","index","isSelected","isDisabled","isInRange","isFocused","el","e"],"mappings":"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","file":"chunk-PEYPRWZP.js","sourcesContent":["import React, { useState, useMemo, useRef, useEffect } from \"react\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n getDaysInMonth as dateFnsGetDaysInMonth,\n startOfMonth,\n getDay,\n isSameDay as dateFnsIsSameDay,\n isWithinInterval,\n isBefore,\n isAfter,\n format as dateFnsFormat,\n startOfDay,\n endOfDay,\n} from \"date-fns\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"./button\";\n\n// Calendar variants\nconst calendarVariants = cva(\n \"inline-block rounded-lg border bg-background shadow-lg\",\n {\n variants: {\n variant: {\n default: \"border-border bg-card\",\n outline: \"border-2 border-border\",\n ghost: \"border-transparent bg-transparent shadow-none\",\n },\n size: {\n sm: \"p-2\",\n md: \"p-3\",\n lg: \"p-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nconst calendarDayVariants = cva(\n \"flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"hover:bg-muted text-foreground\",\n selected:\n \"bg-primary text-primary-foreground hover:bg-primary/90 font-semibold\",\n range: \"bg-primary/10 text-primary hover:bg-primary/20 font-medium\",\n today: \"border-2 border-primary text-foreground font-semibold\",\n outside: \"text-muted-foreground\",\n disabled: \"text-muted-foreground/50 cursor-not-allowed\",\n },\n size: {\n sm: \"h-7 w-7 text-xs\",\n md: \"h-9 w-9 text-sm\",\n lg: \"h-11 w-11 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport type CalendarMode = \"single\" | \"range\" | \"multiple\";\n\nexport interface CalendarProps extends VariantProps<typeof calendarVariants> {\n mode?: CalendarMode;\n value?: Date | Date[] | { from?: Date; to?: Date };\n defaultValue?: Date | Date[] | { from?: Date; to?: Date };\n onChange?: (\n value: Date | Date[] | { from?: Date; to?: Date } | undefined,\n ) => void;\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[]; // 0 = Sunday, 1 = Monday, etc.\n locale?: string;\n placeholder?: string;\n label?: string;\n error?: boolean;\n helperText?: string;\n className?: string;\n inputClassName?: string;\n calendarClassName?: string;\n showOutsideDays?: boolean;\n firstDayOfWeek?: 0 | 1; // 0 = Sunday, 1 = Monday\n}\n\n// Helper functions using date-fns for robust date manipulation\nconst getDaysInMonth = (date: Date): number => {\n return dateFnsGetDaysInMonth(date);\n};\n\nconst getFirstDayOfMonth = (date: Date, firstDayOfWeek: 0 | 1): number => {\n // Use date-fns getDay for consistent day-of-week calculation\n const firstDay = getDay(startOfMonth(date));\n // Convert Sunday (0) to Monday-first (6) if needed\n // Sunday = 0, Monday = 1, ..., Saturday = 6\n // For Monday-first: Sunday becomes 6, Monday becomes 0, etc.\n return firstDayOfWeek === 1 ? (firstDay === 0 ? 6 : firstDay - 1) : firstDay;\n};\n\nconst isSameDay = (\n date1: Date | undefined,\n date2: Date | undefined,\n): boolean => {\n if (!date1 || !date2) return false;\n return dateFnsIsSameDay(date1, date2);\n};\n\nconst isDateInRange = (date: Date, from?: Date, to?: Date): boolean => {\n if (!from && !to) return false;\n if (from && to) {\n // Use date-fns isWithinInterval for proper date range checking\n return isWithinInterval(startOfDay(date), {\n start: startOfDay(from),\n end: endOfDay(to),\n });\n }\n if (from) return !isBefore(startOfDay(date), startOfDay(from));\n if (to) return !isAfter(startOfDay(date), endOfDay(to));\n return false;\n};\n\nconst isDateDisabled = (\n date: Date,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Date[],\n disabledDays?: number[],\n): boolean => {\n if (minDate && isBefore(startOfDay(date), startOfDay(minDate))) return true;\n if (maxDate && isAfter(startOfDay(date), endOfDay(maxDate))) return true;\n if (disabledDates?.some((d) => isSameDay(d, date))) return true;\n if (disabledDays?.includes(getDay(date))) return true;\n return false;\n};\n\nconst formatDate = (\n date: Date | undefined,\n _locale: string = \"en-US\",\n): string => {\n if (!date) return \"\";\n // Use date-fns format for consistent formatting\n // Note: date-fns uses locale objects, but we'll use a simple format for now\n // For full locale support, import locale from 'date-fns/locale'\n // Locale parameter is kept for API compatibility but not yet used\n return dateFnsFormat(date, \"MMM d, yyyy\");\n};\n\nconst formatDateRange = (\n from?: Date,\n to?: Date,\n locale: string = \"en-US\",\n): string => {\n if (!from && !to) return \"\";\n if (from && to) {\n return `${formatDate(from, locale)} - ${formatDate(to, locale)}`;\n }\n if (from) return formatDate(from, locale);\n if (to) return formatDate(to, locale);\n return \"\";\n};\n\nconst formatMultipleDates = (\n dates: Date[],\n _locale: string = \"en-US\",\n): string => {\n if (dates.length === 0) return \"\";\n if (dates.length === 1) return formatDate(dates[0], _locale);\n return `${dates.length} dates selected`;\n};\n\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n mode = \"single\",\n value,\n defaultValue,\n onChange,\n minDate,\n maxDate,\n disabledDates,\n disabledDays,\n locale = \"en-US\",\n placeholder,\n label,\n error,\n helperText,\n className,\n inputClassName,\n calendarClassName,\n variant,\n size,\n showOutsideDays = true,\n firstDayOfWeek = 1,\n ...props\n },\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const [currentMonth, setCurrentMonth] = useState(new Date());\n const [focusedDate, setFocusedDate] = useState<Date | null>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n const dayButtonRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\n\n // Controlled vs uncontrolled\n const [internalValue, setInternalValue] = useState<\n Date | Date[] | { from?: Date; to?: Date } | undefined\n >(defaultValue);\n\n const isControlled = value !== undefined;\n const calendarValue = isControlled ? value : internalValue;\n\n // Set focused date when calendar opens\n React.useLayoutEffect(() => {\n if (open && !focusedDate) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n setFocusedDate(today);\n }\n }, [open, focusedDate]);\n\n // Handle value changes\n const handleValueChange = (\n newValue: Date | Date[] | { from?: Date; to?: Date } | undefined,\n ) => {\n if (!isControlled) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n };\n\n // Handle date selection\n const handleDateClick = (date: Date) => {\n if (isDateDisabled(date, minDate, maxDate, disabledDates, disabledDays)) {\n return;\n }\n\n if (mode === \"single\") {\n handleValueChange(date);\n setOpen(false);\n } else if (mode === \"range\") {\n const rangeValue = calendarValue as\n | { from?: Date; to?: Date }\n | undefined;\n if (!rangeValue?.from || (rangeValue.from && rangeValue.to)) {\n // Start new range\n handleValueChange({ from: date });\n } else {\n // Complete range\n const from = rangeValue.from;\n const to = date;\n if (to < from) {\n handleValueChange({ from: to, to: from });\n } else {\n handleValueChange({ from, to });\n }\n setOpen(false);\n }\n } else if (mode === \"multiple\") {\n const multipleValue = (calendarValue as Date[]) || [];\n const dateIndex = multipleValue.findIndex((d) => isSameDay(d, date));\n if (dateIndex >= 0) {\n // Remove date\n handleValueChange(multipleValue.filter((_, i) => i !== dateIndex));\n } else {\n // Add date\n handleValueChange([...multipleValue, date]);\n }\n }\n };\n\n // Get display value\n const displayValue = useMemo(() => {\n if (!calendarValue) return \"\";\n\n if (mode === \"single\") {\n return formatDate(calendarValue as Date, locale);\n } else if (mode === \"range\") {\n const range = calendarValue as { from?: Date; to?: Date };\n return formatDateRange(range.from, range.to, locale);\n } else {\n return formatMultipleDates(calendarValue as Date[], locale);\n }\n }, [calendarValue, mode, locale]);\n\n // Generate calendar days\n const calendarDays = useMemo(() => {\n const days: Array<{\n date: Date;\n isCurrentMonth: boolean;\n isToday: boolean;\n }> = [];\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n const firstDay = getFirstDayOfMonth(currentMonth, firstDayOfWeek);\n const daysInMonth = getDaysInMonth(currentMonth);\n\n // Previous month days\n if (showOutsideDays && firstDay > 0) {\n const prevMonth = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth() - 1,\n );\n const daysInPrevMonth = getDaysInMonth(prevMonth);\n for (\n let i = daysInPrevMonth - firstDay + 1;\n i <= daysInPrevMonth;\n i++\n ) {\n const date = new Date(\n prevMonth.getFullYear(),\n prevMonth.getMonth(),\n i,\n );\n days.push({\n date,\n isCurrentMonth: false,\n isToday: isSameDay(date, today),\n });\n }\n }\n\n // Current month days\n for (let i = 1; i <= daysInMonth; i++) {\n const date = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth(),\n i,\n );\n days.push({\n date,\n isCurrentMonth: true,\n isToday: isSameDay(date, today),\n });\n }\n\n // Next month days\n if (showOutsideDays) {\n const remainingDays = 42 - days.length; // 6 weeks * 7 days\n const nextMonth = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth() + 1,\n );\n for (let i = 1; i <= remainingDays; i++) {\n const date = new Date(\n nextMonth.getFullYear(),\n nextMonth.getMonth(),\n i,\n );\n days.push({\n date,\n isCurrentMonth: false,\n isToday: isSameDay(date, today),\n });\n }\n }\n\n return days;\n }, [currentMonth, showOutsideDays, firstDayOfWeek]);\n\n // Navigate months\n const goToPreviousMonth = () => {\n setCurrentMonth(\n new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, 1),\n );\n };\n\n const goToNextMonth = () => {\n setCurrentMonth(\n new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 1),\n );\n };\n\n const goToToday = () => {\n const today = new Date();\n setCurrentMonth(today);\n setFocusedDate(today);\n };\n\n // Keyboard navigation\n const handleKeyDown = (e: React.KeyboardEvent, date: Date) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleDateClick(date);\n return;\n }\n\n if (e.key === \"ArrowRight\") {\n e.preventDefault();\n const nextDate = new Date(date);\n nextDate.setDate(nextDate.getDate() + 1);\n setFocusedDate(nextDate);\n // Update month if needed\n if (nextDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(nextDate.getFullYear(), nextDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n const prevDate = new Date(date);\n prevDate.setDate(prevDate.getDate() - 1);\n setFocusedDate(prevDate);\n // Update month if needed\n if (prevDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(prevDate.getFullYear(), prevDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const nextDate = new Date(date);\n nextDate.setDate(nextDate.getDate() + 7);\n setFocusedDate(nextDate);\n // Update month if needed\n if (nextDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(nextDate.getFullYear(), nextDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const prevDate = new Date(date);\n prevDate.setDate(prevDate.getDate() - 7);\n setFocusedDate(prevDate);\n // Update month if needed\n if (prevDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(prevDate.getFullYear(), prevDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"Home\") {\n e.preventDefault();\n const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\n setFocusedDate(firstDay);\n return;\n }\n\n if (e.key === \"End\") {\n e.preventDefault();\n const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n setFocusedDate(lastDay);\n return;\n }\n\n if (e.key === \"PageUp\") {\n e.preventDefault();\n const prevMonth = new Date(\n date.getFullYear(),\n date.getMonth() - 1,\n date.getDate(),\n );\n setFocusedDate(prevMonth);\n setCurrentMonth(\n new Date(prevMonth.getFullYear(), prevMonth.getMonth(), 1),\n );\n return;\n }\n\n if (e.key === \"PageDown\") {\n e.preventDefault();\n const nextMonth = new Date(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n );\n setFocusedDate(nextMonth);\n setCurrentMonth(\n new Date(nextMonth.getFullYear(), nextMonth.getMonth(), 1),\n );\n return;\n }\n\n if (e.key === \"Escape\") {\n e.preventDefault();\n setOpen(false);\n return;\n }\n };\n\n // Focus management\n useEffect(() => {\n if (focusedDate && open) {\n const dateKey = `${focusedDate.getFullYear()}-${focusedDate.getMonth()}-${focusedDate.getDate()}`;\n const button = dayButtonRefs.current.get(dateKey);\n if (button) {\n button.focus();\n }\n }\n }, [focusedDate, open]);\n\n // Day names\n const dayNames = useMemo(() => {\n const names = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n if (firstDayOfWeek === 1) {\n return [...names.slice(1), names[0]];\n }\n return names;\n }, [firstDayOfWeek]);\n\n // Month/year display\n const monthYearDisplay = currentMonth.toLocaleDateString(locale, {\n month: \"long\",\n year: \"numeric\",\n });\n\n return (\n <div ref={ref} className={cn(\"w-full\", className)} {...props}>\n <Popover.Root open={open} onOpenChange={setOpen}>\n <div className=\"space-y-2\">\n {label && (\n <label className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {label}\n </label>\n )}\n <Popover.Trigger asChild>\n <button\n type=\"button\"\n className={cn(\n \"flex w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background\",\n \"placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 text-left\",\n error\n ? \"border-error-500 shadow-sm hover:border-error-600 focus-visible:ring-error-500/20 focus-visible:border-error-500\"\n : \"border-border shadow-sm hover:border-primary focus-visible:ring-ring/20 focus-visible:border-primary\",\n \"h-10\",\n inputClassName,\n )}\n onClick={() => setOpen(true)}\n onFocus={() => setOpen(true)}\n aria-label={label || \"Open calendar\"}\n aria-invalid={error}\n >\n {displayValue || (\n <span className=\"text-muted-foreground\">\n {placeholder || \"Select date...\"}\n </span>\n )}\n </button>\n </Popover.Trigger>\n {helperText && (\n <p\n className={cn(\n \"text-sm text-muted-foreground\",\n error && \"text-error-600\",\n )}\n >\n {helperText}\n </p>\n )}\n </div>\n\n <Popover.Portal>\n <Popover.Content\n className={cn(\n \"z-50 w-auto rounded-lg border bg-popover p-4 shadow-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n sideOffset={5}\n align=\"start\"\n >\n <div\n ref={calendarRef}\n className={cn(\n calendarVariants({ variant, size }),\n calendarClassName,\n )}\n role=\"application\"\n aria-label=\"Calendar\"\n >\n {/* Header */}\n <div className=\"flex items-center justify-between mb-4\">\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToPreviousMonth}\n aria-label=\"Previous month\"\n >\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </Button>\n\n <h3\n className=\"text-sm font-semibold text-popover-foreground\"\n data-testid=\"calendar-month-year\"\n >\n {monthYearDisplay}\n </h3>\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToNextMonth}\n aria-label=\"Next month\"\n >\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </Button>\n </div>\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToToday}\n className=\"text-xs\"\n >\n Today\n </Button>\n </div>\n\n {/* Day names */}\n <div className=\"grid grid-cols-7 gap-1 mb-2\">\n {dayNames.map((day) => (\n <div\n key={day}\n className=\"text-center text-xs font-medium text-muted-foreground\"\n >\n {day}\n </div>\n ))}\n </div>\n\n {/* Calendar grid */}\n <div className=\"grid grid-cols-7 gap-1\">\n {calendarDays.map((day, index) => {\n const isSelected =\n mode === \"single\"\n ? isSameDay(day.date, calendarValue as Date | undefined)\n : mode === \"range\"\n ? isDateInRange(\n day.date,\n (calendarValue as { from?: Date; to?: Date })\n ?.from,\n (calendarValue as { from?: Date; to?: Date })?.to,\n )\n : (calendarValue as Date[])?.some((d) =>\n isSameDay(d, day.date),\n );\n\n const isDisabled = isDateDisabled(\n day.date,\n minDate,\n maxDate,\n disabledDates,\n disabledDays,\n );\n\n const isInRange =\n mode === \"range\" &&\n (calendarValue as { from?: Date; to?: Date })?.from &&\n !(calendarValue as { from?: Date; to?: Date })?.to &&\n day.date >=\n (calendarValue as { from?: Date; to?: Date }).from!;\n\n const dateKey = `${day.date.getFullYear()}-${day.date.getMonth()}-${day.date.getDate()}`;\n const isFocused =\n focusedDate && isSameDay(day.date, focusedDate);\n\n return (\n <button\n key={`${day.date.getTime()}-${index}`}\n ref={(el) => {\n if (el) {\n dayButtonRefs.current.set(dateKey, el);\n } else {\n dayButtonRefs.current.delete(dateKey);\n }\n }}\n type=\"button\"\n onClick={() => {\n if (showOutsideDays && !day.isCurrentMonth) {\n // Navigate to the month of the clicked date\n setCurrentMonth(\n new Date(\n day.date.getFullYear(),\n day.date.getMonth(),\n 1,\n ),\n );\n // Then select the date\n setTimeout(() => handleDateClick(day.date), 0);\n } else {\n handleDateClick(day.date);\n }\n }}\n onKeyDown={(e) => handleKeyDown(e, day.date)}\n disabled={\n isDisabled ||\n (showOutsideDays ? false : !day.isCurrentMonth)\n }\n className={cn(\n calendarDayVariants({\n variant: isSelected\n ? \"selected\"\n : isInRange\n ? \"range\"\n : day.isToday\n ? \"today\"\n : !day.isCurrentMonth\n ? \"outside\"\n : isDisabled\n ? \"disabled\"\n : \"default\",\n size,\n }),\n !day.isCurrentMonth && \"opacity-50\",\n isFocused &&\n \"ring-2 ring-brand-500 ring-offset-2 z-10\",\n )}\n aria-label={day.date.toLocaleDateString(locale, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n })}\n aria-selected={isSelected}\n aria-disabled={isDisabled}\n tabIndex={isFocused ? 0 : -1}\n >\n {day.date.getDate()}\n </button>\n );\n })}\n </div>\n\n {/* Footer for range mode */}\n {mode === \"range\" &&\n (calendarValue as { from?: Date; to?: Date })?.from &&\n !(calendarValue as { from?: Date; to?: Date })?.to && (\n <div className=\"mt-4 pt-4 border-t border-border\">\n <p className=\"text-xs text-muted-foreground text-center\">\n Select end date\n </p>\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n </div>\n );\n },\n);\n\nCalendar.displayName = \"Calendar\";\n\nexport { calendarVariants, calendarDayVariants };\n"]}
|
package/dist/chunk-PVHTEE5T.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),e=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var c=classVarianceAuthority.cva("fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background shadow-lg duration-300 transition-all",{variants:{variant:{default:"border-border shadow-lg hover:shadow-xl",elevated:"border-border shadow-xl hover:shadow-2xl",outlined:"border-2 border-border shadow-md hover:border-primary hover:shadow-lg",filled:"border-border bg-muted shadow-md hover:shadow-lg",destructive:"border-error-200 bg-error-50 shadow-lg hover:shadow-xl"},size:{default:"max-w-lg sm:max-w-xl md:max-w-2xl lg:max-w-4xl",sm:"max-w-sm sm:max-w-md",lg:"max-w-2xl sm:max-w-3xl md:max-w-4xl lg:max-w-5xl",xl:"max-w-4xl sm:max-w-5xl md:max-w-6xl lg:max-w-7xl",full:"max-w-[95vw] sm:max-w-[90vw]"},animation:{default:"animate-in fade-in-0 zoom-in-95 duration-300",slide:"animate-in slide-in-from-bottom-4 duration-300",scale:"animate-in zoom-in-95 duration-300",none:""}},defaultVariants:{variant:"default",size:"default",animation:"default"}}),f=classVarianceAuthority.cva("fixed inset-0 z-40 transition-all duration-300",{variants:{variant:{default:"bg-black/50 backdrop-blur-sm",subtle:"bg-black/30 backdrop-blur-none",strong:"bg-black/70 backdrop-blur-md",colored:"bg-brand-500/20 backdrop-blur-sm"}},defaultVariants:{variant:"default"}}),w=({open:a,onOpenChange:t,children:o,backdropVariant:n="default"})=>(e__namespace.useEffect(()=>{let i=l=>{l.key==="Escape"&&a&&t?.(false);};return a&&(document.addEventListener("keydown",i),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",i),document.body.style.overflow="unset";}},[a,t]),a?e__namespace.createElement("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4"},e__namespace.createElement("div",{className:chunkITRGJNWL_cjs.a(f({variant:n})),onClick:()=>t?.(false)}),e__namespace.createElement("div",{className:"relative z-50 w-full"},o)):null),g=e__namespace.forwardRef(({className:a,children:t,onClose:o,variant:n,size:i,animation:l,...d},m)=>e__namespace.createElement("div",{ref:m,className:chunkITRGJNWL_cjs.a(c({variant:n,size:i,animation:l}),"p-4 sm:p-6 sm:rounded-lg",a),...d},t,e__namespace.createElement("button",{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",onClick:o},e__namespace.createElement("span",{className:"sr-only"},"Close"),e__namespace.createElement("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},e__namespace.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))));g.displayName="DialogContent";var p=e__namespace.forwardRef(({className:a,...t},o)=>e__namespace.createElement("div",{ref:o,className:chunkITRGJNWL_cjs.a("flex flex-col space-y-1.5 text-center sm:text-left",a),...t}));p.displayName="DialogHeader";var u=e__namespace.forwardRef(({className:a,...t},o)=>e__namespace.createElement("h2",{ref:o,className:chunkITRGJNWL_cjs.a("text-lg font-semibold leading-none tracking-tight",a),...t}));u.displayName="DialogTitle";var x=e__namespace.forwardRef(({className:a,...t},o)=>e__namespace.createElement("p",{ref:o,className:chunkITRGJNWL_cjs.a("text-sm text-muted-foreground",a),...t}));x.displayName="DialogDescription";exports.a=c;exports.b=f;exports.c=w;exports.d=g;exports.e=p;exports.f=u;exports.g=x;//# sourceMappingURL=chunk-PVHTEE5T.cjs.map
|
|
3
|
-
//# sourceMappingURL=chunk-PVHTEE5T.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/dialog.tsx"],"names":["dialogVariants","cva","backdropVariants","Dialog","open","onOpenChange","children","backdropVariant","e","handleEscape","cn","DialogContent","className","onClose","variant","size","animation","props","ref","DialogHeader","DialogTitle","DialogDescription"],"mappings":"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","file":"chunk-PVHTEE5T.cjs","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst dialogVariants = cva(\n \"fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background shadow-lg duration-300 transition-all\",\n {\n variants: {\n variant: {\n default: \"border-border shadow-lg hover:shadow-xl\",\n elevated: \"border-border shadow-xl hover:shadow-2xl\",\n outlined: \"border-2 border-border shadow-md hover:border-primary hover:shadow-lg\",\n filled: \"border-border bg-muted shadow-md hover:shadow-lg\",\n destructive: \"border-error-200 bg-error-50 shadow-lg hover:shadow-xl\",\n },\n size: {\n default: \"max-w-lg sm:max-w-xl md:max-w-2xl lg:max-w-4xl\",\n sm: \"max-w-sm sm:max-w-md\",\n lg: \"max-w-2xl sm:max-w-3xl md:max-w-4xl lg:max-w-5xl\",\n xl: \"max-w-4xl sm:max-w-5xl md:max-w-6xl lg:max-w-7xl\",\n full: \"max-w-[95vw] sm:max-w-[90vw]\",\n },\n animation: {\n default: \"animate-in fade-in-0 zoom-in-95 duration-300\",\n slide: \"animate-in slide-in-from-bottom-4 duration-300\",\n scale: \"animate-in zoom-in-95 duration-300\",\n none: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n animation: \"default\",\n },\n }\n);\n\nconst backdropVariants = cva(\n \"fixed inset-0 z-40 transition-all duration-300\",\n {\n variants: {\n variant: {\n default: \"bg-black/50 backdrop-blur-sm\",\n subtle: \"bg-black/30 backdrop-blur-none\",\n strong: \"bg-black/70 backdrop-blur-md\",\n colored: \"bg-brand-500/20 backdrop-blur-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface DialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n backdropVariant?: VariantProps<typeof backdropVariants>['variant'];\n}\n\nexport interface DialogContentProps \n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof dialogVariants> {\n onClose?: () => void;\n}\n\nexport interface DialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport interface DialogTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {}\n\nexport interface DialogDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst Dialog: React.FC<DialogProps> = ({ open, onOpenChange, children, backdropVariant = \"default\" }) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener(\"keydown\", handleEscape);\n document.body.style.overflow = \"hidden\";\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleEscape);\n document.body.style.overflow = \"unset\";\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div\n className={cn(backdropVariants({ variant: backdropVariant }))}\n onClick={() => onOpenChange?.(false)}\n />\n <div className=\"relative z-50 w-full\">\n {children}\n </div>\n </div>\n );\n};\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, onClose, variant, size, animation, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n dialogVariants({ variant, size, animation }),\n \"p-4 sm:p-6 sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <button\n className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n onClick={onClose}\n >\n <span className=\"sr-only\">Close</span>\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n )\n);\nDialogContent.displayName = \"DialogContent\";\n\nconst DialogHeader = React.forwardRef<HTMLDivElement, DialogHeaderProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n )\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogTitle = React.forwardRef<HTMLHeadingElement, DialogTitleProps>(\n ({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n);\nDialogTitle.displayName = \"DialogTitle\";\n\nconst DialogDescription = React.forwardRef<HTMLParagraphElement, DialogDescriptionProps>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n);\nDialogDescription.displayName = \"DialogDescription\";\n\nexport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, dialogVariants, backdropVariants };\n"]}
|
package/dist/chunk-QF5CRDZI.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import {a}from'./chunk-AC2JBXHQ.js';import*as e from'react';import {cva}from'class-variance-authority';var c=cva("fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background shadow-lg duration-300 transition-all",{variants:{variant:{default:"border-border shadow-lg hover:shadow-xl",elevated:"border-border shadow-xl hover:shadow-2xl",outlined:"border-2 border-border shadow-md hover:border-primary hover:shadow-lg",filled:"border-border bg-muted shadow-md hover:shadow-lg",destructive:"border-error-200 bg-error-50 shadow-lg hover:shadow-xl"},size:{default:"max-w-lg sm:max-w-xl md:max-w-2xl lg:max-w-4xl",sm:"max-w-sm sm:max-w-md",lg:"max-w-2xl sm:max-w-3xl md:max-w-4xl lg:max-w-5xl",xl:"max-w-4xl sm:max-w-5xl md:max-w-6xl lg:max-w-7xl",full:"max-w-[95vw] sm:max-w-[90vw]"},animation:{default:"animate-in fade-in-0 zoom-in-95 duration-300",slide:"animate-in slide-in-from-bottom-4 duration-300",scale:"animate-in zoom-in-95 duration-300",none:""}},defaultVariants:{variant:"default",size:"default",animation:"default"}}),f=cva("fixed inset-0 z-40 transition-all duration-300",{variants:{variant:{default:"bg-black/50 backdrop-blur-sm",subtle:"bg-black/30 backdrop-blur-none",strong:"bg-black/70 backdrop-blur-md",colored:"bg-brand-500/20 backdrop-blur-sm"}},defaultVariants:{variant:"default"}}),w=({open:a$1,onOpenChange:t,children:o,backdropVariant:n="default"})=>(e.useEffect(()=>{let i=l=>{l.key==="Escape"&&a$1&&t?.(false);};return a$1&&(document.addEventListener("keydown",i),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",i),document.body.style.overflow="unset";}},[a$1,t]),a$1?e.createElement("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4"},e.createElement("div",{className:a(f({variant:n})),onClick:()=>t?.(false)}),e.createElement("div",{className:"relative z-50 w-full"},o)):null),g=e.forwardRef(({className:a$1,children:t,onClose:o,variant:n,size:i,animation:l,...d},m)=>e.createElement("div",{ref:m,className:a(c({variant:n,size:i,animation:l}),"p-4 sm:p-6 sm:rounded-lg",a$1),...d},t,e.createElement("button",{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",onClick:o},e.createElement("span",{className:"sr-only"},"Close"),e.createElement("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},e.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))));g.displayName="DialogContent";var p=e.forwardRef(({className:a$1,...t},o)=>e.createElement("div",{ref:o,className:a("flex flex-col space-y-1.5 text-center sm:text-left",a$1),...t}));p.displayName="DialogHeader";var u=e.forwardRef(({className:a$1,...t},o)=>e.createElement("h2",{ref:o,className:a("text-lg font-semibold leading-none tracking-tight",a$1),...t}));u.displayName="DialogTitle";var x=e.forwardRef(({className:a$1,...t},o)=>e.createElement("p",{ref:o,className:a("text-sm text-muted-foreground",a$1),...t}));x.displayName="DialogDescription";export{c as a,f as b,w as c,g as d,p as e,u as f,x as g};//# sourceMappingURL=chunk-QF5CRDZI.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-QF5CRDZI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/dialog.tsx"],"names":["dialogVariants","cva","backdropVariants","Dialog","open","onOpenChange","children","backdropVariant","handleEscape","e","cn","DialogContent","className","onClose","variant","size","animation","props","ref","DialogHeader","DialogTitle","DialogDescription"],"mappings":"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","file":"chunk-QF5CRDZI.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst dialogVariants = cva(\n \"fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background shadow-lg duration-300 transition-all\",\n {\n variants: {\n variant: {\n default: \"border-border shadow-lg hover:shadow-xl\",\n elevated: \"border-border shadow-xl hover:shadow-2xl\",\n outlined: \"border-2 border-border shadow-md hover:border-primary hover:shadow-lg\",\n filled: \"border-border bg-muted shadow-md hover:shadow-lg\",\n destructive: \"border-error-200 bg-error-50 shadow-lg hover:shadow-xl\",\n },\n size: {\n default: \"max-w-lg sm:max-w-xl md:max-w-2xl lg:max-w-4xl\",\n sm: \"max-w-sm sm:max-w-md\",\n lg: \"max-w-2xl sm:max-w-3xl md:max-w-4xl lg:max-w-5xl\",\n xl: \"max-w-4xl sm:max-w-5xl md:max-w-6xl lg:max-w-7xl\",\n full: \"max-w-[95vw] sm:max-w-[90vw]\",\n },\n animation: {\n default: \"animate-in fade-in-0 zoom-in-95 duration-300\",\n slide: \"animate-in slide-in-from-bottom-4 duration-300\",\n scale: \"animate-in zoom-in-95 duration-300\",\n none: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n animation: \"default\",\n },\n }\n);\n\nconst backdropVariants = cva(\n \"fixed inset-0 z-40 transition-all duration-300\",\n {\n variants: {\n variant: {\n default: \"bg-black/50 backdrop-blur-sm\",\n subtle: \"bg-black/30 backdrop-blur-none\",\n strong: \"bg-black/70 backdrop-blur-md\",\n colored: \"bg-brand-500/20 backdrop-blur-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface DialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n backdropVariant?: VariantProps<typeof backdropVariants>['variant'];\n}\n\nexport interface DialogContentProps \n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof dialogVariants> {\n onClose?: () => void;\n}\n\nexport interface DialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport interface DialogTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {}\n\nexport interface DialogDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst Dialog: React.FC<DialogProps> = ({ open, onOpenChange, children, backdropVariant = \"default\" }) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener(\"keydown\", handleEscape);\n document.body.style.overflow = \"hidden\";\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleEscape);\n document.body.style.overflow = \"unset\";\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div\n className={cn(backdropVariants({ variant: backdropVariant }))}\n onClick={() => onOpenChange?.(false)}\n />\n <div className=\"relative z-50 w-full\">\n {children}\n </div>\n </div>\n );\n};\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, onClose, variant, size, animation, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n dialogVariants({ variant, size, animation }),\n \"p-4 sm:p-6 sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <button\n className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n onClick={onClose}\n >\n <span className=\"sr-only\">Close</span>\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n )\n);\nDialogContent.displayName = \"DialogContent\";\n\nconst DialogHeader = React.forwardRef<HTMLDivElement, DialogHeaderProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n )\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogTitle = React.forwardRef<HTMLHeadingElement, DialogTitleProps>(\n ({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n);\nDialogTitle.displayName = \"DialogTitle\";\n\nconst DialogDescription = React.forwardRef<HTMLParagraphElement, DialogDescriptionProps>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n);\nDialogDescription.displayName = \"DialogDescription\";\n\nexport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, dialogVariants, backdropVariants };\n"]}
|
package/dist/chunk-RPRISB7O.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),e=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var v=classVarianceAuthority.cva("peer h-4 w-4 shrink-0 rounded-sm border border-border shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary transition-all duration-200",{variants:{variant:{default:"border-border hover:border-border data-[state=checked]:bg-primary data-[state=checked]:border-primary",error:"border-destructive focus-visible:ring-destructive data-[state=checked]:bg-destructive data-[state=checked]:border-destructive",success:"border-success-500 focus-visible:ring-success-500 data-[state=checked]:bg-success-500 data-[state=checked]:border-success-500"},size:{default:"h-4 w-4",sm:"h-3 w-3",lg:"h-5 w-5"}},defaultVariants:{variant:"default",size:"default"}}),x=e__namespace.forwardRef(({className:o,error:t,helperText:s,label:d,required:c,id:n,variant:l,size:b,...u},p)=>{let m=e__namespace.useId(),r=n||m,i=s?`${r}-helper`:void 0,f=t?`${r}-error`:void 0;return e__namespace.createElement("div",{className:"space-y-2"},e__namespace.createElement("div",{className:"flex items-center space-x-3"},e__namespace.createElement("input",{type:"checkbox",className:chunkITRGJNWL_cjs.a(v({variant:t?"error":l||"default",size:b,className:o})),ref:p,id:r,"aria-describedby":chunkITRGJNWL_cjs.a(i,f)||void 0,"aria-invalid":t,required:c,...u}),d&&e__namespace.createElement("label",{htmlFor:r,className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"},d,c&&e__namespace.createElement("span",{className:"text-error-500 ml-1"},"*"))),s&&e__namespace.createElement("p",{id:i,className:chunkITRGJNWL_cjs.a("text-sm text-muted-foreground",t&&"text-destructive")},s))});x.displayName="Checkbox";exports.a=v;exports.b=x;//# sourceMappingURL=chunk-RPRISB7O.cjs.map
|
|
3
|
-
//# sourceMappingURL=chunk-RPRISB7O.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/checkbox.tsx"],"names":["checkboxVariants","cva","Checkbox","e","className","error","helperText","label","required","id","variant","size","props","ref","generatedId","checkboxId","helperTextId","errorId","cn"],"mappings":"ufAIA,IAAMA,CAAAA,CAAmBC,0BAAAA,CACvB,kWAAA,CACA,CACE,QAAA,CAAU,CACR,QAAS,CACP,OAAA,CACE,wGACF,KAAA,CACE,+HAAA,CACF,OAAA,CACE,+HACJ,EACA,IAAA,CAAM,CACJ,OAAA,CAAS,SAAA,CACT,GAAI,SAAA,CACJ,EAAA,CAAI,SACN,CACF,EACA,eAAA,CAAiB,CACf,QAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,CAAA,CA0BMC,CAAAA,CAAiBC,wBACrB,CACE,CACE,SAAA,CAAAC,CAAAA,CACA,MAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,EACA,QAAA,CAAAC,CAAAA,CACA,GAAAC,CAAAA,CACA,OAAA,CAAAC,EACA,IAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,EACAC,CAAAA,GACG,CACH,IAAMC,CAAAA,CAAoBX,oBAAM,CAC1BY,CAAAA,CAAaN,CAAAA,EAAMK,CAAAA,CACnBE,EAAeV,CAAAA,CAAa,CAAA,EAAGS,CAAU,CAAA,OAAA,CAAA,CAAY,MAAA,CACrDE,EAAUZ,CAAAA,CAAQ,CAAA,EAAGU,CAAU,CAAA,MAAA,CAAA,CAAW,OAKhD,OACEZ,YAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,aACbA,YAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,6BAAA,CAAA,CACbA,2BAAC,OAAA,CAAA,CACC,IAAA,CAAK,WACL,SAAA,CAAWe,mBAAAA,CACTlB,EAAiB,CAAE,OAAA,CARLK,CAAAA,CAAQ,OAAA,CAAUK,GAAW,SAAA,CAQE,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAP,CAAU,CAAC,CAChE,CAAA,CACA,GAAA,CAAKS,EACL,EAAA,CAAIE,CAAAA,CACJ,mBAAkBG,mBAAAA,CAAGF,CAAAA,CAAcC,CAAO,CAAA,EAAK,MAAA,CAC/C,cAAA,CAAcZ,CAAAA,CACd,SAAUG,CAAAA,CACT,GAAGI,CAAAA,CACN,CAAA,CACCL,GACCJ,YAAA,CAAA,aAAA,CAAC,OAAA,CAAA,CACC,OAAA,CAASY,CAAAA,CACT,UAAU,4FAAA,CAAA,CAETR,CAAAA,CACAC,GAAYL,YAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CAAK,UAAU,qBAAA,CAAA,CAAsB,GAAC,CACtD,CAEJ,EACCG,CAAAA,EACCH,YAAA,CAAA,aAAA,CAAC,KACC,EAAA,CAAIa,CAAAA,CACJ,UAAWE,mBAAAA,CACT,+BAAA,CACAb,CAAAA,EAAS,kBACX,GAECC,CACH,CAEJ,CAEJ,CACF,EACAJ,EAAS,WAAA,CAAc,UAAA","file":"chunk-RPRISB7O.cjs","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst checkboxVariants = cva(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-border shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary transition-all duration-200\",\n {\n variants: {\n variant: {\n default:\n \"border-border hover:border-border data-[state=checked]:bg-primary data-[state=checked]:border-primary\",\n error:\n \"border-destructive focus-visible:ring-destructive data-[state=checked]:bg-destructive data-[state=checked]:border-destructive\",\n success:\n \"border-success-500 focus-visible:ring-success-500 data-[state=checked]:bg-success-500 data-[state=checked]:border-success-500\",\n },\n size: {\n default: \"h-4 w-4\",\n sm: \"h-3 w-3\",\n lg: \"h-5 w-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface CheckboxProps\n extends\n Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof checkboxVariants> {\n /**\n * Whether the checkbox is in an error state\n * @default false\n */\n error?: boolean;\n /**\n * Helper text to display below the checkbox\n */\n helperText?: string;\n /**\n * Label text for the checkbox\n */\n label?: string;\n /**\n * Whether the checkbox is required\n * @default false\n */\n required?: boolean;\n}\n\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n className,\n error,\n helperText,\n label,\n required,\n id,\n variant,\n size,\n ...props\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const checkboxId = id || generatedId;\n const helperTextId = helperText ? `${checkboxId}-helper` : undefined;\n const errorId = error ? `${checkboxId}-error` : undefined;\n\n // Determine variant based on error state\n const checkboxVariant = error ? \"error\" : variant || \"default\";\n\n return (\n <div className=\"space-y-2\">\n <div className=\"flex items-center space-x-3\">\n <input\n type=\"checkbox\"\n className={cn(\n checkboxVariants({ variant: checkboxVariant, size, className }),\n )}\n ref={ref}\n id={checkboxId}\n aria-describedby={cn(helperTextId, errorId) || undefined}\n aria-invalid={error}\n required={required}\n {...props}\n />\n {label && (\n <label\n htmlFor={checkboxId}\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n >\n {label}\n {required && <span className=\"text-error-500 ml-1\">*</span>}\n </label>\n )}\n </div>\n {helperText && (\n <p\n id={helperTextId}\n className={cn(\n \"text-sm text-muted-foreground\",\n error && \"text-destructive\",\n )}\n >\n {helperText}\n </p>\n )}\n </div>\n );\n },\n);\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox, checkboxVariants };\n"]}
|
package/dist/chunk-SD4IIQ2I.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),e=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var e__default=/*#__PURE__*/_interopDefault(e);var q=classVarianceAuthority.cva("w-full border-collapse transition-all duration-200",{variants:{variant:{default:"border border-border shadow-sm hover:shadow-md",striped:"border border-border shadow-sm hover:shadow-md",bordered:"border-2 border-border shadow-md hover:shadow-lg",hover:"border border-border shadow-sm hover:shadow-md",elevated:"border border-border shadow-lg hover:shadow-xl",interactive:"border border-border shadow-sm hover:shadow-md hover:border-primary"},size:{sm:"text-xs sm:text-sm",md:"text-sm sm:text-base",lg:"text-base sm:text-lg"}},defaultVariants:{variant:"default",size:"md"}}),O=classVarianceAuthority.cva("font-medium text-left transition-all duration-200",{variants:{variant:{default:"bg-muted text-foreground hover:bg-muted/80",striped:"bg-muted text-foreground hover:bg-muted/80",bordered:"bg-muted text-foreground hover:bg-muted/80",hover:"bg-muted text-foreground hover:bg-muted/80",elevated:"bg-muted text-foreground hover:bg-muted/80",interactive:"bg-muted text-foreground hover:bg-primary/10 hover:text-primary"},size:{sm:"px-2 py-1 sm:px-3 sm:py-2",md:"px-3 py-2 sm:px-4 sm:py-3",lg:"px-4 py-3 sm:px-6 sm:py-4"}},defaultVariants:{variant:"default",size:"md"}}),w=classVarianceAuthority.cva("border-border transition-all duration-200",{variants:{variant:{default:"border-b border-border hover:bg-muted/50",striped:"border-b border-border even:bg-muted/50 hover:bg-muted/80",bordered:"border border-border hover:bg-muted/50",hover:"border-b border-border hover:bg-muted/50",elevated:"border-b border-border hover:bg-muted/80",interactive:"border-b border-border hover:bg-primary/10 hover:text-primary"},size:{sm:"px-2 py-1 sm:px-3 sm:py-2",md:"px-3 py-2 sm:px-4 sm:py-3",lg:"px-4 py-3 sm:px-6 sm:py-4"}},defaultVariants:{variant:"default",size:"md"}});function U({data:s,columns:n,loading:i=false,emptyText:m="No data",className:c,variant:d,size:p,rowKey:g="id",onRowClick:P,onSort:K,sortColumn:T,sortDirection:E,pagination:t,selection:l,caption:z,...L},B){let[I,D]=e.useState(null),H=T!==void 0,u=H&&T?{column:T,direction:E||"asc"}:I,j=r=>{if(!r.sortable)return;let a=u?.column===r.key&&u?.direction==="asc"?"desc":"asc";H||D({column:r.key,direction:a}),K?.(r,a);},h=(r,a)=>typeof g=="function"?g(r):r[g]||a,N=(r,a)=>{if(!l)return false;let o=h(r,a);return l.selectedRowKeys.includes(o)},A=(r,a,o)=>{if(!l)return;let x=h(r,a),v=o?[...l.selectedRowKeys,x]:l.selectedRowKeys.filter(S=>S!==x),C=s.filter((S,J)=>v.includes(h(S,J)));l.onChange(v,C);},G=r=>{if(!l)return;let a=s.map((v,C)=>h(v,C)),o=r?a:[],x=r?s:[];l.onChange(o,x);},$=l&&s.length>0&&l.selectedRowKeys.length===s.length,F=l&&l.selectedRowKeys.length>0&&l.selectedRowKeys.length<s.length;return e__default.default.createElement("div",{className:"w-full overflow-x-auto"},e__default.default.createElement("div",{className:"min-w-full"},e__default.default.createElement("table",{ref:B,className:chunkITRGJNWL_cjs.a(q({variant:d,size:p}),c),...L},z&&e__default.default.createElement("caption",{className:"sr-only"},z),e__default.default.createElement(V,null,e__default.default.createElement(y,null,l&&e__default.default.createElement("th",{className:chunkITRGJNWL_cjs.a(w({variant:d,size:p})),scope:"col",role:"columnheader"},e__default.default.createElement("input",{type:"checkbox",checked:$,ref:r=>{r&&(r.indeterminate=F||false);},onChange:r=>G(r.target.checked),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500","aria-label":"Select all rows"})),n.map(r=>e__default.default.createElement("th",{key:r.key,className:chunkITRGJNWL_cjs.a(w({variant:d,size:p}),r.className,r.align==="center"&&"text-center",r.align==="right"&&"text-right"),scope:"col",role:"columnheader",...r.width&&{style:{width:r.width}}},e__default.default.createElement("div",{className:"flex items-center gap-2"},e__default.default.createElement("span",null,r.title),r.sortable&&e__default.default.createElement("button",{type:"button",onClick:()=>j(r),className:"flex flex-col text-gray-400 hover:text-gray-600","aria-label":`Sort by ${r.title}`},e__default.default.createElement("svg",{className:chunkITRGJNWL_cjs.a("w-3 h-3",u?.column===r.key&&u?.direction==="asc"?"text-blue-600":"text-gray-400"),fill:"currentColor",viewBox:"0 0 20 20"},e__default.default.createElement("path",{d:"M5 8l5-5 5 5H5z"})),e__default.default.createElement("svg",{className:chunkITRGJNWL_cjs.a("w-3 h-3 -mt-1",u?.column===r.key&&u?.direction==="desc"?"text-blue-600":"text-gray-400"),fill:"currentColor",viewBox:"0 0 20 20"},e__default.default.createElement("path",{d:"M5 12l5 5 5-5H5z"})))))))),e__default.default.createElement(M,null,i?e__default.default.createElement(y,null,e__default.default.createElement(f,{colSpan:n.length+(l?1:0),variant:d,size:p,className:"text-center py-8"},e__default.default.createElement("div",{className:"flex items-center justify-center gap-2"},e__default.default.createElement("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-blue-600"}),e__default.default.createElement("span",null,"Loading...")))):s.length===0?e__default.default.createElement(y,null,e__default.default.createElement(f,{colSpan:n.length+(l?1:0),variant:d,size:p,className:"text-center py-8 text-gray-500"},m)):s.map((r,a)=>e__default.default.createElement(y,{key:h(r,a),onClick:()=>P?.(r,a),selected:N(r,a),className:chunkITRGJNWL_cjs.a(P&&"cursor-pointer hover:bg-gray-50",N(r,a)&&"bg-blue-50")},l&&e__default.default.createElement(f,{variant:d,size:p},e__default.default.createElement("input",{type:"checkbox",checked:N(r,a),onChange:o=>A(r,a,o.target.checked),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500","aria-label":`Select row ${a+1}`,...l.getCheckboxProps?.(r)})),n.map(o=>e__default.default.createElement(f,{key:o.key,variant:d,size:p,className:chunkITRGJNWL_cjs.a(o.className,o.align==="center"&&"text-center",o.align==="right"&&"text-right")},o.render?o.render(o.dataIndex?r[o.dataIndex]:r,r,a):o.dataIndex?r[o.dataIndex]:r[o.key]))))))),t&&e__default.default.createElement("div",{className:"flex flex-col sm:flex-row items-center justify-between mt-4 px-2 sm:px-4 py-3 bg-card border-t border-border gap-2 sm:gap-0"},e__default.default.createElement("div",{className:"flex items-center gap-2"},e__default.default.createElement("span",{className:"text-sm text-muted-foreground"},"Showing ",(t.current-1)*t.pageSize+1," to"," ",Math.min(t.current*t.pageSize,t.total)," ","of ",t.total," results")),e__default.default.createElement("div",{className:"flex items-center gap-2"},t.showSizeChanger&&e__default.default.createElement("select",{value:t.pageSize,onChange:r=>t.onChange(1,Number(r.target.value)),className:"rounded border-gray-300 text-sm","aria-label":"Select page size"},e__default.default.createElement("option",{value:10},"10 / page"),e__default.default.createElement("option",{value:20},"20 / page"),e__default.default.createElement("option",{value:50},"50 / page"),e__default.default.createElement("option",{value:100},"100 / page")),e__default.default.createElement("div",{className:"flex items-center gap-1"},e__default.default.createElement("button",{type:"button",onClick:()=>t.onChange(t.current-1,t.pageSize),disabled:t.current<=1,className:"px-3 py-1 text-sm border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed","aria-label":"Go to previous page"},"Previous"),e__default.default.createElement("span",{className:"px-3 py-1 text-sm"},"Page ",t.current," of"," ",Math.ceil(t.total/t.pageSize)),e__default.default.createElement("button",{type:"button",onClick:()=>t.onChange(t.current+1,t.pageSize),disabled:t.current>=Math.ceil(t.total/t.pageSize),className:"px-3 py-1 text-sm border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed","aria-label":"Go to next page"},"Next")))))}var R=e__default.default.forwardRef(U);R.displayName="Table";var _=R,V=e__default.default.forwardRef(({className:s,variant:n,size:i,children:m,...c},d)=>e__default.default.createElement("thead",{ref:d,className:chunkITRGJNWL_cjs.a(O({variant:n,size:i}),s),...c},m));V.displayName="TableHeader";var M=e__default.default.forwardRef(({className:s,children:n,...i},m)=>e__default.default.createElement("tbody",{ref:m,className:chunkITRGJNWL_cjs.a(s),...i},n));M.displayName="TableBody";var y=e__default.default.forwardRef(({className:s,children:n,onClick:i,selected:m,...c},d)=>e__default.default.createElement("tr",{ref:d,className:chunkITRGJNWL_cjs.a("border-b border-gray-200",m&&"bg-blue-50",i&&"cursor-pointer hover:bg-gray-50",s),onClick:i,...c},n));y.displayName="TableRow";var f=e__default.default.forwardRef(({className:s,children:n,variant:i,size:m,colSpan:c,rowSpan:d,...p},g)=>e__default.default.createElement("td",{ref:g,className:chunkITRGJNWL_cjs.a(w({variant:i,size:m}),s),colSpan:c,rowSpan:d,...p},n));f.displayName="TableCell";var W=e__default.default.forwardRef(({className:s,children:n,variant:i,size:m,colSpan:c,rowSpan:d,...p},g)=>e__default.default.createElement("th",{ref:g,className:chunkITRGJNWL_cjs.a(w({variant:i,size:m}),"font-medium",s),colSpan:c,rowSpan:d,...p},n));W.displayName="TableHead";exports.a=q;exports.b=O;exports.c=w;exports.d=_;exports.e=V;exports.f=M;exports.g=y;exports.h=f;exports.i=W;//# sourceMappingURL=chunk-SD4IIQ2I.cjs.map
|
|
3
|
-
//# sourceMappingURL=chunk-SD4IIQ2I.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/table.tsx"],"names":["tableVariants","cva","tableHeaderVariants","tableCellVariants","TableComponent","data","columns","loading","emptyText","className","variant","size","rowKey","onRowClick","onSort","controlledSortColumn","controlledSortDirection","pagination","selection","caption","props","ref","internalSortState","setInternalSortState","useState","isControlled","sortState","handleSort","column","newDirection","getRowKey","record","index","isRowSelected","key","handleRowSelection","checked","newSelectedKeys","k","newSelectedRows","_","i","handleSelectAll","allKeys","isAllSelected","isIndeterminate","React","cn","TableHeader","TableRow","input","e","TableBody","TableCell","TableForwardRef","Table","children","onClick","selected","colSpan","rowSpan","TableHead"],"mappings":"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","file":"chunk-SD4IIQ2I.cjs","sourcesContent":["import React, { useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\n// Table variants\nconst tableVariants = cva(\n \"w-full border-collapse transition-all duration-200\",\n {\n variants: {\n variant: {\n default: \"border border-border shadow-sm hover:shadow-md\",\n striped: \"border border-border shadow-sm hover:shadow-md\",\n bordered: \"border-2 border-border shadow-md hover:shadow-lg\",\n hover: \"border border-border shadow-sm hover:shadow-md\",\n elevated: \"border border-border shadow-lg hover:shadow-xl\",\n interactive:\n \"border border-border shadow-sm hover:shadow-md hover:border-primary\",\n },\n size: {\n sm: \"text-xs sm:text-sm\",\n md: \"text-sm sm:text-base\",\n lg: \"text-base sm:text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nconst tableHeaderVariants = cva(\n \"font-medium text-left transition-all duration-200\",\n {\n variants: {\n variant: {\n default: \"bg-muted text-foreground hover:bg-muted/80\",\n striped: \"bg-muted text-foreground hover:bg-muted/80\",\n bordered: \"bg-muted text-foreground hover:bg-muted/80\",\n hover: \"bg-muted text-foreground hover:bg-muted/80\",\n elevated: \"bg-muted text-foreground hover:bg-muted/80\",\n interactive:\n \"bg-muted text-foreground hover:bg-primary/10 hover:text-primary\",\n },\n size: {\n sm: \"px-2 py-1 sm:px-3 sm:py-2\",\n md: \"px-3 py-2 sm:px-4 sm:py-3\",\n lg: \"px-4 py-3 sm:px-6 sm:py-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nconst tableCellVariants = cva(\"border-border transition-all duration-200\", {\n variants: {\n variant: {\n default: \"border-b border-border hover:bg-muted/50\",\n striped: \"border-b border-border even:bg-muted/50 hover:bg-muted/80\",\n bordered: \"border border-border hover:bg-muted/50\",\n hover: \"border-b border-border hover:bg-muted/50\",\n elevated: \"border-b border-border hover:bg-muted/80\",\n interactive:\n \"border-b border-border hover:bg-primary/10 hover:text-primary\",\n },\n size: {\n sm: \"px-2 py-1 sm:px-3 sm:py-2\",\n md: \"px-3 py-2 sm:px-4 sm:py-3\",\n lg: \"px-4 py-3 sm:px-6 sm:py-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\n// Types\nexport interface TableColumn<T = Record<string, unknown>> {\n key: string;\n title: string;\n dataIndex?: keyof T;\n render?: (value: unknown, record: T, index: number) => React.ReactNode;\n sortable?: boolean;\n width?: string | number;\n align?: \"left\" | \"center\" | \"right\";\n className?: string;\n}\n\nexport interface TableProps<T = Record<string, unknown>> extends VariantProps<\n typeof tableVariants\n> {\n data: T[];\n columns: TableColumn<T>[];\n loading?: boolean;\n emptyText?: string;\n caption?: string;\n className?: string;\n rowKey?: keyof T | ((record: T) => string | number);\n onRowClick?: (record: T, index: number) => void;\n onSort?: (column: TableColumn<T>, direction: \"asc\" | \"desc\") => void;\n sortColumn?: string;\n sortDirection?: \"asc\" | \"desc\";\n pagination?: {\n current: number;\n pageSize: number;\n total: number;\n onChange: (page: number, pageSize: number) => void;\n showSizeChanger?: boolean;\n showQuickJumper?: boolean;\n };\n selection?: {\n selectedRowKeys: (string | number)[];\n onChange: (selectedRowKeys: (string | number)[], selectedRows: T[]) => void;\n getCheckboxProps?: (record: T) => { disabled?: boolean };\n };\n}\n\nexport interface TableHeaderProps extends VariantProps<\n typeof tableHeaderVariants\n> {\n className?: string;\n children: React.ReactNode;\n}\n\nexport interface TableBodyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport interface TableRowProps {\n className?: string;\n children: React.ReactNode;\n onClick?: () => void;\n selected?: boolean;\n}\n\nexport interface TableCellProps extends VariantProps<typeof tableCellVariants> {\n className?: string;\n children: React.ReactNode;\n colSpan?: number;\n rowSpan?: number;\n}\n\n// Table Components\nfunction TableComponent<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(\n {\n data,\n columns,\n loading = false,\n emptyText = \"No data\",\n className,\n variant,\n size,\n rowKey = \"id\",\n onRowClick,\n onSort,\n sortColumn: controlledSortColumn,\n sortDirection: controlledSortDirection,\n pagination,\n selection,\n caption,\n ...props\n }: TableProps<T>,\n ref: React.Ref<HTMLTableElement>,\n) {\n // Use controlled props if provided, otherwise use internal state\n const [internalSortState, setInternalSortState] = useState<{\n column: string;\n direction: \"asc\" | \"desc\";\n } | null>(null);\n\n // Determine current sort state (controlled takes precedence)\n const isControlled = controlledSortColumn !== undefined;\n const sortState =\n isControlled && controlledSortColumn\n ? {\n column: controlledSortColumn,\n direction: controlledSortDirection || \"asc\",\n }\n : internalSortState;\n\n // Sync internal state with controlled props when they change\n // Sync internal state with controlled props when they change\n // Note: unneeded re-render caused by resetting state. We derive sortState above so stale internal state is ignored.\n /* \n useEffect(() => {\n if (isControlled && controlledSortColumn) {\n setInternalSortState(null);\n }\n }, [isControlled, controlledSortColumn]); \n */\n\n const handleSort = (column: TableColumn<T>) => {\n if (!column.sortable) return;\n\n const newDirection =\n sortState?.column === column.key && sortState?.direction === \"asc\"\n ? \"desc\"\n : \"asc\";\n\n // Only update internal state if not controlled\n if (!isControlled) {\n setInternalSortState({ column: column.key, direction: newDirection });\n }\n\n // Always call onSort callback for controlled usage\n onSort?.(column, newDirection);\n };\n\n const getRowKey = (record: T, index: number): string | number => {\n if (typeof rowKey === \"function\") {\n return rowKey(record);\n }\n return (record[rowKey] as string | number) || index;\n };\n\n const isRowSelected = (record: T, index: number): boolean => {\n if (!selection) return false;\n const key = getRowKey(record, index);\n return selection.selectedRowKeys.includes(key);\n };\n\n const handleRowSelection = (\n record: T,\n index: number,\n checked: boolean,\n ): void => {\n if (!selection) return;\n\n const key = getRowKey(record, index);\n const newSelectedKeys = checked\n ? [...selection.selectedRowKeys, key]\n : selection.selectedRowKeys.filter((k) => k !== key);\n\n const newSelectedRows = data.filter((_, i) =>\n newSelectedKeys.includes(getRowKey(_, i)),\n );\n\n selection.onChange(newSelectedKeys, newSelectedRows);\n };\n\n const handleSelectAll = (checked: boolean) => {\n if (!selection) return;\n\n const allKeys = data.map((record, index) => getRowKey(record, index));\n const newSelectedKeys = checked ? allKeys : [];\n const newSelectedRows = checked ? data : [];\n\n selection.onChange(newSelectedKeys, newSelectedRows);\n };\n\n const isAllSelected =\n selection &&\n data.length > 0 &&\n selection.selectedRowKeys.length === data.length;\n\n const isIndeterminate =\n selection &&\n selection.selectedRowKeys.length > 0 &&\n selection.selectedRowKeys.length < data.length;\n\n return (\n <div className=\"w-full overflow-x-auto\">\n <div className=\"min-w-full\">\n <table\n ref={ref}\n className={cn(tableVariants({ variant, size }), className)}\n {...props}\n >\n {caption && <caption className=\"sr-only\">{caption}</caption>}\n <TableHeader>\n <TableRow>\n {selection && (\n <th\n className={cn(tableCellVariants({ variant, size }))}\n scope=\"col\"\n role=\"columnheader\"\n >\n <input\n type=\"checkbox\"\n checked={isAllSelected}\n ref={(input) => {\n if (input) input.indeterminate = isIndeterminate || false;\n }}\n onChange={(e) => handleSelectAll(e.target.checked)}\n className=\"rounded border-gray-300 text-blue-600 focus:ring-blue-500\"\n aria-label=\"Select all rows\"\n />\n </th>\n )}\n {columns.map((column) => (\n <th\n key={column.key}\n className={cn(\n tableCellVariants({ variant, size }),\n column.className,\n column.align === \"center\" && \"text-center\",\n column.align === \"right\" && \"text-right\",\n )}\n scope=\"col\"\n role=\"columnheader\"\n {...(column.width && { style: { width: column.width } })}\n >\n <div className=\"flex items-center gap-2\">\n <span>{column.title}</span>\n {column.sortable && (\n <button\n type=\"button\"\n onClick={() => handleSort(column)}\n className=\"flex flex-col text-gray-400 hover:text-gray-600\"\n aria-label={`Sort by ${column.title}`}\n >\n <svg\n className={cn(\n \"w-3 h-3\",\n sortState?.column === column.key &&\n sortState?.direction === \"asc\"\n ? \"text-blue-600\"\n : \"text-gray-400\",\n )}\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path d=\"M5 8l5-5 5 5H5z\" />\n </svg>\n <svg\n className={cn(\n \"w-3 h-3 -mt-1\",\n sortState?.column === column.key &&\n sortState?.direction === \"desc\"\n ? \"text-blue-600\"\n : \"text-gray-400\",\n )}\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path d=\"M5 12l5 5 5-5H5z\" />\n </svg>\n </button>\n )}\n </div>\n </th>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {loading ? (\n <TableRow>\n <TableCell\n colSpan={columns.length + (selection ? 1 : 0)}\n variant={variant}\n size={size}\n className=\"text-center py-8\"\n >\n <div className=\"flex items-center justify-center gap-2\">\n <div className=\"animate-spin rounded-full h-4 w-4 border-b-2 border-blue-600\"></div>\n <span>Loading...</span>\n </div>\n </TableCell>\n </TableRow>\n ) : data.length === 0 ? (\n <TableRow>\n <TableCell\n colSpan={columns.length + (selection ? 1 : 0)}\n variant={variant}\n size={size}\n className=\"text-center py-8 text-gray-500\"\n >\n {emptyText}\n </TableCell>\n </TableRow>\n ) : (\n data.map((record, index) => (\n <TableRow\n key={getRowKey(record, index)}\n onClick={() => onRowClick?.(record, index)}\n selected={isRowSelected(record, index)}\n className={cn(\n onRowClick && \"cursor-pointer hover:bg-gray-50\",\n isRowSelected(record, index) && \"bg-blue-50\",\n )}\n >\n {selection && (\n <TableCell variant={variant} size={size}>\n <input\n type=\"checkbox\"\n checked={isRowSelected(record, index)}\n onChange={(e) =>\n handleRowSelection(record, index, e.target.checked)\n }\n className=\"rounded border-gray-300 text-blue-600 focus:ring-blue-500\"\n aria-label={`Select row ${index + 1}`}\n {...selection.getCheckboxProps?.(record)}\n />\n </TableCell>\n )}\n {columns.map((column) => (\n <TableCell\n key={column.key}\n variant={variant}\n size={size}\n className={cn(\n column.className,\n column.align === \"center\" && \"text-center\",\n column.align === \"right\" && \"text-right\",\n )}\n >\n {column.render\n ? column.render(\n column.dataIndex\n ? record[column.dataIndex]\n : record,\n record,\n index,\n )\n : column.dataIndex\n ? (record[column.dataIndex] as React.ReactNode)\n : ((record as Record<string, unknown>)[\n column.key\n ] as React.ReactNode)}\n </TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n </table>\n </div>\n\n {pagination && (\n <div className=\"flex flex-col sm:flex-row items-center justify-between mt-4 px-2 sm:px-4 py-3 bg-card border-t border-border gap-2 sm:gap-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm text-muted-foreground\">\n Showing {(pagination.current - 1) * pagination.pageSize + 1} to{\" \"}\n {Math.min(\n pagination.current * pagination.pageSize,\n pagination.total,\n )}{\" \"}\n of {pagination.total} results\n </span>\n </div>\n\n <div className=\"flex items-center gap-2\">\n {pagination.showSizeChanger && (\n <select\n value={pagination.pageSize}\n onChange={(e) => pagination.onChange(1, Number(e.target.value))}\n className=\"rounded border-gray-300 text-sm\"\n aria-label=\"Select page size\"\n >\n <option value={10}>10 / page</option>\n <option value={20}>20 / page</option>\n <option value={50}>50 / page</option>\n <option value={100}>100 / page</option>\n </select>\n )}\n\n <div className=\"flex items-center gap-1\">\n <button\n type=\"button\"\n onClick={() =>\n pagination.onChange(\n pagination.current - 1,\n pagination.pageSize,\n )\n }\n disabled={pagination.current <= 1}\n className=\"px-3 py-1 text-sm border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed\"\n aria-label=\"Go to previous page\"\n >\n Previous\n </button>\n\n <span className=\"px-3 py-1 text-sm\">\n Page {pagination.current} of{\" \"}\n {Math.ceil(pagination.total / pagination.pageSize)}\n </span>\n\n <button\n type=\"button\"\n onClick={() =>\n pagination.onChange(\n pagination.current + 1,\n pagination.pageSize,\n )\n }\n disabled={\n pagination.current >=\n Math.ceil(pagination.total / pagination.pageSize)\n }\n className=\"px-3 py-1 text-sm border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed\"\n aria-label=\"Go to next page\"\n >\n Next\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n\nconst TableForwardRef = React.forwardRef(TableComponent) as <\n T extends Record<string, unknown> = Record<string, unknown>,\n>(\n props: TableProps<T> & { ref?: React.Ref<HTMLTableElement> },\n) => React.ReactElement;\n\n(\n TableForwardRef as React.ComponentType<TableProps<unknown>> & {\n displayName?: string;\n }\n).displayName = \"Table\";\n\nexport const Table = TableForwardRef;\n\nexport const TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n TableHeaderProps\n>(({ className, variant, size, children, ...props }, ref) => (\n <thead\n ref={ref}\n className={cn(tableHeaderVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </thead>\n));\n\nTableHeader.displayName = \"TableHeader\";\n\nexport const TableBody = React.forwardRef<\n HTMLTableSectionElement,\n TableBodyProps\n>(({ className, children, ...props }, ref) => (\n <tbody ref={ref} className={cn(className)} {...props}>\n {children}\n </tbody>\n));\n\nTableBody.displayName = \"TableBody\";\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, children, onClick, selected, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b border-gray-200\",\n selected && \"bg-blue-50\",\n onClick && \"cursor-pointer hover:bg-gray-50\",\n className,\n )}\n onClick={onClick}\n {...props}\n >\n {children}\n </tr>\n ),\n);\n\nTableRow.displayName = \"TableRow\";\n\nexport const TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, children, variant, size, colSpan, rowSpan, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(tableCellVariants({ variant, size }), className)}\n colSpan={colSpan}\n rowSpan={rowSpan}\n {...props}\n >\n {children}\n </td>\n ),\n);\n\nTableCell.displayName = \"TableCell\";\n\nexport const TableHead = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, children, variant, size, colSpan, rowSpan, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n tableCellVariants({ variant, size }),\n \"font-medium\",\n className,\n )}\n colSpan={colSpan}\n rowSpan={rowSpan}\n {...props}\n >\n {children}\n </th>\n ),\n);\n\nTableHead.displayName = \"TableHead\";\n\n// Export variants for external use\nexport { tableVariants, tableHeaderVariants, tableCellVariants };\n"]}
|
package/dist/chunk-TJFZAMBB.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import {a}from'./chunk-AC2JBXHQ.js';import r from'react';import {cva}from'class-variance-authority';import {PawPrint,Bird,Fish,Dog,Cat,Butterfly,Bug,Anchor,Umbrella,Snowflake,Fire,Lightning,Sparkle,Crown,Medal,Trophy,Flag,Compass,Bookmark,Scroll,Ghost,Skull,Pill,Syringe,TestTube,Flask,Atom,Rocket,Alien,MapPin,Key,Gift,PuzzlePiece,GameController,Moon,Star,Planet,Mountains,Leaf,Flower,Tree,PaintBrush,Wrench,ChartPie,ChartBar,ChartLine,Buildings,Briefcase,Lightbulb,GraduationCap,BookOpen,Book,StopCircle,PauseCircle,PlayCircle,MusicNote,TennisBall,SoccerBall,Football,Basketball,Hamburger,Pizza,Coffee,Bicycle,Boat,Airplane,Train,Bus,Car,Activity,Heart,Money,CreditCard,ShoppingBag,ShoppingCart,YoutubeLogo,LinkedinLogo,InstagramLogo,FacebookLogo,TwitterLogo,GithubLogo,CloudLightning,CloudSnow,CloudRain,Cloud,Sun,HardDrive,Cpu,BatteryWarning,WifiX,WifiHigh,ShieldCheck,Shield,EyeSlash,Eye,LockOpen,Lock,Timer,Calendar,Clock,Question,Info,Warning,XCircle,CheckCircle,FileImage,FilePdf,FileText,FolderOpen,Folder,File,VideoCamera,Image,Camera,SpeakerX,SpeakerLow,SpeakerHigh,Stop,Pause,Play,BellSlash,Bell,ChatCircle,Phone,Envelope,Share,Upload,Download,Copy,PencilSimple,Trash,X,Check,Minus,Plus,ArrowDown,ArrowUp,ArrowRight,ArrowLeft,CaretDown,CaretUp,CaretRight,CaretLeft,List,MagnifyingGlass,Gear,User,House}from'phosphor-react';var n={house:House,user:User,settings:Gear,search:MagnifyingGlass,menu:List,x:X,"chevron-left":CaretLeft,"chevron-right":CaretRight,"chevron-up":CaretUp,"chevron-down":CaretDown,"arrow-left":ArrowLeft,"arrow-right":ArrowRight,"arrow-up":ArrowUp,"arrow-down":ArrowDown,plus:Plus,minus:Minus,check:Check,"x-icon":X,trash:Trash,edit:PencilSimple,copy:Copy,download:Download,upload:Upload,share:Share,heart:Heart,star:Star,bookmark:Bookmark,mail:Envelope,phone:Phone,"message-circle":ChatCircle,bell:Bell,"bell-slash":BellSlash,play:Play,pause:Pause,stop:Stop,"volume-high":SpeakerHigh,"volume-low":SpeakerLow,"volume-x":SpeakerX,camera:Camera,image:Image,video:VideoCamera,file:File,folder:Folder,"folder-open":FolderOpen,"file-text":FileText,"file-pdf":FilePdf,"file-image":FileImage,"check-circle":CheckCircle,"x-circle":XCircle,warning:Warning,info:Info,question:Question,clock:Clock,calendar:Calendar,timer:Timer,lock:Lock,"lock-open":LockOpen,eye:Eye,"eye-slash":EyeSlash,shield:Shield,"shield-check":ShieldCheck,wifi:WifiHigh,"wifi-slash":WifiX,"battery-warning":BatteryWarning,cpu:Cpu,"hard-drive":HardDrive,sun:Sun,moon:Moon,cloud:Cloud,"cloud-rain":CloudRain,"cloud-snow":CloudSnow,"cloud-lightning":CloudLightning,github:GithubLogo,twitter:TwitterLogo,facebook:FacebookLogo,instagram:InstagramLogo,linkedin:LinkedinLogo,youtube:YoutubeLogo,"shopping-cart":ShoppingCart,"shopping-bag":ShoppingBag,"credit-card":CreditCard,money:Money,"heart-icon":Heart,activity:Activity,car:Car,bus:Bus,train:Train,plane:Airplane,ship:Boat,bicycle:Bicycle,coffee:Coffee,pizza:Pizza,hamburger:Hamburger,basketball:Basketball,football:Football,soccer:SoccerBall,tennis:TennisBall,"music-note":MusicNote,"play-circle":PlayCircle,"pause-circle":PauseCircle,"stop-circle":StopCircle,book:Book,"book-open":BookOpen,"graduation-cap":GraduationCap,lightbulb:Lightbulb,briefcase:Briefcase,building:Buildings,"chart-line":ChartLine,"chart-bar":ChartBar,"chart-pie":ChartPie,wrench:Wrench,"paint-brush":PaintBrush,tree:Tree,flower:Flower,leaf:Leaf,mountain:Mountains,rocket:Rocket,planet:Planet,"star-icon":Star,"moon-icon":Moon,"game-controller":GameController,puzzle:PuzzlePiece,gift:Gift,key:Key,"map-pin":MapPin,compass:Compass,flag:Flag,trophy:Trophy,medal:Medal,crown:Crown,sparkle:Sparkle,zap:Lightning,fire:Fire,snowflake:Snowflake,umbrella:Umbrella,anchor:Anchor,bug:Bug,butterfly:Butterfly,cat:Cat,dog:Dog,fish:Fish,bird:Bird,"paw-print":PawPrint,alien:Alien,spaceship:Rocket,atom:Atom,flask:Flask,"test-tube":TestTube,syringe:Syringe,pill:Pill,skull:Skull,ghost:Ghost,scroll:Scroll,"bookmark-icon":Bookmark,"compass-icon":Compass,"flag-icon":Flag,"trophy-icon":Trophy,"medal-icon":Medal,"crown-icon":Crown,"sparkle-icon":Sparkle,"zap-icon":Lightning,"fire-icon":Fire,"snowflake-icon":Snowflake,"umbrella-icon":Umbrella,"anchor-icon":Anchor,"bug-icon":Bug,"butterfly-icon":Butterfly,"cat-icon":Cat,"dog-icon":Dog,"fish-icon":Fish,"bird-icon":Bird,"paw-print-icon":PawPrint},Sa=cva("",{variants:{size:{xs:"w-3 h-3",sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6",xl:"w-8 h-8","2xl":"w-10 h-10","3xl":"w-12 h-12"},weight:{thin:"",light:"",regular:"",bold:"",fill:"",duotone:""},color:{current:"text-current",primary:"text-blue-600",secondary:"text-gray-600",success:"text-green-600",warning:"text-yellow-600",error:"text-red-600",muted:"text-gray-400"}},defaultVariants:{size:"md",weight:"regular",color:"current"}}),Ba=r.forwardRef(({name:i,size:t,weight:e,color:l,className:c,...s},p)=>{let o=n[i];return o?r.createElement(o,{ref:p,weight:e,className:a(Sa({size:t,weight:e,color:l}),c),...s}):null});Ba.displayName="Icon";var Ma=Object.keys(n);export{Ba as a,Ma as b};//# sourceMappingURL=chunk-TJFZAMBB.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-TJFZAMBB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/icon.tsx"],"names":["iconMap","House","User","Gear","MagnifyingGlass","List","X","CaretLeft","CaretRight","CaretUp","CaretDown","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Plus","Minus","Check","XIcon","Trash","PencilSimple","Copy","Download","Upload","Share","Heart","Star","Bookmark","Envelope","Phone","ChatCircle","Bell","BellSlash","Play","Pause","Stop","SpeakerHigh","SpeakerLow","SpeakerX","Camera","Image","VideoCamera","File","Folder","FolderOpen","FileText","FilePdf","FileImage","CheckCircle","XCircle","Warning","Info","Question","Clock","Calendar","Timer","Lock","LockOpen","Eye","EyeSlash","Shield","ShieldCheck","WifiHigh","WifiX","BatteryWarning","Cpu","HardDrive","Sun","Moon","Cloud","CloudRain","CloudSnow","CloudLightning","GithubLogo","TwitterLogo","FacebookLogo","InstagramLogo","LinkedinLogo","YoutubeLogo","ShoppingCart","ShoppingBag","CreditCard","Money","HeartIcon","Activity","Car","Bus","Train","Airplane","Boat","Bicycle","Coffee","Pizza","Hamburger","Basketball","Football","SoccerBall","TennisBall","MusicNote","PlayCircle","PauseCircle","StopCircle","Book","BookOpen","GraduationCap","Lightbulb","Briefcase","Buildings","ChartLine","ChartBar","ChartPie","Wrench","PaintBrush","Tree","Flower","Leaf","Mountains","Rocket","Planet","StarIcon","MoonIcon","GameController","PuzzlePiece","Gift","Key","MapPin","Compass","Flag","Trophy","Medal","Crown","Sparkle","Lightning","Fire","Snowflake","Umbrella","Anchor","Bug","Butterfly","Cat","Dog","Fish","Bird","PawPrint","Alien","Spaceship","Atom","Flask","TestTube","Syringe","Pill","Skull","Ghost","Scroll","BookmarkIcon","CompassIcon","FlagIcon","TrophyIcon","MedalIcon","CrownIcon","SparkleIcon","ZapIcon","FireIcon","SnowflakeIcon","UmbrellaIcon","AnchorIcon","BugIcon","ButterflyIcon","CatIcon","DogIcon","FishIcon","BirdIcon","PawPrintIcon","iconVariants","cva","Icon","React","name","size","weight","color","className","props","ref","IconComponent","cn","iconNames"],"mappings":"2zCAsOMA,CAAAA,CAA6C,CAEjD,MAAOC,KAAAA,CACP,IAAA,CAAMC,IAAAA,CACN,QAAA,CAAUC,IAAAA,CACV,MAAA,CAAQC,gBACR,IAAA,CAAMC,IAAAA,CACN,EAAGC,CAAAA,CACH,cAAA,CAAgBC,UAChB,eAAA,CAAiBC,UAAAA,CACjB,YAAA,CAAcC,OAAAA,CACd,cAAA,CAAgBC,SAAAA,CAChB,aAAcC,SAAAA,CACd,aAAA,CAAeC,WACf,UAAA,CAAYC,OAAAA,CACZ,aAAcC,SAAAA,CAGd,IAAA,CAAMC,IAAAA,CACN,KAAA,CAAOC,KAAAA,CACP,KAAA,CAAOC,MACP,QAAA,CAAUC,CAAAA,CACV,MAAOC,KAAAA,CACP,IAAA,CAAMC,aACN,IAAA,CAAMC,IAAAA,CACN,QAAA,CAAUC,QAAAA,CACV,MAAA,CAAQC,MAAAA,CACR,MAAOC,KAAAA,CACP,KAAA,CAAOC,MACP,IAAA,CAAMC,IAAAA,CACN,SAAUC,QAAAA,CAGV,IAAA,CAAMC,QAAAA,CACN,KAAA,CAAOC,KAAAA,CACP,gBAAA,CAAkBC,WAClB,IAAA,CAAMC,IAAAA,CACN,aAAcC,SAAAA,CAGd,IAAA,CAAMC,KACN,KAAA,CAAOC,KAAAA,CACP,IAAA,CAAMC,IAAAA,CACN,aAAA,CAAeC,WAAAA,CACf,aAAcC,UAAAA,CACd,UAAA,CAAYC,SACZ,MAAA,CAAQC,MAAAA,CACR,MAAOC,KAAAA,CACP,KAAA,CAAOC,WAAAA,CAGP,IAAA,CAAMC,IAAAA,CACN,MAAA,CAAQC,OACR,aAAA,CAAeC,UAAAA,CACf,YAAaC,QAAAA,CACb,UAAA,CAAYC,QACZ,YAAA,CAAcC,SAAAA,CAGd,cAAA,CAAgBC,WAAAA,CAChB,UAAA,CAAYC,OAAAA,CACZ,QAASC,OAAAA,CACT,IAAA,CAAMC,KACN,QAAA,CAAUC,QAAAA,CAGV,MAAOC,KAAAA,CACP,QAAA,CAAUC,QAAAA,CACV,KAAA,CAAOC,KAAAA,CAGP,IAAA,CAAMC,KACN,WAAA,CAAaC,QAAAA,CACb,IAAKC,GAAAA,CACL,WAAA,CAAaC,SACb,MAAA,CAAQC,MAAAA,CACR,cAAA,CAAgBC,WAAAA,CAGhB,IAAA,CAAMC,QAAAA,CACN,aAAcC,KAAAA,CACd,iBAAA,CAAmBC,eACnB,GAAA,CAAKC,GAAAA,CACL,aAAcC,SAAAA,CAGd,GAAA,CAAKC,GAAAA,CACL,IAAA,CAAMC,IAAAA,CACN,KAAA,CAAOC,MACP,YAAA,CAAcC,SAAAA,CACd,aAAcC,SAAAA,CACd,iBAAA,CAAmBC,eAGnB,MAAA,CAAQC,UAAAA,CACR,OAAA,CAASC,WAAAA,CACT,QAAA,CAAUC,YAAAA,CACV,UAAWC,aAAAA,CACX,QAAA,CAAUC,aACV,OAAA,CAASC,WAAAA,CAGT,gBAAiBC,YAAAA,CACjB,cAAA,CAAgBC,WAAAA,CAChB,aAAA,CAAeC,UAAAA,CACf,KAAA,CAAOC,MAGP,YAAA,CAAcC,KAAAA,CACd,SAAUC,QAAAA,CAGV,GAAA,CAAKC,IACL,GAAA,CAAKC,GAAAA,CACL,KAAA,CAAOC,KAAAA,CACP,KAAA,CAAOC,QAAAA,CACP,KAAMC,IAAAA,CACN,OAAA,CAASC,QAGT,MAAA,CAAQC,MAAAA,CACR,MAAOC,KAAAA,CACP,SAAA,CAAWC,SAAAA,CAGX,UAAA,CAAYC,UAAAA,CACZ,QAAA,CAAUC,SACV,MAAA,CAAQC,UAAAA,CACR,OAAQC,UAAAA,CAGR,YAAA,CAAcC,UACd,aAAA,CAAeC,UAAAA,CACf,cAAA,CAAgBC,WAAAA,CAChB,aAAA,CAAeC,UAAAA,CAGf,KAAMC,IAAAA,CACN,WAAA,CAAaC,SACb,gBAAA,CAAkBC,aAAAA,CAClB,UAAWC,SAAAA,CAGX,SAAA,CAAWC,SAAAA,CACX,QAAA,CAAUC,SAAAA,CACV,YAAA,CAAcC,UACd,WAAA,CAAaC,QAAAA,CACb,YAAaC,QAAAA,CAGb,MAAA,CAAQC,OACR,aAAA,CAAeC,UAAAA,CAGf,IAAA,CAAMC,IAAAA,CACN,MAAA,CAAQC,MAAAA,CACR,KAAMC,IAAAA,CACN,QAAA,CAAUC,UAGV,MAAA,CAAQC,MAAAA,CACR,OAAQC,MAAAA,CACR,WAAA,CAAaC,IAAAA,CACb,WAAA,CAAaC,IAAAA,CAGb,iBAAA,CAAmBC,eACnB,MAAA,CAAQC,WAAAA,CAGR,KAAMC,IAAAA,CACN,GAAA,CAAKC,IACL,SAAA,CAAWC,MAAAA,CACX,OAAA,CAASC,OAAAA,CACT,IAAA,CAAMC,IAAAA,CACN,OAAQC,MAAAA,CACR,KAAA,CAAOC,MACP,KAAA,CAAOC,KAAAA,CACP,QAASC,OAAAA,CACT,GAAA,CAAKC,SAAAA,CACL,IAAA,CAAMC,IAAAA,CACN,SAAA,CAAWC,UACX,QAAA,CAAUC,QAAAA,CACV,OAAQC,MAAAA,CACR,GAAA,CAAKC,IACL,SAAA,CAAWC,SAAAA,CACX,GAAA,CAAKC,GAAAA,CACL,GAAA,CAAKC,GAAAA,CACL,KAAMC,IAAAA,CACN,IAAA,CAAMC,KACN,WAAA,CAAaC,QAAAA,CAGb,MAAOC,KAAAA,CACP,SAAA,CAAWC,MAAAA,CACX,IAAA,CAAMC,IAAAA,CACN,KAAA,CAAOC,MACP,WAAA,CAAaC,QAAAA,CACb,QAASC,OAAAA,CACT,IAAA,CAAMC,KACN,KAAA,CAAOC,KAAAA,CACP,KAAA,CAAOC,KAAAA,CACP,MAAA,CAAQC,MAAAA,CACR,gBAAiBC,QAAAA,CACjB,cAAA,CAAgBC,QAChB,WAAA,CAAaC,IAAAA,CACb,cAAeC,MAAAA,CACf,YAAA,CAAcC,KAAAA,CACd,YAAA,CAAcC,KAAAA,CACd,cAAA,CAAgBC,QAChB,UAAA,CAAYC,SAAAA,CACZ,YAAaC,IAAAA,CACb,gBAAA,CAAkBC,UAClB,eAAA,CAAiBC,QAAAA,CACjB,aAAA,CAAeC,MAAAA,CACf,UAAA,CAAYC,GAAAA,CACZ,iBAAkBC,SAAAA,CAClB,UAAA,CAAYC,IACZ,UAAA,CAAYC,GAAAA,CACZ,YAAaC,IAAAA,CACb,WAAA,CAAaC,IAAAA,CACb,gBAAA,CAAkBC,QACpB,CAAA,CAIMC,GAAeC,GAAAA,CAAI,EAAA,CAAI,CAC3B,QAAA,CAAU,CACR,KAAM,CACJ,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,GAAI,SAAA,CACJ,KAAA,CAAO,YACP,KAAA,CAAO,WACT,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,GACN,KAAA,CAAO,EAAA,CACP,QAAS,EAAA,CACT,IAAA,CAAM,GACN,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EACX,CAAA,CACA,KAAA,CAAO,CACL,OAAA,CAAS,cAAA,CACT,QAAS,eAAA,CACT,SAAA,CAAW,gBACX,OAAA,CAAS,gBAAA,CACT,OAAA,CAAS,iBAAA,CACT,KAAA,CAAO,cAAA,CACP,MAAO,eACT,CACF,EACA,eAAA,CAAiB,CACf,KAAM,IAAA,CACN,MAAA,CAAQ,SAAA,CACR,KAAA,CAAO,SACT,CACF,CAAC,CAAA,CASYC,EAAAA,CAAOC,EAAM,UAAA,CACxB,CAAC,CAAE,IAAA,CAAAC,CAAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,MAAA,CAAAC,CAAAA,CAAQ,MAAAC,CAAAA,CAAO,SAAA,CAAAC,EAAW,GAAGC,CAAM,EAAGC,CAAAA,GAAQ,CAC3D,IAAMC,CAAAA,CAAgBxL,CAAAA,CAAQiL,CAAI,EAElC,OAAKO,CAAAA,CAMHR,EAAA,aAAA,CAACQ,CAAAA,CAAA,CACC,GAAA,CAAKD,CAAAA,CACL,MAAA,CAAQJ,CAAAA,CACR,SAAA,CAAWM,CAAAA,CAAGZ,GAAa,CAAE,IAAA,CAAAK,EAAM,MAAA,CAAAC,CAAAA,CAAQ,MAAAC,CAAM,CAAC,CAAA,CAAGC,CAAS,CAAA,CAC7D,GAAGC,EACN,CAAA,CATO,IAWX,CACF,EAEAP,EAAAA,CAAK,WAAA,CAAc,OAGZ,IAAMW,EAAAA,CAAY,MAAA,CAAO,IAAA,CAAK1L,CAAO","file":"chunk-TJFZAMBB.js","sourcesContent":["import React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\n// Import commonly used Phosphor icons\nimport {\n // Navigation\n House,\n User,\n Gear,\n MagnifyingGlass,\n List,\n X,\n CaretLeft,\n CaretRight,\n CaretUp,\n CaretDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n ArrowDown,\n \n // Actions\n Plus,\n Minus,\n Check,\n X as XIcon,\n Trash,\n PencilSimple,\n Copy,\n Download,\n Upload,\n Share,\n Heart,\n Star,\n Bookmark,\n \n // Communication\n Envelope,\n Phone,\n ChatCircle,\n Bell,\n BellSlash,\n \n // Media\n Play,\n Pause,\n Stop,\n SpeakerHigh,\n SpeakerLow,\n SpeakerX,\n Camera,\n Image,\n VideoCamera,\n \n // Files\n File,\n Folder,\n FolderOpen,\n FileText,\n FilePdf,\n FileImage,\n \n // Status\n CheckCircle,\n XCircle,\n Warning,\n Info,\n Question,\n \n // Time\n Clock,\n Calendar,\n Timer,\n \n // Security\n Lock,\n LockOpen,\n Eye,\n EyeSlash,\n Shield,\n ShieldCheck,\n \n // Technology\n WifiHigh,\n WifiX,\n BatteryWarning,\n Cpu,\n HardDrive,\n \n // Weather\n Sun,\n Moon,\n Cloud,\n CloudRain,\n CloudSnow,\n CloudLightning,\n \n // Social\n GithubLogo,\n TwitterLogo,\n FacebookLogo,\n InstagramLogo,\n LinkedinLogo,\n YoutubeLogo,\n \n // Shopping\n ShoppingCart,\n ShoppingBag,\n CreditCard,\n Money,\n \n // Health\n Heart as HeartIcon,\n Activity,\n \n // Transportation\n Car,\n Bus,\n Train,\n Airplane,\n Boat,\n Bicycle,\n \n // Food\n Coffee,\n Pizza,\n Hamburger,\n \n // Sports\n Basketball,\n Football,\n SoccerBall,\n TennisBall,\n \n // Music\n MusicNote,\n PlayCircle,\n PauseCircle,\n StopCircle,\n \n // Education\n Book,\n BookOpen,\n GraduationCap,\n Lightbulb,\n \n // Business\n Briefcase,\n Buildings,\n ChartLine,\n ChartBar,\n ChartPie,\n \n // Tools\n Wrench,\n PaintBrush,\n \n // Nature\n Tree,\n Flower,\n Leaf,\n Mountains,\n \n // Space\n Rocket,\n Planet,\n Star as StarIcon,\n Moon as MoonIcon,\n \n // Gaming\n GameController,\n PuzzlePiece,\n \n // Miscellaneous\n Gift,\n Key,\n MapPin,\n Compass,\n Flag,\n Trophy,\n Medal,\n Crown,\n Sparkle,\n Lightning,\n Fire,\n Snowflake,\n Umbrella,\n Anchor,\n Bug,\n Butterfly,\n Cat,\n Dog,\n Fish,\n Bird,\n PawPrint,\n \n // Nostromo themed\n Alien,\n Rocket as Spaceship,\n Atom,\n Flask,\n TestTube,\n Syringe,\n Pill,\n Skull,\n Ghost,\n Scroll,\n Bookmark as BookmarkIcon,\n Compass as CompassIcon,\n Flag as FlagIcon,\n Trophy as TrophyIcon,\n Medal as MedalIcon,\n Crown as CrownIcon,\n Sparkle as SparkleIcon,\n Lightning as ZapIcon,\n Fire as FireIcon,\n Snowflake as SnowflakeIcon,\n Umbrella as UmbrellaIcon,\n Anchor as AnchorIcon,\n Bug as BugIcon,\n Butterfly as ButterflyIcon,\n Cat as CatIcon,\n Dog as DogIcon,\n Fish as FishIcon,\n Bird as BirdIcon,\n PawPrint as PawPrintIcon,\n} from 'phosphor-react';\n\n// Create a mapping of icon names to components\nconst iconMap: Record<string, React.ElementType> = {\n // Navigation\n house: House,\n user: User,\n settings: Gear,\n search: MagnifyingGlass,\n menu: List,\n x: X,\n 'chevron-left': CaretLeft,\n 'chevron-right': CaretRight,\n 'chevron-up': CaretUp,\n 'chevron-down': CaretDown,\n 'arrow-left': ArrowLeft,\n 'arrow-right': ArrowRight,\n 'arrow-up': ArrowUp,\n 'arrow-down': ArrowDown,\n \n // Actions\n plus: Plus,\n minus: Minus,\n check: Check,\n 'x-icon': XIcon,\n trash: Trash,\n edit: PencilSimple,\n copy: Copy,\n download: Download,\n upload: Upload,\n share: Share,\n heart: Heart,\n star: Star,\n bookmark: Bookmark,\n \n // Communication\n mail: Envelope,\n phone: Phone,\n 'message-circle': ChatCircle,\n bell: Bell,\n 'bell-slash': BellSlash,\n \n // Media\n play: Play,\n pause: Pause,\n stop: Stop,\n 'volume-high': SpeakerHigh,\n 'volume-low': SpeakerLow,\n 'volume-x': SpeakerX,\n camera: Camera,\n image: Image,\n video: VideoCamera,\n \n // Files\n file: File,\n folder: Folder,\n 'folder-open': FolderOpen,\n 'file-text': FileText,\n 'file-pdf': FilePdf,\n 'file-image': FileImage,\n \n // Status\n 'check-circle': CheckCircle,\n 'x-circle': XCircle,\n warning: Warning,\n info: Info,\n question: Question,\n \n // Time\n clock: Clock,\n calendar: Calendar,\n timer: Timer,\n \n // Security\n lock: Lock,\n 'lock-open': LockOpen,\n eye: Eye,\n 'eye-slash': EyeSlash,\n shield: Shield,\n 'shield-check': ShieldCheck,\n \n // Technology\n wifi: WifiHigh,\n 'wifi-slash': WifiX,\n 'battery-warning': BatteryWarning,\n cpu: Cpu,\n 'hard-drive': HardDrive,\n \n // Weather\n sun: Sun,\n moon: Moon,\n cloud: Cloud,\n 'cloud-rain': CloudRain,\n 'cloud-snow': CloudSnow,\n 'cloud-lightning': CloudLightning,\n \n // Social\n github: GithubLogo,\n twitter: TwitterLogo,\n facebook: FacebookLogo,\n instagram: InstagramLogo,\n linkedin: LinkedinLogo,\n youtube: YoutubeLogo,\n \n // Shopping\n 'shopping-cart': ShoppingCart,\n 'shopping-bag': ShoppingBag,\n 'credit-card': CreditCard,\n money: Money,\n \n // Health\n 'heart-icon': HeartIcon,\n activity: Activity,\n \n // Transportation\n car: Car,\n bus: Bus,\n train: Train,\n plane: Airplane,\n ship: Boat,\n bicycle: Bicycle,\n \n // Food\n coffee: Coffee,\n pizza: Pizza,\n hamburger: Hamburger,\n \n // Sports\n basketball: Basketball,\n football: Football,\n soccer: SoccerBall,\n tennis: TennisBall,\n \n // Music\n 'music-note': MusicNote,\n 'play-circle': PlayCircle,\n 'pause-circle': PauseCircle,\n 'stop-circle': StopCircle,\n \n // Education\n book: Book,\n 'book-open': BookOpen,\n 'graduation-cap': GraduationCap,\n lightbulb: Lightbulb,\n \n // Business\n briefcase: Briefcase,\n building: Buildings,\n 'chart-line': ChartLine,\n 'chart-bar': ChartBar,\n 'chart-pie': ChartPie,\n \n // Tools\n wrench: Wrench,\n 'paint-brush': PaintBrush,\n \n // Nature\n tree: Tree,\n flower: Flower,\n leaf: Leaf,\n mountain: Mountains,\n \n // Space\n rocket: Rocket,\n planet: Planet,\n 'star-icon': StarIcon,\n 'moon-icon': MoonIcon,\n \n // Gaming\n 'game-controller': GameController,\n puzzle: PuzzlePiece,\n \n // Miscellaneous\n gift: Gift,\n key: Key,\n 'map-pin': MapPin,\n compass: Compass,\n flag: Flag,\n trophy: Trophy,\n medal: Medal,\n crown: Crown,\n sparkle: Sparkle,\n zap: Lightning,\n fire: Fire,\n snowflake: Snowflake,\n umbrella: Umbrella,\n anchor: Anchor,\n bug: Bug,\n butterfly: Butterfly,\n cat: Cat,\n dog: Dog,\n fish: Fish,\n bird: Bird,\n 'paw-print': PawPrint,\n \n // Nostromo themed\n alien: Alien,\n spaceship: Spaceship,\n atom: Atom,\n flask: Flask,\n 'test-tube': TestTube,\n syringe: Syringe,\n pill: Pill,\n skull: Skull,\n ghost: Ghost,\n scroll: Scroll,\n 'bookmark-icon': BookmarkIcon,\n 'compass-icon': CompassIcon,\n 'flag-icon': FlagIcon,\n 'trophy-icon': TrophyIcon,\n 'medal-icon': MedalIcon,\n 'crown-icon': CrownIcon,\n 'sparkle-icon': SparkleIcon,\n 'zap-icon': ZapIcon,\n 'fire-icon': FireIcon,\n 'snowflake-icon': SnowflakeIcon,\n 'umbrella-icon': UmbrellaIcon,\n 'anchor-icon': AnchorIcon,\n 'bug-icon': BugIcon,\n 'butterfly-icon': ButterflyIcon,\n 'cat-icon': CatIcon,\n 'dog-icon': DogIcon,\n 'fish-icon': FishIcon,\n 'bird-icon': BirdIcon,\n 'paw-print-icon': PawPrintIcon,\n} as const;\n\nexport type IconName = keyof typeof iconMap;\n\nconst iconVariants = cva('', {\n variants: {\n size: {\n xs: 'w-3 h-3',\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n xl: 'w-8 h-8',\n '2xl': 'w-10 h-10',\n '3xl': 'w-12 h-12',\n },\n weight: {\n thin: '',\n light: '',\n regular: '',\n bold: '',\n fill: '',\n duotone: '',\n },\n color: {\n current: 'text-current',\n primary: 'text-blue-600',\n secondary: 'text-gray-600',\n success: 'text-green-600',\n warning: 'text-yellow-600',\n error: 'text-red-600',\n muted: 'text-gray-400',\n },\n },\n defaultVariants: {\n size: 'md',\n weight: 'regular',\n color: 'current',\n },\n});\n\nexport interface IconProps\n extends Omit<React.HTMLAttributes<SVGSVGElement>, 'color'>,\n VariantProps<typeof iconVariants> {\n name: IconName;\n className?: string;\n}\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ name, size, weight, color, className, ...props }, ref) => {\n const IconComponent = iconMap[name];\n \n if (!IconComponent) {\n console.warn(`Icon \"${name}\" not found in iconMap`);\n return null;\n }\n\n return (\n <IconComponent\n ref={ref}\n weight={weight as 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone'}\n className={cn(iconVariants({ size, weight, color }), className)}\n {...props}\n />\n );\n }\n);\n\nIcon.displayName = 'Icon';\n\n// Export icon names for TypeScript autocomplete\nexport const iconNames = Object.keys(iconMap) as IconName[];\n\n// Note: For additional icons, import directly from 'phosphor-react' to avoid bundling unused icons\n// Example: import { CustomIcon } from 'phosphor-react'\n"]}
|
package/dist/chunk-VXMDVKAD.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import {a}from'./chunk-AC2JBXHQ.js';import*as e from'react';import {cva}from'class-variance-authority';import {House,CaretRight}from'phosphor-react';var v=cva("flex items-center space-x-1 text-sm text-muted-foreground",{variants:{variant:{default:"text-muted-foreground",compact:"text-xs"},separator:{default:"",slash:"",arrow:"",dot:""}},defaultVariants:{variant:"default",separator:"default"}}),H=cva("flex items-center",{variants:{variant:{default:"",current:"text-foreground font-medium",link:"hover:text-foreground transition-colors"}},defaultVariants:{variant:"default"}}),b=cva("flex-shrink-0 text-muted-foreground",{variants:{variant:{default:"mx-1",compact:"mx-0.5"}},defaultVariants:{variant:"default"}}),y=e.forwardRef(({className:a$1,variant:r,separator:t="default",items:c,showHome:u=false,homeHref:h="/",onItemClick:f,...x},g)=>{let p=()=>{switch(t){case "slash":return "/";case "arrow":return "\u2192";case "dot":return "\u2022";default:return e.createElement(CaretRight,{className:"h-4 w-4"})}},N=(n,o)=>{f&&f(n,o);},L=(n,o,i)=>{let l=n.current||i,m=e.createElement("span",{className:a(H({variant:l?"current":n.href?"link":"default"}))},n.label);return n.href&&!l?e.createElement("a",{href:n.href,className:"hover:text-foreground transition-colors",onClick:()=>N(n,o)},m):n.href&&l?e.createElement("a",{href:n.href,"aria-current":"page","aria-disabled":"true",tabIndex:-1,className:"hover:text-foreground transition-colors pointer-events-none"},m):e.createElement("span",{"aria-current":l?"page":void 0,className:l?"text-foreground font-medium":""},m)};return e.createElement("nav",{ref:g,"aria-label":"Breadcrumb",className:a(v({variant:r,separator:t}),a$1),...x},e.createElement("ol",{className:"flex items-center space-x-1"},u&&e.createElement(e.Fragment,null,e.createElement("li",null,e.createElement("a",{href:h,className:"hover:text-foreground transition-colors","aria-label":"Home"},e.createElement(House,{className:"h-4 w-4"}))),e.createElement("li",null,e.createElement("span",{role:"presentation","aria-hidden":"true",className:a(b({variant:r}))},p()))),c.map((n,o)=>{let i=o===c.length-1;return e.createElement("li",{key:o,className:"flex items-center"},L(n,o,i),!i&&e.createElement("span",{role:"presentation","aria-hidden":"true",className:a(b({variant:r}))},p()))})))});y.displayName="Breadcrumb";var E=e.forwardRef(({className:a$1,...r},t)=>e.createElement("ol",{ref:t,className:a("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",a$1),...r}));E.displayName="BreadcrumbList";var M=e.forwardRef(({className:a$1,...r},t)=>e.createElement("li",{ref:t,className:a("inline-flex items-center gap-1.5",a$1),...r}));M.displayName="BreadcrumbItem";var w=e.forwardRef(({asChild:a$1,className:r,...t},c)=>e.createElement(a$1?e.Fragment:"a",{ref:c,className:a("transition-colors hover:text-foreground",r),...t}));w.displayName="BreadcrumbLink";var T=e.forwardRef(({className:a$1,...r},t)=>e.createElement("span",{ref:t,role:"link","aria-disabled":"true","aria-current":"page",className:a("font-normal text-foreground",a$1),...r}));T.displayName="BreadcrumbPage";var k=({children:a$1,className:r,...t})=>e.createElement("li",{role:"presentation","aria-hidden":"true",className:a("[&>svg]:size-3.5",r),...t},a$1);k.displayName="BreadcrumbSeparator";var C=({className:a$1,...r})=>e.createElement("span",{role:"presentation","aria-hidden":"true",className:a("flex h-9 w-9 items-center justify-center",a$1),...r},e.createElement("span",{className:"sr-only"},"More"),e.createElement("span",null,"\u22EF"));C.displayName="BreadcrumbEllipsis";export{v as a,H as b,b as c,y as d,E as e,M as f,w as g,T as h,k as i,C as j};//# sourceMappingURL=chunk-VXMDVKAD.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-VXMDVKAD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/breadcrumb.tsx"],"names":["breadcrumbVariants","cva","breadcrumbItemVariants","breadcrumbSeparatorVariants","Breadcrumb","className","variant","separator","items","showHome","homeHref","onItemClick","props","ref","getSeparator","CaretRight","handleItemClick","item","index","renderItem","isLast","isCurrent","itemContent","cn","House","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","asChild","BreadcrumbPage","BreadcrumbSeparator","children","BreadcrumbEllipsis"],"mappings":"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","file":"chunk-VXMDVKAD.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { CaretRight, House } from \"phosphor-react\";\n\nconst breadcrumbVariants = cva(\n \"flex items-center space-x-1 text-sm text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"text-muted-foreground\",\n compact: \"text-xs\",\n },\n separator: {\n default: \"\",\n slash: \"\",\n arrow: \"\",\n dot: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n separator: \"default\",\n },\n }\n);\n\nconst breadcrumbItemVariants = cva(\n \"flex items-center\",\n {\n variants: {\n variant: {\n default: \"\",\n current: \"text-foreground font-medium\",\n link: \"hover:text-foreground transition-colors\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst breadcrumbSeparatorVariants = cva(\n \"flex-shrink-0 text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"mx-1\",\n compact: \"mx-0.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BreadcrumbEntry {\n label: string;\n href?: string;\n current?: boolean;\n}\n\nexport interface BreadcrumbProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof breadcrumbVariants> {\n items: BreadcrumbEntry[];\n separator?: \"default\" | \"slash\" | \"arrow\" | \"dot\";\n showHome?: boolean;\n homeHref?: string;\n onItemClick?: (item: BreadcrumbEntry, index: number) => void;\n}\n\nconst Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n (\n {\n className,\n variant,\n separator = \"default\",\n items,\n showHome = false,\n homeHref = \"/\",\n onItemClick,\n ...props\n },\n ref\n ) => {\n const getSeparator = () => {\n switch (separator) {\n case \"slash\":\n return \"/\";\n case \"arrow\":\n return \"→\";\n case \"dot\":\n return \"•\";\n default:\n return <CaretRight className=\"h-4 w-4\" />;\n }\n };\n\n const handleItemClick = (item: BreadcrumbEntry, index: number) => {\n if (onItemClick) {\n onItemClick(item, index);\n }\n };\n\n const renderItem = (item: BreadcrumbEntry, index: number, isLast: boolean) => {\n const isCurrent = item.current || isLast;\n const itemContent = (\n <span\n className={cn(\n breadcrumbItemVariants({\n variant: isCurrent ? \"current\" : item.href ? \"link\" : \"default\",\n })\n )}\n >\n {item.label}\n </span>\n );\n\n if (item.href && !isCurrent) {\n return (\n <a\n href={item.href}\n className=\"hover:text-foreground transition-colors\"\n onClick={() => handleItemClick(item, index)}\n >\n {itemContent}\n </a>\n );\n }\n\n if (item.href && isCurrent) {\n return (\n <a\n href={item.href}\n aria-current=\"page\"\n aria-disabled=\"true\"\n tabIndex={-1}\n className=\"hover:text-foreground transition-colors pointer-events-none\"\n >\n {itemContent}\n </a>\n );\n }\n\n return (\n <span\n aria-current={isCurrent ? \"page\" : undefined}\n className={isCurrent ? \"text-foreground font-medium\" : \"\"}\n >\n {itemContent}\n </span>\n );\n };\n\n return (\n <nav\n ref={ref}\n aria-label=\"Breadcrumb\"\n className={cn(breadcrumbVariants({ variant, separator }), className)}\n {...props}\n >\n <ol className=\"flex items-center space-x-1\">\n {showHome && (\n <>\n <li>\n <a\n href={homeHref}\n className=\"hover:text-foreground transition-colors\"\n aria-label=\"Home\"\n >\n <House className=\"h-4 w-4\" />\n </a>\n </li>\n <li>\n <span role=\"presentation\" aria-hidden=\"true\" className={cn(breadcrumbSeparatorVariants({ variant }))}>\n {getSeparator()}\n </span>\n </li>\n </>\n )}\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n return (\n <li key={index} className=\"flex items-center\">\n {renderItem(item, index, isLast)}\n {!isLast && (\n <span role=\"presentation\" aria-hidden=\"true\" className={cn(breadcrumbSeparatorVariants({ variant }))}>\n {getSeparator()}\n </span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n }\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\n// Individual components for more flexibility\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.HTMLAttributes<HTMLOListElement>\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\", className)}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.HTMLAttributes<HTMLLIElement>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? React.Fragment : \"a\";\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <span className=\"sr-only\">More</span>\n <span>⋯</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n breadcrumbVariants,\n breadcrumbItemVariants,\n breadcrumbSeparatorVariants,\n};\n"]}
|