dhanasekar-ui 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/chunk-6KTHQKF2.js +2 -0
  2. package/dist/chunk-6KTHQKF2.js.map +1 -0
  3. package/dist/chunk-7CEQNZIX.mjs +2 -0
  4. package/dist/chunk-7CEQNZIX.mjs.map +1 -0
  5. package/dist/chunk-AVQSNP56.js +2 -0
  6. package/dist/chunk-AVQSNP56.js.map +1 -0
  7. package/dist/chunk-DYGRXBKP.js +2 -0
  8. package/dist/chunk-DYGRXBKP.js.map +1 -0
  9. package/dist/chunk-KZ3RDRIM.js +2 -0
  10. package/dist/chunk-KZ3RDRIM.js.map +1 -0
  11. package/dist/chunk-MZLSOEXC.mjs +2 -0
  12. package/dist/chunk-MZLSOEXC.mjs.map +1 -0
  13. package/dist/chunk-OXYWK4HK.js +3 -0
  14. package/dist/chunk-OXYWK4HK.js.map +1 -0
  15. package/dist/chunk-RXNNJUS6.mjs +3 -0
  16. package/dist/chunk-RXNNJUS6.mjs.map +1 -0
  17. package/dist/chunk-S74D6N7O.mjs +2 -0
  18. package/dist/chunk-S74D6N7O.mjs.map +1 -0
  19. package/dist/chunk-VPR3PX57.js +2 -0
  20. package/dist/chunk-VPR3PX57.js.map +1 -0
  21. package/dist/chunk-VXKXXAX6.mjs +2 -0
  22. package/dist/chunk-VXKXXAX6.mjs.map +1 -0
  23. package/dist/chunk-W4PFQVHM.mjs +2 -0
  24. package/dist/chunk-W4PFQVHM.mjs.map +1 -0
  25. package/dist/chunk-WEQINEMX.mjs +2 -0
  26. package/dist/chunk-WEQINEMX.mjs.map +1 -0
  27. package/dist/chunk-WVZF6FQ7.js +3 -0
  28. package/dist/chunk-WVZF6FQ7.js.map +1 -0
  29. package/dist/chunk-YKQKLQNI.js +2 -0
  30. package/dist/chunk-YKQKLQNI.js.map +1 -0
  31. package/dist/chunk-ZO6I27MY.mjs +3 -0
  32. package/dist/chunk-ZO6I27MY.mjs.map +1 -0
  33. package/dist/components/Button/index.css +2 -0
  34. package/dist/components/Button/index.css.map +1 -0
  35. package/dist/components/Button/index.d.mts +10 -3
  36. package/dist/components/Button/index.d.ts +10 -3
  37. package/dist/components/Button/index.js +1 -1
  38. package/dist/components/Button/index.mjs +1 -1
  39. package/dist/components/FileUploadField/index.css +2 -0
  40. package/dist/components/FileUploadField/index.css.map +1 -0
  41. package/dist/components/FileUploadField/index.d.mts +5 -3
  42. package/dist/components/FileUploadField/index.d.ts +5 -3
  43. package/dist/components/FileUploadField/index.js +1 -1
  44. package/dist/components/FileUploadField/index.js.map +1 -1
  45. package/dist/components/FileUploadField/index.mjs +1 -1
  46. package/dist/components/FileUploadField/index.mjs.map +1 -1
  47. package/dist/components/IdleTimer/index.css +2 -0
  48. package/dist/components/IdleTimer/index.css.map +1 -0
  49. package/dist/components/IdleTimer/index.js +1 -1
  50. package/dist/components/IdleTimer/index.mjs +1 -1
  51. package/dist/components/Input/index.css +2 -0
  52. package/dist/components/Input/index.css.map +1 -0
  53. package/dist/components/Input/index.d.mts +160 -5
  54. package/dist/components/Input/index.d.ts +160 -5
  55. package/dist/components/Input/index.js +1 -1
  56. package/dist/components/Input/index.mjs +1 -1
  57. package/dist/components/Loader/index.css +2 -0
  58. package/dist/components/Loader/index.css.map +1 -0
  59. package/dist/components/Loader/index.js +1 -1
  60. package/dist/components/Loader/index.mjs +1 -1
  61. package/dist/components/Select/index.css +2 -0
  62. package/dist/components/Select/index.css.map +1 -0
  63. package/dist/components/Select/index.d.mts +139 -0
  64. package/dist/components/Select/index.d.ts +139 -0
  65. package/dist/components/Select/index.js +2 -0
  66. package/dist/components/Select/index.js.map +1 -0
  67. package/dist/components/Select/index.mjs +2 -0
  68. package/dist/components/Select/index.mjs.map +1 -0
  69. package/dist/components/Switch/index.css +2 -0
  70. package/dist/components/Switch/index.css.map +1 -0
  71. package/dist/components/Switch/index.d.mts +96 -7
  72. package/dist/components/Switch/index.d.ts +96 -7
  73. package/dist/components/Switch/index.js +1 -1
  74. package/dist/components/Switch/index.mjs +1 -1
  75. package/dist/components/Text/index.css +2 -0
  76. package/dist/components/Text/index.css.map +1 -0
  77. package/dist/components/Text/index.d.mts +64 -0
  78. package/dist/components/Text/index.d.ts +64 -0
  79. package/dist/components/Text/index.js +2 -0
  80. package/dist/components/Text/index.js.map +1 -0
  81. package/dist/components/Text/index.mjs +2 -0
  82. package/dist/components/Text/index.mjs.map +1 -0
  83. package/dist/index.css +2 -0
  84. package/dist/index.css.map +1 -0
  85. package/dist/index.d.mts +7 -2
  86. package/dist/index.d.ts +7 -2
  87. package/dist/index.js +1 -1
  88. package/dist/index.mjs +1 -1
  89. package/package.json +16 -5
  90. package/dist/chunk-3C5H757K.js +0 -2
  91. package/dist/chunk-3C5H757K.js.map +0 -1
  92. package/dist/chunk-6HZRTYPC.mjs +0 -2
  93. package/dist/chunk-6HZRTYPC.mjs.map +0 -1
  94. package/dist/chunk-ATGFNC6B.mjs +0 -2
  95. package/dist/chunk-ATGFNC6B.mjs.map +0 -1
  96. package/dist/chunk-HGGQDBDD.js +0 -2
  97. package/dist/chunk-HGGQDBDD.js.map +0 -1
  98. package/dist/chunk-HVFBE6G7.js +0 -2
  99. package/dist/chunk-HVFBE6G7.js.map +0 -1
  100. package/dist/chunk-IBYEAKM2.mjs +0 -2
  101. package/dist/chunk-IBYEAKM2.mjs.map +0 -1
  102. package/dist/chunk-KB5KRUMU.mjs +0 -2
  103. package/dist/chunk-KB5KRUMU.mjs.map +0 -1
  104. package/dist/chunk-KEJ7FTQQ.js +0 -48
  105. package/dist/chunk-KEJ7FTQQ.js.map +0 -1
  106. package/dist/chunk-OWY3CS2U.mjs +0 -48
  107. package/dist/chunk-OWY3CS2U.mjs.map +0 -1
  108. package/dist/chunk-S4VNQWZ7.js +0 -2
  109. package/dist/chunk-S4VNQWZ7.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),react=require('react'),lucideReact=require('lucide-react'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');var e=classVarianceAuthority.cva("ui-button",{variants:{variant:{primary:"ui-button--primary",destructive:"ui-button--destructive",outline:"ui-button--outline",secondary:"ui-button--secondary",ghost:"ui-button--ghost",link:"ui-button--link"},size:{default:"ui-button--size-default",sm:"ui-button--size-sm",md:"ui-button--size-md",lg:"ui-button--size-lg"}},defaultVariants:{variant:"primary",size:"default"}});var m=react.forwardRef(({as:r,className:i,variant:u,size:a,loading:t,children:s,disabled:d,...p},f)=>jsxRuntime.jsxs(r||"button",{ref:f,disabled:d||t,className:chunkDDGBDWFC_js.a(e({variant:u,size:a,className:i}),t&&"ui-button--loading"),...p,children:[t&&jsxRuntime.jsx(lucideReact.Loader2,{className:"ui-button-spinner"}),jsxRuntime.jsx("span",{className:chunkDDGBDWFC_js.a(t&&"ui-button-content--hidden"),children:s})]}));m.displayName="Button";exports.a=e;exports.b=m;//# sourceMappingURL=chunk-6KTHQKF2.js.map
2
+ //# sourceMappingURL=chunk-6KTHQKF2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Button/types.ts","../src/components/Button/Button.tsx"],"names":["buttonVariants","cva","Button","forwardRef","as","className","variant","size","loading","children","disabled","props","ref","jsxs","cn","jsx","Loader2"],"mappings":"+NAGO,IAAMA,CAAAA,CAAiBC,0BAAAA,CAC5B,WAAA,CACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,oBAAA,CACT,WAAA,CAAa,wBAAA,CACb,OAAA,CAAS,oBAAA,CACT,SAAA,CAAW,sBAAA,CACX,MAAO,kBAAA,CACP,IAAA,CAAM,iBACR,CAAA,CACA,IAAA,CAAM,CACJ,OAAA,CAAS,yBAAA,CACT,EAAA,CAAI,oBAAA,CACJ,EAAA,CAAI,oBAAA,CACJ,EAAA,CAAI,oBACN,CACF,CAAA,CACA,gBAAiB,CACf,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,ECnBO,IAAMC,CAAAA,CAASC,iBAAW,CAC/B,CAAE,EAAA,CAAAC,CAAAA,CAAI,SAAA,CAAAC,CAAAA,CAAW,OAAA,CAAAC,CAAAA,CAAS,IAAA,CAAAC,CAAAA,CAAM,OAAA,CAAAC,CAAAA,CAAS,QAAA,CAAAC,CAAAA,CAAU,QAAA,CAAAC,CAAAA,CAAU,GAAGC,CAAM,CAAA,CACtEC,CAAAA,GAIEC,eAAAA,CAFgBT,CAAAA,EAAM,QAAA,CAErB,CACC,GAAA,CAAKQ,CAAAA,CACL,QAAA,CAAUF,CAAAA,EAAYF,CAAAA,CACtB,SAAA,CAAWM,kBAAAA,CAAGd,CAAAA,CAAe,CAAE,OAAA,CAAAM,CAAAA,CAAS,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAF,CAAU,CAAC,CAAA,CAAGG,CAAAA,EAAW,oBAAoB,CAAA,CAC1F,GAAGG,CAAAA,CAEH,QAAA,CAAA,CAAAH,CAAAA,EAAWO,cAAAA,CAACC,oBAAA,CAAQ,SAAA,CAAU,mBAAA,CAAoB,CAAA,CACnDD,cAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAWD,kBAAAA,CAAGN,CAAAA,EAAW,2BAA2B,CAAA,CACvD,QAAA,CAAAC,CAAAA,CACH,CAAA,CAAA,CACF,CAEH,EAEDP,EAAO,WAAA,CAAc,QAAA","file":"chunk-6KTHQKF2.js","sourcesContent":["import { ComponentPropsWithoutRef, ElementType } from 'react';\nimport { cva, VariantProps } from 'class-variance-authority';\n\nexport const buttonVariants = cva(\n 'ui-button',\n {\n variants: {\n variant: {\n primary: 'ui-button--primary',\n destructive: 'ui-button--destructive',\n outline: 'ui-button--outline',\n secondary: 'ui-button--secondary',\n ghost: 'ui-button--ghost',\n link: 'ui-button--link',\n },\n size: {\n default: 'ui-button--size-default',\n sm: 'ui-button--size-sm',\n md: 'ui-button--size-md',\n lg: 'ui-button--size-lg',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonBaseProps<T extends ElementType = 'button'> extends VariantProps<typeof buttonVariants> {\n as?: T;\n className?: string;\n loading?: boolean;\n}\n\nexport type ButtonProps<T extends ElementType = 'button'> = ButtonBaseProps<T> &\n Omit<ComponentPropsWithoutRef<T>, keyof ButtonBaseProps<T>>;\n","'use client';\n\nimport { forwardRef, ElementType } from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { buttonVariants, ButtonProps } from './types';\nimport './button.css';\n\nexport const Button = forwardRef(<T extends ElementType = 'button'>(\n { as, className, variant, size, loading, children, disabled, ...props }: ButtonProps<T>,\n ref: any\n) => {\n const Component = as || 'button';\n return (\n <Component\n ref={ref}\n disabled={disabled || loading}\n className={cn(buttonVariants({ variant, size, className }), loading && 'ui-button--loading')}\n {...props}\n >\n {loading && <Loader2 className=\"ui-button-spinner\" />}\n <span className={cn(loading && 'ui-button-content--hidden')}>\n {children}\n </span>\n </Component>\n );\n});\n\nButton.displayName = 'Button';\n\nexport default Button;\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef,useState,useCallback}from'react';import {jsxs,jsx}from'react/jsx-runtime';var G=forwardRef(({checked:h,checkedIcon:k,classes:c={},color:n="primary",defaultChecked:m,disabled:o=false,disableRipple:J=false,edge:d=false,icon:w,id:f,onChange:l,required:g=false,size:x="medium",slotProps:e={},slots:r={},sx:y,value:C,className:S,...z},B)=>{let[N,v]=useState(m||false),s=h!==void 0,i=s?h:N,E=useCallback(p=>{let u=p.target.checked;s||v(u),l?.(p,u);},[s,l]),T=r.root||"span",R=r.track||"span",$=r.thumb||"span",I=r.input||"input",M=r.switchBase||"span",H=a("orc-switch",`orc-switch--${x}`,d&&`orc-switch--edge-${d}`,o&&"orc-switch--disabled",i&&"orc-switch--checked",S,c.root),L=a("orc-switch-base",`orc-switch--${n}`,i&&"orc-switch--checked",i&&c.checked,o&&"orc-switch--disabled",o&&c.disabled,c.switchBase),j=a("orc-switch-thumb",c.thumb),q=a("orc-switch-track",`orc-switch--${n}`,c.track),Y=a("orc-switch-input",c.input);return jsxs(T,{ref:B,className:H,style:y,...e.root,...z,children:[jsxs(M,{className:L,...e.switchBase,children:[jsx($,{className:j,...e.thumb,children:i&&k||w}),jsx(I,{type:"checkbox",id:f,checked:i,onChange:E,disabled:o,required:g,value:C,className:Y,...e.input})]}),jsx(R,{className:q,...e.track})]})});G.displayName="Switch";export{G as a};//# sourceMappingURL=chunk-7CEQNZIX.mjs.map
2
+ //# sourceMappingURL=chunk-7CEQNZIX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Switch/Switch.tsx"],"names":["Switch","forwardRef","checkedProp","checkedIcon","classes","color","defaultChecked","disabled","disableRipple","edge","icon","id","onChange","required","size","slotProps","slots","sx","value","className","props","ref","checkedState","setCheckedState","useState","isControlled","checked","handleInputChange","useCallback","event","newChecked","Root","Track","Thumb","Input","SwitchBase","rootClasses","cn","switchBaseClasses","thumbClasses","trackClasses","inputClasses","jsxs","jsx"],"mappings":"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","file":"chunk-7CEQNZIX.mjs","sourcesContent":["'use client';\n\nimport { forwardRef, useState, ChangeEvent, useCallback } from 'react';\nimport { cn } from '../../utils/cn';\nimport { SwitchProps } from './types';\nimport './switch.css';\n\nexport const Switch = forwardRef<HTMLSpanElement, SwitchProps>(\n (\n {\n checked: checkedProp,\n checkedIcon,\n classes = {},\n color = 'primary',\n defaultChecked,\n disabled = false,\n disableRipple = false,\n edge = false,\n icon,\n id,\n onChange,\n required = false,\n size = 'medium',\n slotProps = {},\n slots = {},\n sx,\n value,\n className,\n ...props\n },\n ref\n ) => {\n const [checkedState, setCheckedState] = useState(defaultChecked || false);\n const isControlled = checkedProp !== undefined;\n const checked = isControlled ? checkedProp : checkedState;\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const newChecked = event.target.checked;\n if (!isControlled) {\n setCheckedState(newChecked);\n }\n onChange?.(event, newChecked);\n },\n [isControlled, onChange]\n );\n\n const Root = slots.root || 'span';\n const Track = slots.track || 'span';\n const Thumb = slots.thumb || 'span';\n const Input = slots.input || 'input';\n const SwitchBase = slots.switchBase || 'span';\n\n const rootClasses = cn(\n 'orc-switch',\n `orc-switch--${size}`,\n edge && `orc-switch--edge-${edge}`,\n disabled && 'orc-switch--disabled',\n checked && 'orc-switch--checked',\n className,\n classes.root\n );\n\n const switchBaseClasses = cn(\n 'orc-switch-base',\n `orc-switch--${color}`,\n checked && 'orc-switch--checked',\n checked && classes.checked,\n disabled && 'orc-switch--disabled',\n disabled && classes.disabled,\n classes.switchBase\n );\n\n const thumbClasses = cn('orc-switch-thumb', classes.thumb);\n const trackClasses = cn('orc-switch-track', `orc-switch--${color}`, classes.track);\n const inputClasses = cn('orc-switch-input', classes.input);\n\n return (\n <Root\n ref={ref}\n className={rootClasses}\n style={sx}\n {...slotProps.root}\n {...props}\n >\n <SwitchBase className={switchBaseClasses} {...slotProps.switchBase}>\n <Thumb className={thumbClasses} {...slotProps.thumb}>\n {checked ? checkedIcon || icon : icon}\n </Thumb>\n <Input\n type=\"checkbox\"\n id={id}\n checked={checked}\n onChange={handleInputChange}\n disabled={disabled}\n required={required}\n value={value}\n className={inputClasses}\n {...slotProps.input}\n />\n </SwitchBase>\n <Track className={trackClasses} {...slotProps.track} />\n </Root>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var i={};var Z=react.forwardRef(({as:l,className:c,isLoading:b=true,text:s="LOADING",primaryColor:g="#3f4379",secondaryColor:r="#8c91df",...n},d)=>{if(!b)return null;let B=l||"div",I=Array.from({length:6},(t,e)=>e),p=s.toUpperCase().split("");return jsxRuntime.jsxs(B,{ref:d,className:chunkDDGBDWFC_js.a(i.overlay,c),style:{"--primary-color":g,"--secondary-color":r},...n,children:[jsxRuntime.jsx("div",{className:i.fileContainer,children:I.map(t=>jsxRuntime.jsx("div",{className:i.file,style:{background:`linear-gradient(90deg, ${g}, #6a6eae)`,animationDelay:`${t*.6}s`}},t))}),jsxRuntime.jsx("div",{className:i.textFlip,children:p.map((t,e)=>jsxRuntime.jsx("span",{style:{animationDelay:`${e*.3}s`},children:t},e))})]})});Z.displayName="Loader";exports.a=Z;//# sourceMappingURL=chunk-AVQSNP56.js.map
2
+ //# sourceMappingURL=chunk-AVQSNP56.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Loader/Loader.module.scss","../src/components/Loader/Loader.tsx"],"names":["Loader_module_default","Loader","forwardRef","as","className","isLoading","text","primaryColor","secondaryColor","props","ref","Component","files","_","i","textArray","jsxs","cn","jsx","letter"],"mappings":"gIAAA,IAAAA,EAAA,EAAA,CCWO,IAAMC,CAAAA,CAASC,iBACpB,CACE,CACE,EAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CAAY,KACZ,IAAA,CAAAC,CAAAA,CAAO,SAAA,CACP,YAAA,CAAAC,EAAe,SAAA,CACf,cAAA,CAAAC,CAAAA,CAAiB,SAAA,CACjB,GAAGC,CACL,CAAA,CACAC,CAAAA,GACG,CACH,GAAI,CAACL,CAAAA,CAAW,OAAO,KAEvB,IAAMM,CAAAA,CAAYR,CAAAA,EAAM,KAAA,CAClBS,EAAQ,KAAA,CAAM,IAAA,CAAK,CAAE,MAAA,CAAQ,CAAE,CAAA,CAAG,CAACC,CAAAA,CAAGC,CAAAA,GAAMA,CAAC,CAAA,CAC7CC,CAAAA,CAAYT,CAAAA,CAAK,aAAY,CAAE,KAAA,CAAM,EAAE,CAAA,CAE7C,OACEU,eAAAA,CAACL,CAAAA,CAAA,CACC,GAAA,CAAKD,EACL,SAAA,CAAWO,kBAAAA,CAAGjB,CAAAA,CAAO,OAAA,CAASI,CAAS,CAAA,CACvC,KAAA,CAAO,CACJ,kBAA2BG,CAAAA,CAC3B,mBAAA,CAA6BC,CAChC,CAAA,CACC,GAAGC,CAAAA,CAEJ,QAAA,CAAA,CAAAS,cAAAA,CAAC,KAAA,CAAA,CAAI,UAAWlB,CAAAA,CAAO,aAAA,CACpB,QAAA,CAAAY,CAAAA,CAAM,GAAA,CAAKE,CAAAA,EACVI,cAAAA,CAAC,KAAA,CAAA,CAEC,UAAWlB,CAAAA,CAAO,IAAA,CAClB,KAAA,CAAO,CACL,WAAY,CAAA,uBAAA,EAA0BO,CAAY,CAAA,UAAA,CAAA,CAClD,cAAA,CAAgB,GAAGO,CAAAA,CAAI,EAAG,CAAA,CAAA,CAC5B,CAAA,CAAA,CALKA,CAMP,CACD,CAAA,CACH,CAAA,CAEAI,eAAC,KAAA,CAAA,CAAI,SAAA,CAAWlB,CAAAA,CAAO,QAAA,CACpB,SAAAe,CAAAA,CAAU,GAAA,CAAI,CAACI,CAAAA,CAAQL,IACtBI,cAAAA,CAAC,MAAA,CAAA,CAAa,KAAA,CAAO,CAAE,eAAgB,CAAA,EAAGJ,CAAAA,CAAI,EAAG,CAAA,CAAA,CAAI,EAClD,QAAA,CAAAK,CAAAA,CAAAA,CADQL,CAEX,CACD,EACH,CAAA,CAAA,CACF,CAEJ,CACF,EAEAb,EAAO,WAAA,CAAc,QAAA","file":"chunk-AVQSNP56.js","sourcesContent":[".overlay {\n position: fixed;\n inset: 0;\n z-index: 9999;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background-color: rgba(107, 114, 128, 0.4);\n backdrop-filter: blur(2px);\n}\n\n.fileContainer {\n position: relative;\n width: 80%;\n height: 100px;\n overflow: hidden;\n margin-bottom: 0;\n}\n\n.file {\n position: absolute;\n bottom: 25px;\n width: 40px;\n height: 50px;\n border-radius: 4px;\n opacity: 0;\n transform-origin: center;\n animation: flyRight 3s ease-in-out infinite;\n}\n.file::before {\n content: \"\";\n position: absolute;\n top: 6px;\n left: 6px;\n width: 28px;\n height: 4px;\n background-color: var(--secondary-color);\n border-radius: 2px;\n}\n.file::after {\n content: \"\";\n position: absolute;\n top: 13px;\n left: 6px;\n width: 18px;\n height: 4px;\n background-color: var(--secondary-color);\n border-radius: 2px;\n}\n\n.textFlip {\n display: flex;\n perspective: 700px;\n}\n.textFlip span {\n font-size: 30px;\n font-family: sans-serif;\n display: inline-block;\n animation: flip 2.6s infinite linear;\n transform-origin: 0 70%;\n transform-style: preserve-3d;\n color: var(--primary-color);\n}\n.textFlip span:nth-child(even) {\n color: var(--secondary-color);\n}\n\n@keyframes flyRight {\n 0% {\n left: -10%;\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n left: 45%;\n transform: scale(1.2);\n opacity: 1;\n }\n 100% {\n left: 100%;\n transform: scale(0);\n opacity: 0;\n }\n}\n@keyframes flip {\n 35% {\n transform: rotateX(360deg);\n }\n 100% {\n transform: rotateX(360deg);\n }\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvYWRlci5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDRTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7O0FBS047RUFDRTtJQUFLO0lBQVk7SUFBcUI7O0VBQ3RDO0lBQU07SUFBVztJQUF1Qjs7RUFDeEM7SUFBTztJQUFZO0lBQXFCOzs7QUFHMUM7RUFDRTtJQUFNOztFQUNOO0lBQU8iLCJzb3VyY2VzQ29udGVudCI6WyIub3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwNywgMTE0LCAxMjgsIDAuNCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xufVxuXG4uZmlsZUNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmZpbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMjVweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIGFuaW1hdGlvbjogZmx5UmlnaHQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDZweDtcbiAgICBsZWZ0OiA2cHg7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxM3B4O1xuICAgIGxlZnQ6IDZweDtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgfVxufVxuXG4udGV4dEZsaXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwZXJzcGVjdGl2ZTogNzAwcHg7XG5cbiAgc3BhbiB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBhbmltYXRpb246IGZsaXAgMi42cyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCA3MCU7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG5cbiAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbHlSaWdodCB7XG4gIDAlIHsgbGVmdDogLTEwJTsgdHJhbnNmb3JtOiBzY2FsZSgwKTsgb3BhY2l0eTogMDsgfVxuICA1MCUgeyBsZWZ0OiA0NSU7IHRyYW5zZm9ybTogc2NhbGUoMS4yKTsgb3BhY2l0eTogMTsgfVxuICAxMDAlIHsgbGVmdDogMTAwJTsgdHJhbnNmb3JtOiBzY2FsZSgwKTsgb3BhY2l0eTogMDsgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXAge1xuICAzNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZVgoMzYwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGVYKDM2MGRlZyk7IH1cbn1cbiJdfQ== */","'use client';\n\nimport { forwardRef, ElementType } from 'react';\nimport { cn } from '../../utils/cn';\nimport { LoaderProps } from './types';\nimport styles from './Loader.module.scss';\n\n/**\n * Loader component with flying file animations and flipping text.\n * Ported from a custom React implementation with full CSS-in-JS style management.\n */\nexport const Loader = forwardRef(\n <T extends ElementType = 'div'>(\n {\n as,\n className,\n isLoading = true,\n text = 'LOADING',\n primaryColor = '#3f4379',\n secondaryColor = '#8c91df',\n ...props\n }: LoaderProps<T>,\n ref: any\n ) => {\n if (!isLoading) return null;\n\n const Component = as || 'div';\n const files = Array.from({ length: 6 }, (_, i) => i);\n const textArray = text.toUpperCase().split('');\n\n return (\n <Component\n ref={ref}\n className={cn(styles.overlay, className)}\n style={{\n ['--primary-color' as any]: primaryColor,\n ['--secondary-color' as any]: secondaryColor,\n }}\n {...props}\n >\n <div className={styles.fileContainer}>\n {files.map((i) => (\n <div\n key={i}\n className={styles.file}\n style={{\n background: `linear-gradient(90deg, ${primaryColor}, #6a6eae)`,\n animationDelay: `${i * 0.6}s`,\n }}\n />\n ))}\n </div>\n \n <div className={styles.textFlip}>\n {textArray.map((letter, i) => (\n <span key={i} style={{ animationDelay: `${i * 0.3}s` }}>\n {letter}\n </span>\n ))}\n </div>\n </Component>\n );\n }\n);\n\nLoader.displayName = 'Loader';\n\nexport default Loader;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),d=require('react'),lucideReact=require('lucide-react'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var d__default=/*#__PURE__*/_interopDefault(d);var K=d.forwardRef((b,v)=>{let{autoWidth:N=false,children:s,classes:o={},defaultOpen:x=false,defaultValue:p,displayEmpty:M=false,fullWidth:k=false,IconComponent:q=lucideReact.ChevronDown,id:G,input:me,inputProps:C={},label:f,labelId:I,MenuProps:S={},multiple:u=false,native:R=false,onChange:L,onClose:P,onOpen:J,open:V,renderValue:A,SelectDisplayProps:Q={},sx:O,value:T,variant:U="outlined",className:z,...X}=b,Z=d.useId(),m=G||Z,_=`${m}-menu`,[ee,te]=d.useState(p!==void 0?p:u?[]:""),[re,D]=d.useState(x),[H,W]=d.useState(false),F=T!==void 0,t=F?T:ee,y=V!==void 0,n=y?V:re,g=d.useRef(null),h=d.useRef(null),ie=e=>{if(R)return;let r=!n;y||D(r),r?J?.(e):P?.(e);},Y=e=>{y||D(false),P?.(e);},$=(e,r)=>{let l=e;if(u){let c=Array.isArray(t)?t:[];c.includes(e)?l=c.filter(ne=>ne!==e):l=[...c,e];}if(F||te(l),L){let c={target:{value:l,name:C.name}};L(c,r);}u||Y(null);};d.useEffect(()=>{let e=r=>{n&&g.current&&!g.current.contains(r.target)&&h.current&&!h.current.contains(r.target)&&Y(r);};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e);}},[n]);let oe=()=>{if(A)return A(t);if(u&&Array.isArray(t))return t.length===0&&M?"":t.join(", ");if(t===""||t===void 0||t===null)return M?"":null;let e=t;return d__default.default.Children.forEach(s,r=>{d__default.default.isValidElement(r)&&r.props.value===t&&(e=r.props.children);}),e};return R?jsxRuntime.jsxs("div",{className:chunkDDGBDWFC_js.a("ui-select-root",k&&"ui-select-fullWidth",z,o.root),style:O,children:[f&&jsxRuntime.jsx("label",{htmlFor:m,className:chunkDDGBDWFC_js.a("ui-select-label",o.label),children:f}),jsxRuntime.jsx("select",{id:m,value:t,onChange:e=>$(e.target.value),className:chunkDDGBDWFC_js.a("ui-select-native",o.native),...C,...X,children:s})]}):jsxRuntime.jsxs("div",{ref:g,className:chunkDDGBDWFC_js.a("ui-select-root",k&&"ui-select-fullWidth",z,o.root),style:O,children:[f&&jsxRuntime.jsx("label",{id:I,className:chunkDDGBDWFC_js.a("ui-select-label",H&&"ui-select-label-focused",o.label),children:f}),jsxRuntime.jsxs("div",{ref:v,role:"button","aria-haspopup":"listbox","aria-expanded":n,"aria-labelledby":I,id:m,tabIndex:0,onClick:ie,onFocus:()=>W(true),onBlur:()=>W(false),className:chunkDDGBDWFC_js.a("ui-select-container",`ui-select-variant-${U}`,H&&"ui-select-container-focused",n&&"ui-select-container-open",o.container),...Q,children:[jsxRuntime.jsx("div",{className:chunkDDGBDWFC_js.a("ui-select-display",o.select),children:oe()}),jsxRuntime.jsx("div",{className:chunkDDGBDWFC_js.a("ui-select-icon",n&&"ui-select-icon-open",o.icon),children:jsxRuntime.jsx(q,{size:20})})]}),n&&jsxRuntime.jsx("div",{ref:h,id:_,role:"listbox",className:chunkDDGBDWFC_js.a("ui-select-menu",N&&"ui-select-menu-autoWidth",S.className,o.menu),...S,children:d__default.default.Children.map(s,e=>{if(!d__default.default.isValidElement(e))return null;let r=u?Array.isArray(t)&&t.includes(e.props.value):t===e.props.value;return d__default.default.cloneElement(e,{onClick:l=>{e.props.onClick?.(l),$(e.props.value,e);},className:chunkDDGBDWFC_js.a("ui-select-menu-item",r&&"ui-select-menu-item-selected",e.props.className),role:"option","aria-selected":r})})})]})});K.displayName="Select";var ce=K;var j=d.forwardRef(({className:b,children:v,value:N,disabled:s,selected:o,...x},p)=>jsxRuntime.jsx("div",{ref:p,className:chunkDDGBDWFC_js.a("ui-select-menu-item",o&&"ui-select-menu-item-selected",s&&"ui-select-menu-item-disabled",b),...x,children:v}));j.displayName="MenuItem";var pe=j;exports.a=ce;exports.b=pe;//# sourceMappingURL=chunk-DYGRXBKP.js.map
2
+ //# sourceMappingURL=chunk-DYGRXBKP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Select/Select.tsx","../src/components/Select/MenuItem.tsx"],"names":["Select","forwardRef","props","ref","autoWidth","children","classes","defaultOpen","defaultValue","displayEmpty","fullWidth","Icon","ChevronDown","idProp","input","inputProps","label","labelId","MenuProps","multiple","native","onChange","onClose","onOpen","openProp","renderValue","SelectDisplayProps","sx","valueProp","variant","className","rest","generatedId","useId","id","menuId","internalValue","setInternalValue","useState","internalOpen","setInternalOpen","focused","setFocused","isControlledValue","value","isControlledOpen","isOpen","containerRef","useRef","menuRef","handleToggle","event","nextOpen","handleClose","handleSelect","val","child","newValue","currentArray","v","useEffect","handleClickOutside","getDisplayValue","labelFound","React","jsxs","cn","jsx","isSelected","e","Select_default","MenuItem","disabled","selected","MenuItem_default"],"mappings":"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","file":"chunk-DYGRXBKP.js","sourcesContent":["'use client';\n\nimport React, { forwardRef, useState, useRef, useEffect, useId } from 'react';\nimport { ChevronDown } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { SelectProps, SelectChangeEvent } from './types';\nimport './select.css';\n\nexport const Select = forwardRef<HTMLDivElement, SelectProps>((props, ref) => {\n const {\n autoWidth = false,\n children,\n classes = {},\n defaultOpen = false,\n defaultValue,\n displayEmpty = false,\n fullWidth = false,\n IconComponent: Icon = ChevronDown,\n id: idProp,\n input,\n inputProps = {},\n label,\n labelId,\n MenuProps = {},\n multiple = false,\n native = false,\n onChange,\n onClose,\n onOpen,\n open: openProp,\n renderValue,\n SelectDisplayProps = {},\n sx,\n value: valueProp,\n variant = 'outlined',\n className,\n ...rest\n } = props;\n\n const generatedId = useId();\n const id = idProp || generatedId;\n const menuId = `${id}-menu`;\n \n const [internalValue, setInternalValue] = useState(defaultValue !== undefined ? defaultValue : (multiple ? [] : ''));\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const [focused, setFocused] = useState(false);\n\n const isControlledValue = valueProp !== undefined;\n const value = isControlledValue ? valueProp : internalValue;\n\n const isControlledOpen = openProp !== undefined;\n const isOpen = isControlledOpen ? openProp : internalOpen;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n const handleToggle = (event: React.MouseEvent | React.KeyboardEvent) => {\n if (native) return;\n \n const nextOpen = !isOpen;\n if (!isControlledOpen) {\n setInternalOpen(nextOpen);\n }\n\n if (nextOpen) {\n onOpen?.(event);\n } else {\n onClose?.(event);\n }\n };\n\n const handleClose = (event: any) => {\n if (!isControlledOpen) {\n setInternalOpen(false);\n }\n onClose?.(event);\n };\n\n const handleSelect = (val: any, child?: React.ReactNode) => {\n let newValue = val;\n \n if (multiple) {\n const currentArray = Array.isArray(value) ? value : [];\n if (currentArray.includes(val)) {\n newValue = currentArray.filter((v) => v !== val);\n } else {\n newValue = [...currentArray, val];\n }\n }\n\n if (!isControlledValue) {\n setInternalValue(newValue);\n }\n\n if (onChange) {\n const event: SelectChangeEvent = {\n target: {\n value: newValue,\n name: inputProps.name,\n },\n };\n onChange(event, child);\n }\n\n if (!multiple) {\n handleClose(null);\n }\n };\n\n // Close menu when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n isOpen &&\n containerRef.current &&\n !containerRef.current.contains(event.target as Node) &&\n menuRef.current &&\n !menuRef.current.contains(event.target as Node)\n ) {\n handleClose(event);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen]);\n\n const getDisplayValue = () => {\n if (renderValue) {\n return renderValue(value);\n }\n\n if (multiple && Array.isArray(value)) {\n if (value.length === 0 && displayEmpty) return '';\n return value.join(', ');\n }\n\n if (value === '' || value === undefined || value === null) {\n return displayEmpty ? '' : null;\n }\n\n // Attempt to find the label from children\n let labelFound = value;\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.props.value === value) {\n labelFound = child.props.children;\n }\n });\n\n return labelFound;\n };\n\n if (native) {\n return (\n <div className={cn('ui-select-root', fullWidth && 'ui-select-fullWidth', className, classes.root)} style={sx}>\n {label && (\n <label htmlFor={id} className={cn('ui-select-label', classes.label)}>\n {label}\n </label>\n )}\n <select\n id={id}\n value={value}\n onChange={(e) => handleSelect(e.target.value)}\n className={cn('ui-select-native', classes.native)}\n {...inputProps}\n {...(rest as any)}\n >\n {children}\n </select>\n </div>\n );\n }\n\n return (\n <div\n ref={containerRef}\n className={cn(\n 'ui-select-root',\n fullWidth && 'ui-select-fullWidth',\n className,\n classes.root\n )}\n style={sx}\n >\n {label && (\n <label\n id={labelId}\n className={cn(\n 'ui-select-label',\n focused && 'ui-select-label-focused',\n classes.label\n )}\n >\n {label}\n </label>\n )}\n\n <div\n ref={ref}\n role=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-labelledby={labelId}\n id={id}\n tabIndex={0}\n onClick={handleToggle}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n className={cn(\n 'ui-select-container',\n `ui-select-variant-${variant}`,\n focused && 'ui-select-container-focused',\n isOpen && 'ui-select-container-open',\n classes.container\n )}\n {...SelectDisplayProps}\n >\n <div className={cn('ui-select-display', classes.select)}>\n {getDisplayValue()}\n </div>\n <div className={cn('ui-select-icon', isOpen && 'ui-select-icon-open', classes.icon)}>\n <Icon size={20} />\n </div>\n </div>\n\n {isOpen && (\n <div\n ref={menuRef}\n id={menuId}\n role=\"listbox\"\n className={cn(\n 'ui-select-menu',\n autoWidth && 'ui-select-menu-autoWidth',\n MenuProps.className,\n classes.menu\n )}\n {...MenuProps}\n >\n {React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) return null;\n\n const isSelected = multiple\n ? Array.isArray(value) && value.includes(child.props.value)\n : value === child.props.value;\n\n return React.cloneElement(child as React.ReactElement<any>, {\n onClick: (e: React.MouseEvent) => {\n child.props.onClick?.(e);\n handleSelect(child.props.value, child);\n },\n className: cn(\n 'ui-select-menu-item',\n isSelected && 'ui-select-menu-item-selected',\n child.props.className\n ),\n role: 'option',\n 'aria-selected': isSelected,\n });\n })}\n </div>\n )}\n </div>\n );\n});\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","import React, { forwardRef, HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface MenuItemProps extends HTMLAttributes<HTMLDivElement> {\n value?: any;\n disabled?: boolean;\n selected?: boolean;\n}\n\nexport const MenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n ({ className, children, value, disabled, selected, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'ui-select-menu-item',\n selected && 'ui-select-menu-item-selected',\n disabled && 'ui-select-menu-item-disabled',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nMenuItem.displayName = 'MenuItem';\n\nexport default MenuItem;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var e={};var U=({as:g,idleTimeLimit:m=7200*1e3,onLogout:s,dialogTitle:I="Session Expired",dialogMessage:i="Your current session has expired. Please proceed with logout and re-login.",logoutButtonText:d="Logout",className:u,...G},Z)=>{let f=g||"div",[c,B]=react.useState(false),o=react.useRef(null),n=()=>{o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{B(true);},m);};return react.useEffect(()=>{n();let r=["mousemove","keydown","scroll","click","touchstart"],b=()=>{c||n();};return r.forEach(l=>window.addEventListener(l,b)),()=>{r.forEach(l=>window.removeEventListener(l,b)),o.current&&clearTimeout(o.current);}},[c,m]),c?jsxRuntime.jsx("div",{className:e.overlay,children:jsxRuntime.jsx(f,{ref:Z,className:chunkDDGBDWFC_js.a(e.dialog,u),...G,children:jsxRuntime.jsxs("div",{className:e.content,children:[jsxRuntime.jsx("h3",{className:e.title,children:I}),jsxRuntime.jsx("div",{className:e.message,children:typeof i=="string"?jsxRuntime.jsx("p",{style:{whiteSpace:"pre-line"},children:i}):i}),jsxRuntime.jsx("div",{className:e.footer,children:jsxRuntime.jsx("button",{type:"button",onClick:s,className:e.button,children:d})})]})})}):null},X=react.forwardRef(U);X.displayName="IdleTimer";exports.a=X;//# sourceMappingURL=chunk-KZ3RDRIM.js.map
2
+ //# sourceMappingURL=chunk-KZ3RDRIM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/IdleTimer/IdleTimer.module.scss","../src/components/IdleTimer/IdleTimer.tsx"],"names":["IdleTimer_module_default","IdleTimerInner","as","idleTimeLimit","onLogout","dialogTitle","dialogMessage","logoutButtonText","className","props","ref","Component","isIdle","setIsIdle","useState","timerRef","useRef","startTimer","useEffect","events","resetTimer","event","jsx","cn","jsxs","IdleTimer","forwardRef"],"mappings":"gIAAA,IAAAA,CAAAA,CAAA,EAAA,CCkBA,IAAMC,EAAiB,CACrB,CACE,EAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CAAgB,KAAc,GAAA,CAC9B,QAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,iBAAA,CACd,cAAAC,CAAAA,CAAgB,4EAAA,CAChB,gBAAA,CAAAC,CAAAA,CAAmB,QAAA,CACnB,SAAA,CAAAC,EACA,GAAGC,CACL,CAAA,CACAC,CAAAA,GACG,CACH,IAAMC,EAAYT,CAAAA,EAAM,KAAA,CAClB,CAACU,CAAAA,CAAQC,CAAS,CAAA,CAAIC,eAAS,KAAK,CAAA,CACpCC,CAAAA,CAAWC,YAAAA,CAA6C,IAAI,CAAA,CAE5DC,EAAa,IAAM,CACnBF,CAAAA,CAAS,OAAA,EAAS,YAAA,CAAaA,CAAAA,CAAS,OAAO,CAAA,CAEnDA,CAAAA,CAAS,OAAA,CAAU,UAAA,CAAW,IAAM,CAClCF,EAAU,IAAI,EAChB,CAAA,CAAGV,CAAa,EAClB,CAAA,CAyBA,OAvBAe,eAAAA,CAAU,IAAM,CACdD,CAAAA,EAAW,CAEX,IAAME,EAAmC,CACvC,WAAA,CACA,SAAA,CACA,QAAA,CACA,OAAA,CACA,YACF,EAEMC,CAAAA,CAAa,IAAM,CAClBR,CAAAA,EAAQK,CAAAA,GACf,CAAA,CAEA,OAAAE,CAAAA,CAAO,OAAA,CAASE,CAAAA,EAAU,MAAA,CAAO,gBAAA,CAAiBA,CAAAA,CAAOD,CAAU,CAAC,CAAA,CAE7D,IAAM,CACXD,CAAAA,CAAO,OAAA,CAASE,GAAU,MAAA,CAAO,mBAAA,CAAoBA,CAAAA,CAAOD,CAAU,CAAC,CAAA,CACnEL,EAAS,OAAA,EAAS,YAAA,CAAaA,CAAAA,CAAS,OAAO,EACrD,CACF,EAAG,CAACH,CAAAA,CAAQT,CAAa,CAAC,CAAA,CAErBS,CAAAA,CAGHU,eAAC,KAAA,CAAA,CAAI,SAAA,CAAWtB,CAAAA,CAAO,OAAA,CACrB,QAAA,CAAAsB,cAAAA,CAACX,EAAA,CACC,GAAA,CAAKD,CAAAA,CACL,SAAA,CAAWa,kBAAAA,CAAGvB,CAAAA,CAAO,OAAQQ,CAAS,CAAA,CACrC,GAAGC,CAAAA,CAEJ,QAAA,CAAAe,eAAAA,CAAC,OAAI,SAAA,CAAWxB,CAAAA,CAAO,OAAA,CACrB,QAAA,CAAA,CAAAsB,cAAAA,CAAC,IAAA,CAAA,CAAG,UAAWtB,CAAAA,CAAO,KAAA,CAAQ,QAAA,CAAAK,CAAAA,CAAY,CAAA,CAC1CiB,cAAAA,CAAC,OAAI,SAAA,CAAWtB,CAAAA,CAAO,OAAA,CACpB,QAAA,CAAA,OAAOM,CAAAA,EAAkB,QAAA,CACxBgB,eAAC,GAAA,CAAA,CAAE,KAAA,CAAO,CAAE,UAAA,CAAY,UAAW,CAAA,CAAI,SAAAhB,CAAAA,CAAc,CAAA,CAErDA,CAAAA,CAEJ,CAAA,CACAgB,cAAAA,CAAC,KAAA,CAAA,CAAI,UAAWtB,CAAAA,CAAO,MAAA,CACrB,QAAA,CAAAsB,cAAAA,CAAC,QAAA,CAAA,CACC,IAAA,CAAK,SACL,OAAA,CAASlB,CAAAA,CACT,SAAA,CAAWJ,CAAAA,CAAO,MAAA,CAEjB,QAAA,CAAAO,EACH,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CACF,CAAA,CA7BkB,IA+BtB,CAAA,CAMakB,CAAAA,CAAYC,gBAAAA,CAAWzB,CAAqB,EAMzDwB,CAAAA,CAAU,WAAA,CAAc,WAAA","file":"chunk-KZ3RDRIM.js","sourcesContent":[".overlay {\n position: fixed;\n inset: 0;\n z-index: 50;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(4px);\n animation: fadeIn 0.3s ease-out;\n}\n\n.dialog {\n background-color: #ffffff;\n border-radius: 0.5rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n padding: 1.5rem;\n width: 100%;\n max-width: 28rem;\n margin-left: 1rem;\n margin-right: 1rem;\n border: 1px solid #e2e8f0;\n animation: zoomIn 0.3s ease-out;\n}\n:global(.dark) .dialog {\n background-color: #0f172a;\n border-color: #1e293b;\n color: #ffffff;\n}\n\n.title {\n font-size: 1.25rem;\n line-height: 1.75rem;\n font-weight: 700;\n color: #0f172a;\n margin-bottom: 1rem;\n}\n:global(.dark) .title {\n color: #ffffff;\n}\n\n.message {\n color: #475569;\n line-height: 1.5;\n}\n:global(.dark) .message {\n color: #94a3b8;\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n padding-top: 1rem;\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.375rem;\n background-color: #2563eb;\n padding: 0.5rem 1rem;\n font-size: 0.875rem;\n font-weight: 600;\n color: #ffffff;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n border: none;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n.button:hover {\n background-color: #3b82f6;\n}\n.button:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #2563eb;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIklkbGVUaW1lci5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7OztBQUlKO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0lBQU87O0VBQ1A7SUFBSzs7O0FBR1A7RUFDRTtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLm92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiA1MDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG4gIGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZS1vdXQ7XG59XG5cbi5kaWFsb2cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIGJveC1zaGFkb3c6IDAgMjVweCA1MHB4IC0xMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjhyZW07XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gIGFuaW1hdGlvbjogem9vbUluIDAuM3MgZWFzZS1vdXQ7XG5cbiAgOmdsb2JhbCguZGFyaykgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMTcyYTtcbiAgICBib3JkZXItY29sb3I6ICMxZTI5M2I7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cblxuLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICMwZjE3MmE7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgOmdsb2JhbCguZGFyaykgJiB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cblxuLm1lc3NhZ2Uge1xuICBjb2xvcjogIzQ3NTU2OTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICA6Z2xvYmFsKC5kYXJrKSAmIHtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgfVxufVxuXG4uZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgcGFkZGluZy10b3A6IDFyZW07XG59XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzc1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU2M2ViO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNiODJmNjtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICNmZmZmZmYsIDAgMCAwIDRweCAjMjU2M2ViO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgdG8geyBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgem9vbUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbiJdfQ== */","'use client';\n\nimport React, {\n useEffect,\n useRef,\n useState,\n forwardRef,\n ElementType,\n ReactElement,\n} from 'react';\nimport { cn } from '../../utils/cn';\nimport { IdleTimerComponentProps } from './types';\nimport styles from './IdleTimer.module.scss'\n\n/**\n * IdleTimer component that monitors user activity and prompts for logout after a period of inactivity.\n * Built with Tailwind CSS for zero runtime dependencies (except React).\n */\nconst IdleTimerInner = <T extends ElementType = 'div'>(\n {\n as,\n idleTimeLimit = 2 * 60 * 60 * 1000,\n onLogout,\n dialogTitle = 'Session Expired',\n dialogMessage = 'Your current session has expired. Please proceed with logout and re-login.',\n logoutButtonText = 'Logout',\n className,\n ...props\n }: IdleTimerComponentProps<T>,\n ref: any\n) => {\n const Component = as || 'div';\n const [isIdle, setIsIdle] = useState(false);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const startTimer = () => {\n if (timerRef.current) clearTimeout(timerRef.current);\n\n timerRef.current = setTimeout(() => {\n setIsIdle(true);\n }, idleTimeLimit);\n };\n\n useEffect(() => {\n startTimer();\n\n const events: (keyof WindowEventMap)[] = [\n 'mousemove',\n 'keydown',\n 'scroll',\n 'click',\n 'touchstart',\n ];\n\n const resetTimer = () => {\n if (!isIdle) startTimer();\n };\n\n events.forEach((event) => window.addEventListener(event, resetTimer));\n\n return () => {\n events.forEach((event) => window.removeEventListener(event, resetTimer));\n if (timerRef.current) clearTimeout(timerRef.current);\n };\n }, [isIdle, idleTimeLimit]);\n\n if (!isIdle) return null;\n\n return (\n <div className={styles.overlay}>\n <Component\n ref={ref}\n className={cn(styles.dialog, className)}\n {...props}\n >\n <div className={styles.content}>\n <h3 className={styles.title}>{dialogTitle}</h3>\n <div className={styles.message}>\n {typeof dialogMessage === 'string' ? (\n <p style={{ whiteSpace: 'pre-line' }}>{dialogMessage}</p>\n ) : (\n dialogMessage\n )}\n </div>\n <div className={styles.footer}>\n <button\n type=\"button\"\n onClick={onLogout}\n className={styles.button}\n >\n {logoutButtonText}\n </button>\n </div>\n </div>\n </Component>\n </div>\n );\n};\n\n/**\n * IdleTimer component that monitors user activity and prompts for logout after a period of inactivity.\n * Built with Tailwind CSS for zero runtime dependencies (except React).\n */\nexport const IdleTimer = forwardRef(IdleTimerInner as any) as (<\n T extends ElementType = 'div',\n>(\n props: IdleTimerComponentProps<T> & { ref?: any }\n) => ReactElement | null) & { displayName?: string };\n\nIdleTimer.displayName = 'IdleTimer';\n\nexport default IdleTimer;\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef}from'react';import {jsxs,jsx}from'react/jsx-runtime';var i={};var Z=forwardRef(({as:l,className:c,isLoading:b=true,text:s="LOADING",primaryColor:g="#3f4379",secondaryColor:r="#8c91df",...n},d)=>{if(!b)return null;let B=l||"div",I=Array.from({length:6},(t,e)=>e),p=s.toUpperCase().split("");return jsxs(B,{ref:d,className:a(i.overlay,c),style:{"--primary-color":g,"--secondary-color":r},...n,children:[jsx("div",{className:i.fileContainer,children:I.map(t=>jsx("div",{className:i.file,style:{background:`linear-gradient(90deg, ${g}, #6a6eae)`,animationDelay:`${t*.6}s`}},t))}),jsx("div",{className:i.textFlip,children:p.map((t,e)=>jsx("span",{style:{animationDelay:`${e*.3}s`},children:t},e))})]})});Z.displayName="Loader";export{Z as a};//# sourceMappingURL=chunk-MZLSOEXC.mjs.map
2
+ //# sourceMappingURL=chunk-MZLSOEXC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Loader/Loader.module.scss","../src/components/Loader/Loader.tsx"],"names":["Loader_module_default","Loader","forwardRef","as","className","isLoading","text","primaryColor","secondaryColor","props","ref","Component","files","_","i","textArray","jsxs","cn","jsx","letter"],"mappings":"6GAAA,IAAAA,EAAA,EAAA,CCWO,IAAMC,CAAAA,CAASC,WACpB,CACE,CACE,EAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CAAY,KACZ,IAAA,CAAAC,CAAAA,CAAO,SAAA,CACP,YAAA,CAAAC,EAAe,SAAA,CACf,cAAA,CAAAC,CAAAA,CAAiB,SAAA,CACjB,GAAGC,CACL,CAAA,CACAC,CAAAA,GACG,CACH,GAAI,CAACL,CAAAA,CAAW,OAAO,KAEvB,IAAMM,CAAAA,CAAYR,CAAAA,EAAM,KAAA,CAClBS,EAAQ,KAAA,CAAM,IAAA,CAAK,CAAE,MAAA,CAAQ,CAAE,CAAA,CAAG,CAACC,CAAAA,CAAGC,CAAAA,GAAMA,CAAC,CAAA,CAC7CC,CAAAA,CAAYT,CAAAA,CAAK,aAAY,CAAE,KAAA,CAAM,EAAE,CAAA,CAE7C,OACEU,IAAAA,CAACL,CAAAA,CAAA,CACC,GAAA,CAAKD,EACL,SAAA,CAAWO,CAAAA,CAAGjB,CAAAA,CAAO,OAAA,CAASI,CAAS,CAAA,CACvC,KAAA,CAAO,CACJ,kBAA2BG,CAAAA,CAC3B,mBAAA,CAA6BC,CAChC,CAAA,CACC,GAAGC,CAAAA,CAEJ,QAAA,CAAA,CAAAS,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAWlB,CAAAA,CAAO,aAAA,CACpB,QAAA,CAAAY,CAAAA,CAAM,GAAA,CAAKE,CAAAA,EACVI,GAAAA,CAAC,KAAA,CAAA,CAEC,UAAWlB,CAAAA,CAAO,IAAA,CAClB,KAAA,CAAO,CACL,WAAY,CAAA,uBAAA,EAA0BO,CAAY,CAAA,UAAA,CAAA,CAClD,cAAA,CAAgB,GAAGO,CAAAA,CAAI,EAAG,CAAA,CAAA,CAC5B,CAAA,CAAA,CALKA,CAMP,CACD,CAAA,CACH,CAAA,CAEAI,IAAC,KAAA,CAAA,CAAI,SAAA,CAAWlB,CAAAA,CAAO,QAAA,CACpB,SAAAe,CAAAA,CAAU,GAAA,CAAI,CAACI,CAAAA,CAAQL,IACtBI,GAAAA,CAAC,MAAA,CAAA,CAAa,KAAA,CAAO,CAAE,eAAgB,CAAA,EAAGJ,CAAAA,CAAI,EAAG,CAAA,CAAA,CAAI,EAClD,QAAA,CAAAK,CAAAA,CAAAA,CADQL,CAEX,CACD,EACH,CAAA,CAAA,CACF,CAEJ,CACF,EAEAb,EAAO,WAAA,CAAc,QAAA","file":"chunk-MZLSOEXC.mjs","sourcesContent":[".overlay {\n position: fixed;\n inset: 0;\n z-index: 9999;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background-color: rgba(107, 114, 128, 0.4);\n backdrop-filter: blur(2px);\n}\n\n.fileContainer {\n position: relative;\n width: 80%;\n height: 100px;\n overflow: hidden;\n margin-bottom: 0;\n}\n\n.file {\n position: absolute;\n bottom: 25px;\n width: 40px;\n height: 50px;\n border-radius: 4px;\n opacity: 0;\n transform-origin: center;\n animation: flyRight 3s ease-in-out infinite;\n}\n.file::before {\n content: \"\";\n position: absolute;\n top: 6px;\n left: 6px;\n width: 28px;\n height: 4px;\n background-color: var(--secondary-color);\n border-radius: 2px;\n}\n.file::after {\n content: \"\";\n position: absolute;\n top: 13px;\n left: 6px;\n width: 18px;\n height: 4px;\n background-color: var(--secondary-color);\n border-radius: 2px;\n}\n\n.textFlip {\n display: flex;\n perspective: 700px;\n}\n.textFlip span {\n font-size: 30px;\n font-family: sans-serif;\n display: inline-block;\n animation: flip 2.6s infinite linear;\n transform-origin: 0 70%;\n transform-style: preserve-3d;\n color: var(--primary-color);\n}\n.textFlip span:nth-child(even) {\n color: var(--secondary-color);\n}\n\n@keyframes flyRight {\n 0% {\n left: -10%;\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n left: 45%;\n transform: scale(1.2);\n opacity: 1;\n }\n 100% {\n left: 100%;\n transform: scale(0);\n opacity: 0;\n }\n}\n@keyframes flip {\n 35% {\n transform: rotateX(360deg);\n }\n 100% {\n transform: rotateX(360deg);\n }\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvYWRlci5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDRTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7O0FBS047RUFDRTtJQUFLO0lBQVk7SUFBcUI7O0VBQ3RDO0lBQU07SUFBVztJQUF1Qjs7RUFDeEM7SUFBTztJQUFZO0lBQXFCOzs7QUFHMUM7RUFDRTtJQUFNOztFQUNOO0lBQU8iLCJzb3VyY2VzQ29udGVudCI6WyIub3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwNywgMTE0LCAxMjgsIDAuNCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xufVxuXG4uZmlsZUNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmZpbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMjVweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIGFuaW1hdGlvbjogZmx5UmlnaHQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDZweDtcbiAgICBsZWZ0OiA2cHg7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxM3B4O1xuICAgIGxlZnQ6IDZweDtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgfVxufVxuXG4udGV4dEZsaXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwZXJzcGVjdGl2ZTogNzAwcHg7XG5cbiAgc3BhbiB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBhbmltYXRpb246IGZsaXAgMi42cyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCA3MCU7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG5cbiAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbHlSaWdodCB7XG4gIDAlIHsgbGVmdDogLTEwJTsgdHJhbnNmb3JtOiBzY2FsZSgwKTsgb3BhY2l0eTogMDsgfVxuICA1MCUgeyBsZWZ0OiA0NSU7IHRyYW5zZm9ybTogc2NhbGUoMS4yKTsgb3BhY2l0eTogMTsgfVxuICAxMDAlIHsgbGVmdDogMTAwJTsgdHJhbnNmb3JtOiBzY2FsZSgwKTsgb3BhY2l0eTogMDsgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXAge1xuICAzNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZVgoMzYwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGVYKDM2MGRlZyk7IH1cbn1cbiJdfQ== */","'use client';\n\nimport { forwardRef, ElementType } from 'react';\nimport { cn } from '../../utils/cn';\nimport { LoaderProps } from './types';\nimport styles from './Loader.module.scss';\n\n/**\n * Loader component with flying file animations and flipping text.\n * Ported from a custom React implementation with full CSS-in-JS style management.\n */\nexport const Loader = forwardRef(\n <T extends ElementType = 'div'>(\n {\n as,\n className,\n isLoading = true,\n text = 'LOADING',\n primaryColor = '#3f4379',\n secondaryColor = '#8c91df',\n ...props\n }: LoaderProps<T>,\n ref: any\n ) => {\n if (!isLoading) return null;\n\n const Component = as || 'div';\n const files = Array.from({ length: 6 }, (_, i) => i);\n const textArray = text.toUpperCase().split('');\n\n return (\n <Component\n ref={ref}\n className={cn(styles.overlay, className)}\n style={{\n ['--primary-color' as any]: primaryColor,\n ['--secondary-color' as any]: secondaryColor,\n }}\n {...props}\n >\n <div className={styles.fileContainer}>\n {files.map((i) => (\n <div\n key={i}\n className={styles.file}\n style={{\n background: `linear-gradient(90deg, ${primaryColor}, #6a6eae)`,\n animationDelay: `${i * 0.6}s`,\n }}\n />\n ))}\n </div>\n \n <div className={styles.textFlip}>\n {textArray.map((letter, i) => (\n <span key={i} style={{ animationDelay: `${i * 0.3}s` }}>\n {letter}\n </span>\n ))}\n </div>\n </Component>\n );\n }\n);\n\nLoader.displayName = 'Loader';\n\nexport default Loader;\n"]}
@@ -0,0 +1,3 @@
1
+ 'use strict';var react=require('react'),reactToastify=require('react-toastify'),jsxRuntime=require('react/jsx-runtime');var _=react.forwardRef((A,C)=>{let{label:N,required:j,error:d,accept:k=".pdf,.doc,.docx",maxSizeMB:U=10,disabled:c,uploadType:E,multiple:u,value:l,onChange:m,onDelete:z,previewUrl:I,previewUrls:R,existingFileUrl:b,existingFileName:y,editMode:$=true,viewMode:M=false,className:P="",style:O}=A;react.useEffect(()=>{let e="tabler-icons-cdn";if(!document.getElementById(e)){let t=document.createElement("link");t.id=e,t.rel="stylesheet",t.href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/dist/tabler-icons.min.css",document.head.appendChild(t);}},[]);let p=Array.isArray(b)?b:b?[b]:[],T=Array.isArray(l)?l:l?[l]:[],w=[...p,...T],g=c||M||!$,F=react.useRef(null);react.useImperativeHandle(C,()=>F.current);let[s,x]=react.useState([]);react.useEffect(()=>()=>{s.forEach(e=>{e.startsWith("blob:")&&URL.revokeObjectURL(e);});},[s]);let W=e=>{if(g)return;let t=e.target.files;if(!t||t.length===0)return;let a=Array.from(t),i=[],r=[];for(let n of a){if(n.size>U*1024*1024){reactToastify.toast.error(`File "${n.name}" exceeds the maximum size of ${U}MB`);continue}i.push(n),r.push(URL.createObjectURL(n));}if(i.length===0){e.target.value="";return}if(u){x(v=>[...v,...r]);let h=[...Array.isArray(l)?l:[],...i];m?.(h);}else s[0]?.startsWith("blob:")&&URL.revokeObjectURL(s[0]),x(r),m?.(i[0]);e.target.value="";},H=e=>{if(g)return;if(e<p.length){z?.(e);return}let a=e-p.length;if(u){let i=Array.isArray(l)?[...l]:[];i.splice(a,1),m?.(i.length>0?i:null);let r=[...s];r[a]?.startsWith("blob:")&&URL.revokeObjectURL(r[a]),r.splice(a,1),x(r);}else m?.(null),s[0]?.startsWith("blob:")&&URL.revokeObjectURL(s[0]),x([]);z?.(e);},q=(e,t)=>{t<p.length;let i=typeof e=="string"?(Array.isArray(y)?y[t]:y)||"Uploaded Document":e.name,r=t-p.length,n=typeof e=="string"?e:s[r]||(Array.isArray(R)?R[r]:I),h=i.toLowerCase().endsWith(".pdf")||typeof e!="string"&&e.type==="application/pdf",v=E==="image"||i.toLowerCase().match(/\.(jpg|jpeg|png|gif|webp)$/i);return jsxRuntime.jsxs("div",{className:"fuf-preview-item",children:[jsxRuntime.jsxs("div",{className:"fuf-file-info",children:[v&&n?jsxRuntime.jsx("img",{className:"fuf-thumbnail",src:n,alt:i}):h?jsxRuntime.jsx("i",{className:"ti ti-file-type-pdf fuf-file-icon pdf"}):jsxRuntime.jsx("i",{className:"ti ti-file fuf-file-icon general"}),jsxRuntime.jsx("span",{className:"fuf-file-name",title:i,children:i})]}),jsxRuntime.jsxs("div",{className:"fuf-actions",children:[(h||v)&&n&&jsxRuntime.jsx("button",{type:"button",className:"fuf-action-btn view",onClick:()=>window.open(n,"_blank"),title:"View",children:jsxRuntime.jsx("i",{className:"ti ti-eye"})}),!g&&jsxRuntime.jsx("button",{type:"button",className:"fuf-action-btn remove",onClick:()=>H(t),title:"Remove",children:jsxRuntime.jsx("i",{className:"ti ti-x"})})]})]},`${i}-${t}`)};return jsxRuntime.jsxs("div",{className:`fuf-root ${P}`,style:O,children:[N&&jsxRuntime.jsxs("label",{className:`fuf-label ${d?"error":""}`,children:[N," ",j&&jsxRuntime.jsx("span",{className:"fuf-required",children:"*"})]}),(!w.length||u)&&!g&&jsxRuntime.jsxs("div",{className:`fuf-dropzone ${d?"error":""} ${c?"disabled":""}`,onClick:()=>!c&&F.current?.click(),children:[jsxRuntime.jsx("i",{className:"ti ti-upload fuf-upload-icon"}),jsxRuntime.jsx("span",{className:"fuf-upload-text",children:c?"Upload disabled":"Click to upload"}),jsxRuntime.jsxs("span",{className:"fuf-format-text",children:["(Supported formats: ",k.replace(/\./g,"").toUpperCase(),")"]}),jsxRuntime.jsx("input",{type:"file",className:"fuf-hidden-input",ref:F,onChange:W,accept:k,disabled:c,multiple:u})]}),w.length>0&&jsxRuntime.jsx("div",{className:"fuf-preview-list",children:w.map((e,t)=>q(e,t))}),d&&jsxRuntime.jsx("span",{className:"fuf-error-message",children:d})]})});_.displayName="FileUploadField";
2
+ exports.a=_;//# sourceMappingURL=chunk-OXYWK4HK.js.map
3
+ //# sourceMappingURL=chunk-OXYWK4HK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/FileUploadField/FileUploadField.tsx"],"names":["FileUploadField","forwardRef","props","ref","label","required","error","accept","maxSizeMB","disabled","uploadType","multiple","value","onChange","onDelete","previewUrl","previewUrls","existingFileUrl","existingFileName","editMode","viewMode","className","style","useEffect","cdnId","link","existingFiles","currentFiles","filesToRender","isReadOnly","inputRef","useRef","useImperativeHandle","internalPreviews","setInternalPreviews","useState","url","handleFileChange","files","fileList","validFiles","newPreviews","file","toast","prev","updatedFiles","handleRemove","index","currentFileIndex","currentPreviews","renderFileRow","fileName","fileUrl","isPdf","isImage","jsxs","jsx","idx"],"mappings":"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","file":"chunk-OXYWK4HK.js","sourcesContent":["'use client';\n\nimport React, { forwardRef, useImperativeHandle, useRef, useState, useEffect } from 'react';\nimport { toast } from 'react-toastify';\nimport { FileUploadFieldProps } from './FileUploadField.types';\nimport './FileUploadField.css';\n\n/**\n * FileUploadField component for single or multiple file uploads with preview support.\n * Built with Vanilla CSS and Tabler Icons (CDN).\n */\nexport const FileUploadField = forwardRef<HTMLInputElement, FileUploadFieldProps>((props, ref) => {\n const {\n label,\n required,\n error,\n accept = '.pdf,.doc,.docx',\n maxSizeMB = 10,\n disabled,\n uploadType,\n multiple,\n value,\n onChange,\n onDelete,\n previewUrl,\n previewUrls,\n existingFileUrl,\n existingFileName,\n editMode = true,\n viewMode = false,\n className = '',\n style,\n } = props;\n\n // Inject Tabler Icons CDN if not present\n useEffect(() => {\n const cdnId = 'tabler-icons-cdn';\n if (!document.getElementById(cdnId)) {\n const link = document.createElement('link');\n link.id = cdnId;\n link.rel = 'stylesheet';\n link.href = 'https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/dist/tabler-icons.min.css';\n document.head.appendChild(link);\n }\n }, []);\n\n const existingFiles = Array.isArray(existingFileUrl) \n ? existingFileUrl \n : existingFileUrl ? [existingFileUrl] : [];\n\n const currentFiles = Array.isArray(value) \n ? value \n : value ? [value] : [];\n\n const filesToRender = [...existingFiles, ...currentFiles];\n const isReadOnly = disabled || viewMode || !editMode;\n\n const inputRef = useRef<HTMLInputElement>(null);\n useImperativeHandle(ref, () => inputRef.current!);\n\n const [internalPreviews, setInternalPreviews] = useState<string[]>([]);\n\n // Cleanup object URLs on unmount\n useEffect(() => {\n return () => {\n internalPreviews.forEach((url) => {\n if (url.startsWith('blob:')) {\n URL.revokeObjectURL(url);\n }\n });\n };\n }, [internalPreviews]);\n\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isReadOnly) return;\n const files = e.target.files;\n if (!files || files.length === 0) return;\n\n const fileList = Array.from(files);\n const validFiles: File[] = [];\n const newPreviews: string[] = [];\n\n for (const file of fileList) {\n if (file.size > maxSizeMB * 1024 * 1024) {\n toast.error(`File \"${file.name}\" exceeds the maximum size of ${maxSizeMB}MB`);\n continue;\n }\n validFiles.push(file);\n newPreviews.push(URL.createObjectURL(file));\n }\n\n if (validFiles.length === 0) {\n e.target.value = '';\n return;\n }\n\n if (multiple) {\n setInternalPreviews((prev) => [...prev, ...newPreviews]);\n const currentFiles = Array.isArray(value) ? value : [];\n const updatedFiles = [...currentFiles, ...validFiles];\n (onChange as (files: File[] | null) => void)?.(updatedFiles);\n } else {\n if (internalPreviews[0]?.startsWith('blob:')) {\n URL.revokeObjectURL(internalPreviews[0]);\n }\n setInternalPreviews(newPreviews);\n (onChange as (file: File | null) => void)?.(validFiles[0]);\n }\n \n e.target.value = '';\n };\n\n const handleRemove = (index: number) => {\n if (isReadOnly) return;\n\n const isExisting = index < existingFiles.length;\n if (isExisting) {\n onDelete?.(index);\n return;\n }\n\n const currentFileIndex = index - existingFiles.length;\n\n if (multiple) {\n const currentFiles = Array.isArray(value) ? [...value] : [];\n currentFiles.splice(currentFileIndex, 1);\n (onChange as (files: File[] | null) => void)?.(currentFiles.length > 0 ? currentFiles : null);\n \n const currentPreviews = [...internalPreviews];\n if (currentPreviews[currentFileIndex]?.startsWith('blob:')) {\n URL.revokeObjectURL(currentPreviews[currentFileIndex]);\n }\n currentPreviews.splice(currentFileIndex, 1);\n setInternalPreviews(currentPreviews);\n } else {\n (onChange as (file: File | null) => void)?.(null);\n if (internalPreviews[0]?.startsWith('blob:')) {\n URL.revokeObjectURL(internalPreviews[0]);\n }\n setInternalPreviews([]);\n }\n onDelete?.(index);\n };\n\n const renderFileRow = (file: File | string, index: number) => {\n const isExisting = index < existingFiles.length;\n const fileName = typeof file === 'string' \n ? (Array.isArray(existingFileName) ? existingFileName[index] : existingFileName) || 'Uploaded Document'\n : file.name;\n \n const currentFileIndex = index - existingFiles.length;\n const fileUrl = typeof file === 'string' \n ? file \n : internalPreviews[currentFileIndex] || (Array.isArray(previewUrls) ? previewUrls[currentFileIndex] : previewUrl);\n \n const isPdf = fileName.toLowerCase().endsWith('.pdf') || (typeof file !== 'string' && file.type === 'application/pdf');\n const isImage = uploadType === 'image' || fileName.toLowerCase().match(/\\.(jpg|jpeg|png|gif|webp)$/i);\n\n return (\n <div className=\"fuf-preview-item\" key={`${fileName}-${index}`}>\n <div className=\"fuf-file-info\">\n {isImage && fileUrl ? (\n <img className=\"fuf-thumbnail\" src={fileUrl} alt={fileName} />\n ) : isPdf ? (\n <i className=\"ti ti-file-type-pdf fuf-file-icon pdf\"></i>\n ) : (\n <i className=\"ti ti-file fuf-file-icon general\"></i>\n )}\n <span className=\"fuf-file-name\" title={fileName}>\n {fileName}\n </span>\n </div>\n <div className=\"fuf-actions\">\n {(isPdf || isImage) && fileUrl && (\n <button\n type=\"button\"\n className=\"fuf-action-btn view\"\n onClick={() => window.open(fileUrl, '_blank')}\n title=\"View\"\n >\n <i className=\"ti ti-eye\"></i>\n </button>\n )}\n {!isReadOnly && (\n <button\n type=\"button\"\n className=\"fuf-action-btn remove\"\n onClick={() => handleRemove(index)}\n title=\"Remove\"\n >\n <i className=\"ti ti-x\"></i>\n </button>\n )}\n </div>\n </div>\n );\n };\n\n return (\n <div className={`fuf-root ${className}`} style={style}>\n {label && (\n <label className={`fuf-label ${error ? 'error' : ''}`}>\n {label} {required && <span className=\"fuf-required\">*</span>}\n </label>\n )}\n\n {(!filesToRender.length || multiple) && !isReadOnly && (\n <div \n className={`fuf-dropzone ${error ? 'error' : ''} ${disabled ? 'disabled' : ''}`}\n onClick={() => !disabled && inputRef.current?.click()}\n >\n <i className=\"ti ti-upload fuf-upload-icon\"></i>\n <span className=\"fuf-upload-text\">\n {disabled ? 'Upload disabled' : 'Click to upload'}\n </span>\n <span className=\"fuf-format-text\">\n (Supported formats: {accept.replace(/\\./g, '').toUpperCase()})\n </span>\n <input\n type=\"file\"\n className=\"fuf-hidden-input\"\n ref={inputRef}\n onChange={handleFileChange}\n accept={accept}\n disabled={disabled}\n multiple={multiple}\n />\n </div>\n )}\n\n {filesToRender.length > 0 && (\n <div className=\"fuf-preview-list\">\n {filesToRender.map((file, idx) => renderFileRow(file, idx))}\n </div>\n )}\n\n {error && (\n <span className=\"fuf-error-message\">\n {error}\n </span>\n )}\n </div>\n );\n});\n\nFileUploadField.displayName = 'FileUploadField';\n"]}
@@ -0,0 +1,3 @@
1
+ import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef,useId,useState}from'react';import {jsxs,jsx}from'react/jsx-runtime';var ae=forwardRef((k,I)=>{let{autoComplete:z,autoFocus:P,classes:r={},color:T="primary",defaultValue:C,disabled:n=false,error:a$1=false,fullWidth:N=false,helperText:s,id:L,inputRef:ue,label:p,margin:R="none",maxRows:le,minRows:se,multiline:u=false,name:F,onChange:M,placeholder:$,required:b=false,rows:S,select:pe=false,size:f="medium",slotProps:d={},slots:B={},sx:H,type:m="text",value:W,variant:E="outlined",className:A,onFocus:V,onBlur:j,showPasswordToggle:g=false,toggleIcon:q,untoggleIcon:U,...D}=k,O=useId(),l=L||O,x=s?`${l}-helper-text`:void 0,G=p?`${l}-label`:void 0,[h,v]=useState(false),[c,J]=useState(false),K=e=>{e.preventDefault(),e.stopPropagation(),J(re=>!re);},y=m==="password",Q=y&&g&&c?"text":m,X=jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),jsx("circle",{cx:"12",cy:"12",r:"3"})]}),Y=jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),jsx("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}),Z=e=>{v(true),V?.(e);},_=e=>{v(false),j?.(e);},ee=e=>{M?.(e);},oe=B.root||"div",ie=u?"textarea":"input";return jsxs(oe,{className:a("ui-input-root",`ui-input-margin-${R}`,N&&"ui-input-fullWidth",A,r.root),style:H,children:[p&&jsxs("label",{htmlFor:l,id:G,className:a("ui-input-label",h&&"ui-input-label-focused",a$1&&"ui-input-label-error",n&&"ui-input-label-disabled",r.label),...d.inputLabel,children:[p,b&&jsx("span",{className:"ui-input-label-asterisk",children:"*"})]}),jsxs("div",{className:a("ui-input-container",`ui-input-variant-${E}`,`ui-input-size-${f}`,`ui-input-color-${T}`,h&&"ui-input-container-focused",a$1&&"ui-input-container-error",n&&"ui-input-container-disabled",u&&"ui-input-container-multiline",r.container),children:[jsx(ie,{ref:I,id:l,name:F,type:u?void 0:Q,value:W,defaultValue:C,disabled:n,required:b,autoFocus:P,autoComplete:z,placeholder:$,rows:S,onChange:ee,onFocus:Z,onBlur:_,className:a("ui-input-element",u&&"ui-input-textarea",r.input),"aria-describedby":x,"aria-invalid":a$1,...D,...d.input}),y&&g&&jsx("button",{type:"button",className:"ui-input-password-toggle",onClick:K,tabIndex:-1,"aria-label":c?"Hide password":"Show password",children:c?U||Y:q||X})]}),s&&jsx("p",{id:x,className:a("ui-input-helper-text",`ui-input-helper-text-size-${f}`,a$1&&"ui-input-helper-text-error",n&&"ui-input-helper-text-disabled",r.helperText),...d.formHelperText,children:s})]})});ae.displayName="Input";
2
+ export{ae as a};//# sourceMappingURL=chunk-RXNNJUS6.mjs.map
3
+ //# sourceMappingURL=chunk-RXNNJUS6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Input/Input.tsx"],"names":["Input","forwardRef","props","ref","autoComplete","autoFocus","classes","color","defaultValue","disabled","error","fullWidth","helperText","idProp","inputRef","label","margin","maxRows","minRows","multiline","name","onChange","placeholder","required","rows","select","size","slotProps","slots","sx","type","value","variant","className","onFocus","onBlur","showPasswordToggle","toggleIcon","untoggleIcon","rest","generatedId","useId","id","helperTextId","labelId","focused","setFocused","useState","showPassword","setShowPassword","handleTogglePassword","prev","isPassword","actualType","defaultToggleIcon","jsxs","jsx","defaultUntoggleIcon","handleFocus","event","handleBlur","handleChange","Root","InputComponent","cn"],"mappings":"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","file":"chunk-RXNNJUS6.mjs","sourcesContent":["'use client';\n\nimport { forwardRef, useState, useId } from 'react';\nimport { cn } from '../../utils/cn';\nimport { InputProps } from './types';\nimport './input.css';\n\nexport const Input = forwardRef<HTMLInputElement | HTMLTextAreaElement, InputProps>((props, ref) => {\n const {\n autoComplete,\n autoFocus,\n classes = {},\n color = 'primary',\n defaultValue,\n disabled = false,\n error = false,\n fullWidth = false,\n helperText,\n id: idProp,\n inputRef,\n label,\n margin = 'none',\n maxRows,\n minRows,\n multiline = false,\n name,\n onChange,\n placeholder,\n required = false,\n rows,\n select = false,\n size = 'medium',\n slotProps = {},\n slots = {},\n sx,\n type = 'text',\n value,\n variant = 'outlined',\n className,\n onFocus,\n onBlur,\n showPasswordToggle = false,\n toggleIcon,\n untoggleIcon,\n ...rest\n } = props;\n\n const generatedId = useId();\n const id = idProp || generatedId;\n const helperTextId = helperText ? `${id}-helper-text` : undefined;\n const labelId = label ? `${id}-label` : undefined;\n\n const [focused, setFocused] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n\n const handleTogglePassword = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setShowPassword((prev) => !prev);\n };\n\n const isPassword = type === 'password';\n const actualType = isPassword && showPasswordToggle && showPassword ? 'text' : type;\n\n const defaultToggleIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n\n const defaultUntoggleIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n );\n\n const handleFocus = (event: any) => {\n setFocused(true);\n onFocus?.(event);\n };\n\n const handleBlur = (event: any) => {\n setFocused(false);\n onBlur?.(event);\n };\n\n const handleChange = (event: any) => {\n onChange?.(event);\n };\n\n const Root = slots.root || 'div';\n const InputComponent = multiline ? 'textarea' : 'input';\n\n return (\n <Root\n className={cn(\n 'ui-input-root',\n `ui-input-margin-${margin}`,\n fullWidth && 'ui-input-fullWidth',\n className,\n classes.root\n )}\n style={sx}\n >\n {label && (\n <label\n htmlFor={id}\n id={labelId}\n className={cn(\n 'ui-input-label',\n focused && 'ui-input-label-focused',\n error && 'ui-input-label-error',\n disabled && 'ui-input-label-disabled',\n classes.label\n )}\n {...slotProps.inputLabel}\n >\n {label}\n {required && <span className=\"ui-input-label-asterisk\">*</span>}\n </label>\n )}\n\n <div\n className={cn(\n 'ui-input-container',\n `ui-input-variant-${variant}`,\n `ui-input-size-${size}`,\n `ui-input-color-${color}`,\n focused && 'ui-input-container-focused',\n error && 'ui-input-container-error',\n disabled && 'ui-input-container-disabled',\n multiline && 'ui-input-container-multiline',\n classes.container\n )}\n >\n <InputComponent\n ref={ref as any}\n id={id}\n name={name}\n type={multiline ? undefined : actualType}\n value={value}\n defaultValue={defaultValue}\n disabled={disabled}\n required={required}\n autoFocus={autoFocus}\n autoComplete={autoComplete}\n placeholder={placeholder}\n rows={rows}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n className={cn(\n 'ui-input-element',\n multiline && 'ui-input-textarea',\n classes.input\n )}\n aria-describedby={helperTextId}\n aria-invalid={error}\n {...(rest as any)}\n {...slotProps.input}\n />\n {isPassword && showPasswordToggle && (\n <button\n type=\"button\"\n className=\"ui-input-password-toggle\"\n onClick={handleTogglePassword}\n tabIndex={-1}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n >\n {showPassword ? (untoggleIcon || defaultUntoggleIcon) : (toggleIcon || defaultToggleIcon)}\n </button>\n )}\n </div>\n\n {helperText && (\n <p\n id={helperTextId}\n className={cn(\n 'ui-input-helper-text',\n `ui-input-helper-text-size-${size}`,\n error && 'ui-input-helper-text-error',\n disabled && 'ui-input-helper-text-disabled',\n classes.helperText\n )}\n {...slotProps.formHelperText}\n >\n {helperText}\n </p>\n )}\n </Root>\n );\n});\n\nInput.displayName = 'Input';\n\nexport default Input;\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef,useState,useRef,useEffect}from'react';import {jsx,jsxs}from'react/jsx-runtime';var e={};var U=({as:g,idleTimeLimit:m=7200*1e3,onLogout:s,dialogTitle:I="Session Expired",dialogMessage:i="Your current session has expired. Please proceed with logout and re-login.",logoutButtonText:d="Logout",className:u,...G},Z)=>{let f=g||"div",[c,B]=useState(false),o=useRef(null),n=()=>{o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{B(true);},m);};return useEffect(()=>{n();let r=["mousemove","keydown","scroll","click","touchstart"],b=()=>{c||n();};return r.forEach(l=>window.addEventListener(l,b)),()=>{r.forEach(l=>window.removeEventListener(l,b)),o.current&&clearTimeout(o.current);}},[c,m]),c?jsx("div",{className:e.overlay,children:jsx(f,{ref:Z,className:a(e.dialog,u),...G,children:jsxs("div",{className:e.content,children:[jsx("h3",{className:e.title,children:I}),jsx("div",{className:e.message,children:typeof i=="string"?jsx("p",{style:{whiteSpace:"pre-line"},children:i}):i}),jsx("div",{className:e.footer,children:jsx("button",{type:"button",onClick:s,className:e.button,children:d})})]})})}):null},X=forwardRef(U);X.displayName="IdleTimer";export{X as a};//# sourceMappingURL=chunk-S74D6N7O.mjs.map
2
+ //# sourceMappingURL=chunk-S74D6N7O.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/IdleTimer/IdleTimer.module.scss","../src/components/IdleTimer/IdleTimer.tsx"],"names":["IdleTimer_module_default","IdleTimerInner","as","idleTimeLimit","onLogout","dialogTitle","dialogMessage","logoutButtonText","className","props","ref","Component","isIdle","setIsIdle","useState","timerRef","useRef","startTimer","useEffect","events","resetTimer","event","jsx","cn","jsxs","IdleTimer","forwardRef"],"mappings":"uIAAA,IAAAA,CAAAA,CAAA,EAAA,CCkBA,IAAMC,EAAiB,CACrB,CACE,EAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CAAgB,KAAc,GAAA,CAC9B,QAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,iBAAA,CACd,cAAAC,CAAAA,CAAgB,4EAAA,CAChB,gBAAA,CAAAC,CAAAA,CAAmB,QAAA,CACnB,SAAA,CAAAC,EACA,GAAGC,CACL,CAAA,CACAC,CAAAA,GACG,CACH,IAAMC,EAAYT,CAAAA,EAAM,KAAA,CAClB,CAACU,CAAAA,CAAQC,CAAS,CAAA,CAAIC,SAAS,KAAK,CAAA,CACpCC,CAAAA,CAAWC,MAAAA,CAA6C,IAAI,CAAA,CAE5DC,EAAa,IAAM,CACnBF,CAAAA,CAAS,OAAA,EAAS,YAAA,CAAaA,CAAAA,CAAS,OAAO,CAAA,CAEnDA,CAAAA,CAAS,OAAA,CAAU,UAAA,CAAW,IAAM,CAClCF,EAAU,IAAI,EAChB,CAAA,CAAGV,CAAa,EAClB,CAAA,CAyBA,OAvBAe,SAAAA,CAAU,IAAM,CACdD,CAAAA,EAAW,CAEX,IAAME,EAAmC,CACvC,WAAA,CACA,SAAA,CACA,QAAA,CACA,OAAA,CACA,YACF,EAEMC,CAAAA,CAAa,IAAM,CAClBR,CAAAA,EAAQK,CAAAA,GACf,CAAA,CAEA,OAAAE,CAAAA,CAAO,OAAA,CAASE,CAAAA,EAAU,MAAA,CAAO,gBAAA,CAAiBA,CAAAA,CAAOD,CAAU,CAAC,CAAA,CAE7D,IAAM,CACXD,CAAAA,CAAO,OAAA,CAASE,GAAU,MAAA,CAAO,mBAAA,CAAoBA,CAAAA,CAAOD,CAAU,CAAC,CAAA,CACnEL,EAAS,OAAA,EAAS,YAAA,CAAaA,CAAAA,CAAS,OAAO,EACrD,CACF,EAAG,CAACH,CAAAA,CAAQT,CAAa,CAAC,CAAA,CAErBS,CAAAA,CAGHU,IAAC,KAAA,CAAA,CAAI,SAAA,CAAWtB,CAAAA,CAAO,OAAA,CACrB,QAAA,CAAAsB,GAAAA,CAACX,EAAA,CACC,GAAA,CAAKD,CAAAA,CACL,SAAA,CAAWa,CAAAA,CAAGvB,CAAAA,CAAO,OAAQQ,CAAS,CAAA,CACrC,GAAGC,CAAAA,CAEJ,QAAA,CAAAe,IAAAA,CAAC,OAAI,SAAA,CAAWxB,CAAAA,CAAO,OAAA,CACrB,QAAA,CAAA,CAAAsB,GAAAA,CAAC,IAAA,CAAA,CAAG,UAAWtB,CAAAA,CAAO,KAAA,CAAQ,QAAA,CAAAK,CAAAA,CAAY,CAAA,CAC1CiB,GAAAA,CAAC,OAAI,SAAA,CAAWtB,CAAAA,CAAO,OAAA,CACpB,QAAA,CAAA,OAAOM,CAAAA,EAAkB,QAAA,CACxBgB,IAAC,GAAA,CAAA,CAAE,KAAA,CAAO,CAAE,UAAA,CAAY,UAAW,CAAA,CAAI,SAAAhB,CAAAA,CAAc,CAAA,CAErDA,CAAAA,CAEJ,CAAA,CACAgB,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAWtB,CAAAA,CAAO,MAAA,CACrB,QAAA,CAAAsB,GAAAA,CAAC,QAAA,CAAA,CACC,IAAA,CAAK,SACL,OAAA,CAASlB,CAAAA,CACT,SAAA,CAAWJ,CAAAA,CAAO,MAAA,CAEjB,QAAA,CAAAO,EACH,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CACF,CAAA,CA7BkB,IA+BtB,CAAA,CAMakB,CAAAA,CAAYC,UAAAA,CAAWzB,CAAqB,EAMzDwB,CAAAA,CAAU,WAAA,CAAc,WAAA","file":"chunk-S74D6N7O.mjs","sourcesContent":[".overlay {\n position: fixed;\n inset: 0;\n z-index: 50;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(4px);\n animation: fadeIn 0.3s ease-out;\n}\n\n.dialog {\n background-color: #ffffff;\n border-radius: 0.5rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n padding: 1.5rem;\n width: 100%;\n max-width: 28rem;\n margin-left: 1rem;\n margin-right: 1rem;\n border: 1px solid #e2e8f0;\n animation: zoomIn 0.3s ease-out;\n}\n:global(.dark) .dialog {\n background-color: #0f172a;\n border-color: #1e293b;\n color: #ffffff;\n}\n\n.title {\n font-size: 1.25rem;\n line-height: 1.75rem;\n font-weight: 700;\n color: #0f172a;\n margin-bottom: 1rem;\n}\n:global(.dark) .title {\n color: #ffffff;\n}\n\n.message {\n color: #475569;\n line-height: 1.5;\n}\n:global(.dark) .message {\n color: #94a3b8;\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n padding-top: 1rem;\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.375rem;\n background-color: #2563eb;\n padding: 0.5rem 1rem;\n font-size: 0.875rem;\n font-weight: 600;\n color: #ffffff;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n border: none;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n.button:hover {\n background-color: #3b82f6;\n}\n.button:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #2563eb;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIklkbGVUaW1lci5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7OztBQUlKO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0lBQU87O0VBQ1A7SUFBSzs7O0FBR1A7RUFDRTtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLm92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiA1MDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG4gIGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZS1vdXQ7XG59XG5cbi5kaWFsb2cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIGJveC1zaGFkb3c6IDAgMjVweCA1MHB4IC0xMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjhyZW07XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gIGFuaW1hdGlvbjogem9vbUluIDAuM3MgZWFzZS1vdXQ7XG5cbiAgOmdsb2JhbCguZGFyaykgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMTcyYTtcbiAgICBib3JkZXItY29sb3I6ICMxZTI5M2I7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cblxuLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICMwZjE3MmE7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgOmdsb2JhbCguZGFyaykgJiB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cbn1cblxuLm1lc3NhZ2Uge1xuICBjb2xvcjogIzQ3NTU2OTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICA6Z2xvYmFsKC5kYXJrKSAmIHtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgfVxufVxuXG4uZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgcGFkZGluZy10b3A6IDFyZW07XG59XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzc1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU2M2ViO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNiODJmNjtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICNmZmZmZmYsIDAgMCAwIDRweCAjMjU2M2ViO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgdG8geyBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgem9vbUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbiJdfQ== */","'use client';\n\nimport React, {\n useEffect,\n useRef,\n useState,\n forwardRef,\n ElementType,\n ReactElement,\n} from 'react';\nimport { cn } from '../../utils/cn';\nimport { IdleTimerComponentProps } from './types';\nimport styles from './IdleTimer.module.scss'\n\n/**\n * IdleTimer component that monitors user activity and prompts for logout after a period of inactivity.\n * Built with Tailwind CSS for zero runtime dependencies (except React).\n */\nconst IdleTimerInner = <T extends ElementType = 'div'>(\n {\n as,\n idleTimeLimit = 2 * 60 * 60 * 1000,\n onLogout,\n dialogTitle = 'Session Expired',\n dialogMessage = 'Your current session has expired. Please proceed with logout and re-login.',\n logoutButtonText = 'Logout',\n className,\n ...props\n }: IdleTimerComponentProps<T>,\n ref: any\n) => {\n const Component = as || 'div';\n const [isIdle, setIsIdle] = useState(false);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const startTimer = () => {\n if (timerRef.current) clearTimeout(timerRef.current);\n\n timerRef.current = setTimeout(() => {\n setIsIdle(true);\n }, idleTimeLimit);\n };\n\n useEffect(() => {\n startTimer();\n\n const events: (keyof WindowEventMap)[] = [\n 'mousemove',\n 'keydown',\n 'scroll',\n 'click',\n 'touchstart',\n ];\n\n const resetTimer = () => {\n if (!isIdle) startTimer();\n };\n\n events.forEach((event) => window.addEventListener(event, resetTimer));\n\n return () => {\n events.forEach((event) => window.removeEventListener(event, resetTimer));\n if (timerRef.current) clearTimeout(timerRef.current);\n };\n }, [isIdle, idleTimeLimit]);\n\n if (!isIdle) return null;\n\n return (\n <div className={styles.overlay}>\n <Component\n ref={ref}\n className={cn(styles.dialog, className)}\n {...props}\n >\n <div className={styles.content}>\n <h3 className={styles.title}>{dialogTitle}</h3>\n <div className={styles.message}>\n {typeof dialogMessage === 'string' ? (\n <p style={{ whiteSpace: 'pre-line' }}>{dialogMessage}</p>\n ) : (\n dialogMessage\n )}\n </div>\n <div className={styles.footer}>\n <button\n type=\"button\"\n onClick={onLogout}\n className={styles.button}\n >\n {logoutButtonText}\n </button>\n </div>\n </div>\n </Component>\n </div>\n );\n};\n\n/**\n * IdleTimer component that monitors user activity and prompts for logout after a period of inactivity.\n * Built with Tailwind CSS for zero runtime dependencies (except React).\n */\nexport const IdleTimer = forwardRef(IdleTimerInner as any) as (<\n T extends ElementType = 'div',\n>(\n props: IdleTimerComponentProps<T> & { ref?: any }\n) => ReactElement | null) & { displayName?: string };\n\nIdleTimer.displayName = 'IdleTimer';\n\nexport default IdleTimer;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),z=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var z__default=/*#__PURE__*/_interopDefault(z);var S={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},C=z__default.default.forwardRef((l,s)=>{let{align:o="inherit",children:a,classes:h={},color:t,component:g,gutterBottom:f=false,noWrap:m=false,sx:e,variant:r="body1",variantMapping:x=S,className:p,style:y,...w}=l,b=g||x[r]||"p",i=t&&!["primary","secondary","success","error","info","warning","textPrimary","textSecondary","textDisabled"].includes(t),d=chunkDDGBDWFC_js.a("orc-text",`orc-text--${r}`,o!=="inherit"&&`orc-text--align-${o}`,t&&!i&&`orc-text--color-${t}`,f&&"orc-text--gutter-bottom",m&&"orc-text--no-wrap",h.root,p),u={...y,...i?{color:t}:{}},n={};return e&&typeof e=="object"&&!Array.isArray(e)&&(n=e),jsxRuntime.jsx(b,{ref:s,className:d,style:{...u,...n},...w,children:a})});C.displayName="Text";exports.a=C;//# sourceMappingURL=chunk-VPR3PX57.js.map
2
+ //# sourceMappingURL=chunk-VPR3PX57.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Text/Text.tsx"],"names":["defaultVariantMapping","Text","React","props","ref","align","children","classes","color","component","gutterBottom","noWrap","sx","variant","variantMapping","className","style","other","Component","isCustomColor","rootClasses","cn","finalStyle","sxStyles","jsx"],"mappings":"4OAKA,IAAMA,EAAgD,CACpD,EAAA,CAAI,IAAA,CACJ,EAAA,CAAI,KACJ,EAAA,CAAI,IAAA,CACJ,GAAI,IAAA,CACJ,EAAA,CAAI,KACJ,EAAA,CAAI,IAAA,CACJ,SAAA,CAAW,IAAA,CACX,UAAW,IAAA,CACX,KAAA,CAAO,IACP,KAAA,CAAO,GAAA,CACP,QAAS,GACX,CAAA,CAEaC,CAAAA,CAAOC,kBAAAA,CAAM,WAAmC,CAACC,CAAAA,CAAOC,IAAQ,CAC3E,GAAM,CACJ,KAAA,CAAAC,CAAAA,CAAQ,SAAA,CACR,QAAA,CAAAC,EACA,OAAA,CAAAC,CAAAA,CAAU,EAAC,CACX,KAAA,CAAAC,EACA,SAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CAAe,MACf,MAAA,CAAAC,CAAAA,CAAS,MACT,EAAA,CAAAC,CAAAA,CACA,QAAAC,CAAAA,CAAU,OAAA,CACV,cAAA,CAAAC,CAAAA,CAAiBd,EACjB,SAAA,CAAAe,CAAAA,CACA,MAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAId,CAAAA,CAEEe,CAAAA,CAAYT,CAAAA,EAAaK,EAAeD,CAAO,CAAA,EAAK,IAEpDM,CAAAA,CAAgBX,CAAAA,EAAS,CAAC,CAC9B,SAAA,CACA,WAAA,CACA,SAAA,CACA,QACA,MAAA,CACA,SAAA,CACA,cACA,eAAA,CACA,cACF,EAAE,QAAA,CAASA,CAAK,CAAA,CAEVY,CAAAA,CAAcC,mBAClB,UAAA,CACA,CAAA,UAAA,EAAaR,CAAO,CAAA,CAAA,CACpBR,CAAAA,GAAU,WAAa,CAAA,gBAAA,EAAmBA,CAAK,CAAA,CAAA,CAC/CG,CAAAA,EAAS,CAACW,CAAAA,EAAiB,CAAA,gBAAA,EAAmBX,CAAK,CAAA,CAAA,CACnDE,CAAAA,EAAgB,0BAChBC,CAAAA,EAAU,mBAAA,CACVJ,CAAAA,CAAQ,IAAA,CACRQ,CACF,CAAA,CAEMO,CAAAA,CAAkC,CACtC,GAAGN,CAAAA,CACH,GAAIG,CAAAA,CAAgB,CAAE,KAAA,CAAAX,CAAM,EAAI,EAClC,EAGIe,CAAAA,CAAgC,GACpC,OAAIX,CAAAA,EACE,OAAOA,CAAAA,EAAO,UAAY,CAAC,KAAA,CAAM,QAAQA,CAAE,CAAA,GAC7CW,EAAWX,CAAAA,CAAAA,CAKbY,cAAAA,CAACN,CAAAA,CAAA,CACC,IAAKd,CAAAA,CACL,SAAA,CAAWgB,EACX,KAAA,CAAO,CAAE,GAAGE,CAAAA,CAAY,GAAGC,CAAS,CAAA,CACnC,GAAGN,EAEH,QAAA,CAAAX,CAAAA,CACH,CAEJ,CAAC,EAEDL,EAAK,WAAA,CAAc,MAAA","file":"chunk-VPR3PX57.js","sourcesContent":["import React from 'react';\nimport { cn } from '../../utils/cn';\nimport { TextProps } from './types';\nimport './text.css';\n\nconst defaultVariantMapping: Record<string, string> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n inherit: 'p',\n};\n\nexport const Text = React.forwardRef<HTMLElement, TextProps>((props, ref) => {\n const {\n align = 'inherit',\n children,\n classes = {},\n color,\n component,\n gutterBottom = false,\n noWrap = false,\n sx,\n variant = 'body1',\n variantMapping = defaultVariantMapping,\n className,\n style,\n ...other\n } = props;\n\n const Component = component || variantMapping[variant] || 'p';\n\n const isCustomColor = color && ![\n 'primary',\n 'secondary',\n 'success',\n 'error',\n 'info',\n 'warning',\n 'textPrimary',\n 'textSecondary',\n 'textDisabled',\n ].includes(color);\n\n const rootClasses = cn(\n 'orc-text',\n `orc-text--${variant}`,\n align !== 'inherit' && `orc-text--align-${align}`,\n color && !isCustomColor && `orc-text--color-${color}`,\n gutterBottom && 'orc-text--gutter-bottom',\n noWrap && 'orc-text--no-wrap',\n classes.root,\n className\n );\n\n const finalStyle: React.CSSProperties = {\n ...style,\n ...(isCustomColor ? { color } : {}),\n };\n\n // sx handling\n let sxStyles: React.CSSProperties = {};\n if (sx) {\n if (typeof sx === 'object' && !Array.isArray(sx)) {\n sxStyles = sx as React.CSSProperties;\n }\n }\n\n return (\n <Component\n ref={ref as any}\n className={rootClasses}\n style={{ ...finalStyle, ...sxStyles }}\n {...other}\n >\n {children}\n </Component>\n );\n});\n\nText.displayName = 'Text';\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-547MQ4FI.mjs';import z from'react';import {jsx}from'react/jsx-runtime';var S={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},C=z.forwardRef((l,s)=>{let{align:o="inherit",children:a$1,classes:h={},color:t,component:g,gutterBottom:f=false,noWrap:m=false,sx:e,variant:r="body1",variantMapping:x=S,className:p,style:y,...w}=l,b=g||x[r]||"p",i=t&&!["primary","secondary","success","error","info","warning","textPrimary","textSecondary","textDisabled"].includes(t),d=a("orc-text",`orc-text--${r}`,o!=="inherit"&&`orc-text--align-${o}`,t&&!i&&`orc-text--color-${t}`,f&&"orc-text--gutter-bottom",m&&"orc-text--no-wrap",h.root,p),u={...y,...i?{color:t}:{}},n={};return e&&typeof e=="object"&&!Array.isArray(e)&&(n=e),jsx(b,{ref:s,className:d,style:{...u,...n},...w,children:a$1})});C.displayName="Text";export{C as a};//# sourceMappingURL=chunk-VXKXXAX6.mjs.map
2
+ //# sourceMappingURL=chunk-VXKXXAX6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Text/Text.tsx"],"names":["defaultVariantMapping","Text","React","props","ref","align","children","classes","color","component","gutterBottom","noWrap","sx","variant","variantMapping","className","style","other","Component","isCustomColor","rootClasses","cn","finalStyle","sxStyles","jsx"],"mappings":"8FAKA,IAAMA,EAAgD,CACpD,EAAA,CAAI,IAAA,CACJ,EAAA,CAAI,KACJ,EAAA,CAAI,IAAA,CACJ,GAAI,IAAA,CACJ,EAAA,CAAI,KACJ,EAAA,CAAI,IAAA,CACJ,SAAA,CAAW,IAAA,CACX,UAAW,IAAA,CACX,KAAA,CAAO,IACP,KAAA,CAAO,GAAA,CACP,QAAS,GACX,CAAA,CAEaC,CAAAA,CAAOC,CAAAA,CAAM,WAAmC,CAACC,CAAAA,CAAOC,IAAQ,CAC3E,GAAM,CACJ,KAAA,CAAAC,CAAAA,CAAQ,SAAA,CACR,QAAA,CAAAC,IACA,OAAA,CAAAC,CAAAA,CAAU,EAAC,CACX,KAAA,CAAAC,EACA,SAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CAAe,MACf,MAAA,CAAAC,CAAAA,CAAS,MACT,EAAA,CAAAC,CAAAA,CACA,QAAAC,CAAAA,CAAU,OAAA,CACV,cAAA,CAAAC,CAAAA,CAAiBd,EACjB,SAAA,CAAAe,CAAAA,CACA,MAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAId,CAAAA,CAEEe,CAAAA,CAAYT,CAAAA,EAAaK,EAAeD,CAAO,CAAA,EAAK,IAEpDM,CAAAA,CAAgBX,CAAAA,EAAS,CAAC,CAC9B,SAAA,CACA,WAAA,CACA,SAAA,CACA,QACA,MAAA,CACA,SAAA,CACA,cACA,eAAA,CACA,cACF,EAAE,QAAA,CAASA,CAAK,CAAA,CAEVY,CAAAA,CAAcC,EAClB,UAAA,CACA,CAAA,UAAA,EAAaR,CAAO,CAAA,CAAA,CACpBR,CAAAA,GAAU,WAAa,CAAA,gBAAA,EAAmBA,CAAK,CAAA,CAAA,CAC/CG,CAAAA,EAAS,CAACW,CAAAA,EAAiB,CAAA,gBAAA,EAAmBX,CAAK,CAAA,CAAA,CACnDE,CAAAA,EAAgB,0BAChBC,CAAAA,EAAU,mBAAA,CACVJ,CAAAA,CAAQ,IAAA,CACRQ,CACF,CAAA,CAEMO,CAAAA,CAAkC,CACtC,GAAGN,CAAAA,CACH,GAAIG,CAAAA,CAAgB,CAAE,KAAA,CAAAX,CAAM,EAAI,EAClC,EAGIe,CAAAA,CAAgC,GACpC,OAAIX,CAAAA,EACE,OAAOA,CAAAA,EAAO,UAAY,CAAC,KAAA,CAAM,QAAQA,CAAE,CAAA,GAC7CW,EAAWX,CAAAA,CAAAA,CAKbY,GAAAA,CAACN,CAAAA,CAAA,CACC,IAAKd,CAAAA,CACL,SAAA,CAAWgB,EACX,KAAA,CAAO,CAAE,GAAGE,CAAAA,CAAY,GAAGC,CAAS,CAAA,CACnC,GAAGN,EAEH,QAAA,CAAAX,GAAAA,CACH,CAEJ,CAAC,EAEDL,EAAK,WAAA,CAAc,MAAA","file":"chunk-VXKXXAX6.mjs","sourcesContent":["import React from 'react';\nimport { cn } from '../../utils/cn';\nimport { TextProps } from './types';\nimport './text.css';\n\nconst defaultVariantMapping: Record<string, string> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n inherit: 'p',\n};\n\nexport const Text = React.forwardRef<HTMLElement, TextProps>((props, ref) => {\n const {\n align = 'inherit',\n children,\n classes = {},\n color,\n component,\n gutterBottom = false,\n noWrap = false,\n sx,\n variant = 'body1',\n variantMapping = defaultVariantMapping,\n className,\n style,\n ...other\n } = props;\n\n const Component = component || variantMapping[variant] || 'p';\n\n const isCustomColor = color && ![\n 'primary',\n 'secondary',\n 'success',\n 'error',\n 'info',\n 'warning',\n 'textPrimary',\n 'textSecondary',\n 'textDisabled',\n ].includes(color);\n\n const rootClasses = cn(\n 'orc-text',\n `orc-text--${variant}`,\n align !== 'inherit' && `orc-text--align-${align}`,\n color && !isCustomColor && `orc-text--color-${color}`,\n gutterBottom && 'orc-text--gutter-bottom',\n noWrap && 'orc-text--no-wrap',\n classes.root,\n className\n );\n\n const finalStyle: React.CSSProperties = {\n ...style,\n ...(isCustomColor ? { color } : {}),\n };\n\n // sx handling\n let sxStyles: React.CSSProperties = {};\n if (sx) {\n if (typeof sx === 'object' && !Array.isArray(sx)) {\n sxStyles = sx as React.CSSProperties;\n }\n }\n\n return (\n <Component\n ref={ref as any}\n className={rootClasses}\n style={{ ...finalStyle, ...sxStyles }}\n {...other}\n >\n {children}\n </Component>\n );\n});\n\nText.displayName = 'Text';\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-547MQ4FI.mjs';import d,{forwardRef,useId,useState,useRef,useEffect}from'react';import {ChevronDown}from'lucide-react';import {jsxs,jsx}from'react/jsx-runtime';var K=forwardRef((b,v)=>{let{autoWidth:N=false,children:s,classes:o={},defaultOpen:x=false,defaultValue:p,displayEmpty:M=false,fullWidth:k=false,IconComponent:q=ChevronDown,id:G,input:me,inputProps:C={},label:f,labelId:I,MenuProps:S={},multiple:u=false,native:R=false,onChange:L,onClose:P,onOpen:J,open:V,renderValue:A,SelectDisplayProps:Q={},sx:O,value:T,variant:U="outlined",className:z,...X}=b,Z=useId(),m=G||Z,_=`${m}-menu`,[ee,te]=useState(p!==void 0?p:u?[]:""),[re,D]=useState(x),[H,W]=useState(false),F=T!==void 0,t=F?T:ee,y=V!==void 0,n=y?V:re,g=useRef(null),h=useRef(null),ie=e=>{if(R)return;let r=!n;y||D(r),r?J?.(e):P?.(e);},Y=e=>{y||D(false),P?.(e);},$=(e,r)=>{let l=e;if(u){let c=Array.isArray(t)?t:[];c.includes(e)?l=c.filter(ne=>ne!==e):l=[...c,e];}if(F||te(l),L){let c={target:{value:l,name:C.name}};L(c,r);}u||Y(null);};useEffect(()=>{let e=r=>{n&&g.current&&!g.current.contains(r.target)&&h.current&&!h.current.contains(r.target)&&Y(r);};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e);}},[n]);let oe=()=>{if(A)return A(t);if(u&&Array.isArray(t))return t.length===0&&M?"":t.join(", ");if(t===""||t===void 0||t===null)return M?"":null;let e=t;return d.Children.forEach(s,r=>{d.isValidElement(r)&&r.props.value===t&&(e=r.props.children);}),e};return R?jsxs("div",{className:a("ui-select-root",k&&"ui-select-fullWidth",z,o.root),style:O,children:[f&&jsx("label",{htmlFor:m,className:a("ui-select-label",o.label),children:f}),jsx("select",{id:m,value:t,onChange:e=>$(e.target.value),className:a("ui-select-native",o.native),...C,...X,children:s})]}):jsxs("div",{ref:g,className:a("ui-select-root",k&&"ui-select-fullWidth",z,o.root),style:O,children:[f&&jsx("label",{id:I,className:a("ui-select-label",H&&"ui-select-label-focused",o.label),children:f}),jsxs("div",{ref:v,role:"button","aria-haspopup":"listbox","aria-expanded":n,"aria-labelledby":I,id:m,tabIndex:0,onClick:ie,onFocus:()=>W(true),onBlur:()=>W(false),className:a("ui-select-container",`ui-select-variant-${U}`,H&&"ui-select-container-focused",n&&"ui-select-container-open",o.container),...Q,children:[jsx("div",{className:a("ui-select-display",o.select),children:oe()}),jsx("div",{className:a("ui-select-icon",n&&"ui-select-icon-open",o.icon),children:jsx(q,{size:20})})]}),n&&jsx("div",{ref:h,id:_,role:"listbox",className:a("ui-select-menu",N&&"ui-select-menu-autoWidth",S.className,o.menu),...S,children:d.Children.map(s,e=>{if(!d.isValidElement(e))return null;let r=u?Array.isArray(t)&&t.includes(e.props.value):t===e.props.value;return d.cloneElement(e,{onClick:l=>{e.props.onClick?.(l),$(e.props.value,e);},className:a("ui-select-menu-item",r&&"ui-select-menu-item-selected",e.props.className),role:"option","aria-selected":r})})})]})});K.displayName="Select";var ce=K;var j=forwardRef(({className:b,children:v,value:N,disabled:s,selected:o,...x},p)=>jsx("div",{ref:p,className:a("ui-select-menu-item",o&&"ui-select-menu-item-selected",s&&"ui-select-menu-item-disabled",b),...x,children:v}));j.displayName="MenuItem";var pe=j;export{ce as a,pe as b};//# sourceMappingURL=chunk-W4PFQVHM.mjs.map
2
+ //# sourceMappingURL=chunk-W4PFQVHM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Select/Select.tsx","../src/components/Select/MenuItem.tsx"],"names":["Select","forwardRef","props","ref","autoWidth","children","classes","defaultOpen","defaultValue","displayEmpty","fullWidth","Icon","ChevronDown","idProp","input","inputProps","label","labelId","MenuProps","multiple","native","onChange","onClose","onOpen","openProp","renderValue","SelectDisplayProps","sx","valueProp","variant","className","rest","generatedId","useId","id","menuId","internalValue","setInternalValue","useState","internalOpen","setInternalOpen","focused","setFocused","isControlledValue","value","isControlledOpen","isOpen","containerRef","useRef","menuRef","handleToggle","event","nextOpen","handleClose","handleSelect","val","child","newValue","currentArray","v","useEffect","handleClickOutside","getDisplayValue","labelFound","React","jsxs","cn","jsx","isSelected","e","Select_default","MenuItem","disabled","selected","MenuItem_default"],"mappings":"sLAQO,IAAMA,CAAAA,CAASC,WAAwC,CAACC,CAAAA,CAAOC,IAAQ,CAC5E,GAAM,CACJ,SAAA,CAAAC,EAAY,KAAA,CACZ,QAAA,CAAAC,EACA,OAAA,CAAAC,CAAAA,CAAU,EAAC,CACX,WAAA,CAAAC,CAAAA,CAAc,KAAA,CACd,aAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CAAe,KAAA,CACf,UAAAC,CAAAA,CAAY,KAAA,CACZ,aAAA,CAAeC,CAAAA,CAAOC,YACtB,EAAA,CAAIC,CAAAA,CACJ,MAAAC,EAAAA,CACA,UAAA,CAAAC,EAAa,EAAC,CACd,KAAA,CAAAC,CAAAA,CACA,QAAAC,CAAAA,CACA,SAAA,CAAAC,EAAY,EAAC,CACb,SAAAC,CAAAA,CAAW,KAAA,CACX,MAAA,CAAAC,CAAAA,CAAS,MACT,QAAA,CAAAC,CAAAA,CACA,QAAAC,CAAAA,CACA,MAAA,CAAAC,EACA,IAAA,CAAMC,CAAAA,CACN,WAAA,CAAAC,CAAAA,CACA,mBAAAC,CAAAA,CAAqB,EAAC,CACtB,EAAA,CAAAC,EACA,KAAA,CAAOC,CAAAA,CACP,OAAA,CAAAC,CAAAA,CAAU,WACV,SAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAI7B,EAEE8B,CAAAA,CAAcC,KAAAA,EAAM,CACpBC,CAAAA,CAAKrB,GAAUmB,CAAAA,CACfG,CAAAA,CAAS,GAAGD,CAAE,CAAA,KAAA,CAAA,CAEd,CAACE,EAAAA,CAAeC,EAAgB,CAAA,CAAIC,QAAAA,CAAS9B,IAAiB,MAAA,CAAYA,CAAAA,CAAgBW,EAAW,EAAC,CAAI,EAAG,CAAA,CAC7G,CAACoB,EAAAA,CAAcC,CAAe,EAAIF,QAAAA,CAAS/B,CAAW,CAAA,CACtD,CAACkC,EAASC,CAAU,CAAA,CAAIJ,QAAAA,CAAS,KAAK,EAEtCK,CAAAA,CAAoBf,CAAAA,GAAc,OAClCgB,CAAAA,CAAQD,CAAAA,CAAoBf,EAAYQ,EAAAA,CAExCS,CAAAA,CAAmBrB,CAAAA,GAAa,MAAA,CAChCsB,EAASD,CAAAA,CAAmBrB,CAAAA,CAAWe,GAEvCQ,CAAAA,CAAeC,MAAAA,CAAuB,IAAI,CAAA,CAC1CC,CAAAA,CAAUD,MAAAA,CAAuB,IAAI,EAErCE,EAAAA,CAAgBC,CAAAA,EAAkD,CACtE,GAAI/B,CAAAA,CAAQ,OAEZ,IAAMgC,CAAAA,CAAW,CAACN,CAAAA,CACbD,GACHL,CAAAA,CAAgBY,CAAQ,CAAA,CAGtBA,CAAAA,CACF7B,IAAS4B,CAAK,CAAA,CAEd7B,CAAAA,GAAU6B,CAAK,EAEnB,CAAA,CAEME,CAAAA,CAAeF,GAAe,CAC7BN,CAAAA,EACHL,EAAgB,KAAK,CAAA,CAEvBlB,CAAAA,GAAU6B,CAAK,EACjB,CAAA,CAEMG,CAAAA,CAAe,CAACC,CAAAA,CAAUC,CAAAA,GAA4B,CAC1D,IAAIC,CAAAA,CAAWF,CAAAA,CAEf,GAAIpC,EAAU,CACZ,IAAMuC,EAAe,KAAA,CAAM,OAAA,CAAQd,CAAK,CAAA,CAAIA,CAAAA,CAAQ,EAAC,CACjDc,EAAa,QAAA,CAASH,CAAG,CAAA,CAC3BE,CAAAA,CAAWC,EAAa,MAAA,CAAQC,EAAAA,EAAMA,EAAAA,GAAMJ,CAAG,EAE/CE,CAAAA,CAAW,CAAC,GAAGC,CAAAA,CAAcH,CAAG,EAEpC,CAMA,GAJKZ,CAAAA,EACHN,EAAAA,CAAiBoB,CAAQ,CAAA,CAGvBpC,CAAAA,CAAU,CACZ,IAAM8B,CAAAA,CAA2B,CAC/B,MAAA,CAAQ,CACN,KAAA,CAAOM,CAAAA,CACP,KAAM1C,CAAAA,CAAW,IACnB,CACF,CAAA,CACAM,CAAAA,CAAS8B,EAAOK,CAAK,EACvB,CAEKrC,CAAAA,EACHkC,EAAY,IAAI,EAEpB,CAAA,CAGAO,SAAAA,CAAU,IAAM,CACd,IAAMC,CAAAA,CAAsBV,CAAAA,EAAsB,CAE9CL,CAAAA,EACAC,CAAAA,CAAa,SACb,CAACA,CAAAA,CAAa,QAAQ,QAAA,CAASI,CAAAA,CAAM,MAAc,CAAA,EACnDF,EAAQ,OAAA,EACR,CAACA,EAAQ,OAAA,CAAQ,QAAA,CAASE,EAAM,MAAc,CAAA,EAE9CE,CAAAA,CAAYF,CAAK,EAErB,CAAA,CAEA,OAAA,QAAA,CAAS,iBAAiB,WAAA,CAAaU,CAAkB,EAClD,IAAM,CACX,QAAA,CAAS,mBAAA,CAAoB,YAAaA,CAAkB,EAC9D,CACF,CAAA,CAAG,CAACf,CAAM,CAAC,CAAA,CAEX,IAAMgB,EAAAA,CAAkB,IAAM,CAC5B,GAAIrC,EACF,OAAOA,CAAAA,CAAYmB,CAAK,CAAA,CAG1B,GAAIzB,CAAAA,EAAY,KAAA,CAAM,QAAQyB,CAAK,CAAA,CACjC,OAAIA,CAAAA,CAAM,MAAA,GAAW,GAAKnC,CAAAA,CAAqB,EAAA,CACxCmC,CAAAA,CAAM,IAAA,CAAK,IAAI,CAAA,CAGxB,GAAIA,IAAU,EAAA,EAAMA,CAAAA,GAAU,QAAaA,CAAAA,GAAU,IAAA,CACnD,OAAOnC,CAAAA,CAAe,GAAK,IAAA,CAI7B,IAAIsD,CAAAA,CAAanB,CAAAA,CACjB,OAAAoB,CAAAA,CAAM,QAAA,CAAS,OAAA,CAAQ3D,CAAAA,CAAWmD,GAAU,CACtCQ,CAAAA,CAAM,eAAeR,CAAK,CAAA,EAAKA,EAAM,KAAA,CAAM,KAAA,GAAUZ,CAAAA,GACvDmB,CAAAA,CAAaP,EAAM,KAAA,CAAM,QAAA,EAE7B,CAAC,CAAA,CAEMO,CACT,EAEA,OAAI3C,CAAAA,CAEA6C,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAWC,CAAAA,CAAG,gBAAA,CAAkBxD,GAAa,qBAAA,CAAuBoB,CAAAA,CAAWxB,EAAQ,IAAI,CAAA,CAAG,KAAA,CAAOqB,CAAAA,CACvG,UAAAX,CAAAA,EACCmD,GAAAA,CAAC,OAAA,CAAA,CAAM,OAAA,CAASjC,EAAI,SAAA,CAAWgC,CAAAA,CAAG,iBAAA,CAAmB5D,CAAAA,CAAQ,KAAK,CAAA,CAC/D,QAAA,CAAAU,EACH,CAAA,CAEFmD,GAAAA,CAAC,UACC,EAAA,CAAIjC,CAAAA,CACJ,KAAA,CAAOU,CAAAA,CACP,SAAW,CAAA,EAAMU,CAAAA,CAAa,EAAE,MAAA,CAAO,KAAK,EAC5C,SAAA,CAAWY,CAAAA,CAAG,kBAAA,CAAoB5D,CAAAA,CAAQ,MAAM,CAAA,CAC/C,GAAGS,EACH,GAAIgB,CAAAA,CAEJ,SAAA1B,CAAAA,CACH,CAAA,CAAA,CACF,CAAA,CAKF4D,IAAAA,CAAC,OACC,GAAA,CAAKlB,CAAAA,CACL,SAAA,CAAWmB,CAAAA,CACT,iBACAxD,CAAAA,EAAa,qBAAA,CACboB,CAAAA,CACAxB,CAAAA,CAAQ,IACV,CAAA,CACA,KAAA,CAAOqB,EAEN,QAAA,CAAA,CAAAX,CAAAA,EACCmD,IAAC,OAAA,CAAA,CACC,EAAA,CAAIlD,CAAAA,CACJ,SAAA,CAAWiD,EACT,iBAAA,CACAzB,CAAAA,EAAW,0BACXnC,CAAAA,CAAQ,KACV,EAEC,QAAA,CAAAU,CAAAA,CACH,CAAA,CAGFiD,IAAAA,CAAC,OACC,GAAA,CAAK9D,CAAAA,CACL,KAAK,QAAA,CACL,eAAA,CAAc,UACd,eAAA,CAAe2C,CAAAA,CACf,iBAAA,CAAiB7B,CAAAA,CACjB,GAAIiB,CAAAA,CACJ,QAAA,CAAU,CAAA,CACV,OAAA,CAASgB,GACT,OAAA,CAAS,IAAMR,CAAAA,CAAW,IAAI,EAC9B,MAAA,CAAQ,IAAMA,EAAW,KAAK,CAAA,CAC9B,UAAWwB,CAAAA,CACT,qBAAA,CACA,CAAA,kBAAA,EAAqBrC,CAAO,GAC5BY,CAAAA,EAAW,6BAAA,CACXK,GAAU,0BAAA,CACVxC,CAAAA,CAAQ,SACV,CAAA,CACC,GAAGoB,CAAAA,CAEJ,QAAA,CAAA,CAAAyC,IAAC,KAAA,CAAA,CAAI,SAAA,CAAWD,EAAG,mBAAA,CAAqB5D,CAAAA,CAAQ,MAAM,CAAA,CACnD,QAAA,CAAAwD,EAAAA,EAAgB,CACnB,EACAK,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAWD,CAAAA,CAAG,iBAAkBpB,CAAAA,EAAU,qBAAA,CAAuBxC,CAAAA,CAAQ,IAAI,EAChF,QAAA,CAAA6D,GAAAA,CAACxD,EAAA,CAAK,IAAA,CAAM,GAAI,CAAA,CAClB,CAAA,CAAA,CACF,CAAA,CAECmC,CAAAA,EACCqB,IAAC,KAAA,CAAA,CACC,GAAA,CAAKlB,EACL,EAAA,CAAId,CAAAA,CACJ,KAAK,SAAA,CACL,SAAA,CAAW+B,CAAAA,CACT,gBAAA,CACA9D,GAAa,0BAAA,CACbc,CAAAA,CAAU,UACVZ,CAAAA,CAAQ,IACV,EACC,GAAGY,CAAAA,CAEH,QAAA,CAAA8C,CAAAA,CAAM,SAAS,GAAA,CAAI3D,CAAAA,CAAWmD,CAAAA,EAAU,CACvC,GAAI,CAACQ,CAAAA,CAAM,cAAA,CAAeR,CAAK,EAAG,OAAO,IAAA,CAEzC,IAAMY,CAAAA,CAAajD,CAAAA,CACf,MAAM,OAAA,CAAQyB,CAAK,CAAA,EAAKA,CAAAA,CAAM,SAASY,CAAAA,CAAM,KAAA,CAAM,KAAK,CAAA,CACxDZ,CAAAA,GAAUY,EAAM,KAAA,CAAM,KAAA,CAE1B,OAAOQ,CAAAA,CAAM,aAAaR,CAAAA,CAAkC,CAC1D,QAAUa,CAAAA,EAAwB,CAChCb,EAAM,KAAA,CAAM,OAAA,GAAUa,CAAC,CAAA,CACvBf,EAAaE,CAAAA,CAAM,KAAA,CAAM,KAAA,CAAOA,CAAK,EACvC,CAAA,CACA,SAAA,CAAWU,CAAAA,CACT,qBAAA,CACAE,GAAc,8BAAA,CACdZ,CAAAA,CAAM,MAAM,SACd,CAAA,CACA,KAAM,QAAA,CACN,eAAA,CAAiBY,CACnB,CAAC,CACH,CAAC,CAAA,CACH,GAEJ,CAEJ,CAAC,EAEDpE,CAAAA,CAAO,WAAA,CAAc,QAAA,CAErB,IAAOsE,GAAQtE,ECrQR,IAAMuE,CAAAA,CAAWtE,WACtB,CAAC,CAAE,UAAA6B,CAAAA,CAAW,QAAA,CAAAzB,EAAU,KAAA,CAAAuC,CAAAA,CAAO,QAAA,CAAA4B,CAAAA,CAAU,SAAAC,CAAAA,CAAU,GAAGvE,CAAM,CAAA,CAAGC,CAAAA,GAE3DgE,IAAC,KAAA,CAAA,CACC,GAAA,CAAKhE,CAAAA,CACL,SAAA,CAAW+D,EACT,qBAAA,CACAO,CAAAA,EAAY,+BACZD,CAAAA,EAAY,8BAAA,CACZ1C,CACF,CAAA,CACC,GAAG5B,CAAAA,CAEH,QAAA,CAAAG,EACH,CAGN,CAAA,CAEAkE,EAAS,WAAA,CAAc,UAAA,KAEhBG,EAAAA,CAAQH","file":"chunk-W4PFQVHM.mjs","sourcesContent":["'use client';\n\nimport React, { forwardRef, useState, useRef, useEffect, useId } from 'react';\nimport { ChevronDown } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { SelectProps, SelectChangeEvent } from './types';\nimport './select.css';\n\nexport const Select = forwardRef<HTMLDivElement, SelectProps>((props, ref) => {\n const {\n autoWidth = false,\n children,\n classes = {},\n defaultOpen = false,\n defaultValue,\n displayEmpty = false,\n fullWidth = false,\n IconComponent: Icon = ChevronDown,\n id: idProp,\n input,\n inputProps = {},\n label,\n labelId,\n MenuProps = {},\n multiple = false,\n native = false,\n onChange,\n onClose,\n onOpen,\n open: openProp,\n renderValue,\n SelectDisplayProps = {},\n sx,\n value: valueProp,\n variant = 'outlined',\n className,\n ...rest\n } = props;\n\n const generatedId = useId();\n const id = idProp || generatedId;\n const menuId = `${id}-menu`;\n \n const [internalValue, setInternalValue] = useState(defaultValue !== undefined ? defaultValue : (multiple ? [] : ''));\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const [focused, setFocused] = useState(false);\n\n const isControlledValue = valueProp !== undefined;\n const value = isControlledValue ? valueProp : internalValue;\n\n const isControlledOpen = openProp !== undefined;\n const isOpen = isControlledOpen ? openProp : internalOpen;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n const handleToggle = (event: React.MouseEvent | React.KeyboardEvent) => {\n if (native) return;\n \n const nextOpen = !isOpen;\n if (!isControlledOpen) {\n setInternalOpen(nextOpen);\n }\n\n if (nextOpen) {\n onOpen?.(event);\n } else {\n onClose?.(event);\n }\n };\n\n const handleClose = (event: any) => {\n if (!isControlledOpen) {\n setInternalOpen(false);\n }\n onClose?.(event);\n };\n\n const handleSelect = (val: any, child?: React.ReactNode) => {\n let newValue = val;\n \n if (multiple) {\n const currentArray = Array.isArray(value) ? value : [];\n if (currentArray.includes(val)) {\n newValue = currentArray.filter((v) => v !== val);\n } else {\n newValue = [...currentArray, val];\n }\n }\n\n if (!isControlledValue) {\n setInternalValue(newValue);\n }\n\n if (onChange) {\n const event: SelectChangeEvent = {\n target: {\n value: newValue,\n name: inputProps.name,\n },\n };\n onChange(event, child);\n }\n\n if (!multiple) {\n handleClose(null);\n }\n };\n\n // Close menu when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n isOpen &&\n containerRef.current &&\n !containerRef.current.contains(event.target as Node) &&\n menuRef.current &&\n !menuRef.current.contains(event.target as Node)\n ) {\n handleClose(event);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen]);\n\n const getDisplayValue = () => {\n if (renderValue) {\n return renderValue(value);\n }\n\n if (multiple && Array.isArray(value)) {\n if (value.length === 0 && displayEmpty) return '';\n return value.join(', ');\n }\n\n if (value === '' || value === undefined || value === null) {\n return displayEmpty ? '' : null;\n }\n\n // Attempt to find the label from children\n let labelFound = value;\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.props.value === value) {\n labelFound = child.props.children;\n }\n });\n\n return labelFound;\n };\n\n if (native) {\n return (\n <div className={cn('ui-select-root', fullWidth && 'ui-select-fullWidth', className, classes.root)} style={sx}>\n {label && (\n <label htmlFor={id} className={cn('ui-select-label', classes.label)}>\n {label}\n </label>\n )}\n <select\n id={id}\n value={value}\n onChange={(e) => handleSelect(e.target.value)}\n className={cn('ui-select-native', classes.native)}\n {...inputProps}\n {...(rest as any)}\n >\n {children}\n </select>\n </div>\n );\n }\n\n return (\n <div\n ref={containerRef}\n className={cn(\n 'ui-select-root',\n fullWidth && 'ui-select-fullWidth',\n className,\n classes.root\n )}\n style={sx}\n >\n {label && (\n <label\n id={labelId}\n className={cn(\n 'ui-select-label',\n focused && 'ui-select-label-focused',\n classes.label\n )}\n >\n {label}\n </label>\n )}\n\n <div\n ref={ref}\n role=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-labelledby={labelId}\n id={id}\n tabIndex={0}\n onClick={handleToggle}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n className={cn(\n 'ui-select-container',\n `ui-select-variant-${variant}`,\n focused && 'ui-select-container-focused',\n isOpen && 'ui-select-container-open',\n classes.container\n )}\n {...SelectDisplayProps}\n >\n <div className={cn('ui-select-display', classes.select)}>\n {getDisplayValue()}\n </div>\n <div className={cn('ui-select-icon', isOpen && 'ui-select-icon-open', classes.icon)}>\n <Icon size={20} />\n </div>\n </div>\n\n {isOpen && (\n <div\n ref={menuRef}\n id={menuId}\n role=\"listbox\"\n className={cn(\n 'ui-select-menu',\n autoWidth && 'ui-select-menu-autoWidth',\n MenuProps.className,\n classes.menu\n )}\n {...MenuProps}\n >\n {React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) return null;\n\n const isSelected = multiple\n ? Array.isArray(value) && value.includes(child.props.value)\n : value === child.props.value;\n\n return React.cloneElement(child as React.ReactElement<any>, {\n onClick: (e: React.MouseEvent) => {\n child.props.onClick?.(e);\n handleSelect(child.props.value, child);\n },\n className: cn(\n 'ui-select-menu-item',\n isSelected && 'ui-select-menu-item-selected',\n child.props.className\n ),\n role: 'option',\n 'aria-selected': isSelected,\n });\n })}\n </div>\n )}\n </div>\n );\n});\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","import React, { forwardRef, HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface MenuItemProps extends HTMLAttributes<HTMLDivElement> {\n value?: any;\n disabled?: boolean;\n selected?: boolean;\n}\n\nexport const MenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n ({ className, children, value, disabled, selected, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'ui-select-menu-item',\n selected && 'ui-select-menu-item-selected',\n disabled && 'ui-select-menu-item-disabled',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nMenuItem.displayName = 'MenuItem';\n\nexport default MenuItem;\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef}from'react';import {Loader2}from'lucide-react';import {cva}from'class-variance-authority';import {jsxs,jsx}from'react/jsx-runtime';var e=cva("ui-button",{variants:{variant:{primary:"ui-button--primary",destructive:"ui-button--destructive",outline:"ui-button--outline",secondary:"ui-button--secondary",ghost:"ui-button--ghost",link:"ui-button--link"},size:{default:"ui-button--size-default",sm:"ui-button--size-sm",md:"ui-button--size-md",lg:"ui-button--size-lg"}},defaultVariants:{variant:"primary",size:"default"}});var m=forwardRef(({as:r,className:i,variant:u,size:a$1,loading:t,children:s,disabled:d,...p},f)=>jsxs(r||"button",{ref:f,disabled:d||t,className:a(e({variant:u,size:a$1,className:i}),t&&"ui-button--loading"),...p,children:[t&&jsx(Loader2,{className:"ui-button-spinner"}),jsx("span",{className:a(t&&"ui-button-content--hidden"),children:s})]}));m.displayName="Button";export{e as a,m as b};//# sourceMappingURL=chunk-WEQINEMX.mjs.map
2
+ //# sourceMappingURL=chunk-WEQINEMX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Button/types.ts","../src/components/Button/Button.tsx"],"names":["buttonVariants","cva","Button","forwardRef","as","className","variant","size","loading","children","disabled","props","ref","jsxs","cn","jsx","Loader2"],"mappings":"2LAGO,IAAMA,CAAAA,CAAiBC,GAAAA,CAC5B,WAAA,CACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,oBAAA,CACT,WAAA,CAAa,wBAAA,CACb,OAAA,CAAS,oBAAA,CACT,SAAA,CAAW,sBAAA,CACX,MAAO,kBAAA,CACP,IAAA,CAAM,iBACR,CAAA,CACA,IAAA,CAAM,CACJ,OAAA,CAAS,yBAAA,CACT,EAAA,CAAI,oBAAA,CACJ,EAAA,CAAI,oBAAA,CACJ,EAAA,CAAI,oBACN,CACF,CAAA,CACA,gBAAiB,CACf,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,ECnBO,IAAMC,CAAAA,CAASC,WAAW,CAC/B,CAAE,EAAA,CAAAC,CAAAA,CAAI,SAAA,CAAAC,CAAAA,CAAW,OAAA,CAAAC,CAAAA,CAAS,IAAA,CAAAC,GAAAA,CAAM,OAAA,CAAAC,CAAAA,CAAS,QAAA,CAAAC,CAAAA,CAAU,QAAA,CAAAC,CAAAA,CAAU,GAAGC,CAAM,CAAA,CACtEC,CAAAA,GAIEC,IAAAA,CAFgBT,CAAAA,EAAM,QAAA,CAErB,CACC,GAAA,CAAKQ,CAAAA,CACL,QAAA,CAAUF,CAAAA,EAAYF,CAAAA,CACtB,SAAA,CAAWM,CAAAA,CAAGd,CAAAA,CAAe,CAAE,OAAA,CAAAM,CAAAA,CAAS,IAAA,CAAAC,GAAAA,CAAM,SAAA,CAAAF,CAAU,CAAC,CAAA,CAAGG,CAAAA,EAAW,oBAAoB,CAAA,CAC1F,GAAGG,CAAAA,CAEH,QAAA,CAAA,CAAAH,CAAAA,EAAWO,GAAAA,CAACC,QAAA,CAAQ,SAAA,CAAU,mBAAA,CAAoB,CAAA,CACnDD,GAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAWD,CAAAA,CAAGN,CAAAA,EAAW,2BAA2B,CAAA,CACvD,QAAA,CAAAC,CAAAA,CACH,CAAA,CAAA,CACF,CAEH,EAEDP,EAAO,WAAA,CAAc,QAAA","file":"chunk-WEQINEMX.mjs","sourcesContent":["import { ComponentPropsWithoutRef, ElementType } from 'react';\nimport { cva, VariantProps } from 'class-variance-authority';\n\nexport const buttonVariants = cva(\n 'ui-button',\n {\n variants: {\n variant: {\n primary: 'ui-button--primary',\n destructive: 'ui-button--destructive',\n outline: 'ui-button--outline',\n secondary: 'ui-button--secondary',\n ghost: 'ui-button--ghost',\n link: 'ui-button--link',\n },\n size: {\n default: 'ui-button--size-default',\n sm: 'ui-button--size-sm',\n md: 'ui-button--size-md',\n lg: 'ui-button--size-lg',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonBaseProps<T extends ElementType = 'button'> extends VariantProps<typeof buttonVariants> {\n as?: T;\n className?: string;\n loading?: boolean;\n}\n\nexport type ButtonProps<T extends ElementType = 'button'> = ButtonBaseProps<T> &\n Omit<ComponentPropsWithoutRef<T>, keyof ButtonBaseProps<T>>;\n","'use client';\n\nimport { forwardRef, ElementType } from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { buttonVariants, ButtonProps } from './types';\nimport './button.css';\n\nexport const Button = forwardRef(<T extends ElementType = 'button'>(\n { as, className, variant, size, loading, children, disabled, ...props }: ButtonProps<T>,\n ref: any\n) => {\n const Component = as || 'button';\n return (\n <Component\n ref={ref}\n disabled={disabled || loading}\n className={cn(buttonVariants({ variant, size, className }), loading && 'ui-button--loading')}\n {...props}\n >\n {loading && <Loader2 className=\"ui-button-spinner\" />}\n <span className={cn(loading && 'ui-button-content--hidden')}>\n {children}\n </span>\n </Component>\n );\n});\n\nButton.displayName = 'Button';\n\nexport default Button;\n"]}
@@ -0,0 +1,3 @@
1
+ 'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var ae=react.forwardRef((k,I)=>{let{autoComplete:z,autoFocus:P,classes:r={},color:T="primary",defaultValue:C,disabled:n=false,error:a=false,fullWidth:N=false,helperText:s,id:L,inputRef:ue,label:p,margin:R="none",maxRows:le,minRows:se,multiline:u=false,name:F,onChange:M,placeholder:$,required:b=false,rows:S,select:pe=false,size:f="medium",slotProps:d={},slots:B={},sx:H,type:m="text",value:W,variant:E="outlined",className:A,onFocus:V,onBlur:j,showPasswordToggle:g=false,toggleIcon:q,untoggleIcon:U,...D}=k,O=react.useId(),l=L||O,x=s?`${l}-helper-text`:void 0,G=p?`${l}-label`:void 0,[h,v]=react.useState(false),[c,J]=react.useState(false),K=e=>{e.preventDefault(),e.stopPropagation(),J(re=>!re);},y=m==="password",Q=y&&g&&c?"text":m,X=jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsxRuntime.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),jsxRuntime.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),Y=jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsxRuntime.jsx("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),jsxRuntime.jsx("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}),Z=e=>{v(true),V?.(e);},_=e=>{v(false),j?.(e);},ee=e=>{M?.(e);},oe=B.root||"div",ie=u?"textarea":"input";return jsxRuntime.jsxs(oe,{className:chunkDDGBDWFC_js.a("ui-input-root",`ui-input-margin-${R}`,N&&"ui-input-fullWidth",A,r.root),style:H,children:[p&&jsxRuntime.jsxs("label",{htmlFor:l,id:G,className:chunkDDGBDWFC_js.a("ui-input-label",h&&"ui-input-label-focused",a&&"ui-input-label-error",n&&"ui-input-label-disabled",r.label),...d.inputLabel,children:[p,b&&jsxRuntime.jsx("span",{className:"ui-input-label-asterisk",children:"*"})]}),jsxRuntime.jsxs("div",{className:chunkDDGBDWFC_js.a("ui-input-container",`ui-input-variant-${E}`,`ui-input-size-${f}`,`ui-input-color-${T}`,h&&"ui-input-container-focused",a&&"ui-input-container-error",n&&"ui-input-container-disabled",u&&"ui-input-container-multiline",r.container),children:[jsxRuntime.jsx(ie,{ref:I,id:l,name:F,type:u?void 0:Q,value:W,defaultValue:C,disabled:n,required:b,autoFocus:P,autoComplete:z,placeholder:$,rows:S,onChange:ee,onFocus:Z,onBlur:_,className:chunkDDGBDWFC_js.a("ui-input-element",u&&"ui-input-textarea",r.input),"aria-describedby":x,"aria-invalid":a,...D,...d.input}),y&&g&&jsxRuntime.jsx("button",{type:"button",className:"ui-input-password-toggle",onClick:K,tabIndex:-1,"aria-label":c?"Hide password":"Show password",children:c?U||Y:q||X})]}),s&&jsxRuntime.jsx("p",{id:x,className:chunkDDGBDWFC_js.a("ui-input-helper-text",`ui-input-helper-text-size-${f}`,a&&"ui-input-helper-text-error",n&&"ui-input-helper-text-disabled",r.helperText),...d.formHelperText,children:s})]})});ae.displayName="Input";
2
+ exports.a=ae;//# sourceMappingURL=chunk-WVZF6FQ7.js.map
3
+ //# sourceMappingURL=chunk-WVZF6FQ7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Input/Input.tsx"],"names":["Input","forwardRef","props","ref","autoComplete","autoFocus","classes","color","defaultValue","disabled","error","fullWidth","helperText","idProp","inputRef","label","margin","maxRows","minRows","multiline","name","onChange","placeholder","required","rows","select","size","slotProps","slots","sx","type","value","variant","className","onFocus","onBlur","showPasswordToggle","toggleIcon","untoggleIcon","rest","generatedId","useId","id","helperTextId","labelId","focused","setFocused","useState","showPassword","setShowPassword","handleTogglePassword","prev","isPassword","actualType","defaultToggleIcon","jsxs","jsx","defaultUntoggleIcon","handleFocus","event","handleBlur","handleChange","Root","InputComponent","cn"],"mappings":"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","file":"chunk-WVZF6FQ7.js","sourcesContent":["'use client';\n\nimport { forwardRef, useState, useId } from 'react';\nimport { cn } from '../../utils/cn';\nimport { InputProps } from './types';\nimport './input.css';\n\nexport const Input = forwardRef<HTMLInputElement | HTMLTextAreaElement, InputProps>((props, ref) => {\n const {\n autoComplete,\n autoFocus,\n classes = {},\n color = 'primary',\n defaultValue,\n disabled = false,\n error = false,\n fullWidth = false,\n helperText,\n id: idProp,\n inputRef,\n label,\n margin = 'none',\n maxRows,\n minRows,\n multiline = false,\n name,\n onChange,\n placeholder,\n required = false,\n rows,\n select = false,\n size = 'medium',\n slotProps = {},\n slots = {},\n sx,\n type = 'text',\n value,\n variant = 'outlined',\n className,\n onFocus,\n onBlur,\n showPasswordToggle = false,\n toggleIcon,\n untoggleIcon,\n ...rest\n } = props;\n\n const generatedId = useId();\n const id = idProp || generatedId;\n const helperTextId = helperText ? `${id}-helper-text` : undefined;\n const labelId = label ? `${id}-label` : undefined;\n\n const [focused, setFocused] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n\n const handleTogglePassword = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setShowPassword((prev) => !prev);\n };\n\n const isPassword = type === 'password';\n const actualType = isPassword && showPasswordToggle && showPassword ? 'text' : type;\n\n const defaultToggleIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n\n const defaultUntoggleIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n );\n\n const handleFocus = (event: any) => {\n setFocused(true);\n onFocus?.(event);\n };\n\n const handleBlur = (event: any) => {\n setFocused(false);\n onBlur?.(event);\n };\n\n const handleChange = (event: any) => {\n onChange?.(event);\n };\n\n const Root = slots.root || 'div';\n const InputComponent = multiline ? 'textarea' : 'input';\n\n return (\n <Root\n className={cn(\n 'ui-input-root',\n `ui-input-margin-${margin}`,\n fullWidth && 'ui-input-fullWidth',\n className,\n classes.root\n )}\n style={sx}\n >\n {label && (\n <label\n htmlFor={id}\n id={labelId}\n className={cn(\n 'ui-input-label',\n focused && 'ui-input-label-focused',\n error && 'ui-input-label-error',\n disabled && 'ui-input-label-disabled',\n classes.label\n )}\n {...slotProps.inputLabel}\n >\n {label}\n {required && <span className=\"ui-input-label-asterisk\">*</span>}\n </label>\n )}\n\n <div\n className={cn(\n 'ui-input-container',\n `ui-input-variant-${variant}`,\n `ui-input-size-${size}`,\n `ui-input-color-${color}`,\n focused && 'ui-input-container-focused',\n error && 'ui-input-container-error',\n disabled && 'ui-input-container-disabled',\n multiline && 'ui-input-container-multiline',\n classes.container\n )}\n >\n <InputComponent\n ref={ref as any}\n id={id}\n name={name}\n type={multiline ? undefined : actualType}\n value={value}\n defaultValue={defaultValue}\n disabled={disabled}\n required={required}\n autoFocus={autoFocus}\n autoComplete={autoComplete}\n placeholder={placeholder}\n rows={rows}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n className={cn(\n 'ui-input-element',\n multiline && 'ui-input-textarea',\n classes.input\n )}\n aria-describedby={helperTextId}\n aria-invalid={error}\n {...(rest as any)}\n {...slotProps.input}\n />\n {isPassword && showPasswordToggle && (\n <button\n type=\"button\"\n className=\"ui-input-password-toggle\"\n onClick={handleTogglePassword}\n tabIndex={-1}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n >\n {showPassword ? (untoggleIcon || defaultUntoggleIcon) : (toggleIcon || defaultToggleIcon)}\n </button>\n )}\n </div>\n\n {helperText && (\n <p\n id={helperTextId}\n className={cn(\n 'ui-input-helper-text',\n `ui-input-helper-text-size-${size}`,\n error && 'ui-input-helper-text-error',\n disabled && 'ui-input-helper-text-disabled',\n classes.helperText\n )}\n {...slotProps.formHelperText}\n >\n {helperText}\n </p>\n )}\n </Root>\n );\n});\n\nInput.displayName = 'Input';\n\nexport default Input;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var G=react.forwardRef(({checked:h,checkedIcon:k,classes:c={},color:n="primary",defaultChecked:m,disabled:o=false,disableRipple:J=false,edge:d=false,icon:w,id:f,onChange:l,required:g=false,size:x="medium",slotProps:e={},slots:r={},sx:y,value:C,className:S,...z},B)=>{let[N,v]=react.useState(m||false),s=h!==void 0,i=s?h:N,E=react.useCallback(p=>{let u=p.target.checked;s||v(u),l?.(p,u);},[s,l]),T=r.root||"span",R=r.track||"span",$=r.thumb||"span",I=r.input||"input",M=r.switchBase||"span",H=chunkDDGBDWFC_js.a("orc-switch",`orc-switch--${x}`,d&&`orc-switch--edge-${d}`,o&&"orc-switch--disabled",i&&"orc-switch--checked",S,c.root),L=chunkDDGBDWFC_js.a("orc-switch-base",`orc-switch--${n}`,i&&"orc-switch--checked",i&&c.checked,o&&"orc-switch--disabled",o&&c.disabled,c.switchBase),j=chunkDDGBDWFC_js.a("orc-switch-thumb",c.thumb),q=chunkDDGBDWFC_js.a("orc-switch-track",`orc-switch--${n}`,c.track),Y=chunkDDGBDWFC_js.a("orc-switch-input",c.input);return jsxRuntime.jsxs(T,{ref:B,className:H,style:y,...e.root,...z,children:[jsxRuntime.jsxs(M,{className:L,...e.switchBase,children:[jsxRuntime.jsx($,{className:j,...e.thumb,children:i&&k||w}),jsxRuntime.jsx(I,{type:"checkbox",id:f,checked:i,onChange:E,disabled:o,required:g,value:C,className:Y,...e.input})]}),jsxRuntime.jsx(R,{className:q,...e.track})]})});G.displayName="Switch";exports.a=G;//# sourceMappingURL=chunk-YKQKLQNI.js.map
2
+ //# sourceMappingURL=chunk-YKQKLQNI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Switch/Switch.tsx"],"names":["Switch","forwardRef","checkedProp","checkedIcon","classes","color","defaultChecked","disabled","disableRipple","edge","icon","id","onChange","required","size","slotProps","slots","sx","value","className","props","ref","checkedState","setCheckedState","useState","isControlled","checked","handleInputChange","useCallback","event","newChecked","Root","Track","Thumb","Input","SwitchBase","rootClasses","cn","switchBaseClasses","thumbClasses","trackClasses","inputClasses","jsxs","jsx"],"mappings":"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","file":"chunk-YKQKLQNI.js","sourcesContent":["'use client';\n\nimport { forwardRef, useState, ChangeEvent, useCallback } from 'react';\nimport { cn } from '../../utils/cn';\nimport { SwitchProps } from './types';\nimport './switch.css';\n\nexport const Switch = forwardRef<HTMLSpanElement, SwitchProps>(\n (\n {\n checked: checkedProp,\n checkedIcon,\n classes = {},\n color = 'primary',\n defaultChecked,\n disabled = false,\n disableRipple = false,\n edge = false,\n icon,\n id,\n onChange,\n required = false,\n size = 'medium',\n slotProps = {},\n slots = {},\n sx,\n value,\n className,\n ...props\n },\n ref\n ) => {\n const [checkedState, setCheckedState] = useState(defaultChecked || false);\n const isControlled = checkedProp !== undefined;\n const checked = isControlled ? checkedProp : checkedState;\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const newChecked = event.target.checked;\n if (!isControlled) {\n setCheckedState(newChecked);\n }\n onChange?.(event, newChecked);\n },\n [isControlled, onChange]\n );\n\n const Root = slots.root || 'span';\n const Track = slots.track || 'span';\n const Thumb = slots.thumb || 'span';\n const Input = slots.input || 'input';\n const SwitchBase = slots.switchBase || 'span';\n\n const rootClasses = cn(\n 'orc-switch',\n `orc-switch--${size}`,\n edge && `orc-switch--edge-${edge}`,\n disabled && 'orc-switch--disabled',\n checked && 'orc-switch--checked',\n className,\n classes.root\n );\n\n const switchBaseClasses = cn(\n 'orc-switch-base',\n `orc-switch--${color}`,\n checked && 'orc-switch--checked',\n checked && classes.checked,\n disabled && 'orc-switch--disabled',\n disabled && classes.disabled,\n classes.switchBase\n );\n\n const thumbClasses = cn('orc-switch-thumb', classes.thumb);\n const trackClasses = cn('orc-switch-track', `orc-switch--${color}`, classes.track);\n const inputClasses = cn('orc-switch-input', classes.input);\n\n return (\n <Root\n ref={ref}\n className={rootClasses}\n style={sx}\n {...slotProps.root}\n {...props}\n >\n <SwitchBase className={switchBaseClasses} {...slotProps.switchBase}>\n <Thumb className={thumbClasses} {...slotProps.thumb}>\n {checked ? checkedIcon || icon : icon}\n </Thumb>\n <Input\n type=\"checkbox\"\n id={id}\n checked={checked}\n onChange={handleInputChange}\n disabled={disabled}\n required={required}\n value={value}\n className={inputClasses}\n {...slotProps.input}\n />\n </SwitchBase>\n <Track className={trackClasses} {...slotProps.track} />\n </Root>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n"]}
@@ -0,0 +1,3 @@
1
+ import {forwardRef,useEffect,useRef,useImperativeHandle,useState}from'react';import {toast}from'react-toastify';import {jsxs,jsx}from'react/jsx-runtime';var _=forwardRef((A,C)=>{let{label:N,required:j,error:d,accept:k=".pdf,.doc,.docx",maxSizeMB:U=10,disabled:c,uploadType:E,multiple:u,value:l,onChange:m,onDelete:z,previewUrl:I,previewUrls:R,existingFileUrl:b,existingFileName:y,editMode:$=true,viewMode:M=false,className:P="",style:O}=A;useEffect(()=>{let e="tabler-icons-cdn";if(!document.getElementById(e)){let t=document.createElement("link");t.id=e,t.rel="stylesheet",t.href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/dist/tabler-icons.min.css",document.head.appendChild(t);}},[]);let p=Array.isArray(b)?b:b?[b]:[],T=Array.isArray(l)?l:l?[l]:[],w=[...p,...T],g=c||M||!$,F=useRef(null);useImperativeHandle(C,()=>F.current);let[s,x]=useState([]);useEffect(()=>()=>{s.forEach(e=>{e.startsWith("blob:")&&URL.revokeObjectURL(e);});},[s]);let W=e=>{if(g)return;let t=e.target.files;if(!t||t.length===0)return;let a=Array.from(t),i=[],r=[];for(let n of a){if(n.size>U*1024*1024){toast.error(`File "${n.name}" exceeds the maximum size of ${U}MB`);continue}i.push(n),r.push(URL.createObjectURL(n));}if(i.length===0){e.target.value="";return}if(u){x(v=>[...v,...r]);let h=[...Array.isArray(l)?l:[],...i];m?.(h);}else s[0]?.startsWith("blob:")&&URL.revokeObjectURL(s[0]),x(r),m?.(i[0]);e.target.value="";},H=e=>{if(g)return;if(e<p.length){z?.(e);return}let a=e-p.length;if(u){let i=Array.isArray(l)?[...l]:[];i.splice(a,1),m?.(i.length>0?i:null);let r=[...s];r[a]?.startsWith("blob:")&&URL.revokeObjectURL(r[a]),r.splice(a,1),x(r);}else m?.(null),s[0]?.startsWith("blob:")&&URL.revokeObjectURL(s[0]),x([]);z?.(e);},q=(e,t)=>{t<p.length;let i=typeof e=="string"?(Array.isArray(y)?y[t]:y)||"Uploaded Document":e.name,r=t-p.length,n=typeof e=="string"?e:s[r]||(Array.isArray(R)?R[r]:I),h=i.toLowerCase().endsWith(".pdf")||typeof e!="string"&&e.type==="application/pdf",v=E==="image"||i.toLowerCase().match(/\.(jpg|jpeg|png|gif|webp)$/i);return jsxs("div",{className:"fuf-preview-item",children:[jsxs("div",{className:"fuf-file-info",children:[v&&n?jsx("img",{className:"fuf-thumbnail",src:n,alt:i}):h?jsx("i",{className:"ti ti-file-type-pdf fuf-file-icon pdf"}):jsx("i",{className:"ti ti-file fuf-file-icon general"}),jsx("span",{className:"fuf-file-name",title:i,children:i})]}),jsxs("div",{className:"fuf-actions",children:[(h||v)&&n&&jsx("button",{type:"button",className:"fuf-action-btn view",onClick:()=>window.open(n,"_blank"),title:"View",children:jsx("i",{className:"ti ti-eye"})}),!g&&jsx("button",{type:"button",className:"fuf-action-btn remove",onClick:()=>H(t),title:"Remove",children:jsx("i",{className:"ti ti-x"})})]})]},`${i}-${t}`)};return jsxs("div",{className:`fuf-root ${P}`,style:O,children:[N&&jsxs("label",{className:`fuf-label ${d?"error":""}`,children:[N," ",j&&jsx("span",{className:"fuf-required",children:"*"})]}),(!w.length||u)&&!g&&jsxs("div",{className:`fuf-dropzone ${d?"error":""} ${c?"disabled":""}`,onClick:()=>!c&&F.current?.click(),children:[jsx("i",{className:"ti ti-upload fuf-upload-icon"}),jsx("span",{className:"fuf-upload-text",children:c?"Upload disabled":"Click to upload"}),jsxs("span",{className:"fuf-format-text",children:["(Supported formats: ",k.replace(/\./g,"").toUpperCase(),")"]}),jsx("input",{type:"file",className:"fuf-hidden-input",ref:F,onChange:W,accept:k,disabled:c,multiple:u})]}),w.length>0&&jsx("div",{className:"fuf-preview-list",children:w.map((e,t)=>q(e,t))}),d&&jsx("span",{className:"fuf-error-message",children:d})]})});_.displayName="FileUploadField";
2
+ export{_ as a};//# sourceMappingURL=chunk-ZO6I27MY.mjs.map
3
+ //# sourceMappingURL=chunk-ZO6I27MY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/FileUploadField/FileUploadField.tsx"],"names":["FileUploadField","forwardRef","props","ref","label","required","error","accept","maxSizeMB","disabled","uploadType","multiple","value","onChange","onDelete","previewUrl","previewUrls","existingFileUrl","existingFileName","editMode","viewMode","className","style","useEffect","cdnId","link","existingFiles","currentFiles","filesToRender","isReadOnly","inputRef","useRef","useImperativeHandle","internalPreviews","setInternalPreviews","useState","url","handleFileChange","files","fileList","validFiles","newPreviews","file","toast","prev","updatedFiles","handleRemove","index","currentFileIndex","currentPreviews","renderFileRow","fileName","fileUrl","isPdf","isImage","jsxs","jsx","idx"],"mappings":"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","file":"chunk-ZO6I27MY.mjs","sourcesContent":["'use client';\n\nimport React, { forwardRef, useImperativeHandle, useRef, useState, useEffect } from 'react';\nimport { toast } from 'react-toastify';\nimport { FileUploadFieldProps } from './FileUploadField.types';\nimport './FileUploadField.css';\n\n/**\n * FileUploadField component for single or multiple file uploads with preview support.\n * Built with Vanilla CSS and Tabler Icons (CDN).\n */\nexport const FileUploadField = forwardRef<HTMLInputElement, FileUploadFieldProps>((props, ref) => {\n const {\n label,\n required,\n error,\n accept = '.pdf,.doc,.docx',\n maxSizeMB = 10,\n disabled,\n uploadType,\n multiple,\n value,\n onChange,\n onDelete,\n previewUrl,\n previewUrls,\n existingFileUrl,\n existingFileName,\n editMode = true,\n viewMode = false,\n className = '',\n style,\n } = props;\n\n // Inject Tabler Icons CDN if not present\n useEffect(() => {\n const cdnId = 'tabler-icons-cdn';\n if (!document.getElementById(cdnId)) {\n const link = document.createElement('link');\n link.id = cdnId;\n link.rel = 'stylesheet';\n link.href = 'https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/dist/tabler-icons.min.css';\n document.head.appendChild(link);\n }\n }, []);\n\n const existingFiles = Array.isArray(existingFileUrl) \n ? existingFileUrl \n : existingFileUrl ? [existingFileUrl] : [];\n\n const currentFiles = Array.isArray(value) \n ? value \n : value ? [value] : [];\n\n const filesToRender = [...existingFiles, ...currentFiles];\n const isReadOnly = disabled || viewMode || !editMode;\n\n const inputRef = useRef<HTMLInputElement>(null);\n useImperativeHandle(ref, () => inputRef.current!);\n\n const [internalPreviews, setInternalPreviews] = useState<string[]>([]);\n\n // Cleanup object URLs on unmount\n useEffect(() => {\n return () => {\n internalPreviews.forEach((url) => {\n if (url.startsWith('blob:')) {\n URL.revokeObjectURL(url);\n }\n });\n };\n }, [internalPreviews]);\n\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isReadOnly) return;\n const files = e.target.files;\n if (!files || files.length === 0) return;\n\n const fileList = Array.from(files);\n const validFiles: File[] = [];\n const newPreviews: string[] = [];\n\n for (const file of fileList) {\n if (file.size > maxSizeMB * 1024 * 1024) {\n toast.error(`File \"${file.name}\" exceeds the maximum size of ${maxSizeMB}MB`);\n continue;\n }\n validFiles.push(file);\n newPreviews.push(URL.createObjectURL(file));\n }\n\n if (validFiles.length === 0) {\n e.target.value = '';\n return;\n }\n\n if (multiple) {\n setInternalPreviews((prev) => [...prev, ...newPreviews]);\n const currentFiles = Array.isArray(value) ? value : [];\n const updatedFiles = [...currentFiles, ...validFiles];\n (onChange as (files: File[] | null) => void)?.(updatedFiles);\n } else {\n if (internalPreviews[0]?.startsWith('blob:')) {\n URL.revokeObjectURL(internalPreviews[0]);\n }\n setInternalPreviews(newPreviews);\n (onChange as (file: File | null) => void)?.(validFiles[0]);\n }\n \n e.target.value = '';\n };\n\n const handleRemove = (index: number) => {\n if (isReadOnly) return;\n\n const isExisting = index < existingFiles.length;\n if (isExisting) {\n onDelete?.(index);\n return;\n }\n\n const currentFileIndex = index - existingFiles.length;\n\n if (multiple) {\n const currentFiles = Array.isArray(value) ? [...value] : [];\n currentFiles.splice(currentFileIndex, 1);\n (onChange as (files: File[] | null) => void)?.(currentFiles.length > 0 ? currentFiles : null);\n \n const currentPreviews = [...internalPreviews];\n if (currentPreviews[currentFileIndex]?.startsWith('blob:')) {\n URL.revokeObjectURL(currentPreviews[currentFileIndex]);\n }\n currentPreviews.splice(currentFileIndex, 1);\n setInternalPreviews(currentPreviews);\n } else {\n (onChange as (file: File | null) => void)?.(null);\n if (internalPreviews[0]?.startsWith('blob:')) {\n URL.revokeObjectURL(internalPreviews[0]);\n }\n setInternalPreviews([]);\n }\n onDelete?.(index);\n };\n\n const renderFileRow = (file: File | string, index: number) => {\n const isExisting = index < existingFiles.length;\n const fileName = typeof file === 'string' \n ? (Array.isArray(existingFileName) ? existingFileName[index] : existingFileName) || 'Uploaded Document'\n : file.name;\n \n const currentFileIndex = index - existingFiles.length;\n const fileUrl = typeof file === 'string' \n ? file \n : internalPreviews[currentFileIndex] || (Array.isArray(previewUrls) ? previewUrls[currentFileIndex] : previewUrl);\n \n const isPdf = fileName.toLowerCase().endsWith('.pdf') || (typeof file !== 'string' && file.type === 'application/pdf');\n const isImage = uploadType === 'image' || fileName.toLowerCase().match(/\\.(jpg|jpeg|png|gif|webp)$/i);\n\n return (\n <div className=\"fuf-preview-item\" key={`${fileName}-${index}`}>\n <div className=\"fuf-file-info\">\n {isImage && fileUrl ? (\n <img className=\"fuf-thumbnail\" src={fileUrl} alt={fileName} />\n ) : isPdf ? (\n <i className=\"ti ti-file-type-pdf fuf-file-icon pdf\"></i>\n ) : (\n <i className=\"ti ti-file fuf-file-icon general\"></i>\n )}\n <span className=\"fuf-file-name\" title={fileName}>\n {fileName}\n </span>\n </div>\n <div className=\"fuf-actions\">\n {(isPdf || isImage) && fileUrl && (\n <button\n type=\"button\"\n className=\"fuf-action-btn view\"\n onClick={() => window.open(fileUrl, '_blank')}\n title=\"View\"\n >\n <i className=\"ti ti-eye\"></i>\n </button>\n )}\n {!isReadOnly && (\n <button\n type=\"button\"\n className=\"fuf-action-btn remove\"\n onClick={() => handleRemove(index)}\n title=\"Remove\"\n >\n <i className=\"ti ti-x\"></i>\n </button>\n )}\n </div>\n </div>\n );\n };\n\n return (\n <div className={`fuf-root ${className}`} style={style}>\n {label && (\n <label className={`fuf-label ${error ? 'error' : ''}`}>\n {label} {required && <span className=\"fuf-required\">*</span>}\n </label>\n )}\n\n {(!filesToRender.length || multiple) && !isReadOnly && (\n <div \n className={`fuf-dropzone ${error ? 'error' : ''} ${disabled ? 'disabled' : ''}`}\n onClick={() => !disabled && inputRef.current?.click()}\n >\n <i className=\"ti ti-upload fuf-upload-icon\"></i>\n <span className=\"fuf-upload-text\">\n {disabled ? 'Upload disabled' : 'Click to upload'}\n </span>\n <span className=\"fuf-format-text\">\n (Supported formats: {accept.replace(/\\./g, '').toUpperCase()})\n </span>\n <input\n type=\"file\"\n className=\"fuf-hidden-input\"\n ref={inputRef}\n onChange={handleFileChange}\n accept={accept}\n disabled={disabled}\n multiple={multiple}\n />\n </div>\n )}\n\n {filesToRender.length > 0 && (\n <div className=\"fuf-preview-list\">\n {filesToRender.map((file, idx) => renderFileRow(file, idx))}\n </div>\n )}\n\n {error && (\n <span className=\"fuf-error-message\">\n {error}\n </span>\n )}\n </div>\n );\n});\n\nFileUploadField.displayName = 'FileUploadField';\n"]}