@umituz/atomic-next 1.8.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2710 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var m={primary:"#9333EA",primaryLight:"#A855F7",primaryDark:"#7C3AED",secondary:"#EC4899",secondaryLight:"#F472B6",secondaryDark:"#DB2777",accent:"#F59E0B",accentLight:"#FBBF24",accentDark:"#D97706",gray50:"#FAFAFA",gray100:"#F4F4F5",gray200:"#E4E4E7",gray300:"#D4D4D8",gray400:"#A1A1AA",gray500:"#71717A",gray600:"#52525B",gray700:"#3F3F46",gray800:"#27272A",gray900:"#18181B",success:"#10B981",successLight:"#34D399",successDark:"#059669",warning:"#F59E0B",warningLight:"#FBBF24",warningDark:"#D97706",error:"#EF4444",errorLight:"#F87171",errorDark:"#DC2626",info:"#3B82F6",infoLight:"#60A5FA",infoDark:"#2563EB",background:"#FFFFFF",backgroundSecondary:"#F9FAFB",surface:"#FFFFFF",surfaceSecondary:"#F3F4F6",textPrimary:"#18181B",textSecondary:"#52525B",textTertiary:"#A1A1AA",textDisabled:"#D4D4D8",textInverse:"#FFFFFF"},se= exports.AtomicColorsCss ={"--atomic-primary":m.primary,"--atomic-primary-light":m.primaryLight,"--atomic-primary-dark":m.primaryDark,"--atomic-secondary":m.secondary,"--atomic-secondary-light":m.secondaryLight,"--atomic-secondary-dark":m.secondaryDark,"--atomic-accent":m.accent,"--atomic-accent-light":m.accentLight,"--atomic-accent-dark":m.accentDark,"--atomic-gray-50":m.gray50,"--atomic-gray-100":m.gray100,"--atomic-gray-200":m.gray200,"--atomic-gray-300":m.gray300,"--atomic-gray-400":m.gray400,"--atomic-gray-500":m.gray500,"--atomic-gray-600":m.gray600,"--atomic-gray-700":m.gray700,"--atomic-gray-800":m.gray800,"--atomic-gray-900":m.gray900,"--atomic-success":m.success,"--atomic-success-light":m.successLight,"--atomic-success-dark":m.successDark,"--atomic-warning":m.warning,"--atomic-warning-light":m.warningLight,"--atomic-warning-dark":m.warningDark,"--atomic-error":m.error,"--atomic-error-light":m.errorLight,"--atomic-error-dark":m.errorDark,"--atomic-info":m.info,"--atomic-info-light":m.infoLight,"--atomic-info-dark":m.infoDark,"--atomic-background":m.background,"--atomic-background-secondary":m.backgroundSecondary,"--atomic-surface":m.surface,"--atomic-surface-secondary":m.surfaceSecondary,"--atomic-text-primary":m.textPrimary,"--atomic-text-secondary":m.textSecondary,"--atomic-text-tertiary":m.textTertiary,"--atomic-text-disabled":m.textDisabled,"--atomic-text-inverse":m.textInverse};var k={unit:8,xxs:4,xs:8,sm:12,md:16,lg:24,xl:32,xxl:40,xxxl:48,huge:64,buttonPaddingX:16,buttonPaddingY:12,cardPadding:24,cardMargin:16,listItemPadding:16,listItemSpacing:8,inputPaddingX:16,inputPaddingY:12,modalPadding:24,sectionPadding:32},le= exports.AtomicSpacingCss ={"--atomic-spacing-unit":`${k.unit}px`,"--atomic-spacing-xxs":`${k.xxs}px`,"--atomic-spacing-xs":`${k.xs}px`,"--atomic-spacing-sm":`${k.sm}px`,"--atomic-spacing-md":`${k.md}px`,"--atomic-spacing-lg":`${k.lg}px`,"--atomic-spacing-xl":`${k.xl}px`,"--atomic-spacing-xxl":`${k.xxl}px`,"--atomic-spacing-xxxl":`${k.xxxl}px`,"--atomic-spacing-huge":`${k.huge}px`,"--atomic-button-padding-x":`${k.buttonPaddingX}px`,"--atomic-button-padding-y":`${k.buttonPaddingY}px`,"--atomic-card-padding":`${k.cardPadding}px`,"--atomic-card-margin":`${k.cardMargin}px`,"--atomic-list-item-padding":`${k.listItemPadding}px`,"--atomic-list-item-spacing":`${k.listItemSpacing}px`,"--atomic-input-padding-x":`${k.inputPaddingX}px`,"--atomic-input-padding-y":`${k.inputPaddingY}px`,"--atomic-modal-padding":`${k.modalPadding}px`,"--atomic-section-padding":`${k.sectionPadding}px`};var p={fontFamily:{sans:["Inter","system-ui","-apple-system","BlinkMacSystemFont","Segoe UI","Roboto","sans-serif"],serif:["Charter","Georgia","Cambria","Times New Roman","Times","serif"],mono:["JetBrains Mono","Fira Code","Consolas","Monaco","Courier New","monospace"]},fontWeight:{thin:100,light:300,regular:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},fontSize:{displayLarge:57,displayMedium:45,displaySmall:36,headlineLarge:32,headlineMedium:28,headlineSmall:24,titleLarge:22,titleMedium:16,titleSmall:14,bodyLarge:16,bodyMedium:14,bodySmall:12,labelLarge:14,labelMedium:12,labelSmall:11},lineHeight:{none:1,tight:1.25,snug:1.375,normal:1.5,relaxed:1.625,loose:2},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"}},ce= exports.AtomicTypographyCss ={"--atomic-font-sans":p.fontFamily.sans.join(", "),"--atomic-font-serif":p.fontFamily.serif.join(", "),"--atomic-font-mono":p.fontFamily.mono.join(", "),"--atomic-font-thin":p.fontWeight.thin.toString(),"--atomic-font-light":p.fontWeight.light.toString(),"--atomic-font-regular":p.fontWeight.regular.toString(),"--atomic-font-medium":p.fontWeight.medium.toString(),"--atomic-font-semibold":p.fontWeight.semibold.toString(),"--atomic-font-bold":p.fontWeight.bold.toString(),"--atomic-font-extrabold":p.fontWeight.extrabold.toString(),"--atomic-font-black":p.fontWeight.black.toString(),"--atomic-text-display-large":`${p.fontSize.displayLarge}px`,"--atomic-text-display-medium":`${p.fontSize.displayMedium}px`,"--atomic-text-display-small":`${p.fontSize.displaySmall}px`,"--atomic-text-headline-large":`${p.fontSize.headlineLarge}px`,"--atomic-text-headline-medium":`${p.fontSize.headlineMedium}px`,"--atomic-text-headline-small":`${p.fontSize.headlineSmall}px`,"--atomic-text-title-large":`${p.fontSize.titleLarge}px`,"--atomic-text-title-medium":`${p.fontSize.titleMedium}px`,"--atomic-text-title-small":`${p.fontSize.titleSmall}px`,"--atomic-text-body-large":`${p.fontSize.bodyLarge}px`,"--atomic-text-body-medium":`${p.fontSize.bodyMedium}px`,"--atomic-text-body-small":`${p.fontSize.bodySmall}px`,"--atomic-text-label-large":`${p.fontSize.labelLarge}px`,"--atomic-text-label-medium":`${p.fontSize.labelMedium}px`,"--atomic-text-label-small":`${p.fontSize.labelSmall}px`,"--atomic-leading-none":p.lineHeight.none.toString(),"--atomic-leading-tight":p.lineHeight.tight.toString(),"--atomic-leading-snug":p.lineHeight.snug.toString(),"--atomic-leading-normal":p.lineHeight.normal.toString(),"--atomic-leading-relaxed":p.lineHeight.relaxed.toString(),"--atomic-leading-loose":p.lineHeight.loose.toString(),"--atomic-tracking-tighter":p.letterSpacing.tighter,"--atomic-tracking-tight":p.letterSpacing.tight,"--atomic-tracking-normal":p.letterSpacing.normal,"--atomic-tracking-wide":p.letterSpacing.wide,"--atomic-tracking-wider":p.letterSpacing.wider,"--atomic-tracking-widest":p.letterSpacing.widest};var w={none:"none",xs:"0 1px 2px 0 rgb(0 0 0 / 0.05)",sm:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)",xxl:"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",focusPrimary:"0 0 0 3px rgb(139 92 246 / 0.2)",focusSecondary:"0 0 0 3px rgb(236 72 153 / 0.2)",focusSuccess:"0 0 0 3px rgb(16 185 129 / 0.2)",focusWarning:"0 0 0 3px rgb(245 158 11 / 0.2)",focusError:"0 0 0 3px rgb(239 68 68 / 0.2)",focusInfo:"0 0 0 3px rgb(59 130 246 / 0.2)",glowPrimary:"0 0 20px rgb(139 92 246 / 0.3)",glowSecondary:"0 0 20px rgb(236 72 153 / 0.3)",glowSuccess:"0 0 20px rgb(16 185 129 / 0.3)",glowWarning:"0 0 20px rgb(245 158 11 / 0.3)",glowError:"0 0 20px rgb(239 68 68 / 0.3)",card:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",cardHover:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",button:"0 1px 2px 0 rgb(0 0 0 / 0.05)",buttonHover:"0 2px 4px 0 rgb(0 0 0 / 0.1)",modal:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)",dropdown:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",tooltip:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)"},Ft= exports.ShadowUtils ={get:e=>w[e],custom:(e,r,t,a=0,o="0 0 0",n=.1)=>`${e}px ${r}px ${t}px ${a}px rgb(${o} / ${n})`,combine:(...e)=>e.map(r=>w[r]).join(", "),focus:(e="139 92 246",r=.2)=>`0 0 0 3px rgb(${e} / ${r})`,glow:(e=20,r="139 92 246",t=.3)=>`0 0 ${e}px rgb(${r} / ${t})`},de= exports.AtomicShadowsCss ={"--atomic-shadow-none":w.none,"--atomic-shadow-xs":w.xs,"--atomic-shadow-sm":w.sm,"--atomic-shadow-md":w.md,"--atomic-shadow-lg":w.lg,"--atomic-shadow-xl":w.xl,"--atomic-shadow-xxl":w.xxl,"--atomic-shadow-inner":w.inner,"--atomic-shadow-focus-primary":w.focusPrimary,"--atomic-shadow-focus-secondary":w.focusSecondary,"--atomic-shadow-focus-success":w.focusSuccess,"--atomic-shadow-focus-warning":w.focusWarning,"--atomic-shadow-focus-error":w.focusError,"--atomic-shadow-focus-info":w.focusInfo,"--atomic-shadow-glow-primary":w.glowPrimary,"--atomic-shadow-glow-secondary":w.glowSecondary,"--atomic-shadow-glow-success":w.glowSuccess,"--atomic-shadow-glow-warning":w.glowWarning,"--atomic-shadow-glow-error":w.glowError,"--atomic-shadow-card":w.card,"--atomic-shadow-card-hover":w.cardHover,"--atomic-shadow-button":w.button,"--atomic-shadow-button-hover":w.buttonHover,"--atomic-shadow-modal":w.modal,"--atomic-shadow-dropdown":w.dropdown,"--atomic-shadow-tooltip":w.tooltip};var f={radius:{none:"0px",xs:"2px",sm:"4px",md:"6px",lg:"8px",xl:"12px",xxl:"16px",xxxl:"24px",full:"9999px"},width:{none:"0px",thin:"1px",medium:"2px",thick:"4px",thicker:"8px"},style:{solid:"solid",dashed:"dashed",dotted:"dotted",double:"double",none:"none"}},j= exports.BorderUtils ={radius:e=>f.radius[e],width:e=>f.width[e],style:e=>f.style[e],border:e=>{let r=e.width?f.width[e.width]:f.width.thin,t=e.style?f.style[e.style]:f.style.solid,a=e.color||"currentColor";return`${r} ${t} ${a}`},radiusCorners:{all:e=>({borderRadius:f.radius[e]}),top:e=>({borderTopLeftRadius:f.radius[e],borderTopRightRadius:f.radius[e]}),right:e=>({borderTopRightRadius:f.radius[e],borderBottomRightRadius:f.radius[e]}),bottom:e=>({borderBottomLeftRadius:f.radius[e],borderBottomRightRadius:f.radius[e]}),left:e=>({borderTopLeftRadius:f.radius[e],borderBottomLeftRadius:f.radius[e]}),topLeft:e=>({borderTopLeftRadius:f.radius[e]}),topRight:e=>({borderTopRightRadius:f.radius[e]}),bottomRight:e=>({borderBottomRightRadius:f.radius[e]}),bottomLeft:e=>({borderBottomLeftRadius:f.radius[e]})},borderSides:{all:e=>({border:j.border(e)}),top:e=>({borderTop:j.border(e)}),right:e=>({borderRight:j.border(e)}),bottom:e=>({borderBottom:j.border(e)}),left:e=>({borderLeft:j.border(e)})}},me= exports.AtomicBordersCss ={"--atomic-radius-none":f.radius.none,"--atomic-radius-xs":f.radius.xs,"--atomic-radius-sm":f.radius.sm,"--atomic-radius-md":f.radius.md,"--atomic-radius-lg":f.radius.lg,"--atomic-radius-xl":f.radius.xl,"--atomic-radius-xxl":f.radius.xxl,"--atomic-radius-xxxl":f.radius.xxxl,"--atomic-radius-full":f.radius.full,"--atomic-border-none":f.width.none,"--atomic-border-thin":f.width.thin,"--atomic-border-medium":f.width.medium,"--atomic-border-thick":f.width.thick,"--atomic-border-thicker":f.width.thicker};var x={duration:{instant:"0ms",fast:"150ms",normal:"200ms",slow:"300ms",slower:"500ms",slowest:"700ms"},easing:{linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",smooth:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",snappy:"cubic-bezier(0.68, -0.55, 0.265, 1.55)",bounce:"cubic-bezier(0.68, -0.6, 0.32, 1.6)",elastic:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",standard:"cubic-bezier(0.4, 0, 0.2, 1)",decelerate:"cubic-bezier(0, 0, 0.2, 1)",accelerate:"cubic-bezier(0.4, 0, 1, 1)"},scale:{none:"1",xs:"1.025",sm:"1.05",md:"1.1",lg:"1.15",xl:"1.25"},rotate:{none:"0deg",quarter:"90deg",half:"180deg",threeQuarter:"270deg",full:"360deg"}},N= exports.AnimationUtils ={transition:e=>{let r=Array.isArray(e.property)?e.property.join(", "):e.property||"all",t=e.duration?x.duration[e.duration]:x.duration.normal,a=e.easing?x.easing[e.easing]:x.easing.easeInOut,o=e.delay?x.duration[e.delay]:"0ms";return{transition:`${r} ${t} ${a} ${o}`}},transform:e=>{let r=[];return e.scale&&r.push(`scale(${x.scale[e.scale]})`),e.rotate&&r.push(`rotate(${x.rotate[e.rotate]})`),e.translateX&&r.push(`translateX(${e.translateX})`),e.translateY&&r.push(`translateY(${e.translateY})`),e.translateZ&&r.push(`translateZ(${e.translateZ})`),{transform:r.join(" ")||"none"}},duration:e=>x.duration[e],easing:e=>x.easing[e],keyframes:(e,r)=>{let t=Object.entries(r).map(([a,o])=>{let n=Object.entries(o).map(([s,d])=>`${s}: ${d};`).join(" ");return`${a} { ${n} }`}).join(" ");return`@keyframes ${e} { ${t} }`}},Ht= exports.AtomicAnimationPresets ={fadeIn:N.transition({property:"opacity",duration:"normal",easing:"easeOut"}),fadeOut:N.transition({property:"opacity",duration:"fast",easing:"easeIn"}),scaleIn:{...N.transition({property:"transform",duration:"normal",easing:"smooth"}),transform:"scale(1)"},scaleOut:{...N.transition({property:"transform",duration:"fast",easing:"easeIn"}),transform:"scale(0.95)"},slideInUp:{...N.transition({property:"transform",duration:"normal",easing:"smooth"}),transform:"translateY(0)"},slideInDown:{...N.transition({property:"transform",duration:"normal",easing:"smooth"}),transform:"translateY(0)"},buttonHover:{...N.transition({property:["background-color","border-color","color","box-shadow","transform"],duration:"fast",easing:"easeOut"}),transform:"translateY(-1px)"},buttonPress:{...N.transition({property:"transform",duration:"fast",easing:"easeIn"}),transform:"translateY(0)"},spin:{animation:"spin 1s linear infinite"},pulse:{animation:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite"},bounce:{animation:"bounce 1s infinite"}},pe= exports.AtomicAnimationsCss ={"--atomic-duration-instant":x.duration.instant,"--atomic-duration-fast":x.duration.fast,"--atomic-duration-normal":x.duration.normal,"--atomic-duration-slow":x.duration.slow,"--atomic-duration-slower":x.duration.slower,"--atomic-duration-slowest":x.duration.slowest,"--atomic-ease-linear":x.easing.linear,"--atomic-ease":x.easing.ease,"--atomic-ease-in":x.easing.easeIn,"--atomic-ease-out":x.easing.easeOut,"--atomic-ease-in-out":x.easing.easeInOut,"--atomic-ease-smooth":x.easing.smooth,"--atomic-ease-snappy":x.easing.snappy,"--atomic-ease-bounce":x.easing.bounce,"--atomic-ease-elastic":x.easing.elastic,"--atomic-ease-standard":x.easing.standard,"--atomic-ease-decelerate":x.easing.decelerate,"--atomic-ease-accelerate":x.easing.accelerate,"--atomic-scale-none":x.scale.none,"--atomic-scale-xs":x.scale.xs,"--atomic-scale-sm":x.scale.sm,"--atomic-scale-md":x.scale.md,"--atomic-scale-lg":x.scale.lg,"--atomic-scale-xl":x.scale.xl};var ke=(n=>(n.XS="xs",n.SM="sm",n.MD="md",n.LG="lg",n.XL="xl",n))(ke||{}),Se= exports.AtomicColorVariant =(d=>(d.PRIMARY="primary",d.SECONDARY="secondary",d.SUCCESS="success",d.WARNING="warning",d.ERROR="error",d.INFO="info",d.GRAY="gray",d))(Se||{}),Te= exports.AtomicButtonVariant =(s=>(s.PRIMARY="primary",s.SECONDARY="secondary",s.OUTLINE="outline",s.GHOST="ghost",s.LINK="link",s.DESTRUCTIVE="destructive",s))(Te||{}),Ce= exports.AtomicInputVariant =(o=>(o.DEFAULT="default",o.FILLED="filled",o.OUTLINE="outline",o.UNDERLINED="underlined",o))(Ce||{}),Re= exports.AtomicCardVariant =(o=>(o.DEFAULT="default",o.ELEVATED="elevated",o.OUTLINED="outlined",o.FILLED="filled",o))(Re||{}),Le= exports.AtomicLoadingState =(o=>(o.IDLE="idle",o.LOADING="loading",o.SUCCESS="success",o.ERROR="error",o))(Le||{}),$e= exports.AtomicStatus =(n=>(n.ACTIVE="active",n.INACTIVE="inactive",n.PENDING="pending",n.DISABLED="disabled",n.ARCHIVED="archived",n))($e||{}),Pe= exports.AtomicAlertType =(o=>(o.INFO="info",o.SUCCESS="success",o.WARNING="warning",o.ERROR="error",o))(Pe||{}),Ee= exports.AtomicModalSize =(n=>(n.SM="sm",n.MD="md",n.LG="lg",n.XL="xl",n.FULL="full",n))(Ee||{}),Ne= exports.AtomicTextVariant =(c=>(c.DISPLAY_LARGE="displayLarge",c.DISPLAY_MEDIUM="displayMedium",c.DISPLAY_SMALL="displaySmall",c.HEADLINE_LARGE="headlineLarge",c.HEADLINE_MEDIUM="headlineMedium",c.HEADLINE_SMALL="headlineSmall",c.TITLE_LARGE="titleLarge",c.TITLE_MEDIUM="titleMedium",c.TITLE_SMALL="titleSmall",c.BODY_LARGE="bodyLarge",c.BODY_MEDIUM="bodyMedium",c.BODY_SMALL="bodySmall",c.LABEL_LARGE="labelLarge",c.LABEL_MEDIUM="labelMedium",c.LABEL_SMALL="labelSmall",c))(Ne||{}),Ie= exports.AtomicPosition =(l=>(l.TOP="top",l.TOP_LEFT="top-left",l.TOP_RIGHT="top-right",l.BOTTOM="bottom",l.BOTTOM_LEFT="bottom-left",l.BOTTOM_RIGHT="bottom-right",l.LEFT="left",l.RIGHT="right",l.CENTER="center",l))(Ie||{}),Me= exports.AtomicAlignment =(o=>(o.LEFT="left",o.CENTER="center",o.RIGHT="right",o.JUSTIFY="justify",o))(Me||{}),Be= exports.AtomicOrientation =(t=>(t.HORIZONTAL="horizontal",t.VERTICAL="vertical",t))(Be||{}),Ve= exports.AtomicDirection =(o=>(o.UP="up",o.DOWN="down",o.LEFT="left",o.RIGHT="right",o))(Ve||{}),De= exports.AtomicAnimationState =(a=>(a.ENTER="enter",a.EXIT="exit",a.IDLE="idle",a))(De||{}),ze= exports.AtomicFormFieldState =(n=>(n.DEFAULT="default",n.FOCUS="focus",n.ERROR="error",n.SUCCESS="success",n.DISABLED="disabled",n))(ze||{}),Fe= exports.AtomicBreakpoint =(s=>(s.XS="xs",s.SM="sm",s.MD="md",s.LG="lg",s.XL="xl",s.XXL="xxl",s))(Fe||{}),He= exports.AtomicThemeMode =(a=>(a.LIGHT="light",a.DARK="dark",a.SYSTEM="system",a))(He||{}),Ot= exports.AtomicEnumUtils ={getValues:e=>Object.values(e),getKeys:e=>Object.keys(e),hasValue:(e,r)=>Object.values(e).includes(r),hasKey:(e,r)=>Object.keys(e).includes(r),getEntries:e=>Object.entries(e)};var Xr={...se,...le,...ce,...de,...me,...pe};var _clsx = require('clsx');var _tailwindmerge = require('tailwind-merge');function i(...e){return _tailwindmerge.twMerge.call(void 0, _clsx.clsx.call(void 0, e))}var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _reactslot = require('@radix-ui/react-slot');var _classvarianceauthority = require('class-variance-authority');var _lucidereact = require('lucide-react');var _jsxruntime = require('react/jsx-runtime');var Oe=_classvarianceauthority.cva.call(void 0, "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-gray-900 text-white hover:bg-gray-800 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-100",primary:"bg-[--atomic-primary] text-white hover:bg-[--atomic-primary-dark] transition-all duration-200",brand:"text-white hover:shadow-xl transition-all duration-200",destructive:"bg-red-600 text-white hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600",outline:"border border-gray-300 bg-transparent hover:bg-gray-50 dark:border-gray-700 dark:hover:bg-gray-800",secondary:"bg-gray-100 text-gray-900 hover:bg-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:hover:bg-gray-700",ghost:"bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800",link:"bg-transparent text-blue-600 underline-offset-4 hover:underline dark:text-blue-400"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),je= exports.AtomicButton =_react2.default.forwardRef(({className:e,variant:r,size:t,asChild:a=!1,loading:o=!1,leftIcon:n,rightIcon:s,fullWidth:d=!1,disabled:u,children:l,...y},b)=>{let A=a?_reactslot.Slot:"button",g=u||o;return _jsxruntime.jsxs.call(void 0, A,{className:i(Oe({variant:r,size:t}),d&&"w-full",e),style:{...r==="brand"&&{background:"linear-gradient(to right, var(--atomic-primary), var(--atomic-secondary))"},...y.style},ref:b,disabled:g,...y,children:[o&&_jsxruntime.jsx.call(void 0, _lucidereact.Loader2,{className:i("animate-spin",t==="sm"?"h-3 w-3":t==="lg"?"h-5 w-5":"h-4 w-4",(n||l)&&"mr-2")}),!o&&n&&_jsxruntime.jsx.call(void 0, "span",{className:i("inline-flex items-center",t==="sm"?"mr-1":"mr-2",t==="sm"?"[&>*]:h-3 [&>*]:w-3":t==="lg"?"[&>*]:h-5 [&>*]:w-5":"[&>*]:h-4 [&>*]:w-4"),children:n}),l,!o&&s&&_jsxruntime.jsx.call(void 0, "span",{className:i("inline-flex items-center",t==="sm"?"ml-1":"ml-2",t==="sm"?"[&>*]:h-3 [&>*]:w-3":t==="lg"?"[&>*]:h-5 [&>*]:w-5":"[&>*]:h-4 [&>*]:w-4"),children:s})]})});je.displayName="AtomicButton";var Ge=_classvarianceauthority.cva.call(void 0, "",{variants:{variant:{h1:"scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl",h2:"scroll-m-20 text-3xl font-semibold tracking-tight lg:text-4xl",h3:"scroll-m-20 text-2xl font-semibold tracking-tight",h4:"scroll-m-20 text-xl font-semibold tracking-tight",h5:"scroll-m-20 text-lg font-semibold tracking-tight",h6:"scroll-m-20 text-base font-semibold tracking-tight",body:"text-base leading-7",large:"text-lg leading-7",small:"text-sm leading-6",xs:"text-xs leading-5",lead:"text-xl leading-7 text-muted-foreground",muted:"text-sm text-muted-foreground",caption:"text-xs text-muted-foreground",label:"text-sm font-medium leading-none"},color:{default:"text-foreground",primary:"text-primary",secondary:"text-secondary-foreground",muted:"text-muted-foreground",success:"text-green-600 dark:text-green-400",warning:"text-amber-600 dark:text-amber-400",error:"text-red-600 dark:text-red-400",info:"text-blue-600 dark:text-blue-400"},align:{left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"},weight:{thin:"font-thin",light:"font-light",normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold",extrabold:"font-extrabold",black:"font-black"}},defaultVariants:{variant:"body",color:"default",align:"left"}}),Ue= exports.AtomicText =_react2.default.forwardRef(({className:e,variant:r,color:t,align:a,weight:o,as:n="p",asChild:s=!1,truncate:d=!1,selectable:u=!0,...l},y)=>{let b=s?_reactslot.Slot:n,A=n;return!s&&n==="p"&&(r==="h1"||r==="h2"||r==="h3"||r==="h4"||r==="h5"||r==="h6"?A=r:r==="label"&&(A="label")),_jsxruntime.jsx.call(void 0, s?b:A,{className:i(Ge({variant:r,color:t||"default",align:a,weight:o}),d&&"truncate",!u&&"select-none",e),ref:y,...l})});Ue.displayName="AtomicText";var _reactavatar = require('@radix-ui/react-avatar'); var M = _interopRequireWildcard(_reactavatar);var Ye=_classvarianceauthority.cva.call(void 0, "relative flex shrink-0 overflow-hidden rounded-full",{variants:{size:{xs:"h-6 w-6",sm:"h-8 w-8",default:"h-10 w-10",lg:"h-12 w-12",xl:"h-16 w-16",xxl:"h-20 w-20",xxxl:"h-24 w-24"}},defaultVariants:{size:"default"}}),xe= exports.avatarImageVariants =_classvarianceauthority.cva.call(void 0, "aspect-square h-full w-full object-cover"),ye= exports.avatarFallbackVariants =_classvarianceauthority.cva.call(void 0, "flex h-full w-full items-center justify-center rounded-full bg-muted font-medium text-muted-foreground",{variants:{size:{xs:"text-xs",sm:"text-xs",default:"text-sm",lg:"text-base",xl:"text-lg",xxl:"text-xl",xxxl:"text-2xl"}},defaultVariants:{size:"default"}}),_e= exports.AtomicAvatar =_react2.default.forwardRef(({className:e,size:r,src:t,alt:a,fallback:o,fallbackElement:n,showStatus:s=!1,isOnline:d=!1,statusColor:u,...l},y)=>{let A=o||(h=>h?h.split(" ").map(c=>c.charAt(0)).join("").slice(0,2).toUpperCase():"?")(a),g={xs:"h-1.5 w-1.5",sm:"h-2 w-2",default:"h-2.5 w-2.5",lg:"h-3 w-3",xl:"h-4 w-4",xxl:"h-4 w-4",xxxl:"h-5 w-5"}[r||"default"];return _jsxruntime.jsxs.call(void 0, "div",{className:"relative",children:[_jsxruntime.jsxs.call(void 0, M.Root,{ref:y,className:i(Ye({size:r}),e),...l,children:[_jsxruntime.jsx.call(void 0, M.Image,{className:xe(),src:t,alt:a}),_jsxruntime.jsx.call(void 0, M.Fallback,{className:ye({size:r}),children:n||A})]}),s&&_jsxruntime.jsx.call(void 0, "div",{className:i("absolute bottom-0 right-0 rounded-full border-2 border-background",g,u?"":d?"bg-green-500":"bg-gray-400"),style:u?{backgroundColor:u}:void 0})]})});_e.displayName="AtomicAvatar";var Xe=_react2.default.forwardRef(({className:e,...r},t)=>_jsxruntime.jsx.call(void 0, M.Image,{ref:t,className:i(xe(),e),...r}));Xe.displayName="AtomicAvatarImage";var qe=_react2.default.forwardRef(({className:e,size:r,...t},a)=>_jsxruntime.jsx.call(void 0, M.Fallback,{ref:a,className:i(ye({size:r}),e),...t}));qe.displayName="AtomicAvatarFallback";var _image = require('next/image'); var _image2 = _interopRequireDefault(_image);var be=_classvarianceauthority.cva.call(void 0, "transition-all duration-200",{variants:{rounded:{none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl",full:"rounded-full"},aspectRatio:{square:"aspect-square",video:"aspect-video",portrait:"aspect-[3/4]",landscape:"aspect-[4/3]",auto:""},objectFit:{cover:"object-cover",contain:"object-contain",fill:"object-fill","scale-down":"object-scale-down",none:"object-none"},objectPosition:{center:"object-center",top:"object-top",bottom:"object-bottom",left:"object-left",right:"object-right","top-left":"object-left-top","top-right":"object-right-top","bottom-left":"object-left-bottom","bottom-right":"object-right-bottom"}},defaultVariants:{rounded:"none",aspectRatio:"auto",objectFit:"cover",objectPosition:"center"}}),Je= exports.AtomicImage =_react2.default.forwardRef(({className:e,containerClassName:r,rounded:t,aspectRatio:a,objectFit:o,objectPosition:n,enableBlur:s=!1,placeholderSrc:d,...u},l)=>_jsxruntime.jsx.call(void 0, "div",{className:i("relative overflow-hidden",a&&be({aspectRatio:a}),r),children:_jsxruntime.jsx.call(void 0, _image2.default,{ref:l,className:i(be({rounded:t,objectFit:o,objectPosition:n,aspectRatio:void 0}),e),placeholder:s||d?"blur":"empty",blurDataURL:d,...u})}));Je.displayName="AtomicImage";var Ze=_classvarianceauthority.cva.call(void 0, "flex w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",{variants:{variant:{default:"",filled:"bg-secondary border-transparent",outline:"bg-transparent border-2",underlined:"rounded-none border-0 border-b-2 px-0"},size:{sm:"h-8 px-2 text-xs",default:"h-10 px-3 text-sm",lg:"h-12 px-4 text-base"},state:{default:"",error:"border-destructive focus-visible:ring-destructive",success:"border-green-500 focus-visible:ring-green-500",warning:"border-amber-500 focus-visible:ring-amber-500"}},defaultVariants:{variant:"default",size:"default",state:"default"}}),Qe= exports.AtomicInput =_react2.default.forwardRef(({className:e,variant:r,size:t,state:a,type:o="text",leftIcon:n,rightIcon:s,label:d,helperText:u,error:l,success:y,warning:b,clearable:A=!1,onClear:g,showPasswordToggle:h=!1,containerClassName:c,labelClassName:v,helperClassName:C,value:R,onChange:L,disabled:S,...T},P)=>{let[E,B]=_react2.default.useState(!1),[F,X]=_react2.default.useState(R||""),V=a;l?V="error":y?V="success":b&&(V="warning");let Z=o;o==="password"&&h&&(Z=E?"text":"password");let oe=(R||F)&&String(R||F).length>0,H=A&&oe&&!S,O=h&&o==="password"&&!S,ae=ie=>{X(ie.target.value),_optionalChain([L, 'optionalCall', _2 => _2(ie)])},ne=()=>{X(""),_optionalChain([g, 'optionalCall', _3 => _3()]),_optionalChain([L, 'optionalCall', _4 => _4({target:{value:""},currentTarget:{value:""}})])},ve=l||y||b||u,zt=l?"text-destructive":y?"text-green-600 dark:text-green-400":b?"text-amber-600 dark:text-amber-400":"text-muted-foreground";return _jsxruntime.jsxs.call(void 0, "div",{className:i("space-y-2",c),children:[d&&_jsxruntime.jsx.call(void 0, "label",{className:i("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",S&&"opacity-50",v),children:d}),_jsxruntime.jsxs.call(void 0, "div",{className:"relative",children:[n&&_jsxruntime.jsx.call(void 0, "div",{className:i("absolute left-0 top-0 h-full flex items-center justify-center",t==="sm"?"w-8 pl-2":t==="lg"?"w-12 pl-4":"w-10 pl-3","text-muted-foreground pointer-events-none","[&>*]:h-4 [&>*]:w-4"),children:n}),_jsxruntime.jsx.call(void 0, "input",{type:Z,className:i(Ze({variant:r,size:t,state:V}),n&&(t==="sm"?"pl-8":t==="lg"?"pl-12":"pl-10"),(s||H||O)&&(t==="sm"?"pr-8":t==="lg"?"pr-12":"pr-10"),e),ref:P,value:R!==void 0?R:F,onChange:ae,disabled:S,...T}),(s||H||O)&&_jsxruntime.jsxs.call(void 0, "div",{className:i("absolute right-0 top-0 h-full flex items-center justify-center gap-1",t==="sm"?"w-8 pr-2":t==="lg"?"w-12 pr-4":"w-10 pr-3"),children:[s&&!H&&!O&&_jsxruntime.jsx.call(void 0, "div",{className:"text-muted-foreground [&>*]:h-4 [&>*]:w-4",children:s}),H&&_jsxruntime.jsx.call(void 0, "button",{type:"button",onClick:ne,className:"text-muted-foreground hover:text-foreground transition-colors [&>*]:h-4 [&>*]:w-4",tabIndex:-1,children:_jsxruntime.jsx.call(void 0, _lucidereact.X,{})}),O&&_jsxruntime.jsx.call(void 0, "button",{type:"button",onClick:()=>B(!E),className:"text-muted-foreground hover:text-foreground transition-colors [&>*]:h-4 [&>*]:w-4",tabIndex:-1,children:E?_jsxruntime.jsx.call(void 0, _lucidereact.EyeOff,{}):_jsxruntime.jsx.call(void 0, _lucidereact.Eye,{})})]})]}),ve&&_jsxruntime.jsx.call(void 0, "p",{className:i("text-xs",zt,C),children:ve})]})});Qe.displayName="AtomicInput";var et=_classvarianceauthority.cva.call(void 0, "animate-spin",{variants:{size:{xs:"h-3 w-3",sm:"h-4 w-4",default:"h-5 w-5",lg:"h-6 w-6",xl:"h-8 w-8",xxl:"h-12 w-12"},color:{default:"text-foreground",primary:"text-primary",secondary:"text-secondary-foreground",muted:"text-muted-foreground",white:"text-white",success:"text-green-600",warning:"text-amber-600",error:"text-red-600"}},defaultVariants:{size:"default",color:"default"}}),K= exports.AtomicSpinner =_react2.default.forwardRef(({className:e,size:r,color:t,label:a,inline:o=!1,icon:n=_lucidereact.Loader2,...s},d)=>{let u=_jsxruntime.jsx.call(void 0, n,{ref:d,className:i(et({size:r,color:t}),e),...s});return a?_jsxruntime.jsxs.call(void 0, "div",{className:i("flex items-center gap-2",o?"inline-flex":"flex"),children:[u,_jsxruntime.jsx.call(void 0, "span",{className:i("text-sm",t==="muted"?"text-muted-foreground":t==="white"?"text-white":t==="primary"?"text-primary":"text-foreground"),children:a})]}):u});K.displayName="AtomicSpinner";var tt=_react2.default.forwardRef(({className:e,...r},t)=>_jsxruntime.jsx.call(void 0, K,{ref:t,size:"sm",color:"white",className:i("mr-2",e),...r}));tt.displayName="AtomicButtonSpinner";var rt=_react2.default.forwardRef(({className:e,...r},t)=>_jsxruntime.jsx.call(void 0, "div",{className:"flex items-center justify-center p-8",children:_jsxruntime.jsx.call(void 0, K,{ref:t,size:"lg",className:e,...r})}));rt.displayName="AtomicPageSpinner";var ot=_react2.default.forwardRef(({className:e,...r},t)=>_jsxruntime.jsx.call(void 0, K,{ref:t,inline:!0,size:"sm",color:"muted",className:e,...r}));ot.displayName="AtomicInlineSpinner";var nt=_classvarianceauthority.cva.call(void 0, "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground border-current",success:"border-transparent bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-400",warning:"border-transparent bg-amber-100 text-amber-800 dark:bg-amber-900/20 dark:text-amber-400",info:"border-transparent bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-400",gray:"border-transparent bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-400"},size:{sm:"px-2 py-0.5 text-xs",default:"px-2.5 py-0.5 text-xs",lg:"px-3 py-1 text-sm"},shape:{default:"rounded-full",rounded:"rounded-md",square:"rounded-none"}},defaultVariants:{variant:"default",size:"default",shape:"default"}}),ee= exports.AtomicBadge =_react2.default.forwardRef(({className:e,variant:r,size:t,shape:a,leftIcon:o,rightIcon:n,dot:s=!1,dotColor:d,removable:u=!1,onRemove:l,removeIcon:y,children:b,...A},g)=>{let h=t==="sm"?"h-3 w-3":t==="lg"?"h-4 w-4":"h-3.5 w-3.5",c=t==="sm"?"h-1.5 w-1.5":t==="lg"?"h-2.5 w-2.5":"h-2 w-2";return _jsxruntime.jsxs.call(void 0, "div",{ref:g,className:i(nt({variant:r,size:t,shape:a}),e),...A,children:[s&&_jsxruntime.jsx.call(void 0, "span",{className:i("mr-1.5 rounded-full",c,!d&&(r==="success"?"bg-green-600":r==="warning"?"bg-amber-600":r==="info"?"bg-blue-600":r==="destructive"?"bg-red-600":r==="gray"?"bg-gray-600":"bg-current")),style:d?{backgroundColor:d}:void 0}),o&&_jsxruntime.jsx.call(void 0, "span",{className:i("mr-1 flex items-center",`[&>*]:${h}`),children:o}),b,n&&!u&&_jsxruntime.jsx.call(void 0, "span",{className:i("ml-1 flex items-center",`[&>*]:${h}`),children:n}),u&&_jsxruntime.jsx.call(void 0, "button",{type:"button",onClick:l,className:i("ml-1 flex items-center rounded-full hover:bg-black/10 dark:hover:bg-white/10","transition-colors focus:outline-none focus:ring-1 focus:ring-current",t==="sm"?"p-0.5":"p-1"),children:y?_jsxruntime.jsx.call(void 0, "span",{className:i("flex items-center",`[&>*]:${h}`),children:y}):_jsxruntime.jsxs.call(void 0, "svg",{className:h,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[_jsxruntime.jsx.call(void 0, "line",{x1:"18",y1:"6",x2:"6",y2:"18"}),_jsxruntime.jsx.call(void 0, "line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})});ee.displayName="AtomicBadge";var it=_react2.default.forwardRef(({status:e,variant:r,...t},a)=>{let n={online:{variant:"success",dot:!0,children:"Online"},offline:{variant:"gray",dot:!0,children:"Offline"},busy:{variant:"destructive",dot:!0,children:"Busy"},away:{variant:"warning",dot:!0,children:"Away"}}[e];return _jsxruntime.jsx.call(void 0, ee,{ref:a,variant:r||n.variant,dot:n.dot,...t,children:t.children||n.children})});it.displayName="AtomicStatusBadge";var st=_react2.default.forwardRef(({count:e,max:r=99,...t},a)=>{let o=e>r?`${r}+`:e.toString();return e<=0?null:_jsxruntime.jsx.call(void 0, ee,{ref:a,variant:"destructive",size:"sm",...t,children:o})});st.displayName="AtomicCountBadge";var _link = require('next/link'); var _link2 = _interopRequireDefault(_link);var lt=_classvarianceauthority.cva.call(void 0, "transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",{variants:{variant:{default:"text-foreground hover:text-foreground/80",primary:"text-primary hover:text-primary/80",secondary:"text-secondary-foreground hover:text-secondary-foreground/80",muted:"text-muted-foreground hover:text-foreground",destructive:"text-destructive hover:text-destructive/80",ghost:"text-foreground hover:bg-accent hover:text-accent-foreground",underline:"text-primary underline underline-offset-4 hover:text-primary/80",button:"inline-flex items-center justify-center rounded-md text-sm font-medium h-10 px-4 py-2 bg-primary text-primary-foreground hover:bg-primary/90"},size:{default:"",sm:"text-sm",lg:"text-lg",xl:"text-xl"},weight:{normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold"}},defaultVariants:{variant:"default",size:"default",weight:"normal"}}),ct= exports.AtomicLink =_react2.default.forwardRef(({className:e,variant:r,size:t,weight:a,external:o=!1,showExternalIcon:n=!1,prefetch:s=!0,externalIcon:d,children:u,href:l,...y},b)=>{let A=typeof l=="string"&&(l.startsWith("http")||l.startsWith("//")),g=o||A,h={className:i(lt({variant:r,size:t,weight:a}),e),ref:b,...y},c=_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[u,g&&n&&_jsxruntime.jsx.call(void 0, "span",{className:"ml-1 inline-block",children:d||_jsxruntime.jsx.call(void 0, "svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:_jsxruntime.jsx.call(void 0, "path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})})]});return g?_jsxruntime.jsx.call(void 0, "a",{href:l,target:"_blank",rel:"noopener noreferrer",...h,children:c}):_jsxruntime.jsx.call(void 0, _link2.default,{href:l,prefetch:s,...h,children:c})});ct.displayName="AtomicLink";var mt=(e,r)=>{if(!e)return"";if(typeof e=="string")return`${r}-${e}`;let t=[];return e.x!==void 0&&t.push(`${r}x-${e.x}`),e.y!==void 0&&t.push(`${r}y-${e.y}`),e.t!==void 0&&t.push(`${r}t-${e.t}`),e.r!==void 0&&t.push(`${r}r-${e.r}`),e.b!==void 0&&t.push(`${r}b-${e.b}`),e.l!==void 0&&t.push(`${r}l-${e.l}`),t.join(" ")},pt= exports.AtomicDiv =_react2.default.forwardRef(({d:e,align:r,justify:t,flexDir:a,flexWrap:o,flexGrow:n,flexShrink:s,order:d,p:u,m:l,w:y,h:b,minW:A,minH:g,maxW:h,maxH:c,bg:v,bgGradient:C,border:R,borderColor:L,rounded:S,shadow:T,position:P,top:E,right:B,bottom:F,left:X,cursor:V,as:Z="div",className:oe,children:H,...O},ae)=>{let ne=i(e&&`${e==="flex"?"flex":e==="inline-flex"?"inline-flex":e==="grid"?"grid":e==="hidden"?"hidden":e==="inline"?"inline":e==="inline-block"?"inline-block":"block"}`,r&&`items-${r==="start"?"start":r==="end"?"end":r==="center"?"center":r==="baseline"?"baseline":"stretch"}`,t&&`justify-${t==="start"?"start":t==="end"?"end":t==="center"?"center":t==="between"?"between":t==="around"?"around":"evenly"}`,a&&`flex-${a==="col"?"col":a==="col-reverse"?"col-reverse":a==="row-reverse"?"row-reverse":"row"}`,o&&`flex-${o}`,n!==void 0&&`flex-grow-${n}`,s!==void 0&&`flex-shrink-${s}`,d!==void 0&&`order-${d}`,mt(u,"p"),mt(l,"m"),y&&`w-${y}`,b&&`h-${b}`,A&&`min-w-${A}`,g&&`min-h-${g}`,h&&`max-w-${h}`,c&&`max-h-${c}`,v&&`bg-${v}`,C,R===!0&&"border",typeof R=="string"&&R,L&&`border-${L}`,S&&`rounded${S==="none"?"-none":S==="full"?"-full":S==="sm"?"-sm":S==="md"?"":`-${S}`}`,T&&`shadow${T==="none"?"-none":T==="sm"?"-sm":T==="md"?"":T==="inner"?"-inner":`-${T}`}`,P&&`${P}`,E!==void 0&&`top-${E}`,B!==void 0&&`right-${B}`,F!==void 0&&`bottom-${F}`,X!==void 0&&`left-${X}`,V&&`cursor-${V}`,oe);return _react2.default.createElement(Z,{ref:ae,className:ne,...O},H)});pt.displayName="AtomicDiv";var ut=(e,r)=>{if(!e)return"";if(typeof e=="string")return`${r}-${e}`;let t=[];return e.x!==void 0&&t.push(`${r}x-${e.x}`),e.y!==void 0&&t.push(`${r}y-${e.y}`),e.t!==void 0&&t.push(`${r}t-${e.t}`),e.r!==void 0&&t.push(`${r}r-${e.r}`),e.b!==void 0&&t.push(`${r}b-${e.b}`),e.l!==void 0&&t.push(`${r}l-${e.l}`),t.join(" ")},xr=e=>{if(typeof e=="number")return e;if(typeof e=="string"&&!isNaN(Number(e)))return Number(e);switch(e){case"xs":return 12;case"sm":return 16;case"md":return 20;case"lg":return 24;case"xl":return 28;case"2xl":return 32;default:return 20}},gt= exports.AtomicIcon =_react2.default.forwardRef(({icon:e,size:r="md",color:t,hoverColor:a,p:o,m:n,cursor:s,spin:d=!1,pulse:u=!1,bounce:l=!1,rotate:y,className:b,"aria-label":A,"aria-hidden":g=!1,...h},c)=>{let v=xr(r),C=i("inline-block flex-shrink-0",t&&`text-${t}`,a&&`hover:text-${a}`,ut(o,"p"),ut(n,"m"),s&&`cursor-${s}`,d&&"animate-spin",u&&"animate-pulse",l&&"animate-bounce",y&&`rotate-${y}`,(a||s==="pointer")&&"transition-colors duration-200",b);return _jsxruntime.jsx.call(void 0, e,{ref:c,size:v,className:C,"aria-label":A,"aria-hidden":g,...h})});gt.displayName="AtomicIcon";var ft=(e,r)=>{if(!e)return"";if(typeof e=="string")return`${r}-${e}`;let t=[];return e.x!==void 0&&t.push(`${r}x-${e.x}`),e.y!==void 0&&t.push(`${r}y-${e.y}`),e.t!==void 0&&t.push(`${r}t-${e.t}`),e.r!==void 0&&t.push(`${r}r-${e.r}`),e.b!==void 0&&t.push(`${r}b-${e.b}`),e.l!==void 0&&t.push(`${r}l-${e.l}`),t.join(" ")},hr=(e,r)=>{let t=r||"gray";switch(e){case"primary":return"bg-blue-500 text-white border-blue-500";case"secondary":return"bg-gray-500 text-white border-gray-500";case"success":return"bg-green-500 text-white border-green-500";case"warning":return"bg-yellow-500 text-white border-yellow-500";case"danger":return"bg-red-500 text-white border-red-500";case"info":return"bg-blue-500 text-white border-blue-500";case"outline":return`bg-transparent text-${t}-700 border-${t}-300 border`;case"ghost":return`bg-${t}-100 text-${t}-700 border-transparent`;case"solid":return`bg-${t}-500 text-white border-${t}-500`;default:return"bg-gray-100 text-gray-800 border-gray-200 border"}},wr=e=>{switch(e){case"xs":return"px-1.5 py-0.5 text-xs";case"sm":return"px-2 py-1 text-xs";case"md":return"px-2.5 py-1.5 text-sm";case"lg":return"px-3 py-2 text-base";default:return"px-2.5 py-1.5 text-sm"}},Ar=e=>{switch(e){case"xs":return 10;case"sm":return 12;case"md":return 14;case"lg":return 16;default:return 14}},xt= exports.AtomicTag =_react2.default.forwardRef(({children:e,variant:r="default",size:t="md",color:a,leftIcon:o,rightIcon:n,p:s,m:d,clickable:u=!1,removable:l=!1,onRemove:y,disabled:b=!1,as:A="span",className:g,onClick:h,...c},v)=>{let C=Ar(t),R=i("inline-flex items-center justify-center font-medium rounded-md transition-colors duration-200",hr(r,a),wr(t),ft(s,"p"),ft(d,"m"),u&&!b&&["cursor-pointer","hover:opacity-80","focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"],l&&!b&&"pr-1",b&&"opacity-50 cursor-not-allowed",g),L=_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[o&&_jsxruntime.jsx.call(void 0, o,{size:C,className:i("flex-shrink-0",e?"mr-1.5":"")}),e&&_jsxruntime.jsx.call(void 0, "span",{className:"truncate",children:e}),n&&_jsxruntime.jsx.call(void 0, n,{size:C,className:i("flex-shrink-0",e?"ml-1.5":"")}),l&&_jsxruntime.jsx.call(void 0, "button",{type:"button",className:i("flex-shrink-0 ml-1.5 rounded-full p-0.5","hover:bg-black hover:bg-opacity-20","focus:outline-none focus:bg-black focus:bg-opacity-20",b&&"cursor-not-allowed"),onClick:T=>{T.stopPropagation(),b||_optionalChain([y, 'optionalCall', _5 => _5()])},disabled:b,"aria-label":"Remove",children:_jsxruntime.jsx.call(void 0, "svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:_jsxruntime.jsx.call(void 0, "path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]});return _jsxruntime.jsx.call(void 0, A,{ref:v,className:R,onClick:u?T=>{b||_optionalChain([h, 'optionalCall', _6 => _6(T)])}:void 0,...c,children:L})});xt.displayName="AtomicTag";var bt=(e,r)=>{if(!e)return"";if(typeof e=="string")return`${r}-${e}`;let t=[];return e.x!==void 0&&t.push(`${r}x-${e.x}`),e.y!==void 0&&t.push(`${r}y-${e.y}`),e.t!==void 0&&t.push(`${r}t-${e.t}`),e.r!==void 0&&t.push(`${r}r-${e.r}`),e.b!==void 0&&t.push(`${r}b-${e.b}`),e.l!==void 0&&t.push(`${r}l-${e.l}`),t.join(" ")},Cr=e=>{switch(e){case"sm":return{container:"text-sm",checkbox:"w-4 h-4",icon:12};case"md":return{container:"text-base",checkbox:"w-5 h-5",icon:14};case"lg":return{container:"text-lg",checkbox:"w-6 h-6",icon:16};default:return{container:"text-base",checkbox:"w-5 h-5",icon:14}}},Rr=(e,r)=>{if(r)return"border-red-300 text-red-600 focus:border-red-500 focus:ring-red-500";let t={slate:"border-slate-300 text-slate-600 focus:border-slate-500 focus:ring-slate-500",gray:"border-gray-300 text-gray-600 focus:border-gray-500 focus:ring-gray-500",zinc:"border-zinc-300 text-zinc-600 focus:border-zinc-500 focus:ring-zinc-500",red:"border-red-300 text-red-600 focus:border-red-500 focus:ring-red-500",orange:"border-orange-300 text-orange-600 focus:border-orange-500 focus:ring-orange-500",yellow:"border-yellow-300 text-yellow-600 focus:border-yellow-500 focus:ring-yellow-500",green:"border-green-300 text-green-600 focus:border-green-500 focus:ring-green-500",blue:"border-blue-300 text-blue-600 focus:border-blue-500 focus:ring-blue-500",indigo:"border-indigo-300 text-indigo-600 focus:border-indigo-500 focus:ring-indigo-500",purple:"border-purple-300 text-purple-600 focus:border-purple-500 focus:ring-purple-500",pink:"border-pink-300 text-pink-600 focus:border-pink-500 focus:ring-pink-500"};return t[e]||t.blue},ht= exports.AtomicCheckbox =_react2.default.forwardRef(({checked:e=!1,indeterminate:r=!1,disabled:t=!1,size:a="md",color:o="blue",p:n,m:s,label:d,description:u,error:l=!1,errorMessage:y,className:b,onChange:A,id:g,...h},c)=>{let v=g||`checkbox-${_react2.default.useId()}`,C=Cr(a),R=Rr(o,l),L=P=>{t||_optionalChain([A, 'optionalCall', _7 => _7(P.target.checked,P)])},S=i("relative flex items-start",C.container,bt(n,"p"),bt(s,"m"),t&&"opacity-50 cursor-not-allowed",b),T=i("flex-shrink-0 rounded border-2 bg-white transition-colors duration-200",C.checkbox,R,"focus:outline-none focus:ring-2 focus:ring-offset-2",t?"cursor-not-allowed":"cursor-pointer",(e||r)&&!t&&`bg-${o}-600 border-${o}-600`);return _jsxruntime.jsxs.call(void 0, "div",{className:S,children:[_jsxruntime.jsx.call(void 0, "div",{className:"flex items-center h-5",children:_jsxruntime.jsxs.call(void 0, "div",{className:"relative",children:[_jsxruntime.jsx.call(void 0, "input",{ref:c,type:"checkbox",id:v,checked:e,disabled:t,onChange:L,className:"sr-only",...h}),_jsxruntime.jsxs.call(void 0, "div",{className:T,onClick:()=>{!t&&c&&"current"in c&&c.current&&c.current.click()},children:[e&&!r&&_jsxruntime.jsx.call(void 0, _lucidereact.Check,{size:C.icon,className:"text-white absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"}),r&&_jsxruntime.jsx.call(void 0, _lucidereact.Minus,{size:C.icon,className:"text-white absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"})]})]})}),(d||u)&&_jsxruntime.jsxs.call(void 0, "div",{className:"ml-3 flex-1",children:[d&&_jsxruntime.jsx.call(void 0, "label",{htmlFor:v,className:i("block font-medium leading-5",l?"text-red-700":"text-gray-700",t?"cursor-not-allowed":"cursor-pointer"),children:d}),u&&_jsxruntime.jsx.call(void 0, "p",{className:i("text-sm leading-5",l?"text-red-600":"text-gray-500"),children:u}),l&&y&&_jsxruntime.jsx.call(void 0, "p",{className:"mt-1 text-sm text-red-600",children:y})]})]})});ht.displayName="AtomicCheckbox";var At=(e,r)=>{if(!e)return"";if(typeof e=="string")return`${r}-${e}`;let t=[];return e.x!==void 0&&t.push(`${r}x-${e.x}`),e.y!==void 0&&t.push(`${r}y-${e.y}`),e.t!==void 0&&t.push(`${r}t-${e.t}`),e.r!==void 0&&t.push(`${r}r-${e.r}`),e.b!==void 0&&t.push(`${r}b-${e.b}`),e.l!==void 0&&t.push(`${r}l-${e.l}`),t.join(" ")},Lr=e=>{switch(e){case"sm":return{track:"w-9 h-5",thumb:"w-4 h-4",thumbTranslate:"translate-x-4",container:"text-sm"};case"md":return{track:"w-11 h-6",thumb:"w-5 h-5",thumbTranslate:"translate-x-5",container:"text-base"};case"lg":return{track:"w-14 h-7",thumb:"w-6 h-6",thumbTranslate:"translate-x-7",container:"text-lg"};default:return{track:"w-11 h-6",thumb:"w-5 h-5",thumbTranslate:"translate-x-5",container:"text-base"}}},$r=(e,r)=>{if(!r)return"bg-gray-200";let t={slate:"bg-slate-500",gray:"bg-gray-500",zinc:"bg-zinc-500",red:"bg-red-500",orange:"bg-orange-500",yellow:"bg-yellow-500",green:"bg-green-500",blue:"bg-blue-500",indigo:"bg-indigo-500",purple:"bg-purple-500",pink:"bg-pink-500"};return t[e]||t.blue},vt= exports.AtomicSwitch =_react2.default.forwardRef(({checked:e=!1,disabled:r=!1,size:t="md",color:a="blue",p:o,m:n,label:s,description:d,labelPosition:u="right",loading:l=!1,className:y,onChange:b,id:A,...g},h)=>{let c=A||`switch-${_react2.default.useId()}`,v=Lr(t),C=$r(a,e),R=B=>{!r&&!l&&_optionalChain([b, 'optionalCall', _8 => _8(B.target.checked,B)])},L=i("relative flex items-center",v.container,At(o,"p"),At(n,"m"),r&&"opacity-50 cursor-not-allowed",y),S=i("relative inline-flex flex-shrink-0 rounded-full border-2 border-transparent transition-colors ease-in-out duration-200",v.track,C,"focus-within:outline-none focus-within:ring-2 focus-within:ring-offset-2",`focus-within:ring-${a}-500`,r||l?"cursor-not-allowed":"cursor-pointer"),T=i("pointer-events-none inline-block rounded-full bg-white shadow transform ring-0 transition ease-in-out duration-200",v.thumb,e?v.thumbTranslate:"translate-x-0"),P=_jsxruntime.jsxs.call(void 0, "div",{className:S,children:[_jsxruntime.jsx.call(void 0, "input",{ref:h,type:"checkbox",id:c,checked:e,disabled:r||l,onChange:R,className:"sr-only",...g}),_jsxruntime.jsx.call(void 0, "span",{className:T,children:l&&_jsxruntime.jsxs.call(void 0, "svg",{className:"animate-spin -ml-1 -mt-1 h-3 w-3 text-gray-400",fill:"none",viewBox:"0 0 24 24",children:[_jsxruntime.jsx.call(void 0, "circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),_jsxruntime.jsx.call(void 0, "path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})})]}),E=(s||d)&&_jsxruntime.jsxs.call(void 0, "div",{className:i("flex-1",u==="left"?"mr-3":"ml-3"),children:[s&&_jsxruntime.jsx.call(void 0, "label",{htmlFor:c,className:i("block font-medium leading-5 text-gray-700",r||l?"cursor-not-allowed":"cursor-pointer"),children:s}),d&&_jsxruntime.jsx.call(void 0, "p",{className:"text-sm leading-5 text-gray-500",children:d})]});return _jsxruntime.jsxs.call(void 0, "div",{className:L,children:[u==="left"&&E,P,u==="right"&&E]})});vt.displayName="AtomicSwitch";var kt=_classvarianceauthority.cva.call(void 0, "rounded-lg border text-card-foreground",{variants:{variant:{default:"border-border bg-card shadow-sm",elevated:"border-0 bg-card shadow-lg",outlined:"border-2 border-border bg-card shadow-none",filled:"border-0 bg-muted shadow-none"},size:{sm:"p-4",md:"p-6",lg:"p-8",xl:"p-10"}},defaultVariants:{variant:"default",size:"md"}}),St= exports.cardHeaderVariants =_classvarianceauthority.cva.call(void 0, "flex flex-col space-y-1.5",{variants:{size:{sm:"pb-3",md:"pb-4",lg:"pb-6",xl:"pb-8"}},defaultVariants:{size:"md"}}),Tt= exports.cardTitleVariants =_classvarianceauthority.cva.call(void 0, "font-semibold leading-none tracking-tight",{variants:{size:{sm:"text-lg",md:"text-xl",lg:"text-2xl",xl:"text-3xl"}},defaultVariants:{size:"md"}}),Ct= exports.cardDescriptionVariants =_classvarianceauthority.cva.call(void 0, "text-muted-foreground",{variants:{size:{sm:"text-sm",md:"text-sm",lg:"text-base",xl:"text-lg"}},defaultVariants:{size:"md"}}),Rt= exports.cardContentVariants =_classvarianceauthority.cva.call(void 0, "",{variants:{size:{sm:"pt-0",md:"pt-0",lg:"pt-0",xl:"pt-0"}},defaultVariants:{size:"md"}}),Lt= exports.cardFooterVariants =_classvarianceauthority.cva.call(void 0, "flex items-center",{variants:{size:{sm:"pt-3",md:"pt-4",lg:"pt-6",xl:"pt-8"}},defaultVariants:{size:"md"}}),$t= exports.AtomicCard =_react2.default.forwardRef(({className:e,variant:r,size:t,interactive:a=!1,fullWidth:o=!1,...n},s)=>_jsxruntime.jsx.call(void 0, "div",{ref:s,className:i(kt({variant:r,size:t}),a&&"cursor-pointer transition-shadow hover:shadow-md",o&&"w-full",e),...n}));$t.displayName="AtomicCard";var Pt=_react2.default.forwardRef(({className:e,size:r,...t},a)=>_jsxruntime.jsx.call(void 0, "div",{ref:a,className:i(St({size:r}),e),...t}));Pt.displayName="AtomicCardHeader";var Et=_react2.default.forwardRef(({className:e,size:r,as:t="h3",...a},o)=>_jsxruntime.jsx.call(void 0, t,{ref:o,className:i(Tt({size:r}),e),...a}));Et.displayName="AtomicCardTitle";var Nt=_react2.default.forwardRef(({className:e,size:r,...t},a)=>_jsxruntime.jsx.call(void 0, "p",{ref:a,className:i(Ct({size:r}),e),...t}));Nt.displayName="AtomicCardDescription";var It=_react2.default.forwardRef(({className:e,size:r,...t},a)=>_jsxruntime.jsx.call(void 0, "div",{ref:a,className:i(Rt({size:r}),e),...t}));It.displayName="AtomicCardContent";var Mt=_react2.default.forwardRef(({className:e,size:r,...t},a)=>_jsxruntime.jsx.call(void 0, "div",{ref:a,className:i(Lt({size:r}),e),...t}));Mt.displayName="AtomicCardFooter";var Dt=_react.createContext.call(void 0, void 0),Nr= exports.AtomicThemeProvider =({children:e,defaultTheme:r="system",storageKey:t="atomic-theme",attribute:a="data-theme",enableSystem:o=!0,disableTransitionOnChange:n=!1})=>{let[s,d]=_react.useState.call(void 0, ()=>{if(typeof window>"u")return r;try{let g=localStorage.getItem(t);if(g&&["light","dark","system"].includes(g))return g}catch (e2){}return r}),[u,l]=_react.useState.call(void 0, "light"),y=()=>typeof window>"u"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",b=g=>{try{localStorage.setItem(t,g)}catch (e3){}d(g)};_react.useEffect.call(void 0, ()=>{let g=window.document.documentElement,h=s==="system"&&o?y():s;if(l(h),n){let c=document.createElement("style");c.appendChild(document.createTextNode("* { transition: none !important; transform: none !important; animation: none !important; }")),document.head.appendChild(c),requestAnimationFrame(()=>{requestAnimationFrame(()=>{document.head.removeChild(c)})})}g.setAttribute(a,h),g.classList.remove("light","dark"),g.classList.add(h)},[s,a,o,n]),_react.useEffect.call(void 0, ()=>{if(!o||s!=="system")return;let g=window.matchMedia("(prefers-color-scheme: dark)"),h=()=>{let c=y();l(c);let v=window.document.documentElement;v.setAttribute(a,c),v.classList.remove("light","dark"),v.classList.add(c)};return g.addEventListener("change",h),()=>g.removeEventListener("change",h)},[s,a,o]);let A={theme:s,setTheme:b,actualTheme:u};return _jsxruntime.jsx.call(void 0, Dt.Provider,{value:A,children:e})},Ir= exports.useAtomicTheme =()=>{let e=_react.useContext.call(void 0, Dt);if(e===void 0)throw new Error("useAtomicTheme must be used within an AtomicThemeProvider");return e};var _a="1.1.0";exports.AnimationUtils = N; exports.AtomicAlertType = Pe; exports.AtomicAlignment = Me; exports.AtomicAnimationPresets = Ht; exports.AtomicAnimationState = De; exports.AtomicAnimations = x; exports.AtomicAnimationsCss = pe; exports.AtomicAvatar = _e; exports.AtomicAvatarFallback = qe; exports.AtomicAvatarImage = Xe; exports.AtomicBadge = ee; exports.AtomicBorders = f; exports.AtomicBordersCss = me; exports.AtomicBreakpoint = Fe; exports.AtomicButton = je; exports.AtomicButtonSpinner = tt; exports.AtomicButtonVariant = Te; exports.AtomicCard = $t; exports.AtomicCardContent = It; exports.AtomicCardDescription = Nt; exports.AtomicCardFooter = Mt; exports.AtomicCardHeader = Pt; exports.AtomicCardTitle = Et; exports.AtomicCardVariant = Re; exports.AtomicCheckbox = ht; exports.AtomicColorVariant = Se; exports.AtomicColorsCss = se; exports.AtomicCountBadge = st; exports.AtomicDesignTokensCss = Xr; exports.AtomicDirection = Ve; exports.AtomicDiv = pt; exports.AtomicEnumUtils = Ot; exports.AtomicFormFieldState = ze; exports.AtomicIcon = gt; exports.AtomicImage = Je; exports.AtomicInlineSpinner = ot; exports.AtomicInput = Qe; exports.AtomicInputVariant = Ce; exports.AtomicLink = ct; exports.AtomicLoadingState = Le; exports.AtomicModalSize = Ee; exports.AtomicOrientation = Be; exports.AtomicPageSpinner = rt; exports.AtomicPosition = Ie; exports.AtomicShadows = w; exports.AtomicShadowsCss = de; exports.AtomicSize = ke; exports.AtomicSpacingCss = le; exports.AtomicSpinner = K; exports.AtomicStatus = $e; exports.AtomicStatusBadge = it; exports.AtomicSwitch = vt; exports.AtomicTag = xt; exports.AtomicText = Ue; exports.AtomicTextVariant = Ne; exports.AtomicThemeMode = He; exports.AtomicThemeProvider = Nr; exports.AtomicTypographyCss = ce; exports.BorderUtils = j; exports.ShadowUtils = Ft; exports.VERSION = _a; exports.avatarFallbackVariants = ye; exports.avatarImageVariants = xe; exports.avatarVariants = Ye; exports.badgeVariants = nt; exports.buttonVariants = Oe; exports.cardContentVariants = Rt; exports.cardDescriptionVariants = Ct; exports.cardFooterVariants = Lt; exports.cardHeaderVariants = St; exports.cardTitleVariants = Tt; exports.cardVariants = kt; exports.cn = i; exports.imageVariants = be; exports.inputVariants = Ze; exports.linkVariants = lt; exports.spinnerVariants = et; exports.textVariants = Ge; exports.useAtomicTheme = Ir;
1
+ 'use strict';
2
+
3
+ var clsx = require('clsx');
4
+ var tailwindMerge = require('tailwind-merge');
5
+ var React5 = require('react');
6
+ var reactSlot = require('@radix-ui/react-slot');
7
+ var classVarianceAuthority = require('class-variance-authority');
8
+ var lucideReact = require('lucide-react');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+ var AvatarPrimitive = require('@radix-ui/react-avatar');
11
+ var Image2 = require('next/image');
12
+ var Link = require('next/link');
13
+
14
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
+
16
+ function _interopNamespace(e) {
17
+ if (e && e.__esModule) return e;
18
+ var n = Object.create(null);
19
+ if (e) {
20
+ Object.keys(e).forEach(function (k) {
21
+ if (k !== 'default') {
22
+ var d = Object.getOwnPropertyDescriptor(e, k);
23
+ Object.defineProperty(n, k, d.get ? d : {
24
+ enumerable: true,
25
+ get: function () { return e[k]; }
26
+ });
27
+ }
28
+ });
29
+ }
30
+ n.default = e;
31
+ return Object.freeze(n);
32
+ }
33
+
34
+ var React5__default = /*#__PURE__*/_interopDefault(React5);
35
+ var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
36
+ var Image2__default = /*#__PURE__*/_interopDefault(Image2);
37
+ var Link__default = /*#__PURE__*/_interopDefault(Link);
38
+
39
+ /**
40
+ * @umituz/atomic-next v2.0.0
41
+ * Atomic design system for Next.js
42
+ * https://umituz.com/opensource/atomic-next
43
+ */
44
+
45
+ // src/tokens/colors/atomic-colors.ts
46
+ var colors = {
47
+ primary: "#9333EA",
48
+ primaryLight: "#A855F7",
49
+ primaryDark: "#7C3AED",
50
+ secondary: "#EC4899",
51
+ secondaryLight: "#F472B6",
52
+ secondaryDark: "#DB2777",
53
+ accent: "#F59E0B",
54
+ accentLight: "#FBBF24",
55
+ accentDark: "#D97706",
56
+ gray50: "#FAFAFA",
57
+ gray100: "#F4F4F5",
58
+ gray200: "#E4E4E7",
59
+ gray300: "#D4D4D8",
60
+ gray400: "#A1A1AA",
61
+ gray500: "#71717A",
62
+ gray600: "#52525B",
63
+ gray700: "#3F3F46",
64
+ gray800: "#27272A",
65
+ gray900: "#18181B",
66
+ success: "#10B981",
67
+ successLight: "#34D399",
68
+ successDark: "#059669",
69
+ warning: "#F59E0B",
70
+ warningLight: "#FBBF24",
71
+ warningDark: "#D97706",
72
+ error: "#EF4444",
73
+ errorLight: "#F87171",
74
+ errorDark: "#DC2626",
75
+ info: "#3B82F6",
76
+ infoLight: "#60A5FA",
77
+ infoDark: "#2563EB",
78
+ background: "#FFFFFF",
79
+ backgroundSecondary: "#F9FAFB",
80
+ surface: "#FFFFFF",
81
+ surfaceSecondary: "#F3F4F6",
82
+ textPrimary: "#18181B",
83
+ textSecondary: "#52525B",
84
+ textTertiary: "#A1A1AA",
85
+ textDisabled: "#D4D4D8",
86
+ textInverse: "#FFFFFF"
87
+ };
88
+ var AtomicColorsCss = {
89
+ "--atomic-primary": colors.primary,
90
+ "--atomic-primary-light": colors.primaryLight,
91
+ "--atomic-primary-dark": colors.primaryDark,
92
+ "--atomic-secondary": colors.secondary,
93
+ "--atomic-secondary-light": colors.secondaryLight,
94
+ "--atomic-secondary-dark": colors.secondaryDark,
95
+ "--atomic-accent": colors.accent,
96
+ "--atomic-accent-light": colors.accentLight,
97
+ "--atomic-accent-dark": colors.accentDark,
98
+ "--atomic-gray-50": colors.gray50,
99
+ "--atomic-gray-100": colors.gray100,
100
+ "--atomic-gray-200": colors.gray200,
101
+ "--atomic-gray-300": colors.gray300,
102
+ "--atomic-gray-400": colors.gray400,
103
+ "--atomic-gray-500": colors.gray500,
104
+ "--atomic-gray-600": colors.gray600,
105
+ "--atomic-gray-700": colors.gray700,
106
+ "--atomic-gray-800": colors.gray800,
107
+ "--atomic-gray-900": colors.gray900,
108
+ "--atomic-success": colors.success,
109
+ "--atomic-success-light": colors.successLight,
110
+ "--atomic-success-dark": colors.successDark,
111
+ "--atomic-warning": colors.warning,
112
+ "--atomic-warning-light": colors.warningLight,
113
+ "--atomic-warning-dark": colors.warningDark,
114
+ "--atomic-error": colors.error,
115
+ "--atomic-error-light": colors.errorLight,
116
+ "--atomic-error-dark": colors.errorDark,
117
+ "--atomic-info": colors.info,
118
+ "--atomic-info-light": colors.infoLight,
119
+ "--atomic-info-dark": colors.infoDark,
120
+ "--atomic-background": colors.background,
121
+ "--atomic-background-secondary": colors.backgroundSecondary,
122
+ "--atomic-surface": colors.surface,
123
+ "--atomic-surface-secondary": colors.surfaceSecondary,
124
+ "--atomic-text-primary": colors.textPrimary,
125
+ "--atomic-text-secondary": colors.textSecondary,
126
+ "--atomic-text-tertiary": colors.textTertiary,
127
+ "--atomic-text-disabled": colors.textDisabled,
128
+ "--atomic-text-inverse": colors.textInverse
129
+ };
130
+
131
+ // src/tokens/spacing/atomic-spacing.ts
132
+ var spacing = {
133
+ unit: 8,
134
+ xxs: 4,
135
+ xs: 8,
136
+ sm: 12,
137
+ md: 16,
138
+ lg: 24,
139
+ xl: 32,
140
+ xxl: 40,
141
+ xxxl: 48,
142
+ huge: 64,
143
+ buttonPaddingX: 16,
144
+ buttonPaddingY: 12,
145
+ cardPadding: 24,
146
+ cardMargin: 16,
147
+ listItemPadding: 16,
148
+ listItemSpacing: 8,
149
+ inputPaddingX: 16,
150
+ inputPaddingY: 12,
151
+ modalPadding: 24,
152
+ sectionPadding: 32
153
+ };
154
+ var AtomicSpacingCss = {
155
+ "--atomic-spacing-unit": `${spacing.unit}px`,
156
+ "--atomic-spacing-xxs": `${spacing.xxs}px`,
157
+ "--atomic-spacing-xs": `${spacing.xs}px`,
158
+ "--atomic-spacing-sm": `${spacing.sm}px`,
159
+ "--atomic-spacing-md": `${spacing.md}px`,
160
+ "--atomic-spacing-lg": `${spacing.lg}px`,
161
+ "--atomic-spacing-xl": `${spacing.xl}px`,
162
+ "--atomic-spacing-xxl": `${spacing.xxl}px`,
163
+ "--atomic-spacing-xxxl": `${spacing.xxxl}px`,
164
+ "--atomic-spacing-huge": `${spacing.huge}px`,
165
+ "--atomic-button-padding-x": `${spacing.buttonPaddingX}px`,
166
+ "--atomic-button-padding-y": `${spacing.buttonPaddingY}px`,
167
+ "--atomic-card-padding": `${spacing.cardPadding}px`,
168
+ "--atomic-card-margin": `${spacing.cardMargin}px`,
169
+ "--atomic-list-item-padding": `${spacing.listItemPadding}px`,
170
+ "--atomic-list-item-spacing": `${spacing.listItemSpacing}px`,
171
+ "--atomic-input-padding-x": `${spacing.inputPaddingX}px`,
172
+ "--atomic-input-padding-y": `${spacing.inputPaddingY}px`,
173
+ "--atomic-modal-padding": `${spacing.modalPadding}px`,
174
+ "--atomic-section-padding": `${spacing.sectionPadding}px`
175
+ };
176
+
177
+ // src/tokens/typography/atomic-typography.ts
178
+ var typography = {
179
+ fontFamily: {
180
+ sans: ["Inter", "system-ui", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "sans-serif"],
181
+ serif: ["Charter", "Georgia", "Cambria", "Times New Roman", "Times", "serif"],
182
+ mono: ["JetBrains Mono", "Fira Code", "Consolas", "Monaco", "Courier New", "monospace"]
183
+ },
184
+ fontWeight: {
185
+ thin: 100,
186
+ light: 300,
187
+ regular: 400,
188
+ medium: 500,
189
+ semibold: 600,
190
+ bold: 700,
191
+ extrabold: 800,
192
+ black: 900
193
+ },
194
+ fontSize: {
195
+ displayLarge: 57,
196
+ displayMedium: 45,
197
+ displaySmall: 36,
198
+ headlineLarge: 32,
199
+ headlineMedium: 28,
200
+ headlineSmall: 24,
201
+ titleLarge: 22,
202
+ titleMedium: 16,
203
+ titleSmall: 14,
204
+ bodyLarge: 16,
205
+ bodyMedium: 14,
206
+ bodySmall: 12,
207
+ labelLarge: 14,
208
+ labelMedium: 12,
209
+ labelSmall: 11
210
+ },
211
+ lineHeight: {
212
+ none: 1,
213
+ tight: 1.25,
214
+ snug: 1.375,
215
+ normal: 1.5,
216
+ relaxed: 1.625,
217
+ loose: 2
218
+ },
219
+ letterSpacing: {
220
+ tighter: "-0.05em",
221
+ tight: "-0.025em",
222
+ normal: "0em",
223
+ wide: "0.025em",
224
+ wider: "0.05em",
225
+ widest: "0.1em"
226
+ }
227
+ };
228
+ var AtomicTypographyCss = {
229
+ "--atomic-font-sans": typography.fontFamily.sans.join(", "),
230
+ "--atomic-font-serif": typography.fontFamily.serif.join(", "),
231
+ "--atomic-font-mono": typography.fontFamily.mono.join(", "),
232
+ "--atomic-font-thin": typography.fontWeight.thin.toString(),
233
+ "--atomic-font-light": typography.fontWeight.light.toString(),
234
+ "--atomic-font-regular": typography.fontWeight.regular.toString(),
235
+ "--atomic-font-medium": typography.fontWeight.medium.toString(),
236
+ "--atomic-font-semibold": typography.fontWeight.semibold.toString(),
237
+ "--atomic-font-bold": typography.fontWeight.bold.toString(),
238
+ "--atomic-font-extrabold": typography.fontWeight.extrabold.toString(),
239
+ "--atomic-font-black": typography.fontWeight.black.toString(),
240
+ "--atomic-text-display-large": `${typography.fontSize.displayLarge}px`,
241
+ "--atomic-text-display-medium": `${typography.fontSize.displayMedium}px`,
242
+ "--atomic-text-display-small": `${typography.fontSize.displaySmall}px`,
243
+ "--atomic-text-headline-large": `${typography.fontSize.headlineLarge}px`,
244
+ "--atomic-text-headline-medium": `${typography.fontSize.headlineMedium}px`,
245
+ "--atomic-text-headline-small": `${typography.fontSize.headlineSmall}px`,
246
+ "--atomic-text-title-large": `${typography.fontSize.titleLarge}px`,
247
+ "--atomic-text-title-medium": `${typography.fontSize.titleMedium}px`,
248
+ "--atomic-text-title-small": `${typography.fontSize.titleSmall}px`,
249
+ "--atomic-text-body-large": `${typography.fontSize.bodyLarge}px`,
250
+ "--atomic-text-body-medium": `${typography.fontSize.bodyMedium}px`,
251
+ "--atomic-text-body-small": `${typography.fontSize.bodySmall}px`,
252
+ "--atomic-text-label-large": `${typography.fontSize.labelLarge}px`,
253
+ "--atomic-text-label-medium": `${typography.fontSize.labelMedium}px`,
254
+ "--atomic-text-label-small": `${typography.fontSize.labelSmall}px`,
255
+ "--atomic-leading-none": typography.lineHeight.none.toString(),
256
+ "--atomic-leading-tight": typography.lineHeight.tight.toString(),
257
+ "--atomic-leading-snug": typography.lineHeight.snug.toString(),
258
+ "--atomic-leading-normal": typography.lineHeight.normal.toString(),
259
+ "--atomic-leading-relaxed": typography.lineHeight.relaxed.toString(),
260
+ "--atomic-leading-loose": typography.lineHeight.loose.toString(),
261
+ "--atomic-tracking-tighter": typography.letterSpacing.tighter,
262
+ "--atomic-tracking-tight": typography.letterSpacing.tight,
263
+ "--atomic-tracking-normal": typography.letterSpacing.normal,
264
+ "--atomic-tracking-wide": typography.letterSpacing.wide,
265
+ "--atomic-tracking-wider": typography.letterSpacing.wider,
266
+ "--atomic-tracking-widest": typography.letterSpacing.widest
267
+ };
268
+
269
+ // src/tokens/shadows/atomic-shadows.ts
270
+ var AtomicShadows = {
271
+ none: "none",
272
+ xs: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
273
+ sm: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
274
+ md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
275
+ lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
276
+ xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)",
277
+ xxl: "0 25px 50px -12px rgb(0 0 0 / 0.25)",
278
+ inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",
279
+ focusPrimary: "0 0 0 3px rgb(139 92 246 / 0.2)",
280
+ focusSecondary: "0 0 0 3px rgb(236 72 153 / 0.2)",
281
+ focusSuccess: "0 0 0 3px rgb(16 185 129 / 0.2)",
282
+ focusWarning: "0 0 0 3px rgb(245 158 11 / 0.2)",
283
+ focusError: "0 0 0 3px rgb(239 68 68 / 0.2)",
284
+ focusInfo: "0 0 0 3px rgb(59 130 246 / 0.2)",
285
+ glowPrimary: "0 0 20px rgb(139 92 246 / 0.3)",
286
+ glowSecondary: "0 0 20px rgb(236 72 153 / 0.3)",
287
+ glowSuccess: "0 0 20px rgb(16 185 129 / 0.3)",
288
+ glowWarning: "0 0 20px rgb(245 158 11 / 0.3)",
289
+ glowError: "0 0 20px rgb(239 68 68 / 0.3)",
290
+ card: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
291
+ cardHover: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
292
+ button: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
293
+ buttonHover: "0 2px 4px 0 rgb(0 0 0 / 0.1)",
294
+ modal: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)",
295
+ dropdown: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
296
+ tooltip: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)"
297
+ };
298
+ var ShadowUtils = {
299
+ get: (name) => {
300
+ return AtomicShadows[name];
301
+ },
302
+ custom: (x, y, blur, spread = 0, color = "0 0 0", opacity = 0.1) => {
303
+ return `${x}px ${y}px ${blur}px ${spread}px rgb(${color} / ${opacity})`;
304
+ },
305
+ combine: (...shadows) => {
306
+ return shadows.map((shadow) => AtomicShadows[shadow]).join(", ");
307
+ },
308
+ focus: (color = "139 92 246", opacity = 0.2) => {
309
+ return `0 0 0 3px rgb(${color} / ${opacity})`;
310
+ },
311
+ glow: (size = 20, color = "139 92 246", opacity = 0.3) => {
312
+ return `0 0 ${size}px rgb(${color} / ${opacity})`;
313
+ }
314
+ };
315
+ var AtomicShadowsCss = {
316
+ "--atomic-shadow-none": AtomicShadows.none,
317
+ "--atomic-shadow-xs": AtomicShadows.xs,
318
+ "--atomic-shadow-sm": AtomicShadows.sm,
319
+ "--atomic-shadow-md": AtomicShadows.md,
320
+ "--atomic-shadow-lg": AtomicShadows.lg,
321
+ "--atomic-shadow-xl": AtomicShadows.xl,
322
+ "--atomic-shadow-xxl": AtomicShadows.xxl,
323
+ "--atomic-shadow-inner": AtomicShadows.inner,
324
+ "--atomic-shadow-focus-primary": AtomicShadows.focusPrimary,
325
+ "--atomic-shadow-focus-secondary": AtomicShadows.focusSecondary,
326
+ "--atomic-shadow-focus-success": AtomicShadows.focusSuccess,
327
+ "--atomic-shadow-focus-warning": AtomicShadows.focusWarning,
328
+ "--atomic-shadow-focus-error": AtomicShadows.focusError,
329
+ "--atomic-shadow-focus-info": AtomicShadows.focusInfo,
330
+ "--atomic-shadow-glow-primary": AtomicShadows.glowPrimary,
331
+ "--atomic-shadow-glow-secondary": AtomicShadows.glowSecondary,
332
+ "--atomic-shadow-glow-success": AtomicShadows.glowSuccess,
333
+ "--atomic-shadow-glow-warning": AtomicShadows.glowWarning,
334
+ "--atomic-shadow-glow-error": AtomicShadows.glowError,
335
+ "--atomic-shadow-card": AtomicShadows.card,
336
+ "--atomic-shadow-card-hover": AtomicShadows.cardHover,
337
+ "--atomic-shadow-button": AtomicShadows.button,
338
+ "--atomic-shadow-button-hover": AtomicShadows.buttonHover,
339
+ "--atomic-shadow-modal": AtomicShadows.modal,
340
+ "--atomic-shadow-dropdown": AtomicShadows.dropdown,
341
+ "--atomic-shadow-tooltip": AtomicShadows.tooltip
342
+ };
343
+
344
+ // src/tokens/borders/atomic-borders.ts
345
+ var AtomicBorders = {
346
+ radius: {
347
+ none: "0px",
348
+ xs: "2px",
349
+ sm: "4px",
350
+ md: "6px",
351
+ lg: "8px",
352
+ xl: "12px",
353
+ xxl: "16px",
354
+ xxxl: "24px",
355
+ full: "9999px"
356
+ },
357
+ width: {
358
+ none: "0px",
359
+ thin: "1px",
360
+ medium: "2px",
361
+ thick: "4px",
362
+ thicker: "8px"
363
+ },
364
+ style: {
365
+ solid: "solid",
366
+ dashed: "dashed",
367
+ dotted: "dotted",
368
+ double: "double",
369
+ none: "none"
370
+ }
371
+ };
372
+ var BorderUtils = {
373
+ radius: (name) => {
374
+ return AtomicBorders.radius[name];
375
+ },
376
+ width: (name) => {
377
+ return AtomicBorders.width[name];
378
+ },
379
+ style: (name) => {
380
+ return AtomicBorders.style[name];
381
+ },
382
+ border: (config) => {
383
+ const width = config.width ? AtomicBorders.width[config.width] : AtomicBorders.width.thin;
384
+ const style = config.style ? AtomicBorders.style[config.style] : AtomicBorders.style.solid;
385
+ const color = config.color || "currentColor";
386
+ return `${width} ${style} ${color}`;
387
+ },
388
+ radiusCorners: {
389
+ all: (radius) => ({
390
+ borderRadius: AtomicBorders.radius[radius]
391
+ }),
392
+ top: (radius) => ({
393
+ borderTopLeftRadius: AtomicBorders.radius[radius],
394
+ borderTopRightRadius: AtomicBorders.radius[radius]
395
+ }),
396
+ right: (radius) => ({
397
+ borderTopRightRadius: AtomicBorders.radius[radius],
398
+ borderBottomRightRadius: AtomicBorders.radius[radius]
399
+ }),
400
+ bottom: (radius) => ({
401
+ borderBottomLeftRadius: AtomicBorders.radius[radius],
402
+ borderBottomRightRadius: AtomicBorders.radius[radius]
403
+ }),
404
+ left: (radius) => ({
405
+ borderTopLeftRadius: AtomicBorders.radius[radius],
406
+ borderBottomLeftRadius: AtomicBorders.radius[radius]
407
+ }),
408
+ topLeft: (radius) => ({
409
+ borderTopLeftRadius: AtomicBorders.radius[radius]
410
+ }),
411
+ topRight: (radius) => ({
412
+ borderTopRightRadius: AtomicBorders.radius[radius]
413
+ }),
414
+ bottomRight: (radius) => ({
415
+ borderBottomRightRadius: AtomicBorders.radius[radius]
416
+ }),
417
+ bottomLeft: (radius) => ({
418
+ borderBottomLeftRadius: AtomicBorders.radius[radius]
419
+ })
420
+ },
421
+ borderSides: {
422
+ all: (config) => ({
423
+ border: BorderUtils.border(config)
424
+ }),
425
+ top: (config) => ({
426
+ borderTop: BorderUtils.border(config)
427
+ }),
428
+ right: (config) => ({
429
+ borderRight: BorderUtils.border(config)
430
+ }),
431
+ bottom: (config) => ({
432
+ borderBottom: BorderUtils.border(config)
433
+ }),
434
+ left: (config) => ({
435
+ borderLeft: BorderUtils.border(config)
436
+ })
437
+ }
438
+ };
439
+ var AtomicBordersCss = {
440
+ "--atomic-radius-none": AtomicBorders.radius.none,
441
+ "--atomic-radius-xs": AtomicBorders.radius.xs,
442
+ "--atomic-radius-sm": AtomicBorders.radius.sm,
443
+ "--atomic-radius-md": AtomicBorders.radius.md,
444
+ "--atomic-radius-lg": AtomicBorders.radius.lg,
445
+ "--atomic-radius-xl": AtomicBorders.radius.xl,
446
+ "--atomic-radius-xxl": AtomicBorders.radius.xxl,
447
+ "--atomic-radius-xxxl": AtomicBorders.radius.xxxl,
448
+ "--atomic-radius-full": AtomicBorders.radius.full,
449
+ "--atomic-border-none": AtomicBorders.width.none,
450
+ "--atomic-border-thin": AtomicBorders.width.thin,
451
+ "--atomic-border-medium": AtomicBorders.width.medium,
452
+ "--atomic-border-thick": AtomicBorders.width.thick,
453
+ "--atomic-border-thicker": AtomicBorders.width.thicker
454
+ };
455
+
456
+ // src/tokens/animations/atomic-animations.ts
457
+ var AtomicAnimations = {
458
+ duration: {
459
+ instant: "0ms",
460
+ fast: "150ms",
461
+ normal: "200ms",
462
+ slow: "300ms",
463
+ slower: "500ms",
464
+ slowest: "700ms"
465
+ },
466
+ easing: {
467
+ linear: "linear",
468
+ ease: "ease",
469
+ easeIn: "ease-in",
470
+ easeOut: "ease-out",
471
+ easeInOut: "ease-in-out",
472
+ smooth: "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
473
+ snappy: "cubic-bezier(0.68, -0.55, 0.265, 1.55)",
474
+ bounce: "cubic-bezier(0.68, -0.6, 0.32, 1.6)",
475
+ elastic: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
476
+ standard: "cubic-bezier(0.4, 0, 0.2, 1)",
477
+ decelerate: "cubic-bezier(0, 0, 0.2, 1)",
478
+ accelerate: "cubic-bezier(0.4, 0, 1, 1)"
479
+ },
480
+ scale: {
481
+ none: "1",
482
+ xs: "1.025",
483
+ sm: "1.05",
484
+ md: "1.1",
485
+ lg: "1.15",
486
+ xl: "1.25"
487
+ },
488
+ rotate: {
489
+ none: "0deg",
490
+ quarter: "90deg",
491
+ half: "180deg",
492
+ threeQuarter: "270deg",
493
+ full: "360deg"
494
+ }
495
+ };
496
+ var AnimationUtils = {
497
+ transition: (config) => {
498
+ const property = Array.isArray(config.property) ? config.property.join(", ") : config.property || "all";
499
+ const duration = config.duration ? AtomicAnimations.duration[config.duration] : AtomicAnimations.duration.normal;
500
+ const easing = config.easing ? AtomicAnimations.easing[config.easing] : AtomicAnimations.easing.easeInOut;
501
+ const delay = config.delay ? AtomicAnimations.duration[config.delay] : "0ms";
502
+ return {
503
+ transition: `${property} ${duration} ${easing} ${delay}`
504
+ };
505
+ },
506
+ transform: (config) => {
507
+ const transforms = [];
508
+ if (config.scale) {
509
+ transforms.push(`scale(${AtomicAnimations.scale[config.scale]})`);
510
+ }
511
+ if (config.rotate) {
512
+ transforms.push(`rotate(${AtomicAnimations.rotate[config.rotate]})`);
513
+ }
514
+ if (config.translateX) {
515
+ transforms.push(`translateX(${config.translateX})`);
516
+ }
517
+ if (config.translateY) {
518
+ transforms.push(`translateY(${config.translateY})`);
519
+ }
520
+ if (config.translateZ) {
521
+ transforms.push(`translateZ(${config.translateZ})`);
522
+ }
523
+ return {
524
+ transform: transforms.join(" ") || "none"
525
+ };
526
+ },
527
+ duration: (name) => {
528
+ return AtomicAnimations.duration[name];
529
+ },
530
+ easing: (name) => {
531
+ return AtomicAnimations.easing[name];
532
+ },
533
+ keyframes: (name, frames) => {
534
+ const keyframeString = Object.entries(frames).map(([key, styles]) => {
535
+ const styleString = Object.entries(styles).map(([prop, value]) => `${prop}: ${value};`).join(" ");
536
+ return `${key} { ${styleString} }`;
537
+ }).join(" ");
538
+ return `@keyframes ${name} { ${keyframeString} }`;
539
+ }
540
+ };
541
+ var AtomicAnimationPresets = {
542
+ fadeIn: AnimationUtils.transition({
543
+ property: "opacity",
544
+ duration: "normal",
545
+ easing: "easeOut"
546
+ }),
547
+ fadeOut: AnimationUtils.transition({
548
+ property: "opacity",
549
+ duration: "fast",
550
+ easing: "easeIn"
551
+ }),
552
+ scaleIn: {
553
+ ...AnimationUtils.transition({
554
+ property: "transform",
555
+ duration: "normal",
556
+ easing: "smooth"
557
+ }),
558
+ transform: "scale(1)"
559
+ },
560
+ scaleOut: {
561
+ ...AnimationUtils.transition({
562
+ property: "transform",
563
+ duration: "fast",
564
+ easing: "easeIn"
565
+ }),
566
+ transform: "scale(0.95)"
567
+ },
568
+ slideInUp: {
569
+ ...AnimationUtils.transition({
570
+ property: "transform",
571
+ duration: "normal",
572
+ easing: "smooth"
573
+ }),
574
+ transform: "translateY(0)"
575
+ },
576
+ slideInDown: {
577
+ ...AnimationUtils.transition({
578
+ property: "transform",
579
+ duration: "normal",
580
+ easing: "smooth"
581
+ }),
582
+ transform: "translateY(0)"
583
+ },
584
+ buttonHover: {
585
+ ...AnimationUtils.transition({
586
+ property: ["background-color", "border-color", "color", "box-shadow", "transform"],
587
+ duration: "fast",
588
+ easing: "easeOut"
589
+ }),
590
+ transform: "translateY(-1px)"
591
+ },
592
+ buttonPress: {
593
+ ...AnimationUtils.transition({
594
+ property: "transform",
595
+ duration: "fast",
596
+ easing: "easeIn"
597
+ }),
598
+ transform: "translateY(0)"
599
+ },
600
+ spin: {
601
+ animation: "spin 1s linear infinite"
602
+ },
603
+ pulse: {
604
+ animation: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite"
605
+ },
606
+ bounce: {
607
+ animation: "bounce 1s infinite"
608
+ }
609
+ };
610
+ var AtomicAnimationsCss = {
611
+ "--atomic-duration-instant": AtomicAnimations.duration.instant,
612
+ "--atomic-duration-fast": AtomicAnimations.duration.fast,
613
+ "--atomic-duration-normal": AtomicAnimations.duration.normal,
614
+ "--atomic-duration-slow": AtomicAnimations.duration.slow,
615
+ "--atomic-duration-slower": AtomicAnimations.duration.slower,
616
+ "--atomic-duration-slowest": AtomicAnimations.duration.slowest,
617
+ "--atomic-ease-linear": AtomicAnimations.easing.linear,
618
+ "--atomic-ease": AtomicAnimations.easing.ease,
619
+ "--atomic-ease-in": AtomicAnimations.easing.easeIn,
620
+ "--atomic-ease-out": AtomicAnimations.easing.easeOut,
621
+ "--atomic-ease-in-out": AtomicAnimations.easing.easeInOut,
622
+ "--atomic-ease-smooth": AtomicAnimations.easing.smooth,
623
+ "--atomic-ease-snappy": AtomicAnimations.easing.snappy,
624
+ "--atomic-ease-bounce": AtomicAnimations.easing.bounce,
625
+ "--atomic-ease-elastic": AtomicAnimations.easing.elastic,
626
+ "--atomic-ease-standard": AtomicAnimations.easing.standard,
627
+ "--atomic-ease-decelerate": AtomicAnimations.easing.decelerate,
628
+ "--atomic-ease-accelerate": AtomicAnimations.easing.accelerate,
629
+ "--atomic-scale-none": AtomicAnimations.scale.none,
630
+ "--atomic-scale-xs": AtomicAnimations.scale.xs,
631
+ "--atomic-scale-sm": AtomicAnimations.scale.sm,
632
+ "--atomic-scale-md": AtomicAnimations.scale.md,
633
+ "--atomic-scale-lg": AtomicAnimations.scale.lg,
634
+ "--atomic-scale-xl": AtomicAnimations.scale.xl
635
+ };
636
+
637
+ // src/tokens/enums/atomic-enums.ts
638
+ var AtomicSize = /* @__PURE__ */ ((AtomicSize2) => {
639
+ AtomicSize2["XS"] = "xs";
640
+ AtomicSize2["SM"] = "sm";
641
+ AtomicSize2["MD"] = "md";
642
+ AtomicSize2["LG"] = "lg";
643
+ AtomicSize2["XL"] = "xl";
644
+ return AtomicSize2;
645
+ })(AtomicSize || {});
646
+ var AtomicColorVariant = /* @__PURE__ */ ((AtomicColorVariant2) => {
647
+ AtomicColorVariant2["PRIMARY"] = "primary";
648
+ AtomicColorVariant2["SECONDARY"] = "secondary";
649
+ AtomicColorVariant2["SUCCESS"] = "success";
650
+ AtomicColorVariant2["WARNING"] = "warning";
651
+ AtomicColorVariant2["ERROR"] = "error";
652
+ AtomicColorVariant2["INFO"] = "info";
653
+ AtomicColorVariant2["GRAY"] = "gray";
654
+ return AtomicColorVariant2;
655
+ })(AtomicColorVariant || {});
656
+ var AtomicButtonVariant = /* @__PURE__ */ ((AtomicButtonVariant2) => {
657
+ AtomicButtonVariant2["PRIMARY"] = "primary";
658
+ AtomicButtonVariant2["SECONDARY"] = "secondary";
659
+ AtomicButtonVariant2["OUTLINE"] = "outline";
660
+ AtomicButtonVariant2["GHOST"] = "ghost";
661
+ AtomicButtonVariant2["LINK"] = "link";
662
+ AtomicButtonVariant2["DESTRUCTIVE"] = "destructive";
663
+ return AtomicButtonVariant2;
664
+ })(AtomicButtonVariant || {});
665
+ var AtomicInputVariant = /* @__PURE__ */ ((AtomicInputVariant2) => {
666
+ AtomicInputVariant2["DEFAULT"] = "default";
667
+ AtomicInputVariant2["FILLED"] = "filled";
668
+ AtomicInputVariant2["OUTLINE"] = "outline";
669
+ AtomicInputVariant2["UNDERLINED"] = "underlined";
670
+ return AtomicInputVariant2;
671
+ })(AtomicInputVariant || {});
672
+ var AtomicCardVariant = /* @__PURE__ */ ((AtomicCardVariant2) => {
673
+ AtomicCardVariant2["DEFAULT"] = "default";
674
+ AtomicCardVariant2["ELEVATED"] = "elevated";
675
+ AtomicCardVariant2["OUTLINED"] = "outlined";
676
+ AtomicCardVariant2["FILLED"] = "filled";
677
+ return AtomicCardVariant2;
678
+ })(AtomicCardVariant || {});
679
+ var AtomicLoadingState = /* @__PURE__ */ ((AtomicLoadingState2) => {
680
+ AtomicLoadingState2["IDLE"] = "idle";
681
+ AtomicLoadingState2["LOADING"] = "loading";
682
+ AtomicLoadingState2["SUCCESS"] = "success";
683
+ AtomicLoadingState2["ERROR"] = "error";
684
+ return AtomicLoadingState2;
685
+ })(AtomicLoadingState || {});
686
+ var AtomicStatus = /* @__PURE__ */ ((AtomicStatus2) => {
687
+ AtomicStatus2["ACTIVE"] = "active";
688
+ AtomicStatus2["INACTIVE"] = "inactive";
689
+ AtomicStatus2["PENDING"] = "pending";
690
+ AtomicStatus2["DISABLED"] = "disabled";
691
+ AtomicStatus2["ARCHIVED"] = "archived";
692
+ return AtomicStatus2;
693
+ })(AtomicStatus || {});
694
+ var AtomicAlertType = /* @__PURE__ */ ((AtomicAlertType2) => {
695
+ AtomicAlertType2["INFO"] = "info";
696
+ AtomicAlertType2["SUCCESS"] = "success";
697
+ AtomicAlertType2["WARNING"] = "warning";
698
+ AtomicAlertType2["ERROR"] = "error";
699
+ return AtomicAlertType2;
700
+ })(AtomicAlertType || {});
701
+ var AtomicModalSize = /* @__PURE__ */ ((AtomicModalSize2) => {
702
+ AtomicModalSize2["SM"] = "sm";
703
+ AtomicModalSize2["MD"] = "md";
704
+ AtomicModalSize2["LG"] = "lg";
705
+ AtomicModalSize2["XL"] = "xl";
706
+ AtomicModalSize2["FULL"] = "full";
707
+ return AtomicModalSize2;
708
+ })(AtomicModalSize || {});
709
+ var AtomicTextVariant = /* @__PURE__ */ ((AtomicTextVariant2) => {
710
+ AtomicTextVariant2["DISPLAY_LARGE"] = "displayLarge";
711
+ AtomicTextVariant2["DISPLAY_MEDIUM"] = "displayMedium";
712
+ AtomicTextVariant2["DISPLAY_SMALL"] = "displaySmall";
713
+ AtomicTextVariant2["HEADLINE_LARGE"] = "headlineLarge";
714
+ AtomicTextVariant2["HEADLINE_MEDIUM"] = "headlineMedium";
715
+ AtomicTextVariant2["HEADLINE_SMALL"] = "headlineSmall";
716
+ AtomicTextVariant2["TITLE_LARGE"] = "titleLarge";
717
+ AtomicTextVariant2["TITLE_MEDIUM"] = "titleMedium";
718
+ AtomicTextVariant2["TITLE_SMALL"] = "titleSmall";
719
+ AtomicTextVariant2["BODY_LARGE"] = "bodyLarge";
720
+ AtomicTextVariant2["BODY_MEDIUM"] = "bodyMedium";
721
+ AtomicTextVariant2["BODY_SMALL"] = "bodySmall";
722
+ AtomicTextVariant2["LABEL_LARGE"] = "labelLarge";
723
+ AtomicTextVariant2["LABEL_MEDIUM"] = "labelMedium";
724
+ AtomicTextVariant2["LABEL_SMALL"] = "labelSmall";
725
+ return AtomicTextVariant2;
726
+ })(AtomicTextVariant || {});
727
+ var AtomicPosition = /* @__PURE__ */ ((AtomicPosition2) => {
728
+ AtomicPosition2["TOP"] = "top";
729
+ AtomicPosition2["TOP_LEFT"] = "top-left";
730
+ AtomicPosition2["TOP_RIGHT"] = "top-right";
731
+ AtomicPosition2["BOTTOM"] = "bottom";
732
+ AtomicPosition2["BOTTOM_LEFT"] = "bottom-left";
733
+ AtomicPosition2["BOTTOM_RIGHT"] = "bottom-right";
734
+ AtomicPosition2["LEFT"] = "left";
735
+ AtomicPosition2["RIGHT"] = "right";
736
+ AtomicPosition2["CENTER"] = "center";
737
+ return AtomicPosition2;
738
+ })(AtomicPosition || {});
739
+ var AtomicAlignment = /* @__PURE__ */ ((AtomicAlignment2) => {
740
+ AtomicAlignment2["LEFT"] = "left";
741
+ AtomicAlignment2["CENTER"] = "center";
742
+ AtomicAlignment2["RIGHT"] = "right";
743
+ AtomicAlignment2["JUSTIFY"] = "justify";
744
+ return AtomicAlignment2;
745
+ })(AtomicAlignment || {});
746
+ var AtomicOrientation = /* @__PURE__ */ ((AtomicOrientation2) => {
747
+ AtomicOrientation2["HORIZONTAL"] = "horizontal";
748
+ AtomicOrientation2["VERTICAL"] = "vertical";
749
+ return AtomicOrientation2;
750
+ })(AtomicOrientation || {});
751
+ var AtomicDirection = /* @__PURE__ */ ((AtomicDirection2) => {
752
+ AtomicDirection2["UP"] = "up";
753
+ AtomicDirection2["DOWN"] = "down";
754
+ AtomicDirection2["LEFT"] = "left";
755
+ AtomicDirection2["RIGHT"] = "right";
756
+ return AtomicDirection2;
757
+ })(AtomicDirection || {});
758
+ var AtomicAnimationState = /* @__PURE__ */ ((AtomicAnimationState2) => {
759
+ AtomicAnimationState2["ENTER"] = "enter";
760
+ AtomicAnimationState2["EXIT"] = "exit";
761
+ AtomicAnimationState2["IDLE"] = "idle";
762
+ return AtomicAnimationState2;
763
+ })(AtomicAnimationState || {});
764
+ var AtomicFormFieldState = /* @__PURE__ */ ((AtomicFormFieldState2) => {
765
+ AtomicFormFieldState2["DEFAULT"] = "default";
766
+ AtomicFormFieldState2["FOCUS"] = "focus";
767
+ AtomicFormFieldState2["ERROR"] = "error";
768
+ AtomicFormFieldState2["SUCCESS"] = "success";
769
+ AtomicFormFieldState2["DISABLED"] = "disabled";
770
+ return AtomicFormFieldState2;
771
+ })(AtomicFormFieldState || {});
772
+ var AtomicBreakpoint = /* @__PURE__ */ ((AtomicBreakpoint2) => {
773
+ AtomicBreakpoint2["XS"] = "xs";
774
+ AtomicBreakpoint2["SM"] = "sm";
775
+ AtomicBreakpoint2["MD"] = "md";
776
+ AtomicBreakpoint2["LG"] = "lg";
777
+ AtomicBreakpoint2["XL"] = "xl";
778
+ AtomicBreakpoint2["XXL"] = "xxl";
779
+ return AtomicBreakpoint2;
780
+ })(AtomicBreakpoint || {});
781
+ var AtomicThemeMode = /* @__PURE__ */ ((AtomicThemeMode2) => {
782
+ AtomicThemeMode2["LIGHT"] = "light";
783
+ AtomicThemeMode2["DARK"] = "dark";
784
+ AtomicThemeMode2["SYSTEM"] = "system";
785
+ return AtomicThemeMode2;
786
+ })(AtomicThemeMode || {});
787
+ var AtomicEnumUtils = {
788
+ getValues: (enumObj) => {
789
+ return Object.values(enumObj);
790
+ },
791
+ getKeys: (enumObj) => {
792
+ return Object.keys(enumObj);
793
+ },
794
+ hasValue: (enumObj, value) => {
795
+ return Object.values(enumObj).includes(value);
796
+ },
797
+ hasKey: (enumObj, key) => {
798
+ return Object.keys(enumObj).includes(key);
799
+ },
800
+ getEntries: (enumObj) => {
801
+ return Object.entries(enumObj);
802
+ }
803
+ };
804
+
805
+ // src/tokens/index.ts
806
+ var AtomicDesignTokensCss = {
807
+ ...AtomicColorsCss,
808
+ ...AtomicSpacingCss,
809
+ ...AtomicTypographyCss,
810
+ ...AtomicShadowsCss,
811
+ ...AtomicBordersCss,
812
+ ...AtomicAnimationsCss
813
+ };
814
+ function cn(...inputs) {
815
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
816
+ }
817
+ var buttonVariants = classVarianceAuthority.cva(
818
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
819
+ {
820
+ variants: {
821
+ variant: {
822
+ default: "bg-gray-900 text-white hover:bg-gray-800 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-100",
823
+ primary: "bg-[--atomic-primary] text-white hover:bg-[--atomic-primary-dark] transition-all duration-200",
824
+ brand: "text-white hover:shadow-xl transition-all duration-200",
825
+ destructive: "bg-red-600 text-white hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600",
826
+ outline: "border border-gray-300 bg-transparent hover:bg-gray-50 dark:border-gray-700 dark:hover:bg-gray-800",
827
+ secondary: "bg-gray-100 text-gray-900 hover:bg-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:hover:bg-gray-700",
828
+ ghost: "bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800",
829
+ link: "bg-transparent text-blue-600 underline-offset-4 hover:underline dark:text-blue-400"
830
+ },
831
+ size: {
832
+ default: "h-10 px-4 py-2",
833
+ sm: "h-9 rounded-md px-3",
834
+ lg: "h-11 rounded-md px-8",
835
+ icon: "h-10 w-10"
836
+ }
837
+ },
838
+ defaultVariants: {
839
+ variant: "default",
840
+ size: "default"
841
+ }
842
+ }
843
+ );
844
+ var AtomicButton = React5__default.default.forwardRef(
845
+ ({
846
+ className,
847
+ variant,
848
+ size,
849
+ asChild = false,
850
+ loading = false,
851
+ leftIcon,
852
+ rightIcon,
853
+ fullWidth = false,
854
+ disabled,
855
+ children,
856
+ ...props
857
+ }, ref) => {
858
+ const Comp = asChild ? reactSlot.Slot : "button";
859
+ const isDisabled = disabled || loading;
860
+ return /* @__PURE__ */ jsxRuntime.jsxs(
861
+ Comp,
862
+ {
863
+ className: cn(
864
+ buttonVariants({ variant, size }),
865
+ fullWidth && "w-full",
866
+ className
867
+ ),
868
+ style: {
869
+ ...variant === "brand" && {
870
+ background: "linear-gradient(to right, var(--atomic-primary), var(--atomic-secondary))"
871
+ },
872
+ ...props.style
873
+ },
874
+ ref,
875
+ disabled: isDisabled,
876
+ ...props,
877
+ children: [
878
+ loading && /* @__PURE__ */ jsxRuntime.jsx(
879
+ lucideReact.Loader2,
880
+ {
881
+ className: cn(
882
+ "animate-spin",
883
+ size === "sm" ? "h-3 w-3" : size === "lg" ? "h-5 w-5" : "h-4 w-4",
884
+ (leftIcon || children) && "mr-2"
885
+ )
886
+ }
887
+ ),
888
+ !loading && leftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
889
+ "inline-flex items-center",
890
+ size === "sm" ? "mr-1" : "mr-2",
891
+ size === "sm" ? "[&>*]:h-3 [&>*]:w-3" : size === "lg" ? "[&>*]:h-5 [&>*]:w-5" : "[&>*]:h-4 [&>*]:w-4"
892
+ ), children: leftIcon }),
893
+ children,
894
+ !loading && rightIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
895
+ "inline-flex items-center",
896
+ size === "sm" ? "ml-1" : "ml-2",
897
+ size === "sm" ? "[&>*]:h-3 [&>*]:w-3" : size === "lg" ? "[&>*]:h-5 [&>*]:w-5" : "[&>*]:h-4 [&>*]:w-4"
898
+ ), children: rightIcon })
899
+ ]
900
+ }
901
+ );
902
+ }
903
+ );
904
+ AtomicButton.displayName = "AtomicButton";
905
+ var textVariants = classVarianceAuthority.cva("", {
906
+ variants: {
907
+ variant: {
908
+ h1: "scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl",
909
+ h2: "scroll-m-20 text-3xl font-semibold tracking-tight lg:text-4xl",
910
+ h3: "scroll-m-20 text-2xl font-semibold tracking-tight",
911
+ h4: "scroll-m-20 text-xl font-semibold tracking-tight",
912
+ h5: "scroll-m-20 text-lg font-semibold tracking-tight",
913
+ h6: "scroll-m-20 text-base font-semibold tracking-tight",
914
+ body: "text-base leading-7",
915
+ large: "text-lg leading-7",
916
+ small: "text-sm leading-6",
917
+ xs: "text-xs leading-5",
918
+ lead: "text-xl leading-7 text-muted-foreground",
919
+ muted: "text-sm text-muted-foreground",
920
+ caption: "text-xs text-muted-foreground",
921
+ label: "text-sm font-medium leading-none"
922
+ },
923
+ color: {
924
+ default: "text-foreground",
925
+ primary: "text-primary",
926
+ secondary: "text-secondary-foreground",
927
+ muted: "text-muted-foreground",
928
+ success: "text-green-600 dark:text-green-400",
929
+ warning: "text-amber-600 dark:text-amber-400",
930
+ error: "text-red-600 dark:text-red-400",
931
+ info: "text-blue-600 dark:text-blue-400"
932
+ },
933
+ align: {
934
+ left: "text-left",
935
+ center: "text-center",
936
+ right: "text-right",
937
+ justify: "text-justify"
938
+ },
939
+ weight: {
940
+ thin: "font-thin",
941
+ light: "font-light",
942
+ normal: "font-normal",
943
+ medium: "font-medium",
944
+ semibold: "font-semibold",
945
+ bold: "font-bold",
946
+ extrabold: "font-extrabold",
947
+ black: "font-black"
948
+ }
949
+ },
950
+ defaultVariants: {
951
+ variant: "body",
952
+ color: "default",
953
+ align: "left"
954
+ }
955
+ });
956
+ var AtomicText = React5__default.default.forwardRef(
957
+ ({
958
+ className,
959
+ variant,
960
+ color,
961
+ align,
962
+ weight,
963
+ as = "p",
964
+ asChild = false,
965
+ truncate = false,
966
+ selectable = true,
967
+ ...props
968
+ }, ref) => {
969
+ const Comp = asChild ? reactSlot.Slot : as;
970
+ let semanticElement = as;
971
+ if (!asChild && as === "p") {
972
+ if (variant === "h1" || variant === "h2" || variant === "h3" || variant === "h4" || variant === "h5" || variant === "h6") {
973
+ semanticElement = variant;
974
+ } else if (variant === "label") {
975
+ semanticElement = "label";
976
+ }
977
+ }
978
+ const FinalComp = asChild ? Comp : semanticElement;
979
+ return /* @__PURE__ */ jsxRuntime.jsx(
980
+ FinalComp,
981
+ {
982
+ className: cn(
983
+ textVariants({ variant, color: color || "default", align, weight }),
984
+ truncate && "truncate",
985
+ !selectable && "select-none",
986
+ className
987
+ ),
988
+ ref,
989
+ ...props
990
+ }
991
+ );
992
+ }
993
+ );
994
+ AtomicText.displayName = "AtomicText";
995
+ var avatarVariants = classVarianceAuthority.cva(
996
+ "relative flex shrink-0 overflow-hidden rounded-full",
997
+ {
998
+ variants: {
999
+ size: {
1000
+ xs: "h-6 w-6",
1001
+ sm: "h-8 w-8",
1002
+ default: "h-10 w-10",
1003
+ lg: "h-12 w-12",
1004
+ xl: "h-16 w-16",
1005
+ xxl: "h-20 w-20",
1006
+ xxxl: "h-24 w-24"
1007
+ }
1008
+ },
1009
+ defaultVariants: {
1010
+ size: "default"
1011
+ }
1012
+ }
1013
+ );
1014
+ var avatarImageVariants = classVarianceAuthority.cva("aspect-square h-full w-full object-cover");
1015
+ var avatarFallbackVariants = classVarianceAuthority.cva(
1016
+ "flex h-full w-full items-center justify-center rounded-full bg-muted font-medium text-muted-foreground",
1017
+ {
1018
+ variants: {
1019
+ size: {
1020
+ xs: "text-xs",
1021
+ sm: "text-xs",
1022
+ default: "text-sm",
1023
+ lg: "text-base",
1024
+ xl: "text-lg",
1025
+ xxl: "text-xl",
1026
+ xxxl: "text-2xl"
1027
+ }
1028
+ },
1029
+ defaultVariants: {
1030
+ size: "default"
1031
+ }
1032
+ }
1033
+ );
1034
+ var AtomicAvatar = React5__default.default.forwardRef(
1035
+ ({
1036
+ className,
1037
+ size,
1038
+ src,
1039
+ alt,
1040
+ fallback,
1041
+ fallbackElement,
1042
+ showStatus = false,
1043
+ isOnline = false,
1044
+ statusColor,
1045
+ ...props
1046
+ }, ref) => {
1047
+ const generateInitials = (name) => {
1048
+ if (!name) return "?";
1049
+ return name.split(" ").map((part) => part.charAt(0)).join("").slice(0, 2).toUpperCase();
1050
+ };
1051
+ const initials = fallback || generateInitials(alt);
1052
+ const statusSize = {
1053
+ xs: "h-1.5 w-1.5",
1054
+ sm: "h-2 w-2",
1055
+ default: "h-2.5 w-2.5",
1056
+ lg: "h-3 w-3",
1057
+ xl: "h-4 w-4",
1058
+ xxl: "h-4 w-4",
1059
+ xxxl: "h-5 w-5"
1060
+ }[size || "default"];
1061
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
1062
+ /* @__PURE__ */ jsxRuntime.jsxs(
1063
+ AvatarPrimitive__namespace.Root,
1064
+ {
1065
+ ref,
1066
+ className: cn(avatarVariants({ size }), className),
1067
+ ...props,
1068
+ children: [
1069
+ /* @__PURE__ */ jsxRuntime.jsx(
1070
+ AvatarPrimitive__namespace.Image,
1071
+ {
1072
+ className: avatarImageVariants(),
1073
+ src,
1074
+ alt
1075
+ }
1076
+ ),
1077
+ /* @__PURE__ */ jsxRuntime.jsx(
1078
+ AvatarPrimitive__namespace.Fallback,
1079
+ {
1080
+ className: avatarFallbackVariants({ size }),
1081
+ children: fallbackElement || initials
1082
+ }
1083
+ )
1084
+ ]
1085
+ }
1086
+ ),
1087
+ showStatus && /* @__PURE__ */ jsxRuntime.jsx(
1088
+ "div",
1089
+ {
1090
+ className: cn(
1091
+ "absolute bottom-0 right-0 rounded-full border-2 border-background",
1092
+ statusSize,
1093
+ statusColor ? "" : isOnline ? "bg-green-500" : "bg-gray-400"
1094
+ ),
1095
+ style: statusColor ? { backgroundColor: statusColor } : void 0
1096
+ }
1097
+ )
1098
+ ] });
1099
+ }
1100
+ );
1101
+ AtomicAvatar.displayName = "AtomicAvatar";
1102
+ var AtomicAvatarImage = React5__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1103
+ AvatarPrimitive__namespace.Image,
1104
+ {
1105
+ ref,
1106
+ className: cn(avatarImageVariants(), className),
1107
+ ...props
1108
+ }
1109
+ ));
1110
+ AtomicAvatarImage.displayName = "AtomicAvatarImage";
1111
+ var AtomicAvatarFallback = React5__default.default.forwardRef(({ className, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1112
+ AvatarPrimitive__namespace.Fallback,
1113
+ {
1114
+ ref,
1115
+ className: cn(avatarFallbackVariants({ size }), className),
1116
+ ...props
1117
+ }
1118
+ ));
1119
+ AtomicAvatarFallback.displayName = "AtomicAvatarFallback";
1120
+ var imageVariants = classVarianceAuthority.cva("transition-all duration-200", {
1121
+ variants: {
1122
+ rounded: {
1123
+ none: "rounded-none",
1124
+ sm: "rounded-sm",
1125
+ md: "rounded-md",
1126
+ lg: "rounded-lg",
1127
+ xl: "rounded-xl",
1128
+ full: "rounded-full"
1129
+ },
1130
+ aspectRatio: {
1131
+ square: "aspect-square",
1132
+ video: "aspect-video",
1133
+ portrait: "aspect-[3/4]",
1134
+ landscape: "aspect-[4/3]",
1135
+ auto: ""
1136
+ },
1137
+ objectFit: {
1138
+ cover: "object-cover",
1139
+ contain: "object-contain",
1140
+ fill: "object-fill",
1141
+ "scale-down": "object-scale-down",
1142
+ none: "object-none"
1143
+ },
1144
+ objectPosition: {
1145
+ center: "object-center",
1146
+ top: "object-top",
1147
+ bottom: "object-bottom",
1148
+ left: "object-left",
1149
+ right: "object-right",
1150
+ "top-left": "object-left-top",
1151
+ "top-right": "object-right-top",
1152
+ "bottom-left": "object-left-bottom",
1153
+ "bottom-right": "object-right-bottom"
1154
+ }
1155
+ },
1156
+ defaultVariants: {
1157
+ rounded: "none",
1158
+ aspectRatio: "auto",
1159
+ objectFit: "cover",
1160
+ objectPosition: "center"
1161
+ }
1162
+ });
1163
+ var AtomicImage = React5__default.default.forwardRef(({
1164
+ className,
1165
+ containerClassName,
1166
+ rounded,
1167
+ aspectRatio,
1168
+ objectFit,
1169
+ objectPosition,
1170
+ enableBlur = false,
1171
+ placeholderSrc,
1172
+ ...props
1173
+ }, ref) => {
1174
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
1175
+ "relative overflow-hidden",
1176
+ aspectRatio && imageVariants({ aspectRatio }),
1177
+ containerClassName
1178
+ ), children: /* @__PURE__ */ jsxRuntime.jsx(
1179
+ Image2__default.default,
1180
+ {
1181
+ ref,
1182
+ className: cn(
1183
+ imageVariants({
1184
+ rounded,
1185
+ objectFit,
1186
+ objectPosition,
1187
+ aspectRatio: void 0
1188
+ }),
1189
+ className
1190
+ ),
1191
+ placeholder: enableBlur || placeholderSrc ? "blur" : "empty",
1192
+ blurDataURL: placeholderSrc,
1193
+ ...props
1194
+ }
1195
+ ) });
1196
+ });
1197
+ AtomicImage.displayName = "AtomicImage";
1198
+ var cardVariants = classVarianceAuthority.cva(
1199
+ "rounded-lg border text-card-foreground",
1200
+ {
1201
+ variants: {
1202
+ variant: {
1203
+ default: "border-border bg-card shadow-sm",
1204
+ elevated: "border-0 bg-card shadow-lg",
1205
+ outlined: "border-2 border-border bg-card shadow-none",
1206
+ filled: "border-0 bg-muted shadow-none"
1207
+ },
1208
+ size: {
1209
+ sm: "p-4",
1210
+ md: "p-6",
1211
+ lg: "p-8",
1212
+ xl: "p-10"
1213
+ }
1214
+ },
1215
+ defaultVariants: {
1216
+ variant: "default",
1217
+ size: "md"
1218
+ }
1219
+ }
1220
+ );
1221
+ var cardHeaderVariants = classVarianceAuthority.cva(
1222
+ "flex flex-col space-y-1.5",
1223
+ {
1224
+ variants: {
1225
+ size: {
1226
+ sm: "pb-3",
1227
+ md: "pb-4",
1228
+ lg: "pb-6",
1229
+ xl: "pb-8"
1230
+ }
1231
+ },
1232
+ defaultVariants: {
1233
+ size: "md"
1234
+ }
1235
+ }
1236
+ );
1237
+ var cardTitleVariants = classVarianceAuthority.cva(
1238
+ "font-semibold leading-none tracking-tight",
1239
+ {
1240
+ variants: {
1241
+ size: {
1242
+ sm: "text-lg",
1243
+ md: "text-xl",
1244
+ lg: "text-2xl",
1245
+ xl: "text-3xl"
1246
+ }
1247
+ },
1248
+ defaultVariants: {
1249
+ size: "md"
1250
+ }
1251
+ }
1252
+ );
1253
+ var cardDescriptionVariants = classVarianceAuthority.cva(
1254
+ "text-muted-foreground",
1255
+ {
1256
+ variants: {
1257
+ size: {
1258
+ sm: "text-sm",
1259
+ md: "text-sm",
1260
+ lg: "text-base",
1261
+ xl: "text-lg"
1262
+ }
1263
+ },
1264
+ defaultVariants: {
1265
+ size: "md"
1266
+ }
1267
+ }
1268
+ );
1269
+ var cardContentVariants = classVarianceAuthority.cva("", {
1270
+ variants: {
1271
+ size: {
1272
+ sm: "pt-0",
1273
+ md: "pt-0",
1274
+ lg: "pt-0",
1275
+ xl: "pt-0"
1276
+ }
1277
+ },
1278
+ defaultVariants: {
1279
+ size: "md"
1280
+ }
1281
+ });
1282
+ var cardFooterVariants = classVarianceAuthority.cva(
1283
+ "flex items-center",
1284
+ {
1285
+ variants: {
1286
+ size: {
1287
+ sm: "pt-3",
1288
+ md: "pt-4",
1289
+ lg: "pt-6",
1290
+ xl: "pt-8"
1291
+ }
1292
+ },
1293
+ defaultVariants: {
1294
+ size: "md"
1295
+ }
1296
+ }
1297
+ );
1298
+ var AtomicCard = React5__default.default.forwardRef(
1299
+ ({ className, variant, size, interactive = false, fullWidth = false, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1300
+ "div",
1301
+ {
1302
+ ref,
1303
+ className: cn(
1304
+ cardVariants({ variant, size }),
1305
+ interactive && "cursor-pointer transition-shadow hover:shadow-md",
1306
+ fullWidth && "w-full",
1307
+ className
1308
+ ),
1309
+ ...props
1310
+ }
1311
+ )
1312
+ );
1313
+ AtomicCard.displayName = "AtomicCard";
1314
+ var AtomicCardHeader = React5__default.default.forwardRef(
1315
+ ({ className, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1316
+ "div",
1317
+ {
1318
+ ref,
1319
+ className: cn(cardHeaderVariants({ size }), className),
1320
+ ...props
1321
+ }
1322
+ )
1323
+ );
1324
+ AtomicCardHeader.displayName = "AtomicCardHeader";
1325
+ var AtomicCardTitle = React5__default.default.forwardRef(
1326
+ ({ className, size, as: Component = "h3", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1327
+ Component,
1328
+ {
1329
+ ref,
1330
+ className: cn(cardTitleVariants({ size }), className),
1331
+ ...props
1332
+ }
1333
+ )
1334
+ );
1335
+ AtomicCardTitle.displayName = "AtomicCardTitle";
1336
+ var AtomicCardDescription = React5__default.default.forwardRef(
1337
+ ({ className, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1338
+ "p",
1339
+ {
1340
+ ref,
1341
+ className: cn(cardDescriptionVariants({ size }), className),
1342
+ ...props
1343
+ }
1344
+ )
1345
+ );
1346
+ AtomicCardDescription.displayName = "AtomicCardDescription";
1347
+ var AtomicCardContent = React5__default.default.forwardRef(
1348
+ ({ className, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1349
+ "div",
1350
+ {
1351
+ ref,
1352
+ className: cn(cardContentVariants({ size }), className),
1353
+ ...props
1354
+ }
1355
+ )
1356
+ );
1357
+ AtomicCardContent.displayName = "AtomicCardContent";
1358
+ var AtomicCardFooter = React5__default.default.forwardRef(
1359
+ ({ className, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1360
+ "div",
1361
+ {
1362
+ ref,
1363
+ className: cn(cardFooterVariants({ size }), className),
1364
+ ...props
1365
+ }
1366
+ )
1367
+ );
1368
+ AtomicCardFooter.displayName = "AtomicCardFooter";
1369
+ var getSpacingClass = (spacing2, prefix) => {
1370
+ if (!spacing2) return "";
1371
+ if (typeof spacing2 === "string") {
1372
+ return `${prefix}-${spacing2}`;
1373
+ }
1374
+ const classes = [];
1375
+ if (spacing2.x !== void 0) classes.push(`${prefix}x-${spacing2.x}`);
1376
+ if (spacing2.y !== void 0) classes.push(`${prefix}y-${spacing2.y}`);
1377
+ if (spacing2.t !== void 0) classes.push(`${prefix}t-${spacing2.t}`);
1378
+ if (spacing2.r !== void 0) classes.push(`${prefix}r-${spacing2.r}`);
1379
+ if (spacing2.b !== void 0) classes.push(`${prefix}b-${spacing2.b}`);
1380
+ if (spacing2.l !== void 0) classes.push(`${prefix}l-${spacing2.l}`);
1381
+ return classes.join(" ");
1382
+ };
1383
+ var getSizeValue = (size) => {
1384
+ if (typeof size === "number") return size;
1385
+ if (typeof size === "string" && !isNaN(Number(size))) return Number(size);
1386
+ switch (size) {
1387
+ case "xs":
1388
+ return 12;
1389
+ case "sm":
1390
+ return 16;
1391
+ case "md":
1392
+ return 20;
1393
+ case "lg":
1394
+ return 24;
1395
+ case "xl":
1396
+ return 28;
1397
+ case "2xl":
1398
+ return 32;
1399
+ default:
1400
+ return 20;
1401
+ }
1402
+ };
1403
+ var AtomicIcon = React5__default.default.forwardRef(
1404
+ ({
1405
+ icon: Icon,
1406
+ size = "md",
1407
+ color,
1408
+ hoverColor,
1409
+ p,
1410
+ m,
1411
+ cursor,
1412
+ spin = false,
1413
+ pulse = false,
1414
+ bounce = false,
1415
+ rotate,
1416
+ className,
1417
+ "aria-label": ariaLabel,
1418
+ "aria-hidden": ariaHidden = false,
1419
+ ...rest
1420
+ }, ref) => {
1421
+ const sizeValue = getSizeValue(size);
1422
+ const classes = cn(
1423
+ "inline-block flex-shrink-0",
1424
+ color && `text-${color}`,
1425
+ hoverColor && `hover:text-${hoverColor}`,
1426
+ getSpacingClass(p, "p"),
1427
+ getSpacingClass(m, "m"),
1428
+ cursor && `cursor-${cursor}`,
1429
+ spin && "animate-spin",
1430
+ pulse && "animate-pulse",
1431
+ bounce && "animate-bounce",
1432
+ rotate && `rotate-${rotate}`,
1433
+ (hoverColor || cursor === "pointer") && "transition-colors duration-200",
1434
+ className
1435
+ );
1436
+ return /* @__PURE__ */ jsxRuntime.jsx(
1437
+ Icon,
1438
+ {
1439
+ ref,
1440
+ size: sizeValue,
1441
+ className: classes,
1442
+ "aria-label": ariaLabel,
1443
+ "aria-hidden": ariaHidden,
1444
+ ...rest
1445
+ }
1446
+ );
1447
+ }
1448
+ );
1449
+ AtomicIcon.displayName = "AtomicIcon";
1450
+ var inputVariants = classVarianceAuthority.cva(
1451
+ "flex w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
1452
+ {
1453
+ variants: {
1454
+ variant: {
1455
+ default: "",
1456
+ filled: "bg-secondary border-transparent",
1457
+ outline: "bg-transparent border-2",
1458
+ underlined: "rounded-none border-0 border-b-2 px-0"
1459
+ },
1460
+ size: {
1461
+ sm: "h-8 px-2 text-xs",
1462
+ default: "h-10 px-3 text-sm",
1463
+ lg: "h-12 px-4 text-base"
1464
+ },
1465
+ state: {
1466
+ default: "",
1467
+ error: "border-destructive focus-visible:ring-destructive",
1468
+ success: "border-green-500 focus-visible:ring-green-500",
1469
+ warning: "border-amber-500 focus-visible:ring-amber-500"
1470
+ }
1471
+ },
1472
+ defaultVariants: {
1473
+ variant: "default",
1474
+ size: "default",
1475
+ state: "default"
1476
+ }
1477
+ }
1478
+ );
1479
+ var AtomicInput = React5__default.default.forwardRef(
1480
+ ({
1481
+ className,
1482
+ variant,
1483
+ size,
1484
+ state,
1485
+ type = "text",
1486
+ leftIcon,
1487
+ rightIcon,
1488
+ label,
1489
+ helperText,
1490
+ error,
1491
+ success,
1492
+ warning,
1493
+ clearable = false,
1494
+ onClear,
1495
+ showPasswordToggle = false,
1496
+ containerClassName,
1497
+ labelClassName,
1498
+ helperClassName,
1499
+ value,
1500
+ onChange,
1501
+ disabled,
1502
+ ...props
1503
+ }, ref) => {
1504
+ const [showPassword, setShowPassword] = React5__default.default.useState(false);
1505
+ const [internalValue, setInternalValue] = React5__default.default.useState(value || "");
1506
+ let currentState = state;
1507
+ if (error) currentState = "error";
1508
+ else if (success) currentState = "success";
1509
+ else if (warning) currentState = "warning";
1510
+ let inputType = type;
1511
+ if (type === "password" && showPasswordToggle) {
1512
+ inputType = showPassword ? "text" : "password";
1513
+ }
1514
+ const hasValue = (value || internalValue) && String(value || internalValue).length > 0;
1515
+ const showClearButton = clearable && hasValue && !disabled;
1516
+ const showPasswordToggleButton = showPasswordToggle && type === "password" && !disabled;
1517
+ const handleChange = (e) => {
1518
+ setInternalValue(e.target.value);
1519
+ onChange?.(e);
1520
+ };
1521
+ const handleClear = () => {
1522
+ setInternalValue("");
1523
+ onClear?.();
1524
+ const syntheticEvent = {
1525
+ target: { value: "" },
1526
+ currentTarget: { value: "" }
1527
+ };
1528
+ onChange?.(syntheticEvent);
1529
+ };
1530
+ const messageText = error || success || warning || helperText;
1531
+ const messageColor = error ? "text-destructive" : success ? "text-green-600 dark:text-green-400" : warning ? "text-amber-600 dark:text-amber-400" : "text-muted-foreground";
1532
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-2", containerClassName), children: [
1533
+ label && /* @__PURE__ */ jsxRuntime.jsx("label", { className: cn(
1534
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
1535
+ disabled && "opacity-50",
1536
+ labelClassName
1537
+ ), children: label }),
1538
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
1539
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
1540
+ "absolute left-0 top-0 h-full flex items-center justify-center",
1541
+ size === "sm" ? "w-8 pl-2" : size === "lg" ? "w-12 pl-4" : "w-10 pl-3",
1542
+ "text-muted-foreground pointer-events-none",
1543
+ "[&>*]:h-4 [&>*]:w-4"
1544
+ ), children: leftIcon }),
1545
+ /* @__PURE__ */ jsxRuntime.jsx(
1546
+ "input",
1547
+ {
1548
+ type: inputType,
1549
+ className: cn(
1550
+ inputVariants({ variant, size, state: currentState }),
1551
+ leftIcon && (size === "sm" ? "pl-8" : size === "lg" ? "pl-12" : "pl-10"),
1552
+ (rightIcon || showClearButton || showPasswordToggleButton) && (size === "sm" ? "pr-8" : size === "lg" ? "pr-12" : "pr-10"),
1553
+ className
1554
+ ),
1555
+ ref,
1556
+ value: value !== void 0 ? value : internalValue,
1557
+ onChange: handleChange,
1558
+ disabled,
1559
+ ...props
1560
+ }
1561
+ ),
1562
+ (rightIcon || showClearButton || showPasswordToggleButton) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
1563
+ "absolute right-0 top-0 h-full flex items-center justify-center gap-1",
1564
+ size === "sm" ? "w-8 pr-2" : size === "lg" ? "w-12 pr-4" : "w-10 pr-3"
1565
+ ), children: [
1566
+ rightIcon && !showClearButton && !showPasswordToggleButton && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground [&>*]:h-4 [&>*]:w-4", children: rightIcon }),
1567
+ showClearButton && /* @__PURE__ */ jsxRuntime.jsx(
1568
+ "button",
1569
+ {
1570
+ type: "button",
1571
+ onClick: handleClear,
1572
+ className: "text-muted-foreground hover:text-foreground transition-colors [&>*]:h-4 [&>*]:w-4",
1573
+ tabIndex: -1,
1574
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, {})
1575
+ }
1576
+ ),
1577
+ showPasswordToggleButton && /* @__PURE__ */ jsxRuntime.jsx(
1578
+ "button",
1579
+ {
1580
+ type: "button",
1581
+ onClick: () => setShowPassword(!showPassword),
1582
+ className: "text-muted-foreground hover:text-foreground transition-colors [&>*]:h-4 [&>*]:w-4",
1583
+ tabIndex: -1,
1584
+ children: showPassword ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.EyeOff, {}) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, {})
1585
+ }
1586
+ )
1587
+ ] })
1588
+ ] }),
1589
+ messageText && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(
1590
+ "text-xs",
1591
+ messageColor,
1592
+ helperClassName
1593
+ ), children: messageText })
1594
+ ] });
1595
+ }
1596
+ );
1597
+ AtomicInput.displayName = "AtomicInput";
1598
+ var getSpacingClass2 = (spacing2, prefix) => {
1599
+ if (!spacing2) return "";
1600
+ if (typeof spacing2 === "string") {
1601
+ return `${prefix}-${spacing2}`;
1602
+ }
1603
+ const classes = [];
1604
+ if (spacing2.x !== void 0) classes.push(`${prefix}x-${spacing2.x}`);
1605
+ if (spacing2.y !== void 0) classes.push(`${prefix}y-${spacing2.y}`);
1606
+ if (spacing2.t !== void 0) classes.push(`${prefix}t-${spacing2.t}`);
1607
+ if (spacing2.r !== void 0) classes.push(`${prefix}r-${spacing2.r}`);
1608
+ if (spacing2.b !== void 0) classes.push(`${prefix}b-${spacing2.b}`);
1609
+ if (spacing2.l !== void 0) classes.push(`${prefix}l-${spacing2.l}`);
1610
+ return classes.join(" ");
1611
+ };
1612
+ var getSizeClasses = (size) => {
1613
+ switch (size) {
1614
+ case "sm":
1615
+ return {
1616
+ container: "text-sm",
1617
+ checkbox: "w-4 h-4",
1618
+ icon: 12
1619
+ };
1620
+ case "md":
1621
+ return {
1622
+ container: "text-base",
1623
+ checkbox: "w-5 h-5",
1624
+ icon: 14
1625
+ };
1626
+ case "lg":
1627
+ return {
1628
+ container: "text-lg",
1629
+ checkbox: "w-6 h-6",
1630
+ icon: 16
1631
+ };
1632
+ default:
1633
+ return {
1634
+ container: "text-base",
1635
+ checkbox: "w-5 h-5",
1636
+ icon: 14
1637
+ };
1638
+ }
1639
+ };
1640
+ var getColorClasses = (color, error) => {
1641
+ if (error) {
1642
+ return "border-red-300 text-red-600 focus:border-red-500 focus:ring-red-500";
1643
+ }
1644
+ const colorMap = {
1645
+ slate: "border-slate-300 text-slate-600 focus:border-slate-500 focus:ring-slate-500",
1646
+ gray: "border-gray-300 text-gray-600 focus:border-gray-500 focus:ring-gray-500",
1647
+ zinc: "border-zinc-300 text-zinc-600 focus:border-zinc-500 focus:ring-zinc-500",
1648
+ red: "border-red-300 text-red-600 focus:border-red-500 focus:ring-red-500",
1649
+ orange: "border-orange-300 text-orange-600 focus:border-orange-500 focus:ring-orange-500",
1650
+ yellow: "border-yellow-300 text-yellow-600 focus:border-yellow-500 focus:ring-yellow-500",
1651
+ green: "border-green-300 text-green-600 focus:border-green-500 focus:ring-green-500",
1652
+ blue: "border-blue-300 text-blue-600 focus:border-blue-500 focus:ring-blue-500",
1653
+ indigo: "border-indigo-300 text-indigo-600 focus:border-indigo-500 focus:ring-indigo-500",
1654
+ purple: "border-purple-300 text-purple-600 focus:border-purple-500 focus:ring-purple-500",
1655
+ pink: "border-pink-300 text-pink-600 focus:border-pink-500 focus:ring-pink-500"
1656
+ };
1657
+ return colorMap[color] || colorMap.blue;
1658
+ };
1659
+ var AtomicCheckbox = React5__default.default.forwardRef(
1660
+ ({
1661
+ checked = false,
1662
+ indeterminate = false,
1663
+ disabled = false,
1664
+ size = "md",
1665
+ color = "blue",
1666
+ p,
1667
+ m,
1668
+ label,
1669
+ description,
1670
+ error = false,
1671
+ errorMessage,
1672
+ className,
1673
+ onChange,
1674
+ id,
1675
+ ...rest
1676
+ }, ref) => {
1677
+ const checkboxId = id || `checkbox-${React5__default.default.useId()}`;
1678
+ const sizeClasses = getSizeClasses(size);
1679
+ const colorClasses = getColorClasses(color, error);
1680
+ const handleChange = (event) => {
1681
+ if (!disabled) {
1682
+ onChange?.(event.target.checked, event);
1683
+ }
1684
+ };
1685
+ const containerClasses = cn(
1686
+ "relative flex items-start",
1687
+ sizeClasses.container,
1688
+ getSpacingClass2(p, "p"),
1689
+ getSpacingClass2(m, "m"),
1690
+ disabled && "opacity-50 cursor-not-allowed",
1691
+ className
1692
+ );
1693
+ const checkboxClasses = cn(
1694
+ "flex-shrink-0 rounded border-2 bg-white transition-colors duration-200",
1695
+ sizeClasses.checkbox,
1696
+ colorClasses,
1697
+ "focus:outline-none focus:ring-2 focus:ring-offset-2",
1698
+ disabled ? "cursor-not-allowed" : "cursor-pointer",
1699
+ (checked || indeterminate) && !disabled && `bg-${color}-600 border-${color}-600`
1700
+ );
1701
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: containerClasses, children: [
1702
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center h-5", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
1703
+ /* @__PURE__ */ jsxRuntime.jsx(
1704
+ "input",
1705
+ {
1706
+ ref,
1707
+ type: "checkbox",
1708
+ id: checkboxId,
1709
+ checked,
1710
+ disabled,
1711
+ onChange: handleChange,
1712
+ className: "sr-only",
1713
+ ...rest
1714
+ }
1715
+ ),
1716
+ /* @__PURE__ */ jsxRuntime.jsxs(
1717
+ "div",
1718
+ {
1719
+ className: checkboxClasses,
1720
+ onClick: () => {
1721
+ if (!disabled && ref && "current" in ref && ref.current) {
1722
+ ref.current.click();
1723
+ }
1724
+ },
1725
+ children: [
1726
+ checked && !indeterminate && /* @__PURE__ */ jsxRuntime.jsx(
1727
+ lucideReact.Check,
1728
+ {
1729
+ size: sizeClasses.icon,
1730
+ className: "text-white absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"
1731
+ }
1732
+ ),
1733
+ indeterminate && /* @__PURE__ */ jsxRuntime.jsx(
1734
+ lucideReact.Minus,
1735
+ {
1736
+ size: sizeClasses.icon,
1737
+ className: "text-white absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"
1738
+ }
1739
+ )
1740
+ ]
1741
+ }
1742
+ )
1743
+ ] }) }),
1744
+ (label || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-3 flex-1", children: [
1745
+ label && /* @__PURE__ */ jsxRuntime.jsx(
1746
+ "label",
1747
+ {
1748
+ htmlFor: checkboxId,
1749
+ className: cn(
1750
+ "block font-medium leading-5",
1751
+ error ? "text-red-700" : "text-gray-700",
1752
+ disabled ? "cursor-not-allowed" : "cursor-pointer"
1753
+ ),
1754
+ children: label
1755
+ }
1756
+ ),
1757
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(
1758
+ "text-sm leading-5",
1759
+ error ? "text-red-600" : "text-gray-500"
1760
+ ), children: description }),
1761
+ error && errorMessage && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-red-600", children: errorMessage })
1762
+ ] })
1763
+ ] });
1764
+ }
1765
+ );
1766
+ AtomicCheckbox.displayName = "AtomicCheckbox";
1767
+ var getSpacingClass3 = (spacing2, prefix) => {
1768
+ if (!spacing2) return "";
1769
+ if (typeof spacing2 === "string") {
1770
+ return `${prefix}-${spacing2}`;
1771
+ }
1772
+ const classes = [];
1773
+ if (spacing2.x !== void 0) classes.push(`${prefix}x-${spacing2.x}`);
1774
+ if (spacing2.y !== void 0) classes.push(`${prefix}y-${spacing2.y}`);
1775
+ if (spacing2.t !== void 0) classes.push(`${prefix}t-${spacing2.t}`);
1776
+ if (spacing2.r !== void 0) classes.push(`${prefix}r-${spacing2.r}`);
1777
+ if (spacing2.b !== void 0) classes.push(`${prefix}b-${spacing2.b}`);
1778
+ if (spacing2.l !== void 0) classes.push(`${prefix}l-${spacing2.l}`);
1779
+ return classes.join(" ");
1780
+ };
1781
+ var getSizeClasses2 = (size) => {
1782
+ switch (size) {
1783
+ case "sm":
1784
+ return {
1785
+ track: "w-9 h-5",
1786
+ thumb: "w-4 h-4",
1787
+ thumbTranslate: "translate-x-4",
1788
+ container: "text-sm"
1789
+ };
1790
+ case "md":
1791
+ return {
1792
+ track: "w-11 h-6",
1793
+ thumb: "w-5 h-5",
1794
+ thumbTranslate: "translate-x-5",
1795
+ container: "text-base"
1796
+ };
1797
+ case "lg":
1798
+ return {
1799
+ track: "w-14 h-7",
1800
+ thumb: "w-6 h-6",
1801
+ thumbTranslate: "translate-x-7",
1802
+ container: "text-lg"
1803
+ };
1804
+ default:
1805
+ return {
1806
+ track: "w-11 h-6",
1807
+ thumb: "w-5 h-5",
1808
+ thumbTranslate: "translate-x-5",
1809
+ container: "text-base"
1810
+ };
1811
+ }
1812
+ };
1813
+ var getColorClasses2 = (color, checked) => {
1814
+ if (!checked) {
1815
+ return "bg-gray-200";
1816
+ }
1817
+ const colorMap = {
1818
+ slate: "bg-slate-500",
1819
+ gray: "bg-gray-500",
1820
+ zinc: "bg-zinc-500",
1821
+ red: "bg-red-500",
1822
+ orange: "bg-orange-500",
1823
+ yellow: "bg-yellow-500",
1824
+ green: "bg-green-500",
1825
+ blue: "bg-blue-500",
1826
+ indigo: "bg-indigo-500",
1827
+ purple: "bg-purple-500",
1828
+ pink: "bg-pink-500"
1829
+ };
1830
+ return colorMap[color] || colorMap.blue;
1831
+ };
1832
+ var AtomicSwitch = React5__default.default.forwardRef(
1833
+ ({
1834
+ checked = false,
1835
+ disabled = false,
1836
+ size = "md",
1837
+ color = "blue",
1838
+ p,
1839
+ m,
1840
+ label,
1841
+ description,
1842
+ labelPosition = "right",
1843
+ loading = false,
1844
+ className,
1845
+ onChange,
1846
+ id,
1847
+ ...rest
1848
+ }, ref) => {
1849
+ const switchId = id || `switch-${React5__default.default.useId()}`;
1850
+ const sizeClasses = getSizeClasses2(size);
1851
+ const colorClasses = getColorClasses2(color, checked);
1852
+ const handleChange = (event) => {
1853
+ if (!disabled && !loading) {
1854
+ onChange?.(event.target.checked, event);
1855
+ }
1856
+ };
1857
+ const containerClasses = cn(
1858
+ "relative flex items-center",
1859
+ sizeClasses.container,
1860
+ getSpacingClass3(p, "p"),
1861
+ getSpacingClass3(m, "m"),
1862
+ disabled && "opacity-50 cursor-not-allowed",
1863
+ className
1864
+ );
1865
+ const trackClasses = cn(
1866
+ "relative inline-flex flex-shrink-0 rounded-full border-2 border-transparent transition-colors ease-in-out duration-200",
1867
+ sizeClasses.track,
1868
+ colorClasses,
1869
+ "focus-within:outline-none focus-within:ring-2 focus-within:ring-offset-2",
1870
+ `focus-within:ring-${color}-500`,
1871
+ disabled || loading ? "cursor-not-allowed" : "cursor-pointer"
1872
+ );
1873
+ const thumbClasses = cn(
1874
+ "pointer-events-none inline-block rounded-full bg-white shadow transform ring-0 transition ease-in-out duration-200",
1875
+ sizeClasses.thumb,
1876
+ checked ? sizeClasses.thumbTranslate : "translate-x-0"
1877
+ );
1878
+ const switchElement = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: trackClasses, children: [
1879
+ /* @__PURE__ */ jsxRuntime.jsx(
1880
+ "input",
1881
+ {
1882
+ ref,
1883
+ type: "checkbox",
1884
+ id: switchId,
1885
+ checked,
1886
+ disabled: disabled || loading,
1887
+ onChange: handleChange,
1888
+ className: "sr-only",
1889
+ ...rest
1890
+ }
1891
+ ),
1892
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: thumbClasses, children: loading && /* @__PURE__ */ jsxRuntime.jsxs(
1893
+ "svg",
1894
+ {
1895
+ className: "animate-spin -ml-1 -mt-1 h-3 w-3 text-gray-400",
1896
+ fill: "none",
1897
+ viewBox: "0 0 24 24",
1898
+ children: [
1899
+ /* @__PURE__ */ jsxRuntime.jsx(
1900
+ "circle",
1901
+ {
1902
+ className: "opacity-25",
1903
+ cx: "12",
1904
+ cy: "12",
1905
+ r: "10",
1906
+ stroke: "currentColor",
1907
+ strokeWidth: "4"
1908
+ }
1909
+ ),
1910
+ /* @__PURE__ */ jsxRuntime.jsx(
1911
+ "path",
1912
+ {
1913
+ className: "opacity-75",
1914
+ fill: "currentColor",
1915
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
1916
+ }
1917
+ )
1918
+ ]
1919
+ }
1920
+ ) })
1921
+ ] });
1922
+ const labelElement = (label || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
1923
+ "flex-1",
1924
+ labelPosition === "left" ? "mr-3" : "ml-3"
1925
+ ), children: [
1926
+ label && /* @__PURE__ */ jsxRuntime.jsx(
1927
+ "label",
1928
+ {
1929
+ htmlFor: switchId,
1930
+ className: cn(
1931
+ "block font-medium leading-5 text-gray-700",
1932
+ disabled || loading ? "cursor-not-allowed" : "cursor-pointer"
1933
+ ),
1934
+ children: label
1935
+ }
1936
+ ),
1937
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm leading-5 text-gray-500", children: description })
1938
+ ] });
1939
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: containerClasses, children: [
1940
+ labelPosition === "left" && labelElement,
1941
+ switchElement,
1942
+ labelPosition === "right" && labelElement
1943
+ ] });
1944
+ }
1945
+ );
1946
+ AtomicSwitch.displayName = "AtomicSwitch";
1947
+ var spinnerVariants = classVarianceAuthority.cva("animate-spin", {
1948
+ variants: {
1949
+ size: {
1950
+ xs: "h-3 w-3",
1951
+ sm: "h-4 w-4",
1952
+ default: "h-5 w-5",
1953
+ lg: "h-6 w-6",
1954
+ xl: "h-8 w-8",
1955
+ xxl: "h-12 w-12"
1956
+ },
1957
+ color: {
1958
+ default: "text-foreground",
1959
+ primary: "text-primary",
1960
+ secondary: "text-secondary-foreground",
1961
+ muted: "text-muted-foreground",
1962
+ white: "text-white",
1963
+ success: "text-green-600",
1964
+ warning: "text-amber-600",
1965
+ error: "text-red-600"
1966
+ }
1967
+ },
1968
+ defaultVariants: {
1969
+ size: "default",
1970
+ color: "default"
1971
+ }
1972
+ });
1973
+ var AtomicSpinner = React5__default.default.forwardRef(
1974
+ ({
1975
+ className,
1976
+ size,
1977
+ color,
1978
+ label,
1979
+ inline = false,
1980
+ icon: Icon = lucideReact.Loader2,
1981
+ ...props
1982
+ }, ref) => {
1983
+ const spinner = /* @__PURE__ */ jsxRuntime.jsx(
1984
+ Icon,
1985
+ {
1986
+ ref,
1987
+ className: cn(spinnerVariants({ size, color }), className),
1988
+ ...props
1989
+ }
1990
+ );
1991
+ if (!label) {
1992
+ return spinner;
1993
+ }
1994
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
1995
+ "flex items-center gap-2",
1996
+ inline ? "inline-flex" : "flex"
1997
+ ), children: [
1998
+ spinner,
1999
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
2000
+ "text-sm",
2001
+ color === "muted" ? "text-muted-foreground" : color === "white" ? "text-white" : color === "primary" ? "text-primary" : "text-foreground"
2002
+ ), children: label })
2003
+ ] });
2004
+ }
2005
+ );
2006
+ AtomicSpinner.displayName = "AtomicSpinner";
2007
+ var AtomicButtonSpinner = React5__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2008
+ AtomicSpinner,
2009
+ {
2010
+ ref,
2011
+ size: "sm",
2012
+ color: "white",
2013
+ className: cn("mr-2", className),
2014
+ ...props
2015
+ }
2016
+ ));
2017
+ AtomicButtonSpinner.displayName = "AtomicButtonSpinner";
2018
+ var AtomicPageSpinner = React5__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsxRuntime.jsx(
2019
+ AtomicSpinner,
2020
+ {
2021
+ ref,
2022
+ size: "lg",
2023
+ className,
2024
+ ...props
2025
+ }
2026
+ ) }));
2027
+ AtomicPageSpinner.displayName = "AtomicPageSpinner";
2028
+ var AtomicInlineSpinner = React5__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2029
+ AtomicSpinner,
2030
+ {
2031
+ ref,
2032
+ inline: true,
2033
+ size: "sm",
2034
+ color: "muted",
2035
+ className,
2036
+ ...props
2037
+ }
2038
+ ));
2039
+ AtomicInlineSpinner.displayName = "AtomicInlineSpinner";
2040
+ var badgeVariants = classVarianceAuthority.cva(
2041
+ "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
2042
+ {
2043
+ variants: {
2044
+ variant: {
2045
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
2046
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
2047
+ destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
2048
+ outline: "text-foreground border-current",
2049
+ success: "border-transparent bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-400",
2050
+ warning: "border-transparent bg-amber-100 text-amber-800 dark:bg-amber-900/20 dark:text-amber-400",
2051
+ info: "border-transparent bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-400",
2052
+ gray: "border-transparent bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-400"
2053
+ },
2054
+ size: {
2055
+ sm: "px-2 py-0.5 text-xs",
2056
+ default: "px-2.5 py-0.5 text-xs",
2057
+ lg: "px-3 py-1 text-sm"
2058
+ },
2059
+ shape: {
2060
+ default: "rounded-full",
2061
+ rounded: "rounded-md",
2062
+ square: "rounded-none"
2063
+ }
2064
+ },
2065
+ defaultVariants: {
2066
+ variant: "default",
2067
+ size: "default",
2068
+ shape: "default"
2069
+ }
2070
+ }
2071
+ );
2072
+ var AtomicBadge = React5__default.default.forwardRef(
2073
+ ({
2074
+ className,
2075
+ variant,
2076
+ size,
2077
+ shape,
2078
+ leftIcon,
2079
+ rightIcon,
2080
+ dot = false,
2081
+ dotColor,
2082
+ removable = false,
2083
+ onRemove,
2084
+ removeIcon,
2085
+ children,
2086
+ ...props
2087
+ }, ref) => {
2088
+ const iconSize = size === "sm" ? "h-3 w-3" : size === "lg" ? "h-4 w-4" : "h-3.5 w-3.5";
2089
+ const dotSize = size === "sm" ? "h-1.5 w-1.5" : size === "lg" ? "h-2.5 w-2.5" : "h-2 w-2";
2090
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2091
+ "div",
2092
+ {
2093
+ ref,
2094
+ className: cn(badgeVariants({ variant, size, shape }), className),
2095
+ ...props,
2096
+ children: [
2097
+ dot && /* @__PURE__ */ jsxRuntime.jsx(
2098
+ "span",
2099
+ {
2100
+ className: cn(
2101
+ "mr-1.5 rounded-full",
2102
+ dotSize,
2103
+ !dotColor && (variant === "success" ? "bg-green-600" : variant === "warning" ? "bg-amber-600" : variant === "info" ? "bg-blue-600" : variant === "destructive" ? "bg-red-600" : variant === "gray" ? "bg-gray-600" : "bg-current")
2104
+ ),
2105
+ style: dotColor ? { backgroundColor: dotColor } : void 0
2106
+ }
2107
+ ),
2108
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("mr-1 flex items-center", `[&>*]:${iconSize}`), children: leftIcon }),
2109
+ children,
2110
+ rightIcon && !removable && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("ml-1 flex items-center", `[&>*]:${iconSize}`), children: rightIcon }),
2111
+ removable && /* @__PURE__ */ jsxRuntime.jsx(
2112
+ "button",
2113
+ {
2114
+ type: "button",
2115
+ onClick: onRemove,
2116
+ className: cn(
2117
+ "ml-1 flex items-center rounded-full hover:bg-black/10 dark:hover:bg-white/10",
2118
+ "transition-colors focus:outline-none focus:ring-1 focus:ring-current",
2119
+ size === "sm" ? "p-0.5" : "p-1"
2120
+ ),
2121
+ children: removeIcon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("flex items-center", `[&>*]:${iconSize}`), children: removeIcon }) : /* @__PURE__ */ jsxRuntime.jsxs(
2122
+ "svg",
2123
+ {
2124
+ className: iconSize,
2125
+ viewBox: "0 0 24 24",
2126
+ fill: "none",
2127
+ stroke: "currentColor",
2128
+ strokeWidth: "2",
2129
+ strokeLinecap: "round",
2130
+ strokeLinejoin: "round",
2131
+ children: [
2132
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
2133
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
2134
+ ]
2135
+ }
2136
+ )
2137
+ }
2138
+ )
2139
+ ]
2140
+ }
2141
+ );
2142
+ }
2143
+ );
2144
+ AtomicBadge.displayName = "AtomicBadge";
2145
+ var AtomicStatusBadge = React5__default.default.forwardRef(({ status, variant, ...props }, ref) => {
2146
+ const statusConfig = {
2147
+ online: { variant: "success", dot: true, children: "Online" },
2148
+ offline: { variant: "gray", dot: true, children: "Offline" },
2149
+ busy: { variant: "destructive", dot: true, children: "Busy" },
2150
+ away: { variant: "warning", dot: true, children: "Away" }
2151
+ };
2152
+ const config = statusConfig[status];
2153
+ return /* @__PURE__ */ jsxRuntime.jsx(
2154
+ AtomicBadge,
2155
+ {
2156
+ ref,
2157
+ variant: variant || config.variant,
2158
+ dot: config.dot,
2159
+ ...props,
2160
+ children: props.children || config.children
2161
+ }
2162
+ );
2163
+ });
2164
+ AtomicStatusBadge.displayName = "AtomicStatusBadge";
2165
+ var AtomicCountBadge = React5__default.default.forwardRef(({ count, max = 99, ...props }, ref) => {
2166
+ const displayCount = count > max ? `${max}+` : count.toString();
2167
+ if (count <= 0) return null;
2168
+ return /* @__PURE__ */ jsxRuntime.jsx(
2169
+ AtomicBadge,
2170
+ {
2171
+ ref,
2172
+ variant: "destructive",
2173
+ size: "sm",
2174
+ ...props,
2175
+ children: displayCount
2176
+ }
2177
+ );
2178
+ });
2179
+ AtomicCountBadge.displayName = "AtomicCountBadge";
2180
+ var getSpacingClass4 = (spacing2, prefix) => {
2181
+ if (!spacing2) return "";
2182
+ if (typeof spacing2 === "string") {
2183
+ return `${prefix}-${spacing2}`;
2184
+ }
2185
+ const classes = [];
2186
+ if (spacing2.x !== void 0) classes.push(`${prefix}x-${spacing2.x}`);
2187
+ if (spacing2.y !== void 0) classes.push(`${prefix}y-${spacing2.y}`);
2188
+ if (spacing2.t !== void 0) classes.push(`${prefix}t-${spacing2.t}`);
2189
+ if (spacing2.r !== void 0) classes.push(`${prefix}r-${spacing2.r}`);
2190
+ if (spacing2.b !== void 0) classes.push(`${prefix}b-${spacing2.b}`);
2191
+ if (spacing2.l !== void 0) classes.push(`${prefix}l-${spacing2.l}`);
2192
+ return classes.join(" ");
2193
+ };
2194
+ var getVariantClasses = (variant, color) => {
2195
+ const baseColor = color || "gray";
2196
+ switch (variant) {
2197
+ case "primary":
2198
+ return `bg-blue-500 text-white border-blue-500`;
2199
+ case "secondary":
2200
+ return `bg-gray-500 text-white border-gray-500`;
2201
+ case "success":
2202
+ return `bg-green-500 text-white border-green-500`;
2203
+ case "warning":
2204
+ return `bg-yellow-500 text-white border-yellow-500`;
2205
+ case "danger":
2206
+ return `bg-red-500 text-white border-red-500`;
2207
+ case "info":
2208
+ return `bg-blue-500 text-white border-blue-500`;
2209
+ case "outline":
2210
+ return `bg-transparent text-${baseColor}-700 border-${baseColor}-300 border`;
2211
+ case "ghost":
2212
+ return `bg-${baseColor}-100 text-${baseColor}-700 border-transparent`;
2213
+ case "solid":
2214
+ return `bg-${baseColor}-500 text-white border-${baseColor}-500`;
2215
+ default:
2216
+ return `bg-gray-100 text-gray-800 border-gray-200 border`;
2217
+ }
2218
+ };
2219
+ var getSizeClasses3 = (size) => {
2220
+ switch (size) {
2221
+ case "xs":
2222
+ return "px-1.5 py-0.5 text-xs";
2223
+ case "sm":
2224
+ return "px-2 py-1 text-xs";
2225
+ case "md":
2226
+ return "px-2.5 py-1.5 text-sm";
2227
+ case "lg":
2228
+ return "px-3 py-2 text-base";
2229
+ default:
2230
+ return "px-2.5 py-1.5 text-sm";
2231
+ }
2232
+ };
2233
+ var getIconSize = (size) => {
2234
+ switch (size) {
2235
+ case "xs":
2236
+ return 10;
2237
+ case "sm":
2238
+ return 12;
2239
+ case "md":
2240
+ return 14;
2241
+ case "lg":
2242
+ return 16;
2243
+ default:
2244
+ return 14;
2245
+ }
2246
+ };
2247
+ var AtomicTag = React5__default.default.forwardRef(
2248
+ ({
2249
+ children,
2250
+ variant = "default",
2251
+ size = "md",
2252
+ color,
2253
+ leftIcon: LeftIcon,
2254
+ rightIcon: RightIcon,
2255
+ p,
2256
+ m,
2257
+ clickable = false,
2258
+ removable = false,
2259
+ onRemove,
2260
+ disabled = false,
2261
+ as: Component = "span",
2262
+ className,
2263
+ onClick,
2264
+ ...rest
2265
+ }, ref) => {
2266
+ const iconSize = getIconSize(size);
2267
+ const classes = cn(
2268
+ "inline-flex items-center justify-center font-medium rounded-md transition-colors duration-200",
2269
+ getVariantClasses(variant, color),
2270
+ getSizeClasses3(size),
2271
+ getSpacingClass4(p, "p"),
2272
+ getSpacingClass4(m, "m"),
2273
+ clickable && !disabled && [
2274
+ "cursor-pointer",
2275
+ "hover:opacity-80",
2276
+ "focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"
2277
+ ],
2278
+ removable && !disabled && "pr-1",
2279
+ disabled && "opacity-50 cursor-not-allowed",
2280
+ className
2281
+ );
2282
+ const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2283
+ LeftIcon && /* @__PURE__ */ jsxRuntime.jsx(
2284
+ LeftIcon,
2285
+ {
2286
+ size: iconSize,
2287
+ className: cn(
2288
+ "flex-shrink-0",
2289
+ children ? "mr-1.5" : ""
2290
+ )
2291
+ }
2292
+ ),
2293
+ children && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children }),
2294
+ RightIcon && /* @__PURE__ */ jsxRuntime.jsx(
2295
+ RightIcon,
2296
+ {
2297
+ size: iconSize,
2298
+ className: cn(
2299
+ "flex-shrink-0",
2300
+ children ? "ml-1.5" : ""
2301
+ )
2302
+ }
2303
+ ),
2304
+ removable && /* @__PURE__ */ jsxRuntime.jsx(
2305
+ "button",
2306
+ {
2307
+ type: "button",
2308
+ className: cn(
2309
+ "flex-shrink-0 ml-1.5 rounded-full p-0.5",
2310
+ "hover:bg-black hover:bg-opacity-20",
2311
+ "focus:outline-none focus:bg-black focus:bg-opacity-20",
2312
+ disabled && "cursor-not-allowed"
2313
+ ),
2314
+ onClick: (e) => {
2315
+ e.stopPropagation();
2316
+ if (!disabled) onRemove?.();
2317
+ },
2318
+ disabled,
2319
+ "aria-label": "Remove",
2320
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2321
+ "svg",
2322
+ {
2323
+ className: "w-3 h-3",
2324
+ fill: "none",
2325
+ stroke: "currentColor",
2326
+ viewBox: "0 0 24 24",
2327
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2328
+ "path",
2329
+ {
2330
+ strokeLinecap: "round",
2331
+ strokeLinejoin: "round",
2332
+ strokeWidth: 2,
2333
+ d: "M6 18L18 6M6 6l12 12"
2334
+ }
2335
+ )
2336
+ }
2337
+ )
2338
+ }
2339
+ )
2340
+ ] });
2341
+ const handleClick = (e) => {
2342
+ if (!disabled) {
2343
+ onClick?.(e);
2344
+ }
2345
+ };
2346
+ return /* @__PURE__ */ jsxRuntime.jsx(
2347
+ Component,
2348
+ {
2349
+ ref,
2350
+ className: classes,
2351
+ onClick: clickable ? handleClick : void 0,
2352
+ ...rest,
2353
+ children: content
2354
+ }
2355
+ );
2356
+ }
2357
+ );
2358
+ AtomicTag.displayName = "AtomicTag";
2359
+ var linkVariants = classVarianceAuthority.cva("transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", {
2360
+ variants: {
2361
+ variant: {
2362
+ default: "text-foreground hover:text-foreground/80",
2363
+ primary: "text-primary hover:text-primary/80",
2364
+ secondary: "text-secondary-foreground hover:text-secondary-foreground/80",
2365
+ muted: "text-muted-foreground hover:text-foreground",
2366
+ destructive: "text-destructive hover:text-destructive/80",
2367
+ ghost: "text-foreground hover:bg-accent hover:text-accent-foreground",
2368
+ underline: "text-primary underline underline-offset-4 hover:text-primary/80",
2369
+ button: "inline-flex items-center justify-center rounded-md text-sm font-medium h-10 px-4 py-2 bg-primary text-primary-foreground hover:bg-primary/90"
2370
+ },
2371
+ size: {
2372
+ default: "",
2373
+ sm: "text-sm",
2374
+ lg: "text-lg",
2375
+ xl: "text-xl"
2376
+ },
2377
+ weight: {
2378
+ normal: "font-normal",
2379
+ medium: "font-medium",
2380
+ semibold: "font-semibold",
2381
+ bold: "font-bold"
2382
+ }
2383
+ },
2384
+ defaultVariants: {
2385
+ variant: "default",
2386
+ size: "default",
2387
+ weight: "normal"
2388
+ }
2389
+ });
2390
+ var AtomicLink = React5__default.default.forwardRef(({
2391
+ className,
2392
+ variant,
2393
+ size,
2394
+ weight,
2395
+ external = false,
2396
+ showExternalIcon = false,
2397
+ prefetch = true,
2398
+ externalIcon,
2399
+ children,
2400
+ href,
2401
+ ...props
2402
+ }, ref) => {
2403
+ const isExternalUrl = typeof href === "string" && (href.startsWith("http") || href.startsWith("//"));
2404
+ const shouldBeExternal = external || isExternalUrl;
2405
+ const linkProps = {
2406
+ className: cn(linkVariants({ variant, size, weight }), className),
2407
+ ref,
2408
+ ...props
2409
+ };
2410
+ const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2411
+ children,
2412
+ shouldBeExternal && showExternalIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 inline-block", children: externalIcon || /* @__PURE__ */ jsxRuntime.jsx(
2413
+ "svg",
2414
+ {
2415
+ className: "h-3 w-3",
2416
+ fill: "none",
2417
+ stroke: "currentColor",
2418
+ viewBox: "0 0 24 24",
2419
+ xmlns: "http://www.w3.org/2000/svg",
2420
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2421
+ "path",
2422
+ {
2423
+ strokeLinecap: "round",
2424
+ strokeLinejoin: "round",
2425
+ strokeWidth: 2,
2426
+ d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"
2427
+ }
2428
+ )
2429
+ }
2430
+ ) })
2431
+ ] });
2432
+ if (shouldBeExternal) {
2433
+ return /* @__PURE__ */ jsxRuntime.jsx(
2434
+ "a",
2435
+ {
2436
+ href,
2437
+ target: "_blank",
2438
+ rel: "noopener noreferrer",
2439
+ ...linkProps,
2440
+ children: content
2441
+ }
2442
+ );
2443
+ }
2444
+ return /* @__PURE__ */ jsxRuntime.jsx(
2445
+ Link__default.default,
2446
+ {
2447
+ href,
2448
+ prefetch,
2449
+ ...linkProps,
2450
+ children: content
2451
+ }
2452
+ );
2453
+ });
2454
+ AtomicLink.displayName = "AtomicLink";
2455
+ var getSpacingClass5 = (spacing2, prefix) => {
2456
+ if (!spacing2) return "";
2457
+ if (typeof spacing2 === "string") {
2458
+ return `${prefix}-${spacing2}`;
2459
+ }
2460
+ const classes = [];
2461
+ if (spacing2.x !== void 0) classes.push(`${prefix}x-${spacing2.x}`);
2462
+ if (spacing2.y !== void 0) classes.push(`${prefix}y-${spacing2.y}`);
2463
+ if (spacing2.t !== void 0) classes.push(`${prefix}t-${spacing2.t}`);
2464
+ if (spacing2.r !== void 0) classes.push(`${prefix}r-${spacing2.r}`);
2465
+ if (spacing2.b !== void 0) classes.push(`${prefix}b-${spacing2.b}`);
2466
+ if (spacing2.l !== void 0) classes.push(`${prefix}l-${spacing2.l}`);
2467
+ return classes.join(" ");
2468
+ };
2469
+ var AtomicDiv = React5__default.default.forwardRef(
2470
+ ({
2471
+ d,
2472
+ align,
2473
+ justify,
2474
+ flexDir,
2475
+ flexWrap,
2476
+ flexGrow,
2477
+ flexShrink,
2478
+ order,
2479
+ p,
2480
+ m,
2481
+ w,
2482
+ h,
2483
+ minW,
2484
+ minH,
2485
+ maxW,
2486
+ maxH,
2487
+ bg,
2488
+ bgGradient,
2489
+ border,
2490
+ borderColor,
2491
+ rounded,
2492
+ shadow,
2493
+ position,
2494
+ top,
2495
+ right,
2496
+ bottom,
2497
+ left,
2498
+ cursor,
2499
+ as: Component = "div",
2500
+ className,
2501
+ children,
2502
+ ...rest
2503
+ }, ref) => {
2504
+ const classes = cn(
2505
+ d && `${d === "flex" ? "flex" : d === "inline-flex" ? "inline-flex" : d === "grid" ? "grid" : d === "hidden" ? "hidden" : d === "inline" ? "inline" : d === "inline-block" ? "inline-block" : "block"}`,
2506
+ align && `items-${align === "start" ? "start" : align === "end" ? "end" : align === "center" ? "center" : align === "baseline" ? "baseline" : "stretch"}`,
2507
+ justify && `justify-${justify === "start" ? "start" : justify === "end" ? "end" : justify === "center" ? "center" : justify === "between" ? "between" : justify === "around" ? "around" : "evenly"}`,
2508
+ flexDir && `flex-${flexDir === "col" ? "col" : flexDir === "col-reverse" ? "col-reverse" : flexDir === "row-reverse" ? "row-reverse" : "row"}`,
2509
+ flexWrap && `flex-${flexWrap}`,
2510
+ flexGrow !== void 0 && `flex-grow-${flexGrow}`,
2511
+ flexShrink !== void 0 && `flex-shrink-${flexShrink}`,
2512
+ order !== void 0 && `order-${order}`,
2513
+ getSpacingClass5(p, "p"),
2514
+ getSpacingClass5(m, "m"),
2515
+ w && `w-${w}`,
2516
+ h && `h-${h}`,
2517
+ minW && `min-w-${minW}`,
2518
+ minH && `min-h-${minH}`,
2519
+ maxW && `max-w-${maxW}`,
2520
+ maxH && `max-h-${maxH}`,
2521
+ bg && `bg-${bg}`,
2522
+ bgGradient,
2523
+ border === true && "border",
2524
+ typeof border === "string" && border,
2525
+ borderColor && `border-${borderColor}`,
2526
+ rounded && `rounded${rounded === "none" ? "-none" : rounded === "full" ? "-full" : rounded === "sm" ? "-sm" : rounded === "md" ? "" : `-${rounded}`}`,
2527
+ shadow && `shadow${shadow === "none" ? "-none" : shadow === "sm" ? "-sm" : shadow === "md" ? "" : shadow === "inner" ? "-inner" : `-${shadow}`}`,
2528
+ position && `${position}`,
2529
+ top !== void 0 && `top-${top}`,
2530
+ right !== void 0 && `right-${right}`,
2531
+ bottom !== void 0 && `bottom-${bottom}`,
2532
+ left !== void 0 && `left-${left}`,
2533
+ cursor && `cursor-${cursor}`,
2534
+ className
2535
+ );
2536
+ return React5__default.default.createElement(
2537
+ Component,
2538
+ {
2539
+ ref,
2540
+ className: classes,
2541
+ ...rest
2542
+ },
2543
+ children
2544
+ );
2545
+ }
2546
+ );
2547
+ AtomicDiv.displayName = "AtomicDiv";
2548
+ var AtomicThemeProviderContext = React5.createContext(void 0);
2549
+ var AtomicThemeProvider = ({
2550
+ children,
2551
+ defaultTheme = "system",
2552
+ storageKey = "atomic-theme",
2553
+ attribute = "data-theme",
2554
+ enableSystem = true,
2555
+ disableTransitionOnChange = false
2556
+ }) => {
2557
+ const [theme, setThemeState] = React5.useState(() => {
2558
+ if (typeof window === "undefined") return defaultTheme;
2559
+ try {
2560
+ const stored = localStorage.getItem(storageKey);
2561
+ if (stored && ["light", "dark", "system"].includes(stored)) {
2562
+ return stored;
2563
+ }
2564
+ } catch {
2565
+ }
2566
+ return defaultTheme;
2567
+ });
2568
+ const [actualTheme, setActualTheme] = React5.useState("light");
2569
+ const getSystemTheme = () => {
2570
+ if (typeof window === "undefined") return "light";
2571
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
2572
+ };
2573
+ const setTheme = (newTheme) => {
2574
+ try {
2575
+ localStorage.setItem(storageKey, newTheme);
2576
+ } catch {
2577
+ }
2578
+ setThemeState(newTheme);
2579
+ };
2580
+ React5.useEffect(() => {
2581
+ const root = window.document.documentElement;
2582
+ const resolvedTheme = theme === "system" && enableSystem ? getSystemTheme() : theme;
2583
+ setActualTheme(resolvedTheme);
2584
+ if (disableTransitionOnChange) {
2585
+ const css = document.createElement("style");
2586
+ css.appendChild(
2587
+ document.createTextNode(
2588
+ "* { transition: none !important; transform: none !important; animation: none !important; }"
2589
+ )
2590
+ );
2591
+ document.head.appendChild(css);
2592
+ requestAnimationFrame(() => {
2593
+ requestAnimationFrame(() => {
2594
+ document.head.removeChild(css);
2595
+ });
2596
+ });
2597
+ }
2598
+ root.setAttribute(attribute, resolvedTheme);
2599
+ root.classList.remove("light", "dark");
2600
+ root.classList.add(resolvedTheme);
2601
+ }, [theme, attribute, enableSystem, disableTransitionOnChange]);
2602
+ React5.useEffect(() => {
2603
+ if (!enableSystem || theme !== "system") return;
2604
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
2605
+ const handleChange = () => {
2606
+ const systemTheme = getSystemTheme();
2607
+ setActualTheme(systemTheme);
2608
+ const root = window.document.documentElement;
2609
+ root.setAttribute(attribute, systemTheme);
2610
+ root.classList.remove("light", "dark");
2611
+ root.classList.add(systemTheme);
2612
+ };
2613
+ mediaQuery.addEventListener("change", handleChange);
2614
+ return () => mediaQuery.removeEventListener("change", handleChange);
2615
+ }, [theme, attribute, enableSystem]);
2616
+ const value = {
2617
+ theme,
2618
+ setTheme,
2619
+ actualTheme
2620
+ };
2621
+ return /* @__PURE__ */ jsxRuntime.jsx(AtomicThemeProviderContext.Provider, { value, children });
2622
+ };
2623
+ var useAtomicTheme = () => {
2624
+ const context = React5.useContext(AtomicThemeProviderContext);
2625
+ if (context === void 0) {
2626
+ throw new Error("useAtomicTheme must be used within an AtomicThemeProvider");
2627
+ }
2628
+ return context;
2629
+ };
2630
+
2631
+ // src/index.ts
2632
+ var VERSION = "2.0.0";
2633
+
2634
+ exports.AnimationUtils = AnimationUtils;
2635
+ exports.AtomicAlertType = AtomicAlertType;
2636
+ exports.AtomicAlignment = AtomicAlignment;
2637
+ exports.AtomicAnimationPresets = AtomicAnimationPresets;
2638
+ exports.AtomicAnimationState = AtomicAnimationState;
2639
+ exports.AtomicAnimations = AtomicAnimations;
2640
+ exports.AtomicAnimationsCss = AtomicAnimationsCss;
2641
+ exports.AtomicAvatar = AtomicAvatar;
2642
+ exports.AtomicAvatarFallback = AtomicAvatarFallback;
2643
+ exports.AtomicAvatarImage = AtomicAvatarImage;
2644
+ exports.AtomicBadge = AtomicBadge;
2645
+ exports.AtomicBorders = AtomicBorders;
2646
+ exports.AtomicBordersCss = AtomicBordersCss;
2647
+ exports.AtomicBreakpoint = AtomicBreakpoint;
2648
+ exports.AtomicButton = AtomicButton;
2649
+ exports.AtomicButtonSpinner = AtomicButtonSpinner;
2650
+ exports.AtomicButtonVariant = AtomicButtonVariant;
2651
+ exports.AtomicCard = AtomicCard;
2652
+ exports.AtomicCardContent = AtomicCardContent;
2653
+ exports.AtomicCardDescription = AtomicCardDescription;
2654
+ exports.AtomicCardFooter = AtomicCardFooter;
2655
+ exports.AtomicCardHeader = AtomicCardHeader;
2656
+ exports.AtomicCardTitle = AtomicCardTitle;
2657
+ exports.AtomicCardVariant = AtomicCardVariant;
2658
+ exports.AtomicCheckbox = AtomicCheckbox;
2659
+ exports.AtomicColorVariant = AtomicColorVariant;
2660
+ exports.AtomicColorsCss = AtomicColorsCss;
2661
+ exports.AtomicCountBadge = AtomicCountBadge;
2662
+ exports.AtomicDesignTokensCss = AtomicDesignTokensCss;
2663
+ exports.AtomicDirection = AtomicDirection;
2664
+ exports.AtomicDiv = AtomicDiv;
2665
+ exports.AtomicEnumUtils = AtomicEnumUtils;
2666
+ exports.AtomicFormFieldState = AtomicFormFieldState;
2667
+ exports.AtomicIcon = AtomicIcon;
2668
+ exports.AtomicImage = AtomicImage;
2669
+ exports.AtomicInlineSpinner = AtomicInlineSpinner;
2670
+ exports.AtomicInput = AtomicInput;
2671
+ exports.AtomicInputVariant = AtomicInputVariant;
2672
+ exports.AtomicLink = AtomicLink;
2673
+ exports.AtomicLoadingState = AtomicLoadingState;
2674
+ exports.AtomicModalSize = AtomicModalSize;
2675
+ exports.AtomicOrientation = AtomicOrientation;
2676
+ exports.AtomicPageSpinner = AtomicPageSpinner;
2677
+ exports.AtomicPosition = AtomicPosition;
2678
+ exports.AtomicShadows = AtomicShadows;
2679
+ exports.AtomicShadowsCss = AtomicShadowsCss;
2680
+ exports.AtomicSize = AtomicSize;
2681
+ exports.AtomicSpacingCss = AtomicSpacingCss;
2682
+ exports.AtomicSpinner = AtomicSpinner;
2683
+ exports.AtomicStatus = AtomicStatus;
2684
+ exports.AtomicStatusBadge = AtomicStatusBadge;
2685
+ exports.AtomicSwitch = AtomicSwitch;
2686
+ exports.AtomicTag = AtomicTag;
2687
+ exports.AtomicText = AtomicText;
2688
+ exports.AtomicTextVariant = AtomicTextVariant;
2689
+ exports.AtomicThemeMode = AtomicThemeMode;
2690
+ exports.AtomicThemeProvider = AtomicThemeProvider;
2691
+ exports.AtomicTypographyCss = AtomicTypographyCss;
2692
+ exports.BorderUtils = BorderUtils;
2693
+ exports.ShadowUtils = ShadowUtils;
2694
+ exports.VERSION = VERSION;
2695
+ exports.avatarImageVariants = avatarImageVariants;
2696
+ exports.avatarVariants = avatarVariants;
2697
+ exports.badgeVariants = badgeVariants;
2698
+ exports.buttonVariants = buttonVariants;
2699
+ exports.cardDescriptionVariants = cardDescriptionVariants;
2700
+ exports.cardHeaderVariants = cardHeaderVariants;
2701
+ exports.cardTitleVariants = cardTitleVariants;
2702
+ exports.cardVariants = cardVariants;
2703
+ exports.cn = cn;
2704
+ exports.inputVariants = inputVariants;
2705
+ exports.linkVariants = linkVariants;
2706
+ exports.spinnerVariants = spinnerVariants;
2707
+ exports.textVariants = textVariants;
2708
+ exports.useAtomicTheme = useAtomicTheme;
2709
+ //# sourceMappingURL=index.js.map
2
2710
  //# sourceMappingURL=index.js.map