@xploreu/components 0.4.45 → 0.4.46

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.
Files changed (38) hide show
  1. package/dist/chunk-7EXEQDMX.js +2 -0
  2. package/dist/chunk-7EXEQDMX.js.map +1 -0
  3. package/dist/{chunk-KUOFW7JO.js → chunk-B5LYJTBB.js} +2 -2
  4. package/dist/{chunk-KUOFW7JO.js.map → chunk-B5LYJTBB.js.map} +1 -1
  5. package/dist/chunk-DQGZIFNP.js +2 -0
  6. package/dist/chunk-DQGZIFNP.js.map +1 -0
  7. package/dist/{chunk-F77XVICY.js → chunk-FIDOWSDH.js} +2 -2
  8. package/dist/{chunk-F77XVICY.js.map → chunk-FIDOWSDH.js.map} +1 -1
  9. package/dist/{chunk-5VZ6QNBI.js → chunk-IFBRARGK.js} +2 -2
  10. package/dist/{chunk-5VZ6QNBI.js.map → chunk-IFBRARGK.js.map} +1 -1
  11. package/dist/{chunk-NFLQZ5NB.js → chunk-NBM4LIT4.js} +2 -2
  12. package/dist/{chunk-NFLQZ5NB.js.map → chunk-NBM4LIT4.js.map} +1 -1
  13. package/dist/{chunk-ZK7MHZFG.js → chunk-OBS7TDVV.js} +2 -2
  14. package/dist/{chunk-ZK7MHZFG.js.map → chunk-OBS7TDVV.js.map} +1 -1
  15. package/dist/{chunk-C675EWZW.js → chunk-QIP6KFG2.js} +2 -2
  16. package/dist/{chunk-C675EWZW.js.map → chunk-QIP6KFG2.js.map} +1 -1
  17. package/dist/{chunk-YPV6XEV4.js → chunk-S4L5WILL.js} +2 -2
  18. package/dist/{chunk-YPV6XEV4.js.map → chunk-S4L5WILL.js.map} +1 -1
  19. package/dist/{chunk-XIZN73T3.js → chunk-YHY3VXCO.js} +2 -2
  20. package/dist/{chunk-XIZN73T3.js.map → chunk-YHY3VXCO.js.map} +1 -1
  21. package/dist/composites/combobox-chip-outside.js +1 -1
  22. package/dist/composites/index.js +1 -1
  23. package/dist/ui/alert-dialog.js +1 -1
  24. package/dist/ui/alerter.js +1 -1
  25. package/dist/ui/button.js +1 -1
  26. package/dist/ui/calendar.js +1 -1
  27. package/dist/ui/carousel.js +1 -1
  28. package/dist/ui/date-multiple-picker.js +1 -1
  29. package/dist/ui/date-picker.js +1 -1
  30. package/dist/ui/date-range-picker.js +1 -1
  31. package/dist/ui/index.js +1 -1
  32. package/dist/ui/tabs.js +1 -1
  33. package/dist/ui/toast.js +1 -1
  34. package/package.json +1 -1
  35. package/dist/chunk-UINS73U7.js +0 -2
  36. package/dist/chunk-UINS73U7.js.map +0 -1
  37. package/dist/chunk-XZN4XT6V.js +0 -2
  38. package/dist/chunk-XZN4XT6V.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import {a,b,c as c$1,d,e,g,f as f$1}from'./chunk-6OC5NZB6.js';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs}from'react/jsx-runtime';function m({className:t,variant:a$1="default",...i}){return jsx(a,{className:cn("group/tabs flex flex-col gap-2",t),"data-variant":a$1,...i})}function c({className:t,highlightClassName:a,...i}){return jsx(b,{className:cn("absolute z-0","group-data-[variant=default]/tabs:inset-0 group-data-[variant=default]/tabs:rounded-lg group-data-[variant=default]/tabs:bg-bg-primary-solid","group-data-[variant=underline]/tabs:bottom-0 group-data-[variant=underline]/tabs:h-0.5 group-data-[variant=underline]/tabs:w-full group-data-[variant=underline]/tabs:rounded-none group-data-[variant=underline]/tabs:bg-fg-brand-secondary","group-data-[variant=attract]/tabs:bottom-0 group-data-[variant=attract]/tabs:h-[3px] group-data-[variant=attract]/tabs:w-full group-data-[variant=attract]/tabs:rounded-t-full group-data-[variant=attract]/tabs:bg-gradient-to-r group-data-[variant=attract]/tabs:from-[var(--color-brand-light-500)] group-data-[variant=attract]/tabs:to-[var(--color-brand-light-700)]","group-data-[variant=topbar]/tabs:bottom-0 group-data-[variant=topbar]/tabs:h-[3px] group-data-[variant=topbar]/tabs:w-full group-data-[variant=topbar]/tabs:rounded-t-full group-data-[variant=topbar]/tabs:bg-[linear-gradient(90deg,#2F7EF0_0%,#FA0805_100%)]","group-data-[variant=segment]/tabs:inset-0 group-data-[variant=segment]/tabs:rounded-lg group-data-[variant=segment]/tabs:bg-bg-brand-primary group-data-[variant=segment]/tabs:data-[value=declined]:bg-bg-error-primary group-data-[variant=segment]/tabs:data-[value=rejected]:bg-bg-error-primary","group-data-[variant=solid]/tabs:inset-0 group-data-[variant=solid]/tabs:rounded-lg group-data-[variant=solid]/tabs:bg-gradient-buttons-gradient-blue group-data-[variant=solid]/tabs:shadow-xp-md","group-data-[variant=filter]/tabs:inset-0 group-data-[variant=filter]/tabs:rounded-xp-card-base group-data-[variant=filter]/tabs:border group-data-[variant=filter]/tabs:border-border-brand group-data-[variant=filter]/tabs:bg-bg-brand-primary",a),children:jsx(c$1,{className:cn("inline-flex w-fit items-center justify-center","group-data-[variant=default]/tabs:bg-bg-tertiary group-data-[variant=default]/tabs:rounded-lg group-data-[variant=default]/tabs:p-0.5 group-data-[variant=default]/tabs:gap-1 group-data-[variant=default]/tabs:border group-data-[variant=default]/tabs:border-border-primary","group-data-[variant=underline]/tabs:gap-7","group-data-[variant=attract]/tabs:w-full group-data-[variant=attract]/tabs:justify-start group-data-[variant=attract]/tabs:gap-6 group-data-[variant=attract]/tabs:border-b group-data-[variant=attract]/tabs:border-border-secondary group-data-[variant=attract]/tabs:px-6","group-data-[variant=topbar]/tabs:w-full group-data-[variant=topbar]/tabs:justify-start group-data-[variant=topbar]/tabs:gap-6 group-data-[variant=topbar]/tabs:border-b group-data-[variant=topbar]/tabs:border-border-secondary group-data-[variant=topbar]/tabs:px-6","group-data-[variant=segment]/tabs:bg-bg-primary group-data-[variant=segment]/tabs:rounded-[10px] group-data-[variant=segment]/tabs:p-0.5 group-data-[variant=segment]/tabs:gap-1 group-data-[variant=segment]/tabs:border group-data-[variant=segment]/tabs:border-border-primary group-data-[variant=segment]/tabs:shadow-xp-xs","group-data-[variant=solid]/tabs:bg-bg-primary group-data-[variant=solid]/tabs:rounded-[10px] group-data-[variant=solid]/tabs:p-0.5 group-data-[variant=solid]/tabs:gap-0.5 group-data-[variant=solid]/tabs:border group-data-[variant=solid]/tabs:border-border-primary","group-data-[variant=filter]/tabs:gap-2",t),...i})})}function f({className:t,count:a,children:i,...s}){return jsx(d,{value:s.value,className:"flex-1 group-data-[variant=attract]/tabs:flex-none group-data-[variant=topbar]/tabs:flex-none group-data-[variant=segment]/tabs:flex-none group-data-[variant=solid]/tabs:flex-none group-data-[variant=filter]/tabs:flex-none",children:jsxs(e,{className:cn("group/tabs-trigger data-[active=true]:text-text-brand-tertiary focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-text-primary inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md w-full text-label-semibold-2 whitespace-nowrap transition-colors duration-300 ease-in-out focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=default]/tabs:px-3 group-data-[variant=default]/tabs:py-2 group-data-[variant=default]/tabs:rounded-lg group-data-[variant=default]/tabs:text-text-quaternary hover:group-data-[variant=default]/tabs:text-text-secondary group-data-[variant=default]/tabs:data-[active=true]:text-text-white","group-data-[variant=underline]/tabs:h-8.5 group-data-[variant=underline]/tabs:px-3 hover:group-data-[variant=underline]/tabs:text-text-brand-secondary","group-data-[variant=attract]/tabs:h-9 group-data-[variant=attract]/tabs:px-0 group-data-[variant=attract]/tabs:gap-2 group-data-[variant=attract]/tabs:rounded-none group-data-[variant=attract]/tabs:text-label-medium-3 group-data-[variant=attract]/tabs:text-text-quaternary hover:group-data-[variant=attract]/tabs:text-text-secondary group-data-[variant=attract]/tabs:data-[active=true]:text-text-brand-tertiary group-data-[variant=attract]/tabs:data-[active=true]:text-label-semibold-3","group-data-[variant=topbar]/tabs:h-9 group-data-[variant=topbar]/tabs:px-0 group-data-[variant=topbar]/tabs:gap-2 group-data-[variant=topbar]/tabs:rounded-none group-data-[variant=topbar]/tabs:text-body-regular-3 group-data-[variant=topbar]/tabs:text-text-quaternary hover:group-data-[variant=topbar]/tabs:text-text-secondary group-data-[variant=topbar]/tabs:data-[active=true]:text-text-primary group-data-[variant=topbar]/tabs:data-[active=true]:text-label-semibold-3","group-data-[variant=segment]/tabs:h-9 group-data-[variant=segment]/tabs:px-3 group-data-[variant=segment]/tabs:py-2 group-data-[variant=segment]/tabs:gap-1 group-data-[variant=segment]/tabs:rounded-lg group-data-[variant=segment]/tabs:text-label-semibold-3 group-data-[variant=segment]/tabs:text-text-quaternary hover:group-data-[variant=segment]/tabs:text-text-secondary group-data-[variant=segment]/tabs:data-[active=true]:text-text-brand-secondary-alt group-data-[variant=segment]/tabs:data-[active=true]:data-[value=declined]:text-text-error-primary group-data-[variant=segment]/tabs:data-[active=true]:data-[value=rejected]:text-text-error-primary","group-data-[variant=solid]/tabs:h-8 group-data-[variant=solid]/tabs:px-2.5 group-data-[variant=solid]/tabs:rounded-xp-buttons group-data-[variant=solid]/tabs:text-label-semibold-3 group-data-[variant=solid]/tabs:text-text-tertiary hover:group-data-[variant=solid]/tabs:text-text-secondary group-data-[variant=solid]/tabs:data-[active=true]:text-text-primary-on-brand","group-data-[variant=filter]/tabs:h-8 group-data-[variant=filter]/tabs:px-3 group-data-[variant=filter]/tabs:gap-2 group-data-[variant=filter]/tabs:rounded-xp-card-base group-data-[variant=filter]/tabs:border group-data-[variant=filter]/tabs:border-border-primary group-data-[variant=filter]/tabs:bg-transparent group-data-[variant=filter]/tabs:text-body-medium-3 group-data-[variant=filter]/tabs:text-text-secondary group-data-[variant=filter]/tabs:shadow-xp-xs hover:group-data-[variant=filter]/tabs:bg-bg-primary-hover group-data-[variant=filter]/tabs:data-[active=true]:border-transparent group-data-[variant=filter]/tabs:data-[active=true]:text-text-brand-secondary hover:group-data-[variant=filter]/tabs:data-[active=true]:bg-transparent group-data-[variant=filter]/tabs:[&_svg]:size-3.5 group-data-[variant=filter]/tabs:[&_svg]:text-fg-tertiary group-data-[variant=filter]/tabs:data-[active=true]:[&_svg]:text-fg-brand-primary",t),...s,children:[i,a!==void 0&&a!==0&&a!=="0"&&jsx("span",{className:cn("inline-flex items-center justify-center rounded-xp-card-base-xs px-0.5 py-px min-w-4 text-label-medium-4 transition-colors duration-300","group-data-[variant=default]/tabs:bg-bg-quaternary group-data-[variant=default]/tabs:text-text-quaternary group-data-[variant=default]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-secondary-solid group-data-[variant=default]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand","group-data-[variant=underline]/tabs:bg-bg-quaternary group-data-[variant=underline]/tabs:text-text-quaternary group-data-[variant=underline]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-brand-solid group-data-[variant=underline]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand","group-data-[variant=attract]/tabs:bg-bg-quaternary group-data-[variant=attract]/tabs:text-text-quaternary group-data-[variant=attract]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-brand-solid group-data-[variant=attract]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand","group-data-[variant=topbar]/tabs:bg-bg-quaternary group-data-[variant=topbar]/tabs:text-text-quaternary group-data-[variant=topbar]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-brand-solid group-data-[variant=topbar]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand","group-data-[variant=segment]/tabs:bg-bg-quaternary group-data-[variant=segment]/tabs:text-text-quaternary group-data-[variant=segment]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-brand-solid group-data-[variant=segment]/tabs:group-data-[active=true]/tabs-trigger:text-text-white group-data-[variant=segment]/tabs:group-data-[active=true]/tabs-trigger:group-data-[value=declined]/tabs-trigger:bg-bg-error-solid group-data-[variant=segment]/tabs:group-data-[active=true]/tabs-trigger:group-data-[value=rejected]/tabs-trigger:bg-bg-error-solid","group-data-[variant=solid]/tabs:bg-bg-quaternary group-data-[variant=solid]/tabs:text-text-quaternary group-data-[variant=solid]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-secondary-solid group-data-[variant=solid]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand","group-data-[variant=filter]/tabs:bg-bg-brand-solid group-data-[variant=filter]/tabs:text-text-primary-on-brand"),children:a})]})})}function y(t){return jsx(g,{...t})}function P({className:t,...a}){return jsx(f$1,{className:cn("flex-1 outline-none",t),...a})}export{m as a,c as b,f as c,y as d,P as e};//# sourceMappingURL=chunk-7EXEQDMX.js.map
2
+ //# sourceMappingURL=chunk-7EXEQDMX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/tabs.tsx"],"names":["Tabs","className","variant","props","jsx","cn","TabsList","highlightClassName","TabsHighlight","TabsTab","count","children","TabsHighlightItem","jsxs","TabsPanels","TabsPanel"],"mappings":"wIAoBA,SAASA,EAAK,CAAE,SAAA,CAAAC,EAAW,OAAA,CAAAC,GAAAA,CAAU,UAAW,GAAGC,CAAM,EAAc,CACrE,OACEC,GAAAA,CAACJ,CAAAA,CAAA,CACC,SAAA,CAAWK,EAAAA,CAAG,iCAAkCJ,CAAS,CAAA,CACzD,eAAcC,GAAAA,CACb,GAAGC,EACN,CAEJ,CAMA,SAASG,CAAAA,CAAS,CAAE,UAAAL,CAAAA,CAAW,kBAAA,CAAAM,EAAoB,GAAGJ,CAAM,CAAA,CAAkB,CAC5E,OACEC,GAAAA,CAACI,CAAAA,CAAA,CACC,SAAA,CAAWH,EAAAA,CACT,eACA,8IAAA,CACA,8OAAA,CACA,8WACA,iQAAA,CACA,sSAAA,CACA,oMACA,kPAAA,CACAE,CACF,EAEA,QAAA,CAAAH,GAAAA,CAACE,IAAA,CACC,SAAA,CAAWD,GACT,+CAAA,CACA,gRAAA,CACA,4CACA,8QAAA,CACA,wQAAA,CACA,mUACA,yQAAA,CACA,wCAAA,CACAJ,CACF,CAAA,CACC,GAAGE,EACN,CAAA,CACF,CAEJ,CAMA,SAASM,CAAAA,CAAQ,CAAE,SAAA,CAAAR,CAAAA,CAAW,MAAAS,CAAAA,CAAO,QAAA,CAAAC,CAAAA,CAAU,GAAGR,CAAM,CAAA,CAAiB,CACvE,OACEC,GAAAA,CAACQ,CAAAA,CAAA,CAA2B,KAAA,CAAOT,CAAAA,CAAM,MAAO,SAAA,CAAU,gOAAA,CACxD,SAAAU,IAAAA,CAACJ,CAAAA,CAAA,CACC,SAAA,CAAWJ,EAAAA,CACT,sgBAEA,oTAAA,CAEA,wJAAA,CAEA,ueAAA,CAEA,udAAA,CAEA,+oBAEA,gXAAA,CAEA,s6BAAA,CACAJ,CACF,CAAA,CACC,GAAGE,EAEH,QAAA,CAAA,CAAAQ,CAAAA,CACAD,IAAU,MAAA,EAAaA,CAAAA,GAAU,GAAKA,CAAAA,GAAU,GAAA,EAC/CN,IAAC,MAAA,CAAA,CACC,SAAA,CAAWC,GACT,yIAAA,CAEA,4SAAA,CAEA,gTAAA,CAEA,wSAAA,CAEA,qSAEA,miBAAA,CAEA,oSAAA,CAEA,gHACF,CAAA,CAEC,QAAA,CAAAK,EACH,CAAA,CAAA,CAEJ,CAAA,CACF,CAEJ,CAIA,SAASI,EAAWX,CAAAA,CAAwB,CAC1C,OAAOC,GAAAA,CAACU,CAAAA,CAAA,CAAqB,GAAGX,CAAAA,CAAO,CACzC,CAIA,SAASY,EAAU,CAAE,SAAA,CAAAd,EAAW,GAAGE,CAAM,EAAmB,CAC1D,OACEC,IAACW,GAAAA,CAAA,CACC,UAAWV,EAAAA,CAAG,qBAAA,CAAuBJ,CAAS,CAAA,CAC7C,GAAGE,EACN,CAEJ","file":"chunk-7EXEQDMX.js","sourcesContent":["import {\r\n Tabs as TabsPrimitive,\r\n TabsList as TabsListPrimitive,\r\n TabsTab as TabsTabPrimitive,\r\n TabsPanel as TabsPanelPrimitive,\r\n TabsPanels as TabsPanelsPrimitive,\r\n TabsHighlight as TabsHighlightPrimitive,\r\n TabsHighlightItem as TabsHighlightItemPrimitive,\r\n type TabsProps as TabsPrimitiveProps,\r\n type TabsListProps as TabsListPrimitiveProps,\r\n type TabsTabProps as TabsTabPrimitiveProps,\r\n type TabsPanelProps as TabsPanelPrimitiveProps,\r\n type TabsPanelsProps as TabsPanelsPrimitiveProps,\r\n} from '../primitives/tabs';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype TabsProps = TabsPrimitiveProps & {\r\n variant?: \"default\" | \"underline\" | \"attract\" | \"topbar\" | \"segment\" | \"solid\" | \"filter\";\r\n};\r\n\r\nfunction Tabs({ className, variant = \"default\", ...props }: TabsProps) {\r\n return (\r\n <TabsPrimitive\r\n className={cn('group/tabs flex flex-col gap-2', className)}\r\n data-variant={variant}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype TabsListProps = TabsListPrimitiveProps & {\r\n highlightClassName?: string;\r\n};\r\n\r\nfunction TabsList({ className, highlightClassName, ...props }: TabsListProps) {\r\n return (\r\n <TabsHighlightPrimitive\r\n className={cn(\r\n \"absolute z-0\",\r\n \"group-data-[variant=default]/tabs:inset-0 group-data-[variant=default]/tabs:rounded-lg group-data-[variant=default]/tabs:bg-bg-primary-solid\",\r\n \"group-data-[variant=underline]/tabs:bottom-0 group-data-[variant=underline]/tabs:h-0.5 group-data-[variant=underline]/tabs:w-full group-data-[variant=underline]/tabs:rounded-none group-data-[variant=underline]/tabs:bg-fg-brand-secondary\",\r\n \"group-data-[variant=attract]/tabs:bottom-0 group-data-[variant=attract]/tabs:h-[3px] group-data-[variant=attract]/tabs:w-full group-data-[variant=attract]/tabs:rounded-t-full group-data-[variant=attract]/tabs:bg-gradient-to-r group-data-[variant=attract]/tabs:from-[var(--color-brand-light-500)] group-data-[variant=attract]/tabs:to-[var(--color-brand-light-700)]\",\r\n \"group-data-[variant=topbar]/tabs:bottom-0 group-data-[variant=topbar]/tabs:h-[3px] group-data-[variant=topbar]/tabs:w-full group-data-[variant=topbar]/tabs:rounded-t-full group-data-[variant=topbar]/tabs:bg-[linear-gradient(90deg,#2F7EF0_0%,#FA0805_100%)]\",\r\n \"group-data-[variant=segment]/tabs:inset-0 group-data-[variant=segment]/tabs:rounded-lg group-data-[variant=segment]/tabs:bg-bg-brand-primary group-data-[variant=segment]/tabs:data-[value=declined]:bg-bg-error-primary group-data-[variant=segment]/tabs:data-[value=rejected]:bg-bg-error-primary\",\r\n \"group-data-[variant=solid]/tabs:inset-0 group-data-[variant=solid]/tabs:rounded-lg group-data-[variant=solid]/tabs:bg-gradient-buttons-gradient-blue group-data-[variant=solid]/tabs:shadow-xp-md\",\r\n \"group-data-[variant=filter]/tabs:inset-0 group-data-[variant=filter]/tabs:rounded-xp-card-base group-data-[variant=filter]/tabs:border group-data-[variant=filter]/tabs:border-border-brand group-data-[variant=filter]/tabs:bg-bg-brand-primary\",\r\n highlightClassName\r\n )}\r\n >\r\n <TabsListPrimitive\r\n className={cn(\r\n \"inline-flex w-fit items-center justify-center\",\r\n \"group-data-[variant=default]/tabs:bg-bg-tertiary group-data-[variant=default]/tabs:rounded-lg group-data-[variant=default]/tabs:p-0.5 group-data-[variant=default]/tabs:gap-1 group-data-[variant=default]/tabs:border group-data-[variant=default]/tabs:border-border-primary\",\r\n \"group-data-[variant=underline]/tabs:gap-7\",\r\n \"group-data-[variant=attract]/tabs:w-full group-data-[variant=attract]/tabs:justify-start group-data-[variant=attract]/tabs:gap-6 group-data-[variant=attract]/tabs:border-b group-data-[variant=attract]/tabs:border-border-secondary group-data-[variant=attract]/tabs:px-6\",\r\n \"group-data-[variant=topbar]/tabs:w-full group-data-[variant=topbar]/tabs:justify-start group-data-[variant=topbar]/tabs:gap-6 group-data-[variant=topbar]/tabs:border-b group-data-[variant=topbar]/tabs:border-border-secondary group-data-[variant=topbar]/tabs:px-6\",\r\n \"group-data-[variant=segment]/tabs:bg-bg-primary group-data-[variant=segment]/tabs:rounded-[10px] group-data-[variant=segment]/tabs:p-0.5 group-data-[variant=segment]/tabs:gap-1 group-data-[variant=segment]/tabs:border group-data-[variant=segment]/tabs:border-border-primary group-data-[variant=segment]/tabs:shadow-xp-xs\",\r\n \"group-data-[variant=solid]/tabs:bg-bg-primary group-data-[variant=solid]/tabs:rounded-[10px] group-data-[variant=solid]/tabs:p-0.5 group-data-[variant=solid]/tabs:gap-0.5 group-data-[variant=solid]/tabs:border group-data-[variant=solid]/tabs:border-border-primary\",\r\n \"group-data-[variant=filter]/tabs:gap-2\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n </TabsHighlightPrimitive>\r\n );\r\n}\r\n\r\ntype TabsTabProps = TabsTabPrimitiveProps & {\r\n count?: number | string;\r\n};\r\n\r\nfunction TabsTab({ className, count, children, ...props }: TabsTabProps) {\r\n return (\r\n <TabsHighlightItemPrimitive value={props.value} className=\"flex-1 group-data-[variant=attract]/tabs:flex-none group-data-[variant=topbar]/tabs:flex-none group-data-[variant=segment]/tabs:flex-none group-data-[variant=solid]/tabs:flex-none group-data-[variant=filter]/tabs:flex-none\">\r\n <TabsTabPrimitive\r\n className={cn(\r\n \"group/tabs-trigger data-[active=true]:text-text-brand-tertiary focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-text-primary inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md w-full text-label-semibold-2 whitespace-nowrap transition-colors duration-300 ease-in-out focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n // default variant\r\n \"group-data-[variant=default]/tabs:px-3 group-data-[variant=default]/tabs:py-2 group-data-[variant=default]/tabs:rounded-lg group-data-[variant=default]/tabs:text-text-quaternary hover:group-data-[variant=default]/tabs:text-text-secondary group-data-[variant=default]/tabs:data-[active=true]:text-text-white\",\r\n // underline variant\r\n \"group-data-[variant=underline]/tabs:h-8.5 group-data-[variant=underline]/tabs:px-3 hover:group-data-[variant=underline]/tabs:text-text-brand-secondary\",\r\n // attract variant\r\n \"group-data-[variant=attract]/tabs:h-9 group-data-[variant=attract]/tabs:px-0 group-data-[variant=attract]/tabs:gap-2 group-data-[variant=attract]/tabs:rounded-none group-data-[variant=attract]/tabs:text-label-medium-3 group-data-[variant=attract]/tabs:text-text-quaternary hover:group-data-[variant=attract]/tabs:text-text-secondary group-data-[variant=attract]/tabs:data-[active=true]:text-text-brand-tertiary group-data-[variant=attract]/tabs:data-[active=true]:text-label-semibold-3\",\r\n // topbar variant\r\n \"group-data-[variant=topbar]/tabs:h-9 group-data-[variant=topbar]/tabs:px-0 group-data-[variant=topbar]/tabs:gap-2 group-data-[variant=topbar]/tabs:rounded-none group-data-[variant=topbar]/tabs:text-body-regular-3 group-data-[variant=topbar]/tabs:text-text-quaternary hover:group-data-[variant=topbar]/tabs:text-text-secondary group-data-[variant=topbar]/tabs:data-[active=true]:text-text-primary group-data-[variant=topbar]/tabs:data-[active=true]:text-label-semibold-3\",\r\n // segment variant\r\n \"group-data-[variant=segment]/tabs:h-9 group-data-[variant=segment]/tabs:px-3 group-data-[variant=segment]/tabs:py-2 group-data-[variant=segment]/tabs:gap-1 group-data-[variant=segment]/tabs:rounded-lg group-data-[variant=segment]/tabs:text-label-semibold-3 group-data-[variant=segment]/tabs:text-text-quaternary hover:group-data-[variant=segment]/tabs:text-text-secondary group-data-[variant=segment]/tabs:data-[active=true]:text-text-brand-secondary-alt group-data-[variant=segment]/tabs:data-[active=true]:data-[value=declined]:text-text-error-primary group-data-[variant=segment]/tabs:data-[active=true]:data-[value=rejected]:text-text-error-primary\",\r\n // solid variant\r\n \"group-data-[variant=solid]/tabs:h-8 group-data-[variant=solid]/tabs:px-2.5 group-data-[variant=solid]/tabs:rounded-xp-buttons group-data-[variant=solid]/tabs:text-label-semibold-3 group-data-[variant=solid]/tabs:text-text-tertiary hover:group-data-[variant=solid]/tabs:text-text-secondary group-data-[variant=solid]/tabs:data-[active=true]:text-text-primary-on-brand\",\r\n // filter variant\r\n \"group-data-[variant=filter]/tabs:h-8 group-data-[variant=filter]/tabs:px-3 group-data-[variant=filter]/tabs:gap-2 group-data-[variant=filter]/tabs:rounded-xp-card-base group-data-[variant=filter]/tabs:border group-data-[variant=filter]/tabs:border-border-primary group-data-[variant=filter]/tabs:bg-transparent group-data-[variant=filter]/tabs:text-body-medium-3 group-data-[variant=filter]/tabs:text-text-secondary group-data-[variant=filter]/tabs:shadow-xp-xs hover:group-data-[variant=filter]/tabs:bg-bg-primary-hover group-data-[variant=filter]/tabs:data-[active=true]:border-transparent group-data-[variant=filter]/tabs:data-[active=true]:text-text-brand-secondary hover:group-data-[variant=filter]/tabs:data-[active=true]:bg-transparent group-data-[variant=filter]/tabs:[&_svg]:size-3.5 group-data-[variant=filter]/tabs:[&_svg]:text-fg-tertiary group-data-[variant=filter]/tabs:data-[active=true]:[&_svg]:text-fg-brand-primary\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {count !== undefined && count !== 0 && count !== \"0\" && (\r\n <span\r\n className={cn(\r\n \"inline-flex items-center justify-center rounded-xp-card-base-xs px-0.5 py-px min-w-4 text-label-medium-4 transition-colors duration-300\",\r\n // default variant\r\n \"group-data-[variant=default]/tabs:bg-bg-quaternary group-data-[variant=default]/tabs:text-text-quaternary group-data-[variant=default]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-secondary-solid group-data-[variant=default]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand\",\r\n // underline & other variants\r\n \"group-data-[variant=underline]/tabs:bg-bg-quaternary group-data-[variant=underline]/tabs:text-text-quaternary group-data-[variant=underline]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-brand-solid group-data-[variant=underline]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand\",\r\n // attract variant\r\n \"group-data-[variant=attract]/tabs:bg-bg-quaternary group-data-[variant=attract]/tabs:text-text-quaternary group-data-[variant=attract]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-brand-solid group-data-[variant=attract]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand\",\r\n // topbar variant\r\n \"group-data-[variant=topbar]/tabs:bg-bg-quaternary group-data-[variant=topbar]/tabs:text-text-quaternary group-data-[variant=topbar]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-brand-solid group-data-[variant=topbar]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand\",\r\n // segment variant\r\n \"group-data-[variant=segment]/tabs:bg-bg-quaternary group-data-[variant=segment]/tabs:text-text-quaternary group-data-[variant=segment]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-brand-solid group-data-[variant=segment]/tabs:group-data-[active=true]/tabs-trigger:text-text-white group-data-[variant=segment]/tabs:group-data-[active=true]/tabs-trigger:group-data-[value=declined]/tabs-trigger:bg-bg-error-solid group-data-[variant=segment]/tabs:group-data-[active=true]/tabs-trigger:group-data-[value=rejected]/tabs-trigger:bg-bg-error-solid\",\r\n // solid variant\r\n \"group-data-[variant=solid]/tabs:bg-bg-quaternary group-data-[variant=solid]/tabs:text-text-quaternary group-data-[variant=solid]/tabs:group-data-[active=true]/tabs-trigger:bg-bg-secondary-solid group-data-[variant=solid]/tabs:group-data-[active=true]/tabs-trigger:text-text-primary-on-brand\",\r\n // filter variant\r\n \"group-data-[variant=filter]/tabs:bg-bg-brand-solid group-data-[variant=filter]/tabs:text-text-primary-on-brand\",\r\n )}\r\n >\r\n {count}\r\n </span>\r\n )}\r\n </TabsTabPrimitive>\r\n </TabsHighlightItemPrimitive>\r\n );\r\n}\r\n\r\ntype TabsPanelsProps = TabsPanelsPrimitiveProps;\r\n\r\nfunction TabsPanels(props: TabsPanelsProps) {\r\n return <TabsPanelsPrimitive {...props} />;\r\n}\r\n\r\ntype TabsPanelProps = TabsPanelPrimitiveProps;\r\n\r\nfunction TabsPanel({ className, ...props }: TabsPanelProps) {\r\n return (\r\n <TabsPanelPrimitive\r\n className={cn('flex-1 outline-none', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Tabs,\r\n TabsList,\r\n TabsTab,\r\n TabsPanels,\r\n TabsPanel,\r\n type TabsProps,\r\n type TabsListProps,\r\n type TabsTabProps,\r\n type TabsPanelsProps,\r\n type TabsPanelProps,\r\n};"]}
@@ -1,2 +1,2 @@
1
- import {b}from'./chunk-UINS73U7.js';import*as o from'react';import w from'embla-carousel-react';import {ArrowLeft,ArrowRight}from'lucide-react';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var R=o.createContext(null);function m(){let r=o.useContext(R);if(!r)throw new Error("useCarousel must be used within a <Carousel />");return r}function T({orientation:r="horizontal",opts:a,setApi:t,plugins:l,className:i,children:n,...v}){let[C,e]=w({...a,axis:r==="horizontal"?"x":"y"},l),[c,p]=o.useState(false),[S,h]=o.useState(false),f=o.useCallback(u=>{u&&(p(u.canScrollPrev()),h(u.canScrollNext()));},[]),y=o.useCallback(()=>{e?.scrollPrev();},[e]),P=o.useCallback(()=>{e?.scrollNext();},[e]),g=o.useCallback(u=>{u.key==="ArrowLeft"?(u.preventDefault(),y()):u.key==="ArrowRight"&&(u.preventDefault(),P());},[y,P]);return o.useEffect(()=>{!e||!t||t(e);},[e,t]),o.useEffect(()=>{if(e)return f(e),e.on("reInit",f),e.on("select",f),()=>{e?.off("select",f);}},[e,f]),jsx(R.Provider,{value:{carouselRef:C,api:e,opts:a,orientation:r||(a?.axis==="y"?"vertical":"horizontal"),scrollPrev:y,scrollNext:P,canScrollPrev:c,canScrollNext:S},children:jsx("div",{"aria-roledescription":"carousel",className:cn("relative",i),"data-slot":"carousel",role:"region",onKeyDownCapture:g,...v,children:n})})}function B({className:r,...a}){let{carouselRef:t}=m();return jsx("div",{ref:t,className:"overflow-hidden","data-slot":"carousel-content",children:jsx("div",{className:cn("flex",r),...a})})}function U({className:r,...a}){return jsx("div",{"aria-roledescription":"slide",className:cn("min-w-0 shrink-0 grow-0 basis-full",r),"data-slot":"carousel-item",role:"group",...a})}function L({className:r,children:a,...t}){let{orientation:l,scrollPrev:i,canScrollPrev:n}=m();return jsx(b,{"aria-label":"Previous slide",className:cn("absolute size-9 rounded-full p-0 data-[icon]:size-9 [&_svg]:size-4","transition-all duration-200 hover:scale-105","disabled:cursor-not-allowed disabled:hover:scale-100",l==="horizontal"?"top-1/2 left-6 -translate-y-1/2":"top-6 left-1/2 -translate-x-1/2 rotate-90",r),"data-slot":"carousel-previous",disabled:!n,icon:true,onClick:i,size:"md",variant:"secondary",...t,children:a||jsxs(Fragment,{children:[jsx(ArrowLeft,{}),jsx("span",{className:"sr-only",children:"Previous slide"})]})})}function K({className:r,children:a,...t}){let{orientation:l,scrollNext:i,canScrollNext:n}=m();return jsx(b,{"aria-label":"Next slide",className:cn("absolute size-9 rounded-full p-0 data-[icon]:size-9 [&_svg]:size-4","transition-all duration-200 hover:scale-105","disabled:cursor-not-allowed disabled:hover:scale-100",l==="horizontal"?"top-1/2 right-6 -translate-y-1/2":"bottom-6 left-1/2 -translate-x-1/2 rotate-90",r),"data-slot":"carousel-next",disabled:!n,icon:true,onClick:i,size:"md",variant:"secondary",...t,children:a||jsxs(Fragment,{children:[jsx(ArrowRight,{}),jsx("span",{className:"sr-only",children:"Next slide"})]})})}function _({className:r,...a}){let{api:t}=m(),[l,i]=o.useState(0),[n,v]=o.useState([]),C=o.useCallback(c=>{c&&v(c.scrollSnapList());},[]),e=o.useCallback(c=>{c&&i(c.selectedScrollSnap());},[]);return o.useEffect(()=>{if(t)return C(t),e(t),t.on("reInit",C),t.on("reInit",e),t.on("select",e),()=>{t?.off("select",e);}},[t,C,e]),n.length<=1?null:jsx("div",{className:cn("flex items-center justify-center gap-1.5",r),...a,children:n.map((c,p)=>jsx("button",{"aria-label":`Go to slide ${p+1}`,className:cn("h-1 rounded-full transition-all duration-300",p===l?"w-4 bg-fg-primary":"w-2 bg-fg-tertiary hover:bg-fg-secondary"),"data-selected":p===l,"data-slot":"carousel-dot",onClick:()=>t?.scrollTo(p)},p))})}export{T as a,B as b,U as c,L as d,K as e,_ as f};//# sourceMappingURL=chunk-KUOFW7JO.js.map
2
- //# sourceMappingURL=chunk-KUOFW7JO.js.map
1
+ import {b}from'./chunk-DQGZIFNP.js';import*as o from'react';import w from'embla-carousel-react';import {ArrowLeft,ArrowRight}from'lucide-react';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var R=o.createContext(null);function m(){let r=o.useContext(R);if(!r)throw new Error("useCarousel must be used within a <Carousel />");return r}function T({orientation:r="horizontal",opts:a,setApi:t,plugins:l,className:i,children:n,...v}){let[C,e]=w({...a,axis:r==="horizontal"?"x":"y"},l),[c,p]=o.useState(false),[S,h]=o.useState(false),f=o.useCallback(u=>{u&&(p(u.canScrollPrev()),h(u.canScrollNext()));},[]),y=o.useCallback(()=>{e?.scrollPrev();},[e]),P=o.useCallback(()=>{e?.scrollNext();},[e]),g=o.useCallback(u=>{u.key==="ArrowLeft"?(u.preventDefault(),y()):u.key==="ArrowRight"&&(u.preventDefault(),P());},[y,P]);return o.useEffect(()=>{!e||!t||t(e);},[e,t]),o.useEffect(()=>{if(e)return f(e),e.on("reInit",f),e.on("select",f),()=>{e?.off("select",f);}},[e,f]),jsx(R.Provider,{value:{carouselRef:C,api:e,opts:a,orientation:r||(a?.axis==="y"?"vertical":"horizontal"),scrollPrev:y,scrollNext:P,canScrollPrev:c,canScrollNext:S},children:jsx("div",{"aria-roledescription":"carousel",className:cn("relative",i),"data-slot":"carousel",role:"region",onKeyDownCapture:g,...v,children:n})})}function B({className:r,...a}){let{carouselRef:t}=m();return jsx("div",{ref:t,className:"overflow-hidden","data-slot":"carousel-content",children:jsx("div",{className:cn("flex",r),...a})})}function U({className:r,...a}){return jsx("div",{"aria-roledescription":"slide",className:cn("min-w-0 shrink-0 grow-0 basis-full",r),"data-slot":"carousel-item",role:"group",...a})}function L({className:r,children:a,...t}){let{orientation:l,scrollPrev:i,canScrollPrev:n}=m();return jsx(b,{"aria-label":"Previous slide",className:cn("absolute size-9 rounded-full p-0 data-[icon]:size-9 [&_svg]:size-4","transition-all duration-200 hover:scale-105","disabled:cursor-not-allowed disabled:hover:scale-100",l==="horizontal"?"top-1/2 left-6 -translate-y-1/2":"top-6 left-1/2 -translate-x-1/2 rotate-90",r),"data-slot":"carousel-previous",disabled:!n,icon:true,onClick:i,size:"md",variant:"secondary",...t,children:a||jsxs(Fragment,{children:[jsx(ArrowLeft,{}),jsx("span",{className:"sr-only",children:"Previous slide"})]})})}function K({className:r,children:a,...t}){let{orientation:l,scrollNext:i,canScrollNext:n}=m();return jsx(b,{"aria-label":"Next slide",className:cn("absolute size-9 rounded-full p-0 data-[icon]:size-9 [&_svg]:size-4","transition-all duration-200 hover:scale-105","disabled:cursor-not-allowed disabled:hover:scale-100",l==="horizontal"?"top-1/2 right-6 -translate-y-1/2":"bottom-6 left-1/2 -translate-x-1/2 rotate-90",r),"data-slot":"carousel-next",disabled:!n,icon:true,onClick:i,size:"md",variant:"secondary",...t,children:a||jsxs(Fragment,{children:[jsx(ArrowRight,{}),jsx("span",{className:"sr-only",children:"Next slide"})]})})}function _({className:r,...a}){let{api:t}=m(),[l,i]=o.useState(0),[n,v]=o.useState([]),C=o.useCallback(c=>{c&&v(c.scrollSnapList());},[]),e=o.useCallback(c=>{c&&i(c.selectedScrollSnap());},[]);return o.useEffect(()=>{if(t)return C(t),e(t),t.on("reInit",C),t.on("reInit",e),t.on("select",e),()=>{t?.off("select",e);}},[t,C,e]),n.length<=1?null:jsx("div",{className:cn("flex items-center justify-center gap-1.5",r),...a,children:n.map((c,p)=>jsx("button",{"aria-label":`Go to slide ${p+1}`,className:cn("h-1 rounded-full transition-all duration-300",p===l?"w-4 bg-fg-primary":"w-2 bg-fg-tertiary hover:bg-fg-secondary"),"data-selected":p===l,"data-slot":"carousel-dot",onClick:()=>t?.scrollTo(p)},p))})}export{T as a,B as b,U as c,L as d,K as e,_ as f};//# sourceMappingURL=chunk-B5LYJTBB.js.map
2
+ //# sourceMappingURL=chunk-B5LYJTBB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/carousel.tsx"],"names":["CarouselContext","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","Button","jsxs","Fragment","ArrowLeft","CarouselNext","ArrowRight","CarouselDots","selectedIndex","setSelectedIndex","scrollSnaps","setScrollSnaps","onInit","_","index"],"mappings":"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","file":"chunk-KUOFW7JO.js","sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport useEmblaCarousel, { type UseEmblaCarouselType } from \"embla-carousel-react\"\r\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\r\n\r\nimport { Button } from \"./button\"\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: \"horizontal\" | \"vertical\"\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error(\"useCarousel must be used within a <Carousel />\")\r\n }\r\n\r\n return context\r\n}\r\n\r\nfunction Carousel({\r\n orientation = \"horizontal\",\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<\"div\"> & CarouselProps) {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) return\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n }, [])\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === \"ArrowLeft\") {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === \"ArrowRight\") {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n onSelect(api)\r\n api.on(\"reInit\", onSelect)\r\n api.on(\"select\", onSelect)\r\n\r\n return () => {\r\n api?.off(\"select\", onSelect)\r\n }\r\n }, [api, onSelect])\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n aria-roledescription=\"carousel\"\r\n className={cn(\"relative\", className)}\r\n data-slot=\"carousel\"\r\n role=\"region\"\r\n onKeyDownCapture={handleKeyDown}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n}\r\n\r\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\r\n const { carouselRef } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\r\n <div className={cn(\"flex\", className)} {...props} />\r\n </div>\r\n )\r\n}\r\n\r\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n aria-roledescription=\"slide\"\r\n className={cn(\"min-w-0 shrink-0 grow-0 basis-full\", className)}\r\n data-slot=\"carousel-item\"\r\n role=\"group\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype CarouselPreviousProps = React.ComponentProps<typeof Button>\r\n\r\nfunction CarouselPrevious({\r\n className,\r\n children,\r\n ...props\r\n}: CarouselPreviousProps) {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n aria-label=\"Previous slide\"\r\n className={cn(\r\n \"absolute size-9 rounded-full p-0 data-[icon]:size-9 [&_svg]:size-4\",\r\n \"transition-all duration-200 hover:scale-105\",\r\n \"disabled:cursor-not-allowed disabled:hover:scale-100\",\r\n orientation === \"horizontal\"\r\n ? \"top-1/2 left-6 -translate-y-1/2\"\r\n : \"top-6 left-1/2 -translate-x-1/2 rotate-90\",\r\n className,\r\n )}\r\n data-slot=\"carousel-previous\"\r\n disabled={!canScrollPrev}\r\n icon\r\n onClick={scrollPrev}\r\n size=\"md\"\r\n variant=\"secondary\"\r\n {...props}\r\n >\r\n {children || (\r\n <>\r\n <ArrowLeft />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </>\r\n )}\r\n </Button>\r\n )\r\n}\r\n\r\ntype CarouselNextProps = React.ComponentProps<typeof Button>\r\n\r\nfunction CarouselNext({\r\n className,\r\n children,\r\n ...props\r\n}: CarouselNextProps) {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n aria-label=\"Next slide\"\r\n className={cn(\r\n \"absolute size-9 rounded-full p-0 data-[icon]:size-9 [&_svg]:size-4\",\r\n \"transition-all duration-200 hover:scale-105\",\r\n \"disabled:cursor-not-allowed disabled:hover:scale-100\",\r\n orientation === \"horizontal\"\r\n ? \"top-1/2 right-6 -translate-y-1/2\"\r\n : \"bottom-6 left-1/2 -translate-x-1/2 rotate-90\",\r\n className,\r\n )}\r\n data-slot=\"carousel-next\"\r\n disabled={!canScrollNext}\r\n icon\r\n onClick={scrollNext}\r\n size=\"md\"\r\n variant=\"secondary\"\r\n {...props}\r\n >\r\n {children || (\r\n <>\r\n <ArrowRight />\r\n <span className=\"sr-only\">Next slide</span>\r\n </>\r\n )}\r\n </Button>\r\n )\r\n}\r\n\r\nfunction CarouselDots({ className, ...props }: React.ComponentProps<\"div\">) {\r\n const { api } = useCarousel()\r\n const [selectedIndex, setSelectedIndex] = React.useState(0)\r\n const [scrollSnaps, setScrollSnaps] = React.useState<number[]>([])\r\n\r\n const onInit = React.useCallback((api: CarouselApi) => {\r\n if (!api) return\r\n setScrollSnaps(api.scrollSnapList())\r\n }, [])\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) return\r\n setSelectedIndex(api.selectedScrollSnap())\r\n }, [])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n\r\n onInit(api)\r\n onSelect(api)\r\n\r\n api.on(\"reInit\", onInit)\r\n api.on(\"reInit\", onSelect)\r\n api.on(\"select\", onSelect)\r\n\r\n return () => {\r\n api?.off(\"select\", onSelect)\r\n }\r\n }, [api, onInit, onSelect])\r\n\r\n if (scrollSnaps.length <= 1) return null\r\n\r\n return (\r\n <div\r\n className={cn(\"flex items-center justify-center gap-1.5\", className)}\r\n {...props}\r\n >\r\n {scrollSnaps.map((_, index) => (\r\n <button\r\n key={index}\r\n aria-label={`Go to slide ${index + 1}`}\r\n className={cn(\r\n \"h-1 rounded-full transition-all duration-300\",\r\n index === selectedIndex\r\n ? \"w-4 bg-fg-primary\"\r\n : \"w-2 bg-fg-tertiary hover:bg-fg-secondary\",\r\n )}\r\n data-selected={index === selectedIndex}\r\n data-slot=\"carousel-dot\"\r\n onClick={() => api?.scrollTo(index)}\r\n />\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\nexport {\r\n Carousel,\r\n CarouselContent,\r\n CarouselDots,\r\n CarouselItem,\r\n CarouselNext,\r\n CarouselPrevious,\r\n type CarouselApi,\r\n type CarouselProps,\r\n type CarouselContextProps,\r\n}\r\n"]}
1
+ {"version":3,"sources":["../src/ui/carousel.tsx"],"names":["CarouselContext","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","Button","jsxs","Fragment","ArrowLeft","CarouselNext","ArrowRight","CarouselDots","selectedIndex","setSelectedIndex","scrollSnaps","setScrollSnaps","onInit","_","index"],"mappings":"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","file":"chunk-B5LYJTBB.js","sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport useEmblaCarousel, { type UseEmblaCarouselType } from \"embla-carousel-react\"\r\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\r\n\r\nimport { Button } from \"./button\"\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: \"horizontal\" | \"vertical\"\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error(\"useCarousel must be used within a <Carousel />\")\r\n }\r\n\r\n return context\r\n}\r\n\r\nfunction Carousel({\r\n orientation = \"horizontal\",\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<\"div\"> & CarouselProps) {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) return\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n }, [])\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === \"ArrowLeft\") {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === \"ArrowRight\") {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n onSelect(api)\r\n api.on(\"reInit\", onSelect)\r\n api.on(\"select\", onSelect)\r\n\r\n return () => {\r\n api?.off(\"select\", onSelect)\r\n }\r\n }, [api, onSelect])\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n aria-roledescription=\"carousel\"\r\n className={cn(\"relative\", className)}\r\n data-slot=\"carousel\"\r\n role=\"region\"\r\n onKeyDownCapture={handleKeyDown}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n}\r\n\r\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\r\n const { carouselRef } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\r\n <div className={cn(\"flex\", className)} {...props} />\r\n </div>\r\n )\r\n}\r\n\r\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n aria-roledescription=\"slide\"\r\n className={cn(\"min-w-0 shrink-0 grow-0 basis-full\", className)}\r\n data-slot=\"carousel-item\"\r\n role=\"group\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype CarouselPreviousProps = React.ComponentProps<typeof Button>\r\n\r\nfunction CarouselPrevious({\r\n className,\r\n children,\r\n ...props\r\n}: CarouselPreviousProps) {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n aria-label=\"Previous slide\"\r\n className={cn(\r\n \"absolute size-9 rounded-full p-0 data-[icon]:size-9 [&_svg]:size-4\",\r\n \"transition-all duration-200 hover:scale-105\",\r\n \"disabled:cursor-not-allowed disabled:hover:scale-100\",\r\n orientation === \"horizontal\"\r\n ? \"top-1/2 left-6 -translate-y-1/2\"\r\n : \"top-6 left-1/2 -translate-x-1/2 rotate-90\",\r\n className,\r\n )}\r\n data-slot=\"carousel-previous\"\r\n disabled={!canScrollPrev}\r\n icon\r\n onClick={scrollPrev}\r\n size=\"md\"\r\n variant=\"secondary\"\r\n {...props}\r\n >\r\n {children || (\r\n <>\r\n <ArrowLeft />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </>\r\n )}\r\n </Button>\r\n )\r\n}\r\n\r\ntype CarouselNextProps = React.ComponentProps<typeof Button>\r\n\r\nfunction CarouselNext({\r\n className,\r\n children,\r\n ...props\r\n}: CarouselNextProps) {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n aria-label=\"Next slide\"\r\n className={cn(\r\n \"absolute size-9 rounded-full p-0 data-[icon]:size-9 [&_svg]:size-4\",\r\n \"transition-all duration-200 hover:scale-105\",\r\n \"disabled:cursor-not-allowed disabled:hover:scale-100\",\r\n orientation === \"horizontal\"\r\n ? \"top-1/2 right-6 -translate-y-1/2\"\r\n : \"bottom-6 left-1/2 -translate-x-1/2 rotate-90\",\r\n className,\r\n )}\r\n data-slot=\"carousel-next\"\r\n disabled={!canScrollNext}\r\n icon\r\n onClick={scrollNext}\r\n size=\"md\"\r\n variant=\"secondary\"\r\n {...props}\r\n >\r\n {children || (\r\n <>\r\n <ArrowRight />\r\n <span className=\"sr-only\">Next slide</span>\r\n </>\r\n )}\r\n </Button>\r\n )\r\n}\r\n\r\nfunction CarouselDots({ className, ...props }: React.ComponentProps<\"div\">) {\r\n const { api } = useCarousel()\r\n const [selectedIndex, setSelectedIndex] = React.useState(0)\r\n const [scrollSnaps, setScrollSnaps] = React.useState<number[]>([])\r\n\r\n const onInit = React.useCallback((api: CarouselApi) => {\r\n if (!api) return\r\n setScrollSnaps(api.scrollSnapList())\r\n }, [])\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) return\r\n setSelectedIndex(api.selectedScrollSnap())\r\n }, [])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n\r\n onInit(api)\r\n onSelect(api)\r\n\r\n api.on(\"reInit\", onInit)\r\n api.on(\"reInit\", onSelect)\r\n api.on(\"select\", onSelect)\r\n\r\n return () => {\r\n api?.off(\"select\", onSelect)\r\n }\r\n }, [api, onInit, onSelect])\r\n\r\n if (scrollSnaps.length <= 1) return null\r\n\r\n return (\r\n <div\r\n className={cn(\"flex items-center justify-center gap-1.5\", className)}\r\n {...props}\r\n >\r\n {scrollSnaps.map((_, index) => (\r\n <button\r\n key={index}\r\n aria-label={`Go to slide ${index + 1}`}\r\n className={cn(\r\n \"h-1 rounded-full transition-all duration-300\",\r\n index === selectedIndex\r\n ? \"w-4 bg-fg-primary\"\r\n : \"w-2 bg-fg-tertiary hover:bg-fg-secondary\",\r\n )}\r\n data-selected={index === selectedIndex}\r\n data-slot=\"carousel-dot\"\r\n onClick={() => api?.scrollTo(index)}\r\n />\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\nexport {\r\n Carousel,\r\n CarouselContent,\r\n CarouselDots,\r\n CarouselItem,\r\n CarouselNext,\r\n CarouselPrevious,\r\n type CarouselApi,\r\n type CarouselProps,\r\n type CarouselContextProps,\r\n}\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {cva}from'class-variance-authority';import {Loader2}from'lucide-react';import {Button}from'@base-ui/react/button';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var m=cva(cn("group relative inline-flex h-max w-fit cursor-pointer items-center justify-center whitespace-nowrap outline-brand transition duration-100 ease-linear before:absolute focus-visible:outline-2 focus-visible:outline-offset-2 rounded-xp-buttons [&_svg]:shrink-0","disabled:cursor-not-allowed"),{variants:{color:{default:"focus-visible:outline-focus-ring",destructive:"focus-visible:outline-focus-ring-error","gradient-ai":"focus-visible:outline-focus-ring","linear-green":"focus-visible:outline-focus-ring-success","linear-overlay":"focus-visible:outline-focus-ring","linear-destructive":"focus-visible:outline-focus-ring-error"},variant:{primary:"before:rounded-lg before:absolute before:inset-0 before:border-1 before:border-white/12 before:mask-b-from-0% after:absolute after:inset-0 after:rounded-xp-buttons hover:after:bg-alpha-gray-20 after:bg-transparent after:transition-colors disabled:text-fg-disabled disabled:bg-none disabled:bg-bg-disabled disabled:hover:after:bg-transparent disabled:before:border-border-disabled disabled:before:mask-none disabled:before:border-1 shadow-xp-md hover:shadow-xp-brand ",secondary:"border-1 shadow-xp-md hover:shadow-xp-brand disabled:bg-bg-disabled disabled:text-fg-disabled disabled:[&_svg]:text-fg-disabled-subtle disabled:border-border-disabled disabled:hover:text-fg-disabled disabled:hover:[&_svg]:text-fg-disabled-subtle","secondary-accent":"disabled:border-border-disabled disabled:bg-bg-disabled disabled:text-fg-disabled",tertiary:"disabled:bg-bg-disabled disabled:text-fg-disabled disabled:[&_svg]:text-bg-disabled","tertiary-accent":"disabled:bg-bg-disabled disabled:text-fg-disabled disabled:[&_svg]:text-fg-disabled-subtle",link:"underline decoration-transparent hover:decoration-inherit transition-colors disabled:bg-bg-disabled disabled:text-fg-disabled disabled:[&_svg]:text-fg-disabled-subtle disabled:hover:no-underline"},icon:{true:void 0,false:void 0},size:{"3xs":"text-label-semibold-4 px-xp-sm gap-xp-xs h-6 data-[icon]:size-6 data-[variant=link]:h-4 data-[variant=link]:px-0 [&_svg]:size-3.5","2xs":"text-label-semibold-4 px-xp-md gap-xp-xs h-7 data-[icon]:size-7 data-[variant=link]:h-4 data-[variant=link]:px-0 [&_svg]:size-4",xs:"text-label-semibold-3 px-xp-lg gap-xp-sm h-8 data-[icon]:size-8 data-[variant=link]:h-5 data-[variant=link]:px-0 [&_svg]:size-4",sm:"text-label-semibold-3 px-xp-lg gap-xp-sm h-9 data-[icon]:size-9 data-[variant=link]:h-5 data-[variant=link]:px-0 [&_svg]:size-5",md:"text-label-semibold-3 px-3.5 gap-xp-sm h-10 data-[icon]:size-10 data-[variant=link]:h-5 data-[variant=link]:px-0 [&_svg]:size-5",lg:"text-label-semibold-2 px-xp-xl gap-xp-md h-11 data-[icon]:size-11 data-[variant=link]:h-[22px] data-[variant=link]:px-0 [&_svg]:size-5",xl:"text-label-semibold-2 px-4.5 gap-xp-md h-12 data-[icon]:size-12 data-[variant=link]:h-[22px] data-[variant=link]:px-0 [&_svg]:size-5"}},compoundVariants:[{variant:"primary",color:"default",className:"bg-gradient-buttons-gradient-blue text-text-primary-on-brand"},{variant:"secondary",color:"default",className:"bg-bg-primary text-text-secondary [&_svg]:text-fg-secondary border-border-primary-icon hover:bg-bg-brand-solid hover:border-border-white hover:text-text-primary-on-brand hover:[&_svg]:text-fg-white"},{variant:"secondary-accent",color:"default",className:"border-1 border-border-primary-icon text-fg-primary hover:bg-bg-brand-primary"},{variant:"tertiary",color:"default",className:"text-text-tertiary [&_svg]:text-fg-quaternary hover:bg-bg-primary-hover hover:text-text-tertiary-hover hover:[&_svg]:text-fg-quaternary-hover"},{variant:"tertiary-accent",color:"default",className:"bg-bg-brand-primary text-text-brand-tertiary [&_svg]:text-fg-brand-secondary hover:bg-bg-brand-secondary hover:text-text-brand-tertiary hover:[&_svg]:text-fg-brand-secondary-hover"},{variant:"link",color:"default",className:"text-text-brand-secondary [&_svg]:text-fg-brand-secondary-alt hover:text-text-brand-secondary-hover hover:[&_svg]:text-fg-brand-secondary-hover"},{variant:"primary",color:"destructive",className:"bg-bg-error-solid text-text-primary-on-brand"},{variant:"secondary",color:"destructive",className:"bg-bg-primary text-text-error-primary [&_svg]:text-fg-error-secondary border-border-error hover:bg-bg-error-primary hover:text-text-error-primary-hover hover:[&_svg]:text-fg-error-secondary"},{variant:"secondary-accent",color:"destructive",className:"border-1 border-border-error text-fg-error-primary hover:bg-bg-error-primary"},{variant:"tertiary",color:"destructive",className:"text-text-error-primary [&_svg]:text-fg-error-secondary hover:bg-bg-error-primary hover:text-text-error-primary-hover hover:[&_svg]:text-fg-error-primary"},{variant:"tertiary-accent",color:"destructive",className:"bg-bg-error-primary text-text-error-tertiary [&_svg]:text-fg-error-secondary hover:bg-bg-error-secondary hover:text-text-error-tertiary hover:[&_svg]:text-fg-error-secondary-hover"},{variant:"link",color:"destructive",className:"text-text-error-secondary [&_svg]:text-fg-error-secondary hover:text-text-error-primary-hover hover:[&_svg]:text-fg-error-primary"},{variant:"primary",color:"gradient-ai",className:"bg-gradient-buttons-button-ai text-text-primary-on-brand"},{variant:"secondary",color:"gradient-ai",className:"relative shadow-transparent border-transparent hover:bg-bg-primary bg-[linear-gradient(90deg,var(--color-bg-primary),var(--color-bg-primary)),var(--gradient-buttons-button-ai)] [background-clip:padding-box,border-box] [background-origin:padding-box,border-box] [&>span]:bg-gradient-buttons-button-ai [&>span]:bg-clip-text [&>span]:text-transparent after:absolute after:inset-0 after:rounded-md hover:after:bg-gradient-buttons-button-ai hover:after:opacity-10 disabled:hover:after:bg-transparent disabled:after:opacity-0 disabled:[&>span]:bg-none disabled:[&>span]:text-fg-disabled"},{variant:"secondary-accent",color:"gradient-ai",className:"border-1 border-border-brand text-fg-brand-primary hover:bg-bg-brand-primary"},{variant:"tertiary",color:"gradient-ai",className:"relative [&>span]:bg-gradient-buttons-button-ai [&>span]:bg-clip-text [&>span]:text-transparent after:absolute after:inset-0 after:rounded-md hover:after:bg-gradient-buttons-button-ai hover:after:opacity-10 disabled:hover:after:bg-transparent disabled:after:opacity-0 disabled:[&>span]:bg-none disabled:[&>span]:text-fg-disabled"},{variant:"tertiary-accent",color:"gradient-ai",className:"bg-bg-brand-primary text-text-brand-tertiary [&_svg]:text-fg-brand-secondary hover:bg-bg-brand-secondary hover:text-text-brand-tertiary hover:[&_svg]:text-fg-brand-secondary-hover"},{variant:"link",color:"gradient-ai",className:"text-text-brand-secondary [&_svg]:text-fg-brand-secondary-alt hover:text-text-brand-secondary-hover hover:[&_svg]:text-fg-brand-secondary-hover"},{variant:"primary",color:"linear-green",className:"bg-gradient-buttons-gradient-green text-text-primary-on-brand"},{variant:"secondary",color:"linear-green",className:"bg-bg-primary text-text-secondary [&_svg]:text-green-500 border-border-primary hover:text-text-secondary-hover hover:[&_svg]:text-green-900"},{variant:"secondary-accent",color:"linear-green",className:"border-1 border-border-primary text-fg-primary hover:bg-bg-primary"},{variant:"tertiary",color:"linear-green",className:"text-text-success-primary [&_svg]:text-green-500 hover:bg-bg-success-primary hover:[&_svg]:text-green-900"},{variant:"tertiary-accent",color:"linear-green",className:"bg-bg-success-primary text-text-success-tertiary [&_svg]:text-fg-success-secondary hover:bg-bg-success-secondary hover:text-text-success-tertiary hover:[&_svg]:text-fg-success-secondary-hover"},{variant:"link",color:"linear-green",className:"text-text-success-secondary [&_svg]:text-fg-success-secondary hover:text-text-success-primary-hover hover:[&_svg]:text-fg-success-primary"},{variant:"primary",color:"linear-overlay",className:"relative bg-bg-brand-solid text-text-primary-on-brand [&_svg]:text-button-primary-icon hover:[&_svg]:text-button-primary-icon-hover after:absolute after:inset-0 after:rounded-xp-buttons after:bg-gradient-skuemorphic-gradient-border after:hover:bg-gradient-skuemorphic-gradient-border"},{variant:"secondary",color:"linear-overlay",className:"bg-bg-brand-solid-hover text-text-secondary [&_svg]:text-fg-quaternary border-border-primary hover:bg-bg-primary-hover hover:text-text-secondary-hover hover:[&_svg]:text-text-quaternary-hover"},{variant:"secondary-accent",color:"linear-overlay",className:"border-1 border-border-brand text-fg-brand-primary hover:bg-bg-brand-primary"},{variant:"tertiary",color:"linear-overlay",className:"text-text-tertiary [&_svg]:text-fg-quaternary hover:bg-bg-primary-hover hover:text-text-tertiary-hover hover:[&_svg]:text-fg-quaternary-hover"},{variant:"tertiary-accent",color:"linear-overlay",className:"bg-bg-brand-primary text-text-brand-tertiary [&_svg]:text-fg-brand-secondary hover:bg-bg-brand-secondary hover:text-text-brand-tertiary hover:[&_svg]:text-fg-brand-secondary-hover"},{variant:"link",color:"linear-overlay",className:"text-text-brand-secondary [&_svg]:text-fg-brand-secondary-alt hover:text-text-brand-secondary-hover hover:[&_svg]:text-fg-brand-secondary-hover"},{variant:"primary",color:"linear-destructive",className:"relative bg-bg-error-solid text-text-primary-on-brand [&_svg]:text-button-destructive-primary-icon hover:[&_svg]:text-button-destructive-primary-icon-hover after:absolute after:inset-0 after:rounded-xp-buttons after:bg-gradient-skuemorphic-gradient-border after:hover:bg-gradient-skuemorphic-gradient-border"},{variant:"secondary",color:"linear-destructive",className:"bg-bg-error-solid-hover text-text-secondary [&_svg]:text-fg-quaternary border-border-primary hover:bg-bg-primary-hover hover:text-text-secondary-hover hover:[&_svg]:text-text-quaternary-hover"},{variant:"secondary-accent",color:"linear-destructive",className:"border-1 border-border-error text-fg-error-primary hover:bg-bg-error-primary"},{variant:"tertiary",color:"linear-destructive",className:"text-text-error-primary [&_svg]:text-fg-error-secondary hover:bg-bg-error-primary hover:text-text-tertiary-hover hover:[&_svg]:text-fg-error-secondary"},{variant:"tertiary-accent",color:"linear-destructive",className:"bg-bg-error-primary text-text-error-tertiary [&_svg]:text-fg-error-secondary hover:bg-bg-error-secondary hover:text-text-error-tertiary hover:[&_svg]:text-fg-error-secondary-hover"},{variant:"link",color:"linear-destructive",className:"text-text-error-primary [&_svg]:text-fg-error-secondary hover:text-text-error-primary-hover hover:[&_svg]:text-fg-error-primary"}],defaultVariants:{variant:"primary",color:"default",size:"sm"}});function z({className:i,color:s,variant:e,size:n,loading:t=false,children:d,disabled:b,icon:g,nativeButton:l,render:a,...v}){let c=a!=null?false:l;return jsx(Button,{className:cn(m({color:s,variant:e,size:n,className:i})),"data-icon":g?"":void 0,"data-variant":e,disabled:b||t,nativeButton:c,render:a,...v,children:t?jsxs(Fragment,{children:[jsx(Loader2,{className:"size-4 animate-spin"}),jsx("span",{children:"Loading..."})]}):d})}export{m as a,z as b};//# sourceMappingURL=chunk-DQGZIFNP.js.map
2
+ //# sourceMappingURL=chunk-DQGZIFNP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/button.tsx"],"names":["buttonVariants","cva","cn","Button","className","color","variant","size","loading","children","disabled","icon","nativeButton","render","props","resolvedNativeButton","jsx","ButtonPrimitive","jsxs","Fragment","Loader2"],"mappings":"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","file":"chunk-DQGZIFNP.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\r\nimport { Loader2 } from \"lucide-react\"\r\n\r\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\"\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\nconst buttonVariants = cva(\r\n cn(\r\n \"group relative inline-flex h-max w-fit cursor-pointer items-center justify-center whitespace-nowrap outline-brand transition duration-100 ease-linear before:absolute focus-visible:outline-2 focus-visible:outline-offset-2 rounded-xp-buttons [&_svg]:shrink-0\",\r\n \"disabled:cursor-not-allowed\",\r\n ),\r\n {\r\n variants: {\r\n color: {\r\n default: \"focus-visible:outline-focus-ring\",\r\n destructive: \"focus-visible:outline-focus-ring-error\",\r\n \"gradient-ai\": \"focus-visible:outline-focus-ring\",\r\n \"linear-green\": \"focus-visible:outline-focus-ring-success\",\r\n \"linear-overlay\": \"focus-visible:outline-focus-ring\",\r\n \"linear-destructive\": \"focus-visible:outline-focus-ring-error\",\r\n },\r\n variant: {\r\n primary: \"before:rounded-lg before:absolute before:inset-0 before:border-1 before:border-white/12 before:mask-b-from-0% after:absolute after:inset-0 after:rounded-xp-buttons hover:after:bg-alpha-gray-20 after:bg-transparent after:transition-colors disabled:text-fg-disabled disabled:bg-none disabled:bg-bg-disabled disabled:hover:after:bg-transparent disabled:before:border-border-disabled disabled:before:mask-none disabled:before:border-1 shadow-xp-md hover:shadow-xp-brand \",\r\n secondary: \"border-1 shadow-xp-md hover:shadow-xp-brand disabled:bg-bg-disabled disabled:text-fg-disabled disabled:[&_svg]:text-fg-disabled-subtle disabled:border-border-disabled disabled:hover:text-fg-disabled disabled:hover:[&_svg]:text-fg-disabled-subtle\",\r\n \"secondary-accent\": \"disabled:border-border-disabled disabled:bg-bg-disabled disabled:text-fg-disabled\",\r\n tertiary: \"disabled:bg-bg-disabled disabled:text-fg-disabled disabled:[&_svg]:text-bg-disabled\",\r\n \"tertiary-accent\": \"disabled:bg-bg-disabled disabled:text-fg-disabled disabled:[&_svg]:text-fg-disabled-subtle\",\r\n link: \"underline decoration-transparent hover:decoration-inherit transition-colors disabled:bg-bg-disabled disabled:text-fg-disabled disabled:[&_svg]:text-fg-disabled-subtle disabled:hover:no-underline\",\r\n },\r\n icon: {\r\n true: undefined,\r\n false: undefined\r\n },\r\n size: {\r\n \"3xs\": \"text-label-semibold-4 px-xp-sm gap-xp-xs h-6 data-[icon]:size-6 data-[variant=link]:h-4 data-[variant=link]:px-0 [&_svg]:size-3.5\",\r\n \"2xs\": \"text-label-semibold-4 px-xp-md gap-xp-xs h-7 data-[icon]:size-7 data-[variant=link]:h-4 data-[variant=link]:px-0 [&_svg]:size-4\",\r\n xs: \"text-label-semibold-3 px-xp-lg gap-xp-sm h-8 data-[icon]:size-8 data-[variant=link]:h-5 data-[variant=link]:px-0 [&_svg]:size-4\",\r\n sm: \"text-label-semibold-3 px-xp-lg gap-xp-sm h-9 data-[icon]:size-9 data-[variant=link]:h-5 data-[variant=link]:px-0 [&_svg]:size-5\",\r\n md: \"text-label-semibold-3 px-3.5 gap-xp-sm h-10 data-[icon]:size-10 data-[variant=link]:h-5 data-[variant=link]:px-0 [&_svg]:size-5\",\r\n lg: \"text-label-semibold-2 px-xp-xl gap-xp-md h-11 data-[icon]:size-11 data-[variant=link]:h-[22px] data-[variant=link]:px-0 [&_svg]:size-5\",\r\n xl: \"text-label-semibold-2 px-4.5 gap-xp-md h-12 data-[icon]:size-12 data-[variant=link]:h-[22px] data-[variant=link]:px-0 [&_svg]:size-5\",\r\n }\r\n },\r\n compoundVariants: [\r\n // Default Color Variants\r\n {\r\n variant: \"primary\",\r\n color: \"default\",\r\n className: \"bg-gradient-buttons-gradient-blue text-text-primary-on-brand\"\r\n },\r\n {\r\n variant: \"secondary\",\r\n color: \"default\",\r\n className: \"bg-bg-primary text-text-secondary [&_svg]:text-fg-secondary border-border-primary-icon hover:bg-bg-brand-solid hover:border-border-white hover:text-text-primary-on-brand hover:[&_svg]:text-fg-white\"\r\n },\r\n {\r\n variant: \"secondary-accent\",\r\n color: \"default\",\r\n className: \"border-1 border-border-primary-icon text-fg-primary hover:bg-bg-brand-primary\"\r\n },\r\n {\r\n variant: \"tertiary\",\r\n color: \"default\",\r\n className: \"text-text-tertiary [&_svg]:text-fg-quaternary hover:bg-bg-primary-hover hover:text-text-tertiary-hover hover:[&_svg]:text-fg-quaternary-hover\"\r\n },\r\n {\r\n variant: \"tertiary-accent\",\r\n color: \"default\",\r\n className: \"bg-bg-brand-primary text-text-brand-tertiary [&_svg]:text-fg-brand-secondary hover:bg-bg-brand-secondary hover:text-text-brand-tertiary hover:[&_svg]:text-fg-brand-secondary-hover\"\r\n },\r\n {\r\n variant: \"link\",\r\n color: \"default\",\r\n className: \"text-text-brand-secondary [&_svg]:text-fg-brand-secondary-alt hover:text-text-brand-secondary-hover hover:[&_svg]:text-fg-brand-secondary-hover\"\r\n },\r\n\r\n // Destructive Color Variants\r\n {\r\n variant: \"primary\",\r\n color: \"destructive\",\r\n className: \"bg-bg-error-solid text-text-primary-on-brand\"\r\n },\r\n {\r\n variant: \"secondary\",\r\n color: \"destructive\",\r\n className: \"bg-bg-primary text-text-error-primary [&_svg]:text-fg-error-secondary border-border-error hover:bg-bg-error-primary hover:text-text-error-primary-hover hover:[&_svg]:text-fg-error-secondary\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"secondary-accent\",\r\n color: \"destructive\",\r\n className: \"border-1 border-border-error text-fg-error-primary hover:bg-bg-error-primary\"\r\n },\r\n {\r\n variant: \"tertiary\",\r\n color: \"destructive\",\r\n className: \"text-text-error-primary [&_svg]:text-fg-error-secondary hover:bg-bg-error-primary hover:text-text-error-primary-hover hover:[&_svg]:text-fg-error-primary\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"tertiary-accent\",\r\n color: \"destructive\",\r\n className: \"bg-bg-error-primary text-text-error-tertiary [&_svg]:text-fg-error-secondary hover:bg-bg-error-secondary hover:text-text-error-tertiary hover:[&_svg]:text-fg-error-secondary-hover\"\r\n },\r\n {\r\n variant: \"link\",\r\n color: \"destructive\",\r\n className: \"text-text-error-secondary [&_svg]:text-fg-error-secondary hover:text-text-error-primary-hover hover:[&_svg]:text-fg-error-primary\"\r\n },\r\n\r\n // Gradient AI\r\n {\r\n variant: \"primary\",\r\n color: \"gradient-ai\",\r\n className: \"bg-gradient-buttons-button-ai text-text-primary-on-brand\"\r\n },\r\n {\r\n variant: \"secondary\",\r\n color: \"gradient-ai\",\r\n className: \"relative shadow-transparent border-transparent hover:bg-bg-primary bg-[linear-gradient(90deg,var(--color-bg-primary),var(--color-bg-primary)),var(--gradient-buttons-button-ai)] [background-clip:padding-box,border-box] [background-origin:padding-box,border-box] [&>span]:bg-gradient-buttons-button-ai [&>span]:bg-clip-text [&>span]:text-transparent after:absolute after:inset-0 after:rounded-md hover:after:bg-gradient-buttons-button-ai hover:after:opacity-10 disabled:hover:after:bg-transparent disabled:after:opacity-0 disabled:[&>span]:bg-none disabled:[&>span]:text-fg-disabled\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"secondary-accent\",\r\n color: \"gradient-ai\",\r\n className: \"border-1 border-border-brand text-fg-brand-primary hover:bg-bg-brand-primary\"\r\n },\r\n {\r\n variant: \"tertiary\",\r\n color: \"gradient-ai\",\r\n className: \"relative [&>span]:bg-gradient-buttons-button-ai [&>span]:bg-clip-text [&>span]:text-transparent after:absolute after:inset-0 after:rounded-md hover:after:bg-gradient-buttons-button-ai hover:after:opacity-10 disabled:hover:after:bg-transparent disabled:after:opacity-0 disabled:[&>span]:bg-none disabled:[&>span]:text-fg-disabled\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"tertiary-accent\",\r\n color: \"gradient-ai\",\r\n className: \"bg-bg-brand-primary text-text-brand-tertiary [&_svg]:text-fg-brand-secondary hover:bg-bg-brand-secondary hover:text-text-brand-tertiary hover:[&_svg]:text-fg-brand-secondary-hover\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"link\",\r\n color: \"gradient-ai\",\r\n className: \"text-text-brand-secondary [&_svg]:text-fg-brand-secondary-alt hover:text-text-brand-secondary-hover hover:[&_svg]:text-fg-brand-secondary-hover\"\r\n },\r\n\r\n // Linear Green Color Variants\r\n {\r\n variant: \"primary\",\r\n color: \"linear-green\",\r\n className: \"bg-gradient-buttons-gradient-green text-text-primary-on-brand\"\r\n },\r\n {\r\n variant: \"secondary\",\r\n color: \"linear-green\",\r\n className: \"bg-bg-primary text-text-secondary [&_svg]:text-green-500 border-border-primary hover:text-text-secondary-hover hover:[&_svg]:text-green-900\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"secondary-accent\",\r\n color: \"linear-green\",\r\n className: \"border-1 border-border-primary text-fg-primary hover:bg-bg-primary\"\r\n },\r\n {\r\n variant: \"tertiary\",\r\n color: \"linear-green\",\r\n className: \"text-text-success-primary [&_svg]:text-green-500 hover:bg-bg-success-primary hover:[&_svg]:text-green-900\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"tertiary-accent\",\r\n color: \"linear-green\",\r\n className: \"bg-bg-success-primary text-text-success-tertiary [&_svg]:text-fg-success-secondary hover:bg-bg-success-secondary hover:text-text-success-tertiary hover:[&_svg]:text-fg-success-secondary-hover\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"link\",\r\n color: \"linear-green\",\r\n className: \"text-text-success-secondary [&_svg]:text-fg-success-secondary hover:text-text-success-primary-hover hover:[&_svg]:text-fg-success-primary\"\r\n },\r\n\r\n // Linear Overlay Color Variants\r\n {\r\n variant: \"primary\",\r\n color: \"linear-overlay\",\r\n className: \"relative bg-bg-brand-solid text-text-primary-on-brand [&_svg]:text-button-primary-icon hover:[&_svg]:text-button-primary-icon-hover after:absolute after:inset-0 after:rounded-xp-buttons after:bg-gradient-skuemorphic-gradient-border after:hover:bg-gradient-skuemorphic-gradient-border\"\r\n },\r\n {\r\n variant: \"secondary\",\r\n color: \"linear-overlay\",\r\n className: \"bg-bg-brand-solid-hover text-text-secondary [&_svg]:text-fg-quaternary border-border-primary hover:bg-bg-primary-hover hover:text-text-secondary-hover hover:[&_svg]:text-text-quaternary-hover\"\r\n },\r\n {\r\n variant: \"secondary-accent\",\r\n color: \"linear-overlay\",\r\n className: \"border-1 border-border-brand text-fg-brand-primary hover:bg-bg-brand-primary\"\r\n },\r\n {\r\n variant: \"tertiary\",\r\n color: \"linear-overlay\",\r\n className: \"text-text-tertiary [&_svg]:text-fg-quaternary hover:bg-bg-primary-hover hover:text-text-tertiary-hover hover:[&_svg]:text-fg-quaternary-hover\"\r\n },\r\n {\r\n variant: \"tertiary-accent\",\r\n color: \"linear-overlay\",\r\n className: \"bg-bg-brand-primary text-text-brand-tertiary [&_svg]:text-fg-brand-secondary hover:bg-bg-brand-secondary hover:text-text-brand-tertiary hover:[&_svg]:text-fg-brand-secondary-hover\"\r\n },\r\n {\r\n variant: \"link\",\r\n color: \"linear-overlay\",\r\n className: \"text-text-brand-secondary [&_svg]:text-fg-brand-secondary-alt hover:text-text-brand-secondary-hover hover:[&_svg]:text-fg-brand-secondary-hover\"\r\n },\r\n\r\n // Linear Destructive Color Variants\r\n {\r\n variant: \"primary\",\r\n color: \"linear-destructive\",\r\n className: \"relative bg-bg-error-solid text-text-primary-on-brand [&_svg]:text-button-destructive-primary-icon hover:[&_svg]:text-button-destructive-primary-icon-hover after:absolute after:inset-0 after:rounded-xp-buttons after:bg-gradient-skuemorphic-gradient-border after:hover:bg-gradient-skuemorphic-gradient-border\"\r\n },\r\n {\r\n variant: \"secondary\",\r\n color: \"linear-destructive\",\r\n className: \"bg-bg-error-solid-hover text-text-secondary [&_svg]:text-fg-quaternary border-border-primary hover:bg-bg-primary-hover hover:text-text-secondary-hover hover:[&_svg]:text-text-quaternary-hover\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"secondary-accent\",\r\n color: \"linear-destructive\",\r\n className: \"border-1 border-border-error text-fg-error-primary hover:bg-bg-error-primary\"\r\n },\r\n {\r\n variant: \"tertiary\",\r\n color: \"linear-destructive\",\r\n className: \"text-text-error-primary [&_svg]:text-fg-error-secondary hover:bg-bg-error-primary hover:text-text-tertiary-hover hover:[&_svg]:text-fg-error-secondary\"\r\n },\r\n {\r\n // Not existing in design system yet\r\n variant: \"tertiary-accent\",\r\n color: \"linear-destructive\",\r\n className: \"bg-bg-error-primary text-text-error-tertiary [&_svg]:text-fg-error-secondary hover:bg-bg-error-secondary hover:text-text-error-tertiary hover:[&_svg]:text-fg-error-secondary-hover\"\r\n },\r\n {\r\n variant: \"link\",\r\n color: \"linear-destructive\",\r\n className: \"text-text-error-primary [&_svg]:text-fg-error-secondary hover:text-text-error-primary-hover hover:[&_svg]:text-fg-error-primary\"\r\n },\r\n ],\r\n defaultVariants: {\r\n variant: \"primary\",\r\n color: \"default\",\r\n size: \"sm\",\r\n },\r\n }\r\n)\r\n\r\nfunction Button({\r\n className,\r\n color,\r\n variant,\r\n size,\r\n loading = false,\r\n children,\r\n disabled,\r\n icon,\r\n nativeButton,\r\n render,\r\n ...props\r\n}: ButtonPrimitive.Props &\r\n VariantProps<typeof buttonVariants> & {\r\n loading?: boolean\r\n }) {\r\n // ponytail: auto-detect nativeButton when render is provided\r\n const resolvedNativeButton = render != null ? false : nativeButton\r\n\r\n return (\r\n <ButtonPrimitive\r\n className={cn(buttonVariants({ color, variant, size, className }))}\r\n data-icon={icon ? \"\" : undefined}\r\n data-variant={variant}\r\n disabled={disabled || loading}\r\n nativeButton={resolvedNativeButton}\r\n render={render}\r\n {...props}\r\n >\r\n {loading ? (\r\n <>\r\n <Loader2 className=\"size-4 animate-spin\" />\r\n <span>Loading...</span>\r\n </>\r\n ) : (\r\n children\r\n )}\r\n </ButtonPrimitive>\r\n )\r\n}\r\n\r\nexport { Button, buttonVariants }"]}
@@ -1,2 +1,2 @@
1
- import {a,b}from'./chunk-UINS73U7.js';import*as D from'react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {differenceInCalendarDays}from'date-fns';import {ChevronLeftIcon,ChevronRightIcon,ChevronLeft,ChevronRight}from'lucide-react';import {DayPicker,DayButton,useDayPicker,labelPrevious,labelNext}from'react-day-picker';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs}from'react/jsx-runtime';function ce({className:r,showOutsideDays:e=true,showViewSwitcher:t=true,yearRange:a$1=12,numberOfMonths:s,components:l,navView:f,defaultNavView:u,onNavViewChange:g,minNavView:b="days",weekStartsOn:N=0,...n}){let[c,h]=useControlledState({value:f,defaultValue:u??"days",onChange:g});D.useEffect(()=>{b==="months"&&h("months"),b==="years"&&h("years");},[b,h]);let[C,d]=D.useState({year:new Date().getFullYear()}),[y,m]=D.useState(D.useMemo(()=>{let w=new Date().getFullYear();return {from:w-Math.floor(a$1/2-1),to:w+Math.ceil(a$1/2)}},[a$1])),{onNextClick:_,onPrevClick:V,startMonth:x,endMonth:p}=n,F=c==="years"||c==="months"?1:s,M=cn("relative flex [&>div:not(:last-of-type)]:mr-3",n.monthsClassName),R=cn("relative flex items-center justify-center",n.monthCaptionClassName),A=cn("flex flex-row",n.weekdaysClassName),G=cn("size-9 first:text-text-error-primary text-label-semibold-3 text-text-primary flex items-center justify-center",n.weekdayClassName),Y=cn("flex flex-col gap-2",n.monthClassName),E=cn("relative flex items-center justify-center pt-xp-xs",n.captionClassName),L=cn("truncate text-body-regular-3 font-medium",n.captionLabelClassName),B=a({variant:"secondary-accent",className:"absolute h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"}),T=cn(B,"right-0",n.buttonNextClassName),j=cn(B,"left-0",n.buttonPreviousClassName),O=cn("flex items-start",n.navClassName),J=cn("flex flex-col p-3 bg-bg-primary text-text-primary rounded-lg",n.monthGridClassName),$=cn("flex w-max items-start",n.weekClassName),I=cn("flex size-9 flex-1 items-center justify-center p-0 text-label-semibold-3",n.dayClassName),q=cn(a({variant:null,size:"sm"}),"p-0",n.dayButtonClassName),H="[&>button]:bg-gradient-buttons-gradient-blue [&>button]:text-fg-white",K=cn("day-range-start [&:not(.day-range-end)>button]:rounded-e-none",n.rangeStartClassName),Q=cn("day-range-end [&:not(.day-range-start)>button]:rounded-s-none",n.rangeEndClassName),U=cn("[&>button]:bg-none [&>button]:bg-bg-primary-hover [&>button]:text-text-primary [&>button]:rounded-none [&[aria-selected=true][data-today=true]>button]:after:bg-utility-brand-500 [&[aria-selected=true][data-today=true]>button]:after:ring-utility-brand-100",n.rangeMiddleClassName),W=cn(" [&>button]:relative","[&>button]:after:content-[''] [&>button]:after:absolute [&>button]:after:bottom-1","[&>button]:after:left-1/2 [&>button]:after:-translate-x-1/2","[&>button]:after:size-1 [&>button]:after:rounded-full [&>button]:after:ring-2 [&>button]:after:ring-utility-brand-100 [&>button]:after:bg-utility-brand-500","[&[aria-selected=true]>button]:after:bg-fg-white [&[aria-selected=true]>button]:after:ring-alpha-alpha-white-30",n.todayClassName),X=cn("opacity-50",n.outsideClassName),Z=cn("opacity-50",n.disabledClassName),ee=cn("invisible flex-1",n.hiddenClassName);return jsx(DayPicker,{className:cn("p-xp-xl rounded-xl bg-bg-tertiary h-max",r),classNames:{months:M,month_caption:R,weekdays:A,weekday:G,month:Y,caption:E,caption_label:L,button_next:T,button_previous:j,nav:O,month_grid:J,week:$,day:I,day_button:q,selected:H,range_start:K,range_middle:U,range_end:Q,today:W,outside:X,disabled:Z,hidden:ee},components:{Chevron:({orientation:w})=>jsx(w==="left"?ChevronLeftIcon:ChevronRightIcon,{className:"h-4 w-4"}),Nav:({className:w})=>jsx(de,{className:w,displayMonths:C,displayYears:y,endMonth:p,navView:c,setDisplayMonths:d,setDisplayYears:m,startMonth:x,onNextClick:_,onPrevClick:V}),CaptionLabel:w=>jsx(fe,{displayMonths:C,displayYears:y,navView:c,setNavView:h,showViewSwitcher:t,...w}),DayButton:w=>jsx(DayButton,{"data-icon":true,...w}),MonthGrid:({className:w,children:z,...te})=>jsx(be,{className:w,displayMonths:C,displayYears:y,endMonth:p,minNavView:b,navView:c,setDisplayMonths:d,setNavView:h,startMonth:x,...te,children:z}),...l},numberOfMonths:F,showOutsideDays:e,weekStartsOn:N,...n})}ce.displayName="Calendar";function de({className:r,navView:e,startMonth:t,endMonth:a,displayYears:s,displayMonths:l,setDisplayYears:f,setDisplayMonths:u,onPrevClick:g,onNextClick:b$1}){let{nextMonth:N,previousMonth:n,goToMonth:c}=useDayPicker(),h=e==="years"?t&&differenceInCalendarDays(new Date(s.from-1,0,1),t)<0||a&&differenceInCalendarDays(new Date(s.from-1,0,1),a)>0:e==="months"?t&&differenceInCalendarDays(new Date(l.year-1,0,1),t)<0||a&&differenceInCalendarDays(new Date(l.year-1,0,1),a)>0:!n,C=e==="years"?t&&differenceInCalendarDays(new Date(s.to+1,0,1),t)<0||a&&differenceInCalendarDays(new Date(s.to+1,0,1),a)>0:e==="months"?t&&differenceInCalendarDays(new Date(l.year+1,0,1),t)<0||a&&differenceInCalendarDays(new Date(l.year+1,0,1),a)>0:!N,d=D.useCallback(()=>{if(n){if(e==="years"){f(m=>({from:m.from-(m.to-m.from+1),to:m.to-(m.to-m.from+1)})),g?.(new Date(s.from-(s.to-s.from),0,1));return}if(e==="months"){u(m=>({year:m.year-1})),g?.(new Date(l.year-1,0,1));return}c(n),g?.(n);}},[n,c,s.from,s.to,l.year,e,g,f,u]),y=D.useCallback(()=>{if(N){if(e==="years"){f(m=>({from:m.from+(m.to-m.from+1),to:m.to+(m.to-m.from+1)})),b$1?.(new Date(s.from+(s.to-s.from),0,1));return}if(e==="months"){u(m=>({year:m.year+1})),b$1?.(new Date(l.year+1,0,1));return}c(N),b$1?.(N);}},[c,N,s.from,s.to,l.year,e,b$1,f,u]);return jsxs("nav",{className:cn("flex items-center",r),children:[jsx(b,{"aria-label":e==="years"?`Go to the previous ${s.to-s.from+1} years`:e==="months"?"Go to the previous year":labelPrevious(n),className:"absolute left-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10",disabled:h,size:"sm",icon:true,tabIndex:h?void 0:-1,type:"button",variant:null,onClick:d,children:jsx(ChevronLeft,{})}),jsx(b,{"aria-label":e==="years"?`Go to the next ${s.to-s.from+1} years`:e==="months"?"Go to the next year":labelNext(N),className:"absolute right-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10",disabled:C,size:"sm",icon:true,tabIndex:C?void 0:-1,type:"button",variant:null,onClick:y,children:jsx(ChevronRight,{})})]})}function fe({children:r,showViewSwitcher:e,navView:t,setNavView:a,displayYears:s,displayMonths:l,...f}){return e?jsx(b,{disabled:t==="years",size:"sm",type:"button",variant:null,onClick:()=>{t==="days"?a("months"):t==="months"&&a("years");},children:t==="days"?r:t==="months"?l.year:s.from+" - "+s.to}):jsx("span",{...f,children:r})}function be({className:r,children:e,displayYears:t,displayMonths:a,setDisplayMonths:s,startMonth:l,endMonth:f,navView:u,setNavView:g,minNavView:b="days",...N}){return u==="years"?jsx(ge,{className:r,displayYears:t,endMonth:f,minNavView:b,navView:u,setDisplayMonths:s,setNavView:g,startMonth:l,...N}):u==="months"?jsx(Ce,{className:r,displayMonths:a,endMonth:f,minNavView:b,navView:u,setNavView:g,startMonth:l,...N}):jsx("table",{className:cn("flex-1",r),...N,children:e})}function Ne(r,e){if(!r)return false;if(Array.isArray(r))return r.some(t=>t.getFullYear()===e);if(typeof r=="object"&&"from"in r){let t=r;return t.from&&t.to?e>=t.from.getFullYear()&&e<=t.to.getFullYear():t.from?t.from.getFullYear()===e:false}return r.getFullYear()===e}function ye(r,e,t){if(!r)return false;if(Array.isArray(r))return r.some(a=>a.getMonth()===t&&a.getFullYear()===e);if(typeof r=="object"&&"from"in r){let a=r;if(a.from&&a.to){let s=a.from.getMonth(),l=a.from.getFullYear(),f=a.to.getMonth(),u=a.to.getFullYear();return e===l&&e===u?t>=s&&t<=f:e===l?t>=s:e===u?t<=f:e>l&&e<u}return a.from?a.from.getMonth()===t&&a.from.getFullYear()===e:false}return r.getMonth()===t&&r.getFullYear()===e}function ge({className:r,displayYears:e,startMonth:t,endMonth:a,setNavView:s,navView:l,setDisplayMonths:f,minNavView:u="days",...g}){let {selected:b$1,select:N}=useDayPicker();new Date().getFullYear();let c=e.to-e.from+1,h=(C,d)=>{u==="years"?N?.(new Date(d,0,1),{},C):(s("months"),f({year:d}));};return jsx("table",{className:cn("w-[312px]",r),...g,children:jsx("tbody",{children:jsx("tr",{className:"grid grid-cols-3 gap-xp-md",children:Array.from({length:c},(C,d)=>{let y=e.from+d,m=new Date(y,0,1),_=new Date(y,11,31),V=t&&differenceInCalendarDays(_,t)<0,x=a&&differenceInCalendarDays(m,a)>0,p=V||x,M=Ne(b$1,y);return jsx("td",{children:jsx(b,{className:"w-full",disabled:l==="years"?p:void 0,type:"button",variant:M?"primary":"tertiary-accent",onClick:R=>h(R,y),children:y})},y)})})})})}function Ce({className:r,displayMonths:e,startMonth:t,endMonth:a,setNavView:s,navView:l,minNavView:f="days",...u}){let{goToMonth:g,selected:b$1,select:N}=useDayPicker(),n=["January","February","March","April","May","June","July","August","September","October","November","December"],c=e.year,h=(C,d)=>{f==="months"?N?.(new Date(c,d,1),{},C):(s("days"),g(new Date(c,d)));};return jsx("table",{className:cn("w-[312px]",r),...u,children:jsx("tbody",{children:jsx("tr",{className:"grid grid-cols-3 gap-xp-md",children:n.map((C,d)=>{let y=t&&differenceInCalendarDays(new Date(c,d,31),t)<0,m=a&&differenceInCalendarDays(new Date(c,d,1),a)>0,_=y||m;c===new Date().getFullYear()&&d===new Date().getMonth();let x=ye(b$1,c,d);return jsx("td",{children:jsx(b,{className:"w-full",disabled:l==="months"?_:void 0,type:"button",variant:x?"primary":"tertiary-accent",onClick:p=>h(p,d),children:C.substring(0,3)})},d)})})})})}export{ce as a};//# sourceMappingURL=chunk-F77XVICY.js.map
2
- //# sourceMappingURL=chunk-F77XVICY.js.map
1
+ import {a,b}from'./chunk-DQGZIFNP.js';import*as D from'react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {differenceInCalendarDays}from'date-fns';import {ChevronLeftIcon,ChevronRightIcon,ChevronLeft,ChevronRight}from'lucide-react';import {DayPicker,DayButton,useDayPicker,labelPrevious,labelNext}from'react-day-picker';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs}from'react/jsx-runtime';function ce({className:r,showOutsideDays:e=true,showViewSwitcher:t=true,yearRange:a$1=12,numberOfMonths:s,components:l,navView:f,defaultNavView:u,onNavViewChange:g,minNavView:b="days",weekStartsOn:N=0,...n}){let[c,h]=useControlledState({value:f,defaultValue:u??"days",onChange:g});D.useEffect(()=>{b==="months"&&h("months"),b==="years"&&h("years");},[b,h]);let[C,d]=D.useState({year:new Date().getFullYear()}),[y,m]=D.useState(D.useMemo(()=>{let w=new Date().getFullYear();return {from:w-Math.floor(a$1/2-1),to:w+Math.ceil(a$1/2)}},[a$1])),{onNextClick:_,onPrevClick:V,startMonth:x,endMonth:p}=n,F=c==="years"||c==="months"?1:s,M=cn("relative flex [&>div:not(:last-of-type)]:mr-3",n.monthsClassName),R=cn("relative flex items-center justify-center",n.monthCaptionClassName),A=cn("flex flex-row",n.weekdaysClassName),G=cn("size-9 first:text-text-error-primary text-label-semibold-3 text-text-primary flex items-center justify-center",n.weekdayClassName),Y=cn("flex flex-col gap-2",n.monthClassName),E=cn("relative flex items-center justify-center pt-xp-xs",n.captionClassName),L=cn("truncate text-body-regular-3 font-medium",n.captionLabelClassName),B=a({variant:"secondary-accent",className:"absolute h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"}),T=cn(B,"right-0",n.buttonNextClassName),j=cn(B,"left-0",n.buttonPreviousClassName),O=cn("flex items-start",n.navClassName),J=cn("flex flex-col p-3 bg-bg-primary text-text-primary rounded-lg",n.monthGridClassName),$=cn("flex w-max items-start",n.weekClassName),I=cn("flex size-9 flex-1 items-center justify-center p-0 text-label-semibold-3",n.dayClassName),q=cn(a({variant:null,size:"sm"}),"p-0",n.dayButtonClassName),H="[&>button]:bg-gradient-buttons-gradient-blue [&>button]:text-fg-white",K=cn("day-range-start [&:not(.day-range-end)>button]:rounded-e-none",n.rangeStartClassName),Q=cn("day-range-end [&:not(.day-range-start)>button]:rounded-s-none",n.rangeEndClassName),U=cn("[&>button]:bg-none [&>button]:bg-bg-primary-hover [&>button]:text-text-primary [&>button]:rounded-none [&[aria-selected=true][data-today=true]>button]:after:bg-utility-brand-500 [&[aria-selected=true][data-today=true]>button]:after:ring-utility-brand-100",n.rangeMiddleClassName),W=cn(" [&>button]:relative","[&>button]:after:content-[''] [&>button]:after:absolute [&>button]:after:bottom-1","[&>button]:after:left-1/2 [&>button]:after:-translate-x-1/2","[&>button]:after:size-1 [&>button]:after:rounded-full [&>button]:after:ring-2 [&>button]:after:ring-utility-brand-100 [&>button]:after:bg-utility-brand-500","[&[aria-selected=true]>button]:after:bg-fg-white [&[aria-selected=true]>button]:after:ring-alpha-alpha-white-30",n.todayClassName),X=cn("opacity-50",n.outsideClassName),Z=cn("opacity-50",n.disabledClassName),ee=cn("invisible flex-1",n.hiddenClassName);return jsx(DayPicker,{className:cn("p-xp-xl rounded-xl bg-bg-tertiary h-max",r),classNames:{months:M,month_caption:R,weekdays:A,weekday:G,month:Y,caption:E,caption_label:L,button_next:T,button_previous:j,nav:O,month_grid:J,week:$,day:I,day_button:q,selected:H,range_start:K,range_middle:U,range_end:Q,today:W,outside:X,disabled:Z,hidden:ee},components:{Chevron:({orientation:w})=>jsx(w==="left"?ChevronLeftIcon:ChevronRightIcon,{className:"h-4 w-4"}),Nav:({className:w})=>jsx(de,{className:w,displayMonths:C,displayYears:y,endMonth:p,navView:c,setDisplayMonths:d,setDisplayYears:m,startMonth:x,onNextClick:_,onPrevClick:V}),CaptionLabel:w=>jsx(fe,{displayMonths:C,displayYears:y,navView:c,setNavView:h,showViewSwitcher:t,...w}),DayButton:w=>jsx(DayButton,{"data-icon":true,...w}),MonthGrid:({className:w,children:z,...te})=>jsx(be,{className:w,displayMonths:C,displayYears:y,endMonth:p,minNavView:b,navView:c,setDisplayMonths:d,setNavView:h,startMonth:x,...te,children:z}),...l},numberOfMonths:F,showOutsideDays:e,weekStartsOn:N,...n})}ce.displayName="Calendar";function de({className:r,navView:e,startMonth:t,endMonth:a,displayYears:s,displayMonths:l,setDisplayYears:f,setDisplayMonths:u,onPrevClick:g,onNextClick:b$1}){let{nextMonth:N,previousMonth:n,goToMonth:c}=useDayPicker(),h=e==="years"?t&&differenceInCalendarDays(new Date(s.from-1,0,1),t)<0||a&&differenceInCalendarDays(new Date(s.from-1,0,1),a)>0:e==="months"?t&&differenceInCalendarDays(new Date(l.year-1,0,1),t)<0||a&&differenceInCalendarDays(new Date(l.year-1,0,1),a)>0:!n,C=e==="years"?t&&differenceInCalendarDays(new Date(s.to+1,0,1),t)<0||a&&differenceInCalendarDays(new Date(s.to+1,0,1),a)>0:e==="months"?t&&differenceInCalendarDays(new Date(l.year+1,0,1),t)<0||a&&differenceInCalendarDays(new Date(l.year+1,0,1),a)>0:!N,d=D.useCallback(()=>{if(n){if(e==="years"){f(m=>({from:m.from-(m.to-m.from+1),to:m.to-(m.to-m.from+1)})),g?.(new Date(s.from-(s.to-s.from),0,1));return}if(e==="months"){u(m=>({year:m.year-1})),g?.(new Date(l.year-1,0,1));return}c(n),g?.(n);}},[n,c,s.from,s.to,l.year,e,g,f,u]),y=D.useCallback(()=>{if(N){if(e==="years"){f(m=>({from:m.from+(m.to-m.from+1),to:m.to+(m.to-m.from+1)})),b$1?.(new Date(s.from+(s.to-s.from),0,1));return}if(e==="months"){u(m=>({year:m.year+1})),b$1?.(new Date(l.year+1,0,1));return}c(N),b$1?.(N);}},[c,N,s.from,s.to,l.year,e,b$1,f,u]);return jsxs("nav",{className:cn("flex items-center",r),children:[jsx(b,{"aria-label":e==="years"?`Go to the previous ${s.to-s.from+1} years`:e==="months"?"Go to the previous year":labelPrevious(n),className:"absolute left-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10",disabled:h,size:"sm",icon:true,tabIndex:h?void 0:-1,type:"button",variant:null,onClick:d,children:jsx(ChevronLeft,{})}),jsx(b,{"aria-label":e==="years"?`Go to the next ${s.to-s.from+1} years`:e==="months"?"Go to the next year":labelNext(N),className:"absolute right-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10",disabled:C,size:"sm",icon:true,tabIndex:C?void 0:-1,type:"button",variant:null,onClick:y,children:jsx(ChevronRight,{})})]})}function fe({children:r,showViewSwitcher:e,navView:t,setNavView:a,displayYears:s,displayMonths:l,...f}){return e?jsx(b,{disabled:t==="years",size:"sm",type:"button",variant:null,onClick:()=>{t==="days"?a("months"):t==="months"&&a("years");},children:t==="days"?r:t==="months"?l.year:s.from+" - "+s.to}):jsx("span",{...f,children:r})}function be({className:r,children:e,displayYears:t,displayMonths:a,setDisplayMonths:s,startMonth:l,endMonth:f,navView:u,setNavView:g,minNavView:b="days",...N}){return u==="years"?jsx(ge,{className:r,displayYears:t,endMonth:f,minNavView:b,navView:u,setDisplayMonths:s,setNavView:g,startMonth:l,...N}):u==="months"?jsx(Ce,{className:r,displayMonths:a,endMonth:f,minNavView:b,navView:u,setNavView:g,startMonth:l,...N}):jsx("table",{className:cn("flex-1",r),...N,children:e})}function Ne(r,e){if(!r)return false;if(Array.isArray(r))return r.some(t=>t.getFullYear()===e);if(typeof r=="object"&&"from"in r){let t=r;return t.from&&t.to?e>=t.from.getFullYear()&&e<=t.to.getFullYear():t.from?t.from.getFullYear()===e:false}return r.getFullYear()===e}function ye(r,e,t){if(!r)return false;if(Array.isArray(r))return r.some(a=>a.getMonth()===t&&a.getFullYear()===e);if(typeof r=="object"&&"from"in r){let a=r;if(a.from&&a.to){let s=a.from.getMonth(),l=a.from.getFullYear(),f=a.to.getMonth(),u=a.to.getFullYear();return e===l&&e===u?t>=s&&t<=f:e===l?t>=s:e===u?t<=f:e>l&&e<u}return a.from?a.from.getMonth()===t&&a.from.getFullYear()===e:false}return r.getMonth()===t&&r.getFullYear()===e}function ge({className:r,displayYears:e,startMonth:t,endMonth:a,setNavView:s,navView:l,setDisplayMonths:f,minNavView:u="days",...g}){let {selected:b$1,select:N}=useDayPicker();new Date().getFullYear();let c=e.to-e.from+1,h=(C,d)=>{u==="years"?N?.(new Date(d,0,1),{},C):(s("months"),f({year:d}));};return jsx("table",{className:cn("w-[312px]",r),...g,children:jsx("tbody",{children:jsx("tr",{className:"grid grid-cols-3 gap-xp-md",children:Array.from({length:c},(C,d)=>{let y=e.from+d,m=new Date(y,0,1),_=new Date(y,11,31),V=t&&differenceInCalendarDays(_,t)<0,x=a&&differenceInCalendarDays(m,a)>0,p=V||x,M=Ne(b$1,y);return jsx("td",{children:jsx(b,{className:"w-full",disabled:l==="years"?p:void 0,type:"button",variant:M?"primary":"tertiary-accent",onClick:R=>h(R,y),children:y})},y)})})})})}function Ce({className:r,displayMonths:e,startMonth:t,endMonth:a,setNavView:s,navView:l,minNavView:f="days",...u}){let{goToMonth:g,selected:b$1,select:N}=useDayPicker(),n=["January","February","March","April","May","June","July","August","September","October","November","December"],c=e.year,h=(C,d)=>{f==="months"?N?.(new Date(c,d,1),{},C):(s("days"),g(new Date(c,d)));};return jsx("table",{className:cn("w-[312px]",r),...u,children:jsx("tbody",{children:jsx("tr",{className:"grid grid-cols-3 gap-xp-md",children:n.map((C,d)=>{let y=t&&differenceInCalendarDays(new Date(c,d,31),t)<0,m=a&&differenceInCalendarDays(new Date(c,d,1),a)>0,_=y||m;c===new Date().getFullYear()&&d===new Date().getMonth();let x=ye(b$1,c,d);return jsx("td",{children:jsx(b,{className:"w-full",disabled:l==="months"?_:void 0,type:"button",variant:x?"primary":"tertiary-accent",onClick:p=>h(p,d),children:C.substring(0,3)})},d)})})})})}export{ce as a};//# sourceMappingURL=chunk-FIDOWSDH.js.map
2
+ //# sourceMappingURL=chunk-FIDOWSDH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/calendar.tsx"],"names":["Calendar","className","showOutsideDays","showViewSwitcher","yearRange","numberOfMonths","components","navViewProp","defaultNavView","onNavViewChange","minNavView","weekStartsOn","props","navView","setNavView","useControlledState","displayMonths","setDisplayMonths","displayYears","setDisplayYears","currentYear","onNextClick","onPrevClick","startMonth","endMonth","columnsDisplayed","_monthsClassName","cn","_monthCaptionClassName","_weekdaysClassName","_weekdayClassName","_monthClassName","_captionClassName","_captionLabelClassName","buttonNavClassName","buttonVariants","_buttonNextClassName","_buttonPreviousClassName","_navClassName","_monthGridClassName","_weekClassName","_dayClassName","_dayButtonClassName","_dayButtonSelectedClassName","_rangeStartClassName","_rangeEndClassName","_rangeMiddleClassName","_todayClassName","_outsideClassName","_disabledClassName","_hiddenClassName","jsx","DayPicker","orientation","ChevronLeftIcon","ChevronRightIcon","navClassName","Nav","clProps","CaptionLabel","dayProps","DayButton","mgClassName","children","mgProps","CalendarGrid","nextMonth","previousMonth","goToMonth","useDayPicker","isPreviousDisabled","differenceInCalendarDays","isNextDisabled","handlePreviousClick","prev","handleNextClick","jsxs","Button","labelPrevious","ChevronLeft","labelNext","ChevronRight","YearGrid","MonthGrid","isYearSelected","selected","year","d","range","isMonthSelected","monthIdx","fromMonth","fromYear","toMonth","toYear","select","totalYears","handleClick","e","_","i","yearStart","yearEnd","isBeforeStart","isAfterEnd","isDisabled","isSelected","months","month","isBefore","isAfter"],"mappings":"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","file":"chunk-F77XVICY.js","sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport { differenceInCalendarDays } from \"date-fns\"\r\nimport {\r\n ChevronLeft,\r\n ChevronLeftIcon,\r\n ChevronRight,\r\n ChevronRightIcon,\r\n} from \"lucide-react\"\r\nimport {\r\n type DateRange,\r\n DayButton,\r\n DayPicker,\r\n type DayPickerProps,\r\n labelNext,\r\n labelPrevious,\r\n useDayPicker,\r\n} from \"react-day-picker\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\nimport { Button, buttonVariants } from \"./button\"\r\n\r\nexport type CalendarProps = DayPickerProps & {\r\n yearRange?: number\r\n showViewSwitcher?: boolean\r\n navView?: NavView\r\n defaultNavView?: NavView\r\n onNavViewChange?: (navView: NavView) => void\r\n minNavView?: NavView\r\n monthsClassName?: string\r\n monthCaptionClassName?: string\r\n weekdaysClassName?: string\r\n weekdayClassName?: string\r\n monthClassName?: string\r\n captionClassName?: string\r\n captionLabelClassName?: string\r\n buttonNextClassName?: string\r\n buttonPreviousClassName?: string\r\n navClassName?: string\r\n monthGridClassName?: string\r\n weekClassName?: string\r\n dayClassName?: string\r\n dayButtonClassName?: string\r\n rangeStartClassName?: string\r\n rangeEndClassName?: string\r\n selectedClassName?: string\r\n todayClassName?: string\r\n outsideClassName?: string\r\n disabledClassName?: string\r\n rangeMiddleClassName?: string\r\n hiddenClassName?: string\r\n}\r\n\r\nexport type NavView = \"days\" | \"months\" | \"years\"\r\n\r\nfunction Calendar({\r\n className,\r\n showOutsideDays = true,\r\n showViewSwitcher = true,\r\n yearRange = 12,\r\n numberOfMonths,\r\n components,\r\n navView: navViewProp,\r\n defaultNavView,\r\n onNavViewChange,\r\n minNavView = \"days\",\r\n weekStartsOn = 0,\r\n ...props\r\n}: CalendarProps) {\r\n const [navView, setNavView] = useControlledState({\r\n value: navViewProp,\r\n defaultValue: defaultNavView ?? \"days\",\r\n onChange: onNavViewChange,\r\n })\r\n\r\n React.useEffect(() => {\r\n if (minNavView === \"months\") setNavView(\"months\")\r\n if (minNavView === \"years\") setNavView(\"years\")\r\n }, [minNavView, setNavView])\r\n\r\n const [displayMonths, setDisplayMonths] = React.useState<{ year: number }>({\r\n year: new Date().getFullYear(),\r\n })\r\n\r\n const [displayYears, setDisplayYears] = React.useState<{ from: number; to: number }>(\r\n React.useMemo(() => {\r\n const currentYear = new Date().getFullYear()\r\n return {\r\n from: currentYear - Math.floor(yearRange / 2 - 1),\r\n to: currentYear + Math.ceil(yearRange / 2),\r\n }\r\n }, [yearRange]),\r\n )\r\n\r\n const { onNextClick, onPrevClick, startMonth, endMonth } = props\r\n\r\n const columnsDisplayed = navView === \"years\" || navView === \"months\" ? 1 : numberOfMonths\r\n\r\n const _monthsClassName = cn(\"relative flex [&>div:not(:last-of-type)]:mr-3\", props.monthsClassName)\r\n const _monthCaptionClassName = cn(\"relative flex items-center justify-center\", props.monthCaptionClassName)\r\n const _weekdaysClassName = cn(\"flex flex-row\", props.weekdaysClassName)\r\n const _weekdayClassName = cn(\"size-9 first:text-text-error-primary text-label-semibold-3 text-text-primary flex items-center justify-center\", props.weekdayClassName)\r\n const _monthClassName = cn(\"flex flex-col gap-2\", props.monthClassName)\r\n const _captionClassName = cn(\"relative flex items-center justify-center pt-xp-xs\", props.captionClassName)\r\n const _captionLabelClassName = cn(\"truncate text-body-regular-3 font-medium\", props.captionLabelClassName)\r\n const buttonNavClassName = buttonVariants({\r\n variant: \"secondary-accent\",\r\n className: \"absolute h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\r\n })\r\n const _buttonNextClassName = cn(buttonNavClassName, \"right-0\", props.buttonNextClassName)\r\n const _buttonPreviousClassName = cn(buttonNavClassName, \"left-0\", props.buttonPreviousClassName)\r\n const _navClassName = cn(\"flex items-start\", props.navClassName)\r\n const _monthGridClassName = cn(\"flex flex-col p-3 bg-bg-primary text-text-primary rounded-lg\", props.monthGridClassName)\r\n const _weekClassName = cn(\"flex w-max items-start\", props.weekClassName)\r\n const _dayClassName = cn(\"flex size-9 flex-1 items-center justify-center p-0 text-label-semibold-3\", props.dayClassName)\r\n const _dayButtonClassName = cn(\r\n buttonVariants({ variant: null, size: \"sm\" }),\r\n \"p-0\",\r\n props.dayButtonClassName,\r\n )\r\n const _dayButtonSelectedClassName = \"[&>button]:bg-gradient-buttons-gradient-blue [&>button]:text-fg-white\"\r\n const _rangeStartClassName = cn(\"day-range-start [&:not(.day-range-end)>button]:rounded-e-none\", props.rangeStartClassName)\r\n const _rangeEndClassName = cn(\"day-range-end [&:not(.day-range-start)>button]:rounded-s-none\", props.rangeEndClassName)\r\n const _rangeMiddleClassName = cn(\r\n \"[&>button]:bg-none [&>button]:bg-bg-primary-hover [&>button]:text-text-primary [&>button]:rounded-none [&[aria-selected=true][data-today=true]>button]:after:bg-utility-brand-500 [&[aria-selected=true][data-today=true]>button]:after:ring-utility-brand-100\",\r\n props.rangeMiddleClassName,\r\n )\r\n const _todayClassName = cn(\r\n \" [&>button]:relative\",\r\n \"[&>button]:after:content-[''] [&>button]:after:absolute [&>button]:after:bottom-1\",\r\n \"[&>button]:after:left-1/2 [&>button]:after:-translate-x-1/2\",\r\n \"[&>button]:after:size-1 [&>button]:after:rounded-full [&>button]:after:ring-2 [&>button]:after:ring-utility-brand-100 [&>button]:after:bg-utility-brand-500\",\r\n \"[&[aria-selected=true]>button]:after:bg-fg-white [&[aria-selected=true]>button]:after:ring-alpha-alpha-white-30\",\r\n props.todayClassName,\r\n )\r\n const _outsideClassName = cn(\"opacity-50\", props.outsideClassName)\r\n const _disabledClassName = cn(\"opacity-50\", props.disabledClassName)\r\n const _hiddenClassName = cn(\"invisible flex-1\", props.hiddenClassName)\r\n\r\n return (\r\n <DayPicker\r\n className={cn(\"p-xp-xl rounded-xl bg-bg-tertiary h-max\", className)}\r\n classNames={{\r\n months: _monthsClassName,\r\n month_caption: _monthCaptionClassName,\r\n weekdays: _weekdaysClassName,\r\n weekday: _weekdayClassName,\r\n month: _monthClassName,\r\n caption: _captionClassName,\r\n caption_label: _captionLabelClassName,\r\n button_next: _buttonNextClassName,\r\n button_previous: _buttonPreviousClassName,\r\n nav: _navClassName,\r\n month_grid: _monthGridClassName,\r\n week: _weekClassName,\r\n day: _dayClassName,\r\n day_button: _dayButtonClassName,\r\n selected: _dayButtonSelectedClassName,\r\n range_start: _rangeStartClassName,\r\n range_middle: _rangeMiddleClassName,\r\n range_end: _rangeEndClassName,\r\n today: _todayClassName,\r\n outside: _outsideClassName,\r\n disabled: _disabledClassName,\r\n hidden: _hiddenClassName,\r\n }}\r\n components={{\r\n Chevron: ({ orientation }) => {\r\n const Icon = orientation === \"left\" ? ChevronLeftIcon : ChevronRightIcon\r\n return <Icon className=\"h-4 w-4\" />\r\n },\r\n Nav: ({ className: navClassName }) => (\r\n <Nav\r\n className={navClassName}\r\n displayMonths={displayMonths}\r\n displayYears={displayYears}\r\n endMonth={endMonth}\r\n navView={navView}\r\n setDisplayMonths={setDisplayMonths}\r\n setDisplayYears={setDisplayYears}\r\n startMonth={startMonth}\r\n onNextClick={onNextClick}\r\n onPrevClick={onPrevClick}\r\n />\r\n ),\r\n CaptionLabel: (clProps) => (\r\n <CaptionLabel\r\n displayMonths={displayMonths}\r\n displayYears={displayYears}\r\n navView={navView}\r\n setNavView={setNavView}\r\n showViewSwitcher={showViewSwitcher}\r\n {...clProps}\r\n />\r\n ),\r\n DayButton: (dayProps) => (\r\n <DayButton\r\n data-icon\r\n {...dayProps}\r\n />\r\n ),\r\n MonthGrid: ({ className: mgClassName, children, ...mgProps }) => (\r\n <CalendarGrid\r\n className={mgClassName}\r\n displayMonths={displayMonths}\r\n displayYears={displayYears}\r\n endMonth={endMonth}\r\n minNavView={minNavView}\r\n navView={navView}\r\n setDisplayMonths={setDisplayMonths}\r\n setNavView={setNavView}\r\n startMonth={startMonth}\r\n {...mgProps}\r\n >\r\n {children}\r\n </CalendarGrid>\r\n ),\r\n ...components,\r\n }}\r\n numberOfMonths={columnsDisplayed}\r\n showOutsideDays={showOutsideDays}\r\n weekStartsOn={weekStartsOn}\r\n {...props}\r\n />\r\n )\r\n}\r\nCalendar.displayName = \"Calendar\"\r\n\r\nfunction Nav({\r\n className,\r\n navView,\r\n startMonth,\r\n endMonth,\r\n displayYears,\r\n displayMonths,\r\n setDisplayYears,\r\n setDisplayMonths,\r\n onPrevClick,\r\n onNextClick,\r\n}: {\r\n className?: string\r\n navView: NavView\r\n startMonth?: Date\r\n endMonth?: Date\r\n displayYears: { from: number; to: number }\r\n displayMonths: { year: number }\r\n setDisplayYears: React.Dispatch<React.SetStateAction<{ from: number; to: number }>>\r\n setDisplayMonths: React.Dispatch<React.SetStateAction<{ year: number }>>\r\n onPrevClick?: (date: Date) => void\r\n onNextClick?: (date: Date) => void\r\n}) {\r\n const { nextMonth, previousMonth, goToMonth } = useDayPicker()\r\n\r\n const isPreviousDisabled = (() => {\r\n if (navView === \"years\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n if (navView === \"months\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayMonths.year - 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayMonths.year - 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n return !previousMonth\r\n })()\r\n\r\n const isNextDisabled = (() => {\r\n if (navView === \"years\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n if (navView === \"months\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayMonths.year + 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayMonths.year + 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n return !nextMonth\r\n })()\r\n\r\n const handlePreviousClick = React.useCallback(() => {\r\n if (!previousMonth) return\r\n if (navView === \"years\") {\r\n setDisplayYears((prev) => ({\r\n from: prev.from - (prev.to - prev.from + 1),\r\n to: prev.to - (prev.to - prev.from + 1),\r\n }))\r\n onPrevClick?.(new Date(displayYears.from - (displayYears.to - displayYears.from), 0, 1))\r\n return\r\n }\r\n if (navView === \"months\") {\r\n setDisplayMonths((prev) => ({ year: prev.year - 1 }))\r\n onPrevClick?.(new Date(displayMonths.year - 1, 0, 1))\r\n return\r\n }\r\n goToMonth(previousMonth)\r\n onPrevClick?.(previousMonth)\r\n }, [previousMonth, goToMonth, displayYears.from, displayYears.to, displayMonths.year, navView, onPrevClick, setDisplayYears, setDisplayMonths])\r\n\r\n const handleNextClick = React.useCallback(() => {\r\n if (!nextMonth) return\r\n if (navView === \"years\") {\r\n setDisplayYears((prev) => ({\r\n from: prev.from + (prev.to - prev.from + 1),\r\n to: prev.to + (prev.to - prev.from + 1),\r\n }))\r\n onNextClick?.(new Date(displayYears.from + (displayYears.to - displayYears.from), 0, 1))\r\n return\r\n }\r\n if (navView === \"months\") {\r\n setDisplayMonths((prev) => ({ year: prev.year + 1 }))\r\n onNextClick?.(new Date(displayMonths.year + 1, 0, 1))\r\n return\r\n }\r\n goToMonth(nextMonth)\r\n onNextClick?.(nextMonth)\r\n }, [goToMonth, nextMonth, displayYears.from, displayYears.to, displayMonths.year, navView, onNextClick, setDisplayYears, setDisplayMonths])\r\n\r\n return (\r\n <nav className={cn(\"flex items-center\", className)}>\r\n <Button\r\n aria-label={\r\n navView === \"years\"\r\n ? `Go to the previous ${displayYears.to - displayYears.from + 1} years`\r\n : navView === \"months\"\r\n ? \"Go to the previous year\"\r\n : labelPrevious(previousMonth)\r\n }\r\n className=\"absolute left-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10\"\r\n disabled={isPreviousDisabled}\r\n size=\"sm\"\r\n icon\r\n tabIndex={isPreviousDisabled ? undefined : -1}\r\n type=\"button\"\r\n variant={null}\r\n onClick={handlePreviousClick}\r\n >\r\n <ChevronLeft />\r\n </Button>\r\n\r\n <Button\r\n aria-label={\r\n navView === \"years\"\r\n ? `Go to the next ${displayYears.to - displayYears.from + 1} years`\r\n : navView === \"months\"\r\n ? \"Go to the next year\"\r\n : labelNext(nextMonth)\r\n }\r\n className=\"absolute right-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10\"\r\n disabled={isNextDisabled}\r\n size=\"sm\"\r\n icon\r\n tabIndex={isNextDisabled ? undefined : -1}\r\n type=\"button\"\r\n variant={null}\r\n onClick={handleNextClick}\r\n >\r\n <ChevronRight />\r\n </Button>\r\n </nav>\r\n )\r\n}\r\n\r\nfunction CaptionLabel({\r\n children,\r\n showViewSwitcher,\r\n navView,\r\n setNavView,\r\n displayYears,\r\n displayMonths,\r\n ...props\r\n}: {\r\n showViewSwitcher?: boolean\r\n navView: NavView\r\n setNavView: (navView: NavView) => void\r\n displayYears: { from: number; to: number }\r\n displayMonths: { year: number }\r\n} & React.ComponentProps<\"span\">) {\r\n if (!showViewSwitcher) return <span {...props}>{children}</span>\r\n return (\r\n <Button\r\n disabled={navView === \"years\"}\r\n size=\"sm\"\r\n type=\"button\"\r\n variant={null}\r\n onClick={() => {\r\n if (navView === \"days\") setNavView(\"months\")\r\n else if (navView === \"months\") setNavView(\"years\")\r\n }}\r\n >\r\n {navView === \"days\"\r\n ? children\r\n : navView === \"months\"\r\n ? displayMonths.year\r\n : displayYears.from + \" - \" + displayYears.to}\r\n </Button>\r\n )\r\n}\r\n\r\nfunction CalendarGrid({\r\n className,\r\n children,\r\n displayYears,\r\n displayMonths,\r\n setDisplayMonths,\r\n startMonth,\r\n endMonth,\r\n navView,\r\n setNavView,\r\n minNavView = \"days\",\r\n ...props\r\n}: {\r\n className?: string\r\n children: React.ReactNode\r\n displayYears: { from: number; to: number }\r\n displayMonths: { year: number }\r\n setDisplayMonths: React.Dispatch<React.SetStateAction<{ year: number }>>\r\n startMonth?: Date\r\n endMonth?: Date\r\n navView: NavView\r\n setNavView: (navView: NavView) => void\r\n minNavView?: NavView\r\n} & React.ComponentProps<\"table\">) {\r\n if (navView === \"years\") {\r\n return (\r\n <YearGrid\r\n className={className}\r\n displayYears={displayYears}\r\n endMonth={endMonth}\r\n minNavView={minNavView}\r\n navView={navView}\r\n setDisplayMonths={setDisplayMonths}\r\n setNavView={setNavView}\r\n startMonth={startMonth}\r\n {...props}\r\n />\r\n )\r\n }\r\n if (navView === \"months\") {\r\n return (\r\n <MonthGrid\r\n className={className}\r\n displayMonths={displayMonths}\r\n endMonth={endMonth}\r\n minNavView={minNavView}\r\n navView={navView}\r\n setNavView={setNavView}\r\n startMonth={startMonth}\r\n {...props}\r\n />\r\n )\r\n }\r\n return (\r\n <table className={cn(\"flex-1\", className)} {...props}>\r\n {children}\r\n </table>\r\n )\r\n}\r\n\r\nfunction isYearSelected(selected: unknown, year: number): boolean {\r\n if (!selected) return false\r\n if (Array.isArray(selected)) return (selected as Date[]).some((d) => d.getFullYear() === year)\r\n if (typeof selected === \"object\" && \"from\" in selected) {\r\n const range = selected as DateRange\r\n if (range.from && range.to) return year >= range.from.getFullYear() && year <= range.to.getFullYear()\r\n if (range.from) return range.from.getFullYear() === year\r\n return false\r\n }\r\n return (selected as Date).getFullYear() === year\r\n}\r\n\r\nfunction isMonthSelected(selected: unknown, year: number, monthIdx: number): boolean {\r\n if (!selected) return false\r\n if (Array.isArray(selected)) {\r\n return (selected as Date[]).some((d) => d.getMonth() === monthIdx && d.getFullYear() === year)\r\n }\r\n if (typeof selected === \"object\" && \"from\" in selected) {\r\n const range = selected as DateRange\r\n if (range.from && range.to) {\r\n const fromMonth = range.from.getMonth(), fromYear = range.from.getFullYear()\r\n const toMonth = range.to.getMonth(), toYear = range.to.getFullYear()\r\n if (year === fromYear && year === toYear) return monthIdx >= fromMonth && monthIdx <= toMonth\r\n if (year === fromYear) return monthIdx >= fromMonth\r\n if (year === toYear) return monthIdx <= toMonth\r\n return year > fromYear && year < toYear\r\n }\r\n if (range.from) return range.from.getMonth() === monthIdx && range.from.getFullYear() === year\r\n return false\r\n }\r\n return (selected as Date).getMonth() === monthIdx && (selected as Date).getFullYear() === year\r\n}\r\n\r\nfunction YearGrid<T extends DayPickerProps>({\r\n className,\r\n displayYears,\r\n startMonth,\r\n endMonth,\r\n setNavView,\r\n navView,\r\n setDisplayMonths,\r\n minNavView = \"days\",\r\n ...props\r\n}: {\r\n className?: string\r\n displayYears: { from: number; to: number }\r\n startMonth?: Date\r\n endMonth?: Date\r\n setNavView: (navView: NavView) => void\r\n navView: NavView\r\n setDisplayMonths: React.Dispatch<React.SetStateAction<{ year: number }>>\r\n minNavView?: NavView\r\n} & React.ComponentProps<\"table\">) {\r\n const { selected, select } = useDayPicker<T>()\r\n const currentYear = new Date().getFullYear()\r\n const totalYears = displayYears.to - displayYears.from + 1\r\n\r\n const handleClick = (e: React.MouseEvent, year: number) => {\r\n if (minNavView === \"years\") {\r\n select?.(new Date(year, 0, 1), {}, e)\r\n } else {\r\n setNavView(\"months\")\r\n setDisplayMonths({ year })\r\n }\r\n }\r\n\r\n return (\r\n <table className={cn(\"w-[312px]\", className)} {...props}>\r\n <tbody>\r\n <tr className=\"grid grid-cols-3 gap-xp-md\">\r\n {Array.from({ length: totalYears }, (_, i) => {\r\n const year = displayYears.from + i\r\n const yearStart = new Date(year, 0, 1)\r\n const yearEnd = new Date(year, 11, 31)\r\n const isBeforeStart = startMonth && differenceInCalendarDays(yearEnd, startMonth) < 0\r\n const isAfterEnd = endMonth && differenceInCalendarDays(yearStart, endMonth) > 0\r\n const isDisabled = isBeforeStart || isAfterEnd\r\n const isCurrentYear = year === currentYear\r\n const isSelected = isYearSelected(selected, year)\r\n return (\r\n <td key={year}>\r\n <Button\r\n className=\"w-full\"\r\n disabled={navView === \"years\" ? isDisabled : undefined}\r\n type=\"button\"\r\n variant={isSelected ? \"primary\" : \"tertiary-accent\"}\r\n onClick={(e) => handleClick(e, year)}\r\n >\r\n {year}\r\n </Button>\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n </tbody>\r\n </table>\r\n )\r\n}\r\n\r\nfunction MonthGrid<T extends DayPickerProps>({\r\n className,\r\n displayMonths,\r\n startMonth,\r\n endMonth,\r\n setNavView,\r\n navView,\r\n minNavView = \"days\",\r\n ...props\r\n}: {\r\n className?: string\r\n displayMonths: { year: number }\r\n startMonth?: Date\r\n endMonth?: Date\r\n setNavView: (navView: NavView) => void\r\n navView: NavView\r\n minNavView?: NavView\r\n} & React.ComponentProps<\"table\">) {\r\n const { goToMonth, selected, select } = useDayPicker<T>()\r\n const months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\r\n const year = displayMonths.year\r\n\r\n const handleClick = (e: React.MouseEvent, i: number) => {\r\n if (minNavView === \"months\") {\r\n select?.(new Date(year, i, 1), {}, e)\r\n } else {\r\n setNavView(\"days\")\r\n goToMonth(new Date(year, i))\r\n }\r\n }\r\n\r\n return (\r\n <table className={cn(\"w-[312px]\", className)} {...props}>\r\n <tbody>\r\n <tr className=\"grid grid-cols-3 gap-xp-md\">\r\n {months.map((month, i) => {\r\n const isBefore = startMonth && differenceInCalendarDays(new Date(year, i, 31), startMonth) < 0\r\n const isAfter = endMonth && differenceInCalendarDays(new Date(year, i, 1), endMonth) > 0\r\n const isDisabled = isBefore || isAfter\r\n const isCurrentMonth = year === new Date().getFullYear() && i === new Date().getMonth()\r\n const isSelected = isMonthSelected(selected, year, i)\r\n return (\r\n <td key={i}>\r\n <Button\r\n className=\"w-full\"\r\n disabled={navView === \"months\" ? isDisabled : undefined}\r\n type=\"button\"\r\n variant={isSelected ? \"primary\" : \"tertiary-accent\"}\r\n onClick={(e) => handleClick(e, i)}\r\n >\r\n {month.substring(0, 3)}\r\n </Button>\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n </tbody>\r\n </table>\r\n )\r\n}\r\n\r\nexport { Calendar }\r\n"]}
1
+ {"version":3,"sources":["../src/ui/calendar.tsx"],"names":["Calendar","className","showOutsideDays","showViewSwitcher","yearRange","numberOfMonths","components","navViewProp","defaultNavView","onNavViewChange","minNavView","weekStartsOn","props","navView","setNavView","useControlledState","displayMonths","setDisplayMonths","displayYears","setDisplayYears","currentYear","onNextClick","onPrevClick","startMonth","endMonth","columnsDisplayed","_monthsClassName","cn","_monthCaptionClassName","_weekdaysClassName","_weekdayClassName","_monthClassName","_captionClassName","_captionLabelClassName","buttonNavClassName","buttonVariants","_buttonNextClassName","_buttonPreviousClassName","_navClassName","_monthGridClassName","_weekClassName","_dayClassName","_dayButtonClassName","_dayButtonSelectedClassName","_rangeStartClassName","_rangeEndClassName","_rangeMiddleClassName","_todayClassName","_outsideClassName","_disabledClassName","_hiddenClassName","jsx","DayPicker","orientation","ChevronLeftIcon","ChevronRightIcon","navClassName","Nav","clProps","CaptionLabel","dayProps","DayButton","mgClassName","children","mgProps","CalendarGrid","nextMonth","previousMonth","goToMonth","useDayPicker","isPreviousDisabled","differenceInCalendarDays","isNextDisabled","handlePreviousClick","prev","handleNextClick","jsxs","Button","labelPrevious","ChevronLeft","labelNext","ChevronRight","YearGrid","MonthGrid","isYearSelected","selected","year","d","range","isMonthSelected","monthIdx","fromMonth","fromYear","toMonth","toYear","select","totalYears","handleClick","e","_","i","yearStart","yearEnd","isBeforeStart","isAfterEnd","isDisabled","isSelected","months","month","isBefore","isAfter"],"mappings":"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","file":"chunk-FIDOWSDH.js","sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport { differenceInCalendarDays } from \"date-fns\"\r\nimport {\r\n ChevronLeft,\r\n ChevronLeftIcon,\r\n ChevronRight,\r\n ChevronRightIcon,\r\n} from \"lucide-react\"\r\nimport {\r\n type DateRange,\r\n DayButton,\r\n DayPicker,\r\n type DayPickerProps,\r\n labelNext,\r\n labelPrevious,\r\n useDayPicker,\r\n} from \"react-day-picker\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\nimport { Button, buttonVariants } from \"./button\"\r\n\r\nexport type CalendarProps = DayPickerProps & {\r\n yearRange?: number\r\n showViewSwitcher?: boolean\r\n navView?: NavView\r\n defaultNavView?: NavView\r\n onNavViewChange?: (navView: NavView) => void\r\n minNavView?: NavView\r\n monthsClassName?: string\r\n monthCaptionClassName?: string\r\n weekdaysClassName?: string\r\n weekdayClassName?: string\r\n monthClassName?: string\r\n captionClassName?: string\r\n captionLabelClassName?: string\r\n buttonNextClassName?: string\r\n buttonPreviousClassName?: string\r\n navClassName?: string\r\n monthGridClassName?: string\r\n weekClassName?: string\r\n dayClassName?: string\r\n dayButtonClassName?: string\r\n rangeStartClassName?: string\r\n rangeEndClassName?: string\r\n selectedClassName?: string\r\n todayClassName?: string\r\n outsideClassName?: string\r\n disabledClassName?: string\r\n rangeMiddleClassName?: string\r\n hiddenClassName?: string\r\n}\r\n\r\nexport type NavView = \"days\" | \"months\" | \"years\"\r\n\r\nfunction Calendar({\r\n className,\r\n showOutsideDays = true,\r\n showViewSwitcher = true,\r\n yearRange = 12,\r\n numberOfMonths,\r\n components,\r\n navView: navViewProp,\r\n defaultNavView,\r\n onNavViewChange,\r\n minNavView = \"days\",\r\n weekStartsOn = 0,\r\n ...props\r\n}: CalendarProps) {\r\n const [navView, setNavView] = useControlledState({\r\n value: navViewProp,\r\n defaultValue: defaultNavView ?? \"days\",\r\n onChange: onNavViewChange,\r\n })\r\n\r\n React.useEffect(() => {\r\n if (minNavView === \"months\") setNavView(\"months\")\r\n if (minNavView === \"years\") setNavView(\"years\")\r\n }, [minNavView, setNavView])\r\n\r\n const [displayMonths, setDisplayMonths] = React.useState<{ year: number }>({\r\n year: new Date().getFullYear(),\r\n })\r\n\r\n const [displayYears, setDisplayYears] = React.useState<{ from: number; to: number }>(\r\n React.useMemo(() => {\r\n const currentYear = new Date().getFullYear()\r\n return {\r\n from: currentYear - Math.floor(yearRange / 2 - 1),\r\n to: currentYear + Math.ceil(yearRange / 2),\r\n }\r\n }, [yearRange]),\r\n )\r\n\r\n const { onNextClick, onPrevClick, startMonth, endMonth } = props\r\n\r\n const columnsDisplayed = navView === \"years\" || navView === \"months\" ? 1 : numberOfMonths\r\n\r\n const _monthsClassName = cn(\"relative flex [&>div:not(:last-of-type)]:mr-3\", props.monthsClassName)\r\n const _monthCaptionClassName = cn(\"relative flex items-center justify-center\", props.monthCaptionClassName)\r\n const _weekdaysClassName = cn(\"flex flex-row\", props.weekdaysClassName)\r\n const _weekdayClassName = cn(\"size-9 first:text-text-error-primary text-label-semibold-3 text-text-primary flex items-center justify-center\", props.weekdayClassName)\r\n const _monthClassName = cn(\"flex flex-col gap-2\", props.monthClassName)\r\n const _captionClassName = cn(\"relative flex items-center justify-center pt-xp-xs\", props.captionClassName)\r\n const _captionLabelClassName = cn(\"truncate text-body-regular-3 font-medium\", props.captionLabelClassName)\r\n const buttonNavClassName = buttonVariants({\r\n variant: \"secondary-accent\",\r\n className: \"absolute h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\r\n })\r\n const _buttonNextClassName = cn(buttonNavClassName, \"right-0\", props.buttonNextClassName)\r\n const _buttonPreviousClassName = cn(buttonNavClassName, \"left-0\", props.buttonPreviousClassName)\r\n const _navClassName = cn(\"flex items-start\", props.navClassName)\r\n const _monthGridClassName = cn(\"flex flex-col p-3 bg-bg-primary text-text-primary rounded-lg\", props.monthGridClassName)\r\n const _weekClassName = cn(\"flex w-max items-start\", props.weekClassName)\r\n const _dayClassName = cn(\"flex size-9 flex-1 items-center justify-center p-0 text-label-semibold-3\", props.dayClassName)\r\n const _dayButtonClassName = cn(\r\n buttonVariants({ variant: null, size: \"sm\" }),\r\n \"p-0\",\r\n props.dayButtonClassName,\r\n )\r\n const _dayButtonSelectedClassName = \"[&>button]:bg-gradient-buttons-gradient-blue [&>button]:text-fg-white\"\r\n const _rangeStartClassName = cn(\"day-range-start [&:not(.day-range-end)>button]:rounded-e-none\", props.rangeStartClassName)\r\n const _rangeEndClassName = cn(\"day-range-end [&:not(.day-range-start)>button]:rounded-s-none\", props.rangeEndClassName)\r\n const _rangeMiddleClassName = cn(\r\n \"[&>button]:bg-none [&>button]:bg-bg-primary-hover [&>button]:text-text-primary [&>button]:rounded-none [&[aria-selected=true][data-today=true]>button]:after:bg-utility-brand-500 [&[aria-selected=true][data-today=true]>button]:after:ring-utility-brand-100\",\r\n props.rangeMiddleClassName,\r\n )\r\n const _todayClassName = cn(\r\n \" [&>button]:relative\",\r\n \"[&>button]:after:content-[''] [&>button]:after:absolute [&>button]:after:bottom-1\",\r\n \"[&>button]:after:left-1/2 [&>button]:after:-translate-x-1/2\",\r\n \"[&>button]:after:size-1 [&>button]:after:rounded-full [&>button]:after:ring-2 [&>button]:after:ring-utility-brand-100 [&>button]:after:bg-utility-brand-500\",\r\n \"[&[aria-selected=true]>button]:after:bg-fg-white [&[aria-selected=true]>button]:after:ring-alpha-alpha-white-30\",\r\n props.todayClassName,\r\n )\r\n const _outsideClassName = cn(\"opacity-50\", props.outsideClassName)\r\n const _disabledClassName = cn(\"opacity-50\", props.disabledClassName)\r\n const _hiddenClassName = cn(\"invisible flex-1\", props.hiddenClassName)\r\n\r\n return (\r\n <DayPicker\r\n className={cn(\"p-xp-xl rounded-xl bg-bg-tertiary h-max\", className)}\r\n classNames={{\r\n months: _monthsClassName,\r\n month_caption: _monthCaptionClassName,\r\n weekdays: _weekdaysClassName,\r\n weekday: _weekdayClassName,\r\n month: _monthClassName,\r\n caption: _captionClassName,\r\n caption_label: _captionLabelClassName,\r\n button_next: _buttonNextClassName,\r\n button_previous: _buttonPreviousClassName,\r\n nav: _navClassName,\r\n month_grid: _monthGridClassName,\r\n week: _weekClassName,\r\n day: _dayClassName,\r\n day_button: _dayButtonClassName,\r\n selected: _dayButtonSelectedClassName,\r\n range_start: _rangeStartClassName,\r\n range_middle: _rangeMiddleClassName,\r\n range_end: _rangeEndClassName,\r\n today: _todayClassName,\r\n outside: _outsideClassName,\r\n disabled: _disabledClassName,\r\n hidden: _hiddenClassName,\r\n }}\r\n components={{\r\n Chevron: ({ orientation }) => {\r\n const Icon = orientation === \"left\" ? ChevronLeftIcon : ChevronRightIcon\r\n return <Icon className=\"h-4 w-4\" />\r\n },\r\n Nav: ({ className: navClassName }) => (\r\n <Nav\r\n className={navClassName}\r\n displayMonths={displayMonths}\r\n displayYears={displayYears}\r\n endMonth={endMonth}\r\n navView={navView}\r\n setDisplayMonths={setDisplayMonths}\r\n setDisplayYears={setDisplayYears}\r\n startMonth={startMonth}\r\n onNextClick={onNextClick}\r\n onPrevClick={onPrevClick}\r\n />\r\n ),\r\n CaptionLabel: (clProps) => (\r\n <CaptionLabel\r\n displayMonths={displayMonths}\r\n displayYears={displayYears}\r\n navView={navView}\r\n setNavView={setNavView}\r\n showViewSwitcher={showViewSwitcher}\r\n {...clProps}\r\n />\r\n ),\r\n DayButton: (dayProps) => (\r\n <DayButton\r\n data-icon\r\n {...dayProps}\r\n />\r\n ),\r\n MonthGrid: ({ className: mgClassName, children, ...mgProps }) => (\r\n <CalendarGrid\r\n className={mgClassName}\r\n displayMonths={displayMonths}\r\n displayYears={displayYears}\r\n endMonth={endMonth}\r\n minNavView={minNavView}\r\n navView={navView}\r\n setDisplayMonths={setDisplayMonths}\r\n setNavView={setNavView}\r\n startMonth={startMonth}\r\n {...mgProps}\r\n >\r\n {children}\r\n </CalendarGrid>\r\n ),\r\n ...components,\r\n }}\r\n numberOfMonths={columnsDisplayed}\r\n showOutsideDays={showOutsideDays}\r\n weekStartsOn={weekStartsOn}\r\n {...props}\r\n />\r\n )\r\n}\r\nCalendar.displayName = \"Calendar\"\r\n\r\nfunction Nav({\r\n className,\r\n navView,\r\n startMonth,\r\n endMonth,\r\n displayYears,\r\n displayMonths,\r\n setDisplayYears,\r\n setDisplayMonths,\r\n onPrevClick,\r\n onNextClick,\r\n}: {\r\n className?: string\r\n navView: NavView\r\n startMonth?: Date\r\n endMonth?: Date\r\n displayYears: { from: number; to: number }\r\n displayMonths: { year: number }\r\n setDisplayYears: React.Dispatch<React.SetStateAction<{ from: number; to: number }>>\r\n setDisplayMonths: React.Dispatch<React.SetStateAction<{ year: number }>>\r\n onPrevClick?: (date: Date) => void\r\n onNextClick?: (date: Date) => void\r\n}) {\r\n const { nextMonth, previousMonth, goToMonth } = useDayPicker()\r\n\r\n const isPreviousDisabled = (() => {\r\n if (navView === \"years\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n if (navView === \"months\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayMonths.year - 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayMonths.year - 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n return !previousMonth\r\n })()\r\n\r\n const isNextDisabled = (() => {\r\n if (navView === \"years\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n if (navView === \"months\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayMonths.year + 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayMonths.year + 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n return !nextMonth\r\n })()\r\n\r\n const handlePreviousClick = React.useCallback(() => {\r\n if (!previousMonth) return\r\n if (navView === \"years\") {\r\n setDisplayYears((prev) => ({\r\n from: prev.from - (prev.to - prev.from + 1),\r\n to: prev.to - (prev.to - prev.from + 1),\r\n }))\r\n onPrevClick?.(new Date(displayYears.from - (displayYears.to - displayYears.from), 0, 1))\r\n return\r\n }\r\n if (navView === \"months\") {\r\n setDisplayMonths((prev) => ({ year: prev.year - 1 }))\r\n onPrevClick?.(new Date(displayMonths.year - 1, 0, 1))\r\n return\r\n }\r\n goToMonth(previousMonth)\r\n onPrevClick?.(previousMonth)\r\n }, [previousMonth, goToMonth, displayYears.from, displayYears.to, displayMonths.year, navView, onPrevClick, setDisplayYears, setDisplayMonths])\r\n\r\n const handleNextClick = React.useCallback(() => {\r\n if (!nextMonth) return\r\n if (navView === \"years\") {\r\n setDisplayYears((prev) => ({\r\n from: prev.from + (prev.to - prev.from + 1),\r\n to: prev.to + (prev.to - prev.from + 1),\r\n }))\r\n onNextClick?.(new Date(displayYears.from + (displayYears.to - displayYears.from), 0, 1))\r\n return\r\n }\r\n if (navView === \"months\") {\r\n setDisplayMonths((prev) => ({ year: prev.year + 1 }))\r\n onNextClick?.(new Date(displayMonths.year + 1, 0, 1))\r\n return\r\n }\r\n goToMonth(nextMonth)\r\n onNextClick?.(nextMonth)\r\n }, [goToMonth, nextMonth, displayYears.from, displayYears.to, displayMonths.year, navView, onNextClick, setDisplayYears, setDisplayMonths])\r\n\r\n return (\r\n <nav className={cn(\"flex items-center\", className)}>\r\n <Button\r\n aria-label={\r\n navView === \"years\"\r\n ? `Go to the previous ${displayYears.to - displayYears.from + 1} years`\r\n : navView === \"months\"\r\n ? \"Go to the previous year\"\r\n : labelPrevious(previousMonth)\r\n }\r\n className=\"absolute left-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10\"\r\n disabled={isPreviousDisabled}\r\n size=\"sm\"\r\n icon\r\n tabIndex={isPreviousDisabled ? undefined : -1}\r\n type=\"button\"\r\n variant={null}\r\n onClick={handlePreviousClick}\r\n >\r\n <ChevronLeft />\r\n </Button>\r\n\r\n <Button\r\n aria-label={\r\n navView === \"years\"\r\n ? `Go to the next ${displayYears.to - displayYears.from + 1} years`\r\n : navView === \"months\"\r\n ? \"Go to the next year\"\r\n : labelNext(nextMonth)\r\n }\r\n className=\"absolute right-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10\"\r\n disabled={isNextDisabled}\r\n size=\"sm\"\r\n icon\r\n tabIndex={isNextDisabled ? undefined : -1}\r\n type=\"button\"\r\n variant={null}\r\n onClick={handleNextClick}\r\n >\r\n <ChevronRight />\r\n </Button>\r\n </nav>\r\n )\r\n}\r\n\r\nfunction CaptionLabel({\r\n children,\r\n showViewSwitcher,\r\n navView,\r\n setNavView,\r\n displayYears,\r\n displayMonths,\r\n ...props\r\n}: {\r\n showViewSwitcher?: boolean\r\n navView: NavView\r\n setNavView: (navView: NavView) => void\r\n displayYears: { from: number; to: number }\r\n displayMonths: { year: number }\r\n} & React.ComponentProps<\"span\">) {\r\n if (!showViewSwitcher) return <span {...props}>{children}</span>\r\n return (\r\n <Button\r\n disabled={navView === \"years\"}\r\n size=\"sm\"\r\n type=\"button\"\r\n variant={null}\r\n onClick={() => {\r\n if (navView === \"days\") setNavView(\"months\")\r\n else if (navView === \"months\") setNavView(\"years\")\r\n }}\r\n >\r\n {navView === \"days\"\r\n ? children\r\n : navView === \"months\"\r\n ? displayMonths.year\r\n : displayYears.from + \" - \" + displayYears.to}\r\n </Button>\r\n )\r\n}\r\n\r\nfunction CalendarGrid({\r\n className,\r\n children,\r\n displayYears,\r\n displayMonths,\r\n setDisplayMonths,\r\n startMonth,\r\n endMonth,\r\n navView,\r\n setNavView,\r\n minNavView = \"days\",\r\n ...props\r\n}: {\r\n className?: string\r\n children: React.ReactNode\r\n displayYears: { from: number; to: number }\r\n displayMonths: { year: number }\r\n setDisplayMonths: React.Dispatch<React.SetStateAction<{ year: number }>>\r\n startMonth?: Date\r\n endMonth?: Date\r\n navView: NavView\r\n setNavView: (navView: NavView) => void\r\n minNavView?: NavView\r\n} & React.ComponentProps<\"table\">) {\r\n if (navView === \"years\") {\r\n return (\r\n <YearGrid\r\n className={className}\r\n displayYears={displayYears}\r\n endMonth={endMonth}\r\n minNavView={minNavView}\r\n navView={navView}\r\n setDisplayMonths={setDisplayMonths}\r\n setNavView={setNavView}\r\n startMonth={startMonth}\r\n {...props}\r\n />\r\n )\r\n }\r\n if (navView === \"months\") {\r\n return (\r\n <MonthGrid\r\n className={className}\r\n displayMonths={displayMonths}\r\n endMonth={endMonth}\r\n minNavView={minNavView}\r\n navView={navView}\r\n setNavView={setNavView}\r\n startMonth={startMonth}\r\n {...props}\r\n />\r\n )\r\n }\r\n return (\r\n <table className={cn(\"flex-1\", className)} {...props}>\r\n {children}\r\n </table>\r\n )\r\n}\r\n\r\nfunction isYearSelected(selected: unknown, year: number): boolean {\r\n if (!selected) return false\r\n if (Array.isArray(selected)) return (selected as Date[]).some((d) => d.getFullYear() === year)\r\n if (typeof selected === \"object\" && \"from\" in selected) {\r\n const range = selected as DateRange\r\n if (range.from && range.to) return year >= range.from.getFullYear() && year <= range.to.getFullYear()\r\n if (range.from) return range.from.getFullYear() === year\r\n return false\r\n }\r\n return (selected as Date).getFullYear() === year\r\n}\r\n\r\nfunction isMonthSelected(selected: unknown, year: number, monthIdx: number): boolean {\r\n if (!selected) return false\r\n if (Array.isArray(selected)) {\r\n return (selected as Date[]).some((d) => d.getMonth() === monthIdx && d.getFullYear() === year)\r\n }\r\n if (typeof selected === \"object\" && \"from\" in selected) {\r\n const range = selected as DateRange\r\n if (range.from && range.to) {\r\n const fromMonth = range.from.getMonth(), fromYear = range.from.getFullYear()\r\n const toMonth = range.to.getMonth(), toYear = range.to.getFullYear()\r\n if (year === fromYear && year === toYear) return monthIdx >= fromMonth && monthIdx <= toMonth\r\n if (year === fromYear) return monthIdx >= fromMonth\r\n if (year === toYear) return monthIdx <= toMonth\r\n return year > fromYear && year < toYear\r\n }\r\n if (range.from) return range.from.getMonth() === monthIdx && range.from.getFullYear() === year\r\n return false\r\n }\r\n return (selected as Date).getMonth() === monthIdx && (selected as Date).getFullYear() === year\r\n}\r\n\r\nfunction YearGrid<T extends DayPickerProps>({\r\n className,\r\n displayYears,\r\n startMonth,\r\n endMonth,\r\n setNavView,\r\n navView,\r\n setDisplayMonths,\r\n minNavView = \"days\",\r\n ...props\r\n}: {\r\n className?: string\r\n displayYears: { from: number; to: number }\r\n startMonth?: Date\r\n endMonth?: Date\r\n setNavView: (navView: NavView) => void\r\n navView: NavView\r\n setDisplayMonths: React.Dispatch<React.SetStateAction<{ year: number }>>\r\n minNavView?: NavView\r\n} & React.ComponentProps<\"table\">) {\r\n const { selected, select } = useDayPicker<T>()\r\n const currentYear = new Date().getFullYear()\r\n const totalYears = displayYears.to - displayYears.from + 1\r\n\r\n const handleClick = (e: React.MouseEvent, year: number) => {\r\n if (minNavView === \"years\") {\r\n select?.(new Date(year, 0, 1), {}, e)\r\n } else {\r\n setNavView(\"months\")\r\n setDisplayMonths({ year })\r\n }\r\n }\r\n\r\n return (\r\n <table className={cn(\"w-[312px]\", className)} {...props}>\r\n <tbody>\r\n <tr className=\"grid grid-cols-3 gap-xp-md\">\r\n {Array.from({ length: totalYears }, (_, i) => {\r\n const year = displayYears.from + i\r\n const yearStart = new Date(year, 0, 1)\r\n const yearEnd = new Date(year, 11, 31)\r\n const isBeforeStart = startMonth && differenceInCalendarDays(yearEnd, startMonth) < 0\r\n const isAfterEnd = endMonth && differenceInCalendarDays(yearStart, endMonth) > 0\r\n const isDisabled = isBeforeStart || isAfterEnd\r\n const isCurrentYear = year === currentYear\r\n const isSelected = isYearSelected(selected, year)\r\n return (\r\n <td key={year}>\r\n <Button\r\n className=\"w-full\"\r\n disabled={navView === \"years\" ? isDisabled : undefined}\r\n type=\"button\"\r\n variant={isSelected ? \"primary\" : \"tertiary-accent\"}\r\n onClick={(e) => handleClick(e, year)}\r\n >\r\n {year}\r\n </Button>\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n </tbody>\r\n </table>\r\n )\r\n}\r\n\r\nfunction MonthGrid<T extends DayPickerProps>({\r\n className,\r\n displayMonths,\r\n startMonth,\r\n endMonth,\r\n setNavView,\r\n navView,\r\n minNavView = \"days\",\r\n ...props\r\n}: {\r\n className?: string\r\n displayMonths: { year: number }\r\n startMonth?: Date\r\n endMonth?: Date\r\n setNavView: (navView: NavView) => void\r\n navView: NavView\r\n minNavView?: NavView\r\n} & React.ComponentProps<\"table\">) {\r\n const { goToMonth, selected, select } = useDayPicker<T>()\r\n const months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\r\n const year = displayMonths.year\r\n\r\n const handleClick = (e: React.MouseEvent, i: number) => {\r\n if (minNavView === \"months\") {\r\n select?.(new Date(year, i, 1), {}, e)\r\n } else {\r\n setNavView(\"days\")\r\n goToMonth(new Date(year, i))\r\n }\r\n }\r\n\r\n return (\r\n <table className={cn(\"w-[312px]\", className)} {...props}>\r\n <tbody>\r\n <tr className=\"grid grid-cols-3 gap-xp-md\">\r\n {months.map((month, i) => {\r\n const isBefore = startMonth && differenceInCalendarDays(new Date(year, i, 31), startMonth) < 0\r\n const isAfter = endMonth && differenceInCalendarDays(new Date(year, i, 1), endMonth) > 0\r\n const isDisabled = isBefore || isAfter\r\n const isCurrentMonth = year === new Date().getFullYear() && i === new Date().getMonth()\r\n const isSelected = isMonthSelected(selected, year, i)\r\n return (\r\n <td key={i}>\r\n <Button\r\n className=\"w-full\"\r\n disabled={navView === \"months\" ? isDisabled : undefined}\r\n type=\"button\"\r\n variant={isSelected ? \"primary\" : \"tertiary-accent\"}\r\n onClick={(e) => handleClick(e, i)}\r\n >\r\n {month.substring(0, 3)}\r\n </Button>\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n </tbody>\r\n </table>\r\n )\r\n}\r\n\r\nexport { Calendar }\r\n"]}
@@ -1,2 +1,2 @@
1
- import {d,e,b,c,f,g,h,i,j,a,l}from'./chunk-4IAMLCAM.js';import {b as b$1}from'./chunk-UINS73U7.js';import {a as a$1}from'./chunk-WI5V5Z76.js';import {b as b$3}from'./chunk-QWCYJC3T.js';import {b as b$4}from'./chunk-4WDDWMBW.js';import {b as b$2}from'./chunk-ZQWDYX2E.js';import'react';import {cn}from'@xploreu/lib/cn';import {XIcon,Loader2Icon}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';function k({...t}){return jsx(d,{...t})}var D={"top-right":"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm","top-left":"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm","top-center":"fixed top-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm","bottom-right":"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm","bottom-left":"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm","bottom-center":"fixed bottom-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm"};function z({className:t,position:o="top-right",...e$1}){return jsx(e,{className:cn("group/viewport pointer-events-none z-[1000] mx-auto outline-none",D[o],t),...e$1})}function A(t){return jsx(b,{...t})}function V({className:t,children:o,style:e,...i}){return jsxs(c,{style:e,className:cn("group/toast pointer-events-auto absolute right-0 z-[calc(1000-var(--toast-index))] w-full shadow-lg will-change-transform outline-none select-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-focus-ring","bottom-0 origin-bottom rounded-l-[10.4px] rounded-r-lg","data-[position^=top]:top-0 data-[position^=top]:bottom-auto data-[position^=top]:origin-top","[--gap:0.75rem] [--height:var(--toast-frontmost-height,var(--toast-height))] [--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap))*-1)+var(--toast-swipe-movement-y))] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))]","data-[position^=top]:[--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap)))+var(--toast-swipe-movement-y))]","h-(--height) [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))] [transition:transform_500ms_cubic-bezier(0.22,1,0.36,1),opacity_500ms,height_150ms]","data-[position^=top]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--peek))+(var(--shrink)*var(--height))))_scale(var(--scale))]","after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']","group-hover/viewport:data-expanded:h-(--toast-height) group-hover/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]","group-focus-within/viewport:data-expanded:h-(--toast-height) group-focus-within/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]","data-limited:opacity-0 data-limited:pointer-events-none data-limited:invisible data-starting-style:[transform:translateY(150%)]","data-[position^=top]:data-starting-style:[transform:translateY(-150%)]","[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]","data-[position^=top]:[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(-150%)]","data-ending-style:opacity-0","data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]","data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]","data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]","data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",t),...i,children:[jsx("div",{className:cn("absolute left-0 inset-y-0 w-[10.4px] rounded-l-[10.4px] bg-[linear-gradient(180deg,#377DFA_0%,#185BC2_80%)]","group-data-[type=warning]/toast:bg-[linear-gradient(180deg,#F79009_0%,#B54708_80%)]","group-data-[type=info]/toast:bg-[linear-gradient(180deg,#068BEE_0%,#175BCC_80%)]","group-data-[type=success]/toast:bg-[linear-gradient(180deg,#17B26A_0%,#067647_80%)]","group-data-[type=error]/toast:bg-[linear-gradient(180deg,#F04438_0%,#B42318_80%)]")}),jsx("div",{className:cn("relative border border-border-secondary rounded-lg ml-[2.4px] bg-bg-primary z-10 bg-radial-[100%_200%_at_0%_0%] to-bg-primary","from-modal-dialog-stop-0","group-data-[type=warning]/toast:from-utility-warning-50","group-data-[type=info]/toast:from-utility-blue-50","group-data-[type=success]/toast:from-utility-success-50","group-data-[type=error]/toast:from-utility-error-50"),children:o})]})}function X({className:t,...o}){return jsx(f,{className:cn("flex h-full items-center gap-3 overflow-hidden p-4 transition-opacity duration-250 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-behind/toast:opacity-0 group-hover/viewport:group-data-expanded/toast:opacity-100 group-focus-within/viewport:group-data-expanded/toast:opacity-100",t),...o})}function I({className:t,...o}){return jsx(g,{className:cn("text-label-semibold-2 text-text-primary","group-data-[type=warning]/toast:text-text-warning-primary","group-data-[type=info]/toast:text-text-info-primary","group-data-[type=success]/toast:text-text-success-primary","group-data-[type=error]/toast:text-text-error-primary",t),...o})}function B({className:t,...o}){return jsx(h,{className:cn("text-body-regular-2 text-text-secondary",t),...o})}function S({className:t,render:o=jsx(b$1,{size:"sm",variant:"secondary"}),...e}){return jsx(i,{render:o,className:cn("shrink-0",t),...e})}function R({className:t,children:o,...e}){return jsx(j,{"aria-label":"Close toast",className:cn("relative shrink-0 text-fg-quaternary after:absolute after:-inset-2 after:content-[''] hover:text-text-error-primary size-6 inline-flex items-center justify-center [&_svg:not([class*='size-'])]:size-3.5",t),...e,children:o??jsx(XIcon,{"aria-hidden":"true"})})}function q({type:t}){let o=null;return t==="success"&&(o=jsx(b$2,{className:"text-fg-success-primary"})),t==="info"&&(o=jsx(a$1,{className:"text-fg-info-primary"})),t==="warning"&&(o=jsx(b$3,{className:"text-fg-warning-primary"})),t==="error"&&(o=jsx(b$4,{className:"text-fg-error-primary"})),t==="loading"&&(o=jsx(Loader2Icon,{className:"animate-spin","aria-hidden":"true"})),o?jsx("span",{"data-slot":"toast-icon",className:"shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-6",children:o}):null}var F=["top-right","top-left","top-center","bottom-right","bottom-left","bottom-center"];function M({defaultPosition:t,position:o,limit:e=3}){let{toasts:i}=l();return i.filter(s=>(s.position??t)===o).map((s,p)=>jsx(V,{toast:s,"data-position":o,"data-behind":p>0?"":void 0,"data-limited":e!==void 0&&p>=e?"":void 0,style:{"--toast-index":p},children:jsxs(X,{children:[jsx(q,{type:s.type}),jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[jsx(I,{}),jsx(B,{})]}),jsx(S,{}),jsx(R,{})]})},s.id))}function K({children:t,position:o="top-right",limit:e=3,toastManager:i=a,...l}){return jsxs(A,{toastManager:i,limit:e,...l,children:[t,jsx(k,{children:F.map(s=>jsx(z,{position:s,children:jsx(M,{defaultPosition:o,position:s,limit:e})},s))})]})}export{k as a,z as b,A as c,V as d,X as e,I as f,B as g,S as h,R as i,K as j};//# sourceMappingURL=chunk-5VZ6QNBI.js.map
2
- //# sourceMappingURL=chunk-5VZ6QNBI.js.map
1
+ import {d,e,b,c,f,g,h,i,j,a,l}from'./chunk-4IAMLCAM.js';import {b as b$1}from'./chunk-DQGZIFNP.js';import {a as a$1}from'./chunk-WI5V5Z76.js';import {b as b$3}from'./chunk-QWCYJC3T.js';import {b as b$4}from'./chunk-4WDDWMBW.js';import {b as b$2}from'./chunk-ZQWDYX2E.js';import'react';import {cn}from'@xploreu/lib/cn';import {XIcon,Loader2Icon}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';function k({...t}){return jsx(d,{...t})}var D={"top-right":"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm","top-left":"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm","top-center":"fixed top-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm","bottom-right":"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm","bottom-left":"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm","bottom-center":"fixed bottom-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm"};function z({className:t,position:o="top-right",...e$1}){return jsx(e,{className:cn("group/viewport pointer-events-none z-[1000] mx-auto outline-none",D[o],t),...e$1})}function A(t){return jsx(b,{...t})}function V({className:t,children:o,style:e,...i}){return jsxs(c,{style:e,className:cn("group/toast pointer-events-auto absolute right-0 z-[calc(1000-var(--toast-index))] w-full shadow-lg will-change-transform outline-none select-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-focus-ring","bottom-0 origin-bottom rounded-l-[10.4px] rounded-r-lg","data-[position^=top]:top-0 data-[position^=top]:bottom-auto data-[position^=top]:origin-top","[--gap:0.75rem] [--height:var(--toast-frontmost-height,var(--toast-height))] [--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap))*-1)+var(--toast-swipe-movement-y))] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))]","data-[position^=top]:[--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap)))+var(--toast-swipe-movement-y))]","h-(--height) [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))] [transition:transform_500ms_cubic-bezier(0.22,1,0.36,1),opacity_500ms,height_150ms]","data-[position^=top]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--peek))+(var(--shrink)*var(--height))))_scale(var(--scale))]","after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']","group-hover/viewport:data-expanded:h-(--toast-height) group-hover/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]","group-focus-within/viewport:data-expanded:h-(--toast-height) group-focus-within/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]","data-limited:opacity-0 data-limited:pointer-events-none data-limited:invisible data-starting-style:[transform:translateY(150%)]","data-[position^=top]:data-starting-style:[transform:translateY(-150%)]","[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]","data-[position^=top]:[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(-150%)]","data-ending-style:opacity-0","data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]","data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]","data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]","data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",t),...i,children:[jsx("div",{className:cn("absolute left-0 inset-y-0 w-[10.4px] rounded-l-[10.4px] bg-[linear-gradient(180deg,#377DFA_0%,#185BC2_80%)]","group-data-[type=warning]/toast:bg-[linear-gradient(180deg,#F79009_0%,#B54708_80%)]","group-data-[type=info]/toast:bg-[linear-gradient(180deg,#068BEE_0%,#175BCC_80%)]","group-data-[type=success]/toast:bg-[linear-gradient(180deg,#17B26A_0%,#067647_80%)]","group-data-[type=error]/toast:bg-[linear-gradient(180deg,#F04438_0%,#B42318_80%)]")}),jsx("div",{className:cn("relative border border-border-secondary rounded-lg ml-[2.4px] bg-bg-primary z-10 bg-radial-[100%_200%_at_0%_0%] to-bg-primary","from-modal-dialog-stop-0","group-data-[type=warning]/toast:from-utility-warning-50","group-data-[type=info]/toast:from-utility-blue-50","group-data-[type=success]/toast:from-utility-success-50","group-data-[type=error]/toast:from-utility-error-50"),children:o})]})}function X({className:t,...o}){return jsx(f,{className:cn("flex h-full items-center gap-3 overflow-hidden p-4 transition-opacity duration-250 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-behind/toast:opacity-0 group-hover/viewport:group-data-expanded/toast:opacity-100 group-focus-within/viewport:group-data-expanded/toast:opacity-100",t),...o})}function I({className:t,...o}){return jsx(g,{className:cn("text-label-semibold-2 text-text-primary","group-data-[type=warning]/toast:text-text-warning-primary","group-data-[type=info]/toast:text-text-info-primary","group-data-[type=success]/toast:text-text-success-primary","group-data-[type=error]/toast:text-text-error-primary",t),...o})}function B({className:t,...o}){return jsx(h,{className:cn("text-body-regular-2 text-text-secondary",t),...o})}function S({className:t,render:o=jsx(b$1,{size:"sm",variant:"secondary"}),...e}){return jsx(i,{render:o,className:cn("shrink-0",t),...e})}function R({className:t,children:o,...e}){return jsx(j,{"aria-label":"Close toast",className:cn("relative shrink-0 text-fg-quaternary after:absolute after:-inset-2 after:content-[''] hover:text-text-error-primary size-6 inline-flex items-center justify-center [&_svg:not([class*='size-'])]:size-3.5",t),...e,children:o??jsx(XIcon,{"aria-hidden":"true"})})}function q({type:t}){let o=null;return t==="success"&&(o=jsx(b$2,{className:"text-fg-success-primary"})),t==="info"&&(o=jsx(a$1,{className:"text-fg-info-primary"})),t==="warning"&&(o=jsx(b$3,{className:"text-fg-warning-primary"})),t==="error"&&(o=jsx(b$4,{className:"text-fg-error-primary"})),t==="loading"&&(o=jsx(Loader2Icon,{className:"animate-spin","aria-hidden":"true"})),o?jsx("span",{"data-slot":"toast-icon",className:"shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-6",children:o}):null}var F=["top-right","top-left","top-center","bottom-right","bottom-left","bottom-center"];function M({defaultPosition:t,position:o,limit:e=3}){let{toasts:i}=l();return i.filter(s=>(s.position??t)===o).map((s,p)=>jsx(V,{toast:s,"data-position":o,"data-behind":p>0?"":void 0,"data-limited":e!==void 0&&p>=e?"":void 0,style:{"--toast-index":p},children:jsxs(X,{children:[jsx(q,{type:s.type}),jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[jsx(I,{}),jsx(B,{})]}),jsx(S,{}),jsx(R,{})]})},s.id))}function K({children:t,position:o="top-right",limit:e=3,toastManager:i=a,...l}){return jsxs(A,{toastManager:i,limit:e,...l,children:[t,jsx(k,{children:F.map(s=>jsx(z,{position:s,children:jsx(M,{defaultPosition:o,position:s,limit:e})},s))})]})}export{k as a,z as b,A as c,V as d,X as e,I as f,B as g,S as h,R as i,K as j};//# sourceMappingURL=chunk-IFBRARGK.js.map
2
+ //# sourceMappingURL=chunk-IFBRARGK.js.map