@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.d.mts +188 -191
- package/dist/index.d.ts +188 -191
- package/dist/index.js +2709 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2608 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/LICENSE +0 -21
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
|