automoby-kit 1.0.9 → 1.0.10

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 (85) hide show
  1. package/dist/cjs/Accordion.js +1 -0
  2. package/dist/cjs/Accordion.js.map +1 -0
  3. package/dist/cjs/Backdrop.js +1 -0
  4. package/dist/cjs/Backdrop.js.map +1 -0
  5. package/dist/cjs/Breadcrumb.js +1 -0
  6. package/dist/cjs/Breadcrumb.js.map +1 -0
  7. package/dist/cjs/Button.js +1 -0
  8. package/dist/cjs/Button.js.map +1 -0
  9. package/dist/cjs/Chips.js +1 -0
  10. package/dist/cjs/Chips.js.map +1 -0
  11. package/dist/cjs/Divider.js +1 -0
  12. package/dist/cjs/Divider.js.map +1 -0
  13. package/dist/cjs/Drawer.js +1 -0
  14. package/dist/cjs/Drawer.js.map +1 -0
  15. package/dist/cjs/Input.js +1 -0
  16. package/dist/cjs/Input.js.map +1 -0
  17. package/dist/cjs/Menu.js +1 -0
  18. package/dist/cjs/Menu.js.map +1 -0
  19. package/dist/cjs/Pagination.js +1 -0
  20. package/dist/cjs/Pagination.js.map +1 -0
  21. package/dist/cjs/ProtectedComponent.js +1 -0
  22. package/dist/cjs/ProtectedComponent.js.map +1 -0
  23. package/dist/cjs/RadioGroup.js +1 -0
  24. package/dist/cjs/RadioGroup.js.map +1 -0
  25. package/dist/cjs/Tabs.js +1 -0
  26. package/dist/cjs/Tabs.js.map +1 -0
  27. package/dist/cjs/Typography.js +1 -0
  28. package/dist/cjs/Typography.js.map +1 -0
  29. package/dist/cjs/chunks/chevron-left-Do__K6cA.js +1 -0
  30. package/dist/cjs/chunks/chevron-left-Do__K6cA.js.map +1 -0
  31. package/dist/cjs/chunks/createLucideIcon-BqJVOzoK.js +1 -0
  32. package/dist/cjs/chunks/createLucideIcon-BqJVOzoK.js.map +1 -0
  33. package/dist/cjs/chunks/jsx-runtime-Bgd4cJfV.js +1 -0
  34. package/dist/cjs/chunks/jsx-runtime-Bgd4cJfV.js.map +1 -0
  35. package/dist/cjs/contexts.js +1 -0
  36. package/dist/cjs/contexts.js.map +1 -0
  37. package/dist/cjs/index.js +1 -0
  38. package/dist/cjs/index.js.map +1 -0
  39. package/dist/cjs/licensing.js +1 -0
  40. package/dist/cjs/licensing.js.map +1 -0
  41. package/dist/cjs/utils.js +1 -0
  42. package/dist/cjs/utils.js.map +1 -0
  43. package/dist/esm/Accordion.js +1 -0
  44. package/dist/esm/Accordion.js.map +1 -0
  45. package/dist/esm/Backdrop.js +1 -0
  46. package/dist/esm/Backdrop.js.map +1 -0
  47. package/dist/esm/Breadcrumb.js +1 -0
  48. package/dist/esm/Breadcrumb.js.map +1 -0
  49. package/dist/esm/Button.js +1 -0
  50. package/dist/esm/Button.js.map +1 -0
  51. package/dist/esm/Chips.js +1 -0
  52. package/dist/esm/Chips.js.map +1 -0
  53. package/dist/esm/Divider.js +1 -0
  54. package/dist/esm/Divider.js.map +1 -0
  55. package/dist/esm/Drawer.js +1 -0
  56. package/dist/esm/Drawer.js.map +1 -0
  57. package/dist/esm/Input.js +1 -0
  58. package/dist/esm/Input.js.map +1 -0
  59. package/dist/esm/Menu.js +1 -0
  60. package/dist/esm/Menu.js.map +1 -0
  61. package/dist/esm/Pagination.js +1 -0
  62. package/dist/esm/Pagination.js.map +1 -0
  63. package/dist/esm/ProtectedComponent.js +1 -0
  64. package/dist/esm/ProtectedComponent.js.map +1 -0
  65. package/dist/esm/RadioGroup.js +1 -0
  66. package/dist/esm/RadioGroup.js.map +1 -0
  67. package/dist/esm/Tabs.js +1 -0
  68. package/dist/esm/Tabs.js.map +1 -0
  69. package/dist/esm/Typography.js +1 -0
  70. package/dist/esm/Typography.js.map +1 -0
  71. package/dist/esm/chunks/chevron-left-4HSuTes3.js +1 -0
  72. package/dist/esm/chunks/chevron-left-4HSuTes3.js.map +1 -0
  73. package/dist/esm/chunks/createLucideIcon-DGp0SoUT.js +1 -0
  74. package/dist/esm/chunks/createLucideIcon-DGp0SoUT.js.map +1 -0
  75. package/dist/esm/chunks/jsx-runtime-DZXOD2H9.js +1 -0
  76. package/dist/esm/chunks/jsx-runtime-DZXOD2H9.js.map +1 -0
  77. package/dist/esm/contexts.js +1 -0
  78. package/dist/esm/contexts.js.map +1 -0
  79. package/dist/esm/index.js +1 -0
  80. package/dist/esm/index.js.map +1 -0
  81. package/dist/esm/licensing.js +1 -0
  82. package/dist/esm/licensing.js.map +1 -0
  83. package/dist/esm/utils.js +1 -0
  84. package/dist/esm/utils.js.map +1 -0
  85. package/package.json +1 -2
@@ -1 +1,2 @@
1
1
  "use client";"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var i,e=require("./chunks/jsx-runtime-Bgd4cJfV.js"),t=require("react"),o="user-agent",r="",a="function",s="undefined",n="object",w="string",b="browser",d="cpu",l="device",c="engine",u="os",h="result",p="name",m="type",f="vendor",g="version",v="architecture",k="major",x="model",y="console",C="mobile",A="tablet",_="smarttv",S="wearable",I="xr",U="embedded",q="inapp",P="brands",z="formFactors",H="fullVersionList",T="platform",j="platformVersion",M="bitness",O="sec-ch-ua",D=O+"-full-version-list",E=O+"-arch",V=O+"-"+M,B=O+"-form-factors",R=O+"-"+C,W=O+"-"+x,N=O+"-"+T,F=N+"-version",L=[P,H,C,x,T,j,v,z,M],G="Amazon",$="Apple",X="ASUS",Y="BlackBerry",K="Google",Q="Huawei",Z="Lenovo",J="Honor",ii="LG",ei="Microsoft",ti="Motorola",oi="Nvidia",ri="OnePlus",ai="OPPO",si="Samsung",ni="Sharp",wi="Sony",bi="Xiaomi",di="Zebra",li="Chrome",ci="Chromium",ui="Chromecast",hi="Edge",pi="Firefox",mi="Opera",fi="Facebook",gi="Sogou",vi="Mobile ",ki=" Browser",xi="Windows",yi=typeof window!==s&&window.navigator?window.navigator:void 0,Ci=yi&&yi.userAgentData?yi.userAgentData:void 0,enumerize=function(i){for(var e={},t=0;t<i.length;t++)e[i[t].toUpperCase()]=i[t];return e},has=function(i,e){if(typeof i===n&&i.length>0){for(var t in i)if(lowerize(e)==lowerize(i[t]))return!0;return!1}return!!isString(i)&&lowerize(e)==lowerize(i)},isExtensions=function(i,e){for(var t in i)return/^(browser|cpu|device|engine|os)$/.test(t)||!!e&&isExtensions(i[t])},isString=function(i){return typeof i===w},itemListToArray=function(i){if(i){for(var e=[],t=strip(/\\?\"/g,i).split(","),o=0;o<t.length;o++)if(t[o].indexOf(";")>-1){var r=trim(t[o]).split(";v=");e[o]={brand:r[0],version:r[1]}}else e[o]=trim(t[o]);return e}},lowerize=function(i){return isString(i)?i.toLowerCase():i},majorize=function(i){return isString(i)?strip(/[^\d\.]/g,i).split(".")[0]:void 0},setProps=function(i){for(var e in i){var t=i[e];typeof t==n&&2==t.length?this[t[0]]=t[1]:this[t]=void 0}return this},strip=function(i,e){return isString(e)?e.replace(i,r):e},stripQuotes=function(i){return strip(/\\?\"/g,i)},trim=function(i,e){if(isString(i))return i=strip(/^\s\s*/,i),typeof e===s?i:i.substring(0,500)},rgxMapper=function(i,e){if(i&&e)for(var t,o,r,s,w,b,d=0;d<e.length&&!w;){var l=e[d],c=e[d+1];for(t=o=0;t<l.length&&!w&&l[t];)if(w=l[t++].exec(i))for(r=0;r<c.length;r++)b=w[++o],typeof(s=c[r])===n&&s.length>0?2===s.length?typeof s[1]==a?this[s[0]]=s[1].call(this,b):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]!==a||s[1].exec&&s[1].test?3==s.length?this[s[0]]=b?b.replace(s[1],s[2]):void 0:4==s.length?this[s[0]]=b?s[3].call(this,b.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=b?s[3].apply(this,[b.replace(s[1],s[2])].concat(s.slice(4))):void 0):s.length>3?this[s[0]]=b?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=b?s[1].call(this,b,s[2]):void 0):this[s]=b||void 0;d+=2}},strMapper=function(i,e){for(var t in e)if(typeof e[t]===n&&e[t].length>0){for(var o=0;o<e[t].length;o++)if(has(e[t][o],i))return"?"===t?void 0:t}else if(has(e[t],i))return"?"===t?void 0:t;return e.hasOwnProperty("*")?e["*"]:i},Ai={ME:"4.90","NT 3.51":"3.51","NT 4.0":"4.0",2e3:["5.0","5.01"],XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2",8.1:"6.3",10:["6.4","10.0"],NT:""},_i={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Si={Chrome:"Google Chrome",Edge:"Microsoft Edge","Edge WebView2":"Microsoft Edge WebView2","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome","Huawei Browser":"HuaweiBrowser","MIUI Browser":"Miui Browser","Opera Mobi":"OperaMobile",Yandex:"YaBrowser"},Ii={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[g,[p,vi+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[g,[p,hi+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[g,[p,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[p,g],[/opios[\/ ]+([\w\.]+)/i],[g,[p,mi+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[g,[p,mi+" GX"]],[/\bopr\/([\w\.]+)/i],[g,[p,mi]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[g,[p,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[g,[p,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser)\/([-\w\.]+)/i,/(heytap|ovi|115|surf)browser\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[p,g],[/quark(?:pc)?\/([-\w\.]+)/i],[g,[p,"Quark"]],[/\bddg\/([\w\.]+)/i],[g,[p,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[g,[p,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[g,[p,"WeChat"]],[/konqueror\/([\w\.]+)/i],[g,[p,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[g,[p,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[g,[p,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[g,[p,"Smart "+Z+ki]],[/(avast|avg)\/([\w\.]+)/i],[[p,/(.+)/,"$1 Secure"+ki],g],[/\bfocus\/([\w\.]+)/i],[g,[p,pi+" Focus"]],[/\bopt\/([\w\.]+)/i],[g,[p,mi+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[g,[p,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[g,[p,"Dolphin"]],[/coast\/([\w\.]+)/i],[g,[p,mi+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[g,[p,"MIUI"+ki]],[/fxios\/([\w\.-]+)/i],[g,[p,vi+pi]],[/\bqihoobrowser\/?([\w\.]*)/i],[g,[p,"360"]],[/\b(qq)\/([\w\.]+)/i],[[p,/(.+)/,"$1Browser"],g],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[p,/(.+)/,"$1"+ki],g],[/samsungbrowser\/([\w\.]+)/i],[g,[p,si+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[g,[p,gi+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[p,gi+" Mobile"],g],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[p,g],[/(lbbrowser|rekonq)/i],[p],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[g,p],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[p,fi],g,[m,q]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[p,g,[m,q]],[/\bgsa\/([\w\.]+) .*safari\//i],[g,[p,"GSA"],[m,q]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[g,[p,"TikTok"],[m,q]],[/\[(linkedin)app\]/i],[p,[m,q]],[/(chromium)[\/ ]([-\w\.]+)/i],[p,g],[/headlesschrome(?:\/([\w\.]+)| )/i],[g,[p,li+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[g,[p,hi+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[p,li+" WebView"],g],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[g,[p,"Android"+ki]],[/chrome\/([\w\.]+) mobile/i],[g,[p,vi+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[p,g],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[g,[p,vi+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[p,vi+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[g,p],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[p,[g,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[p,g],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[p,vi+pi],g],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[p,"Netscape"],g],[/(wolvic|librewolf)\/([\w\.]+)/i],[p,g],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[g,[p,pi+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[p,[g,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[p,[g,/[^\d\.]+./,r]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[v,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[v,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[v,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[v,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[v,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[v,/ower/,r,lowerize]],[/ sun4\w[;\)]/i],[[v,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[v,lowerize]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[x,[f,si],[m,A]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[x,[f,si],[m,C]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[x,[f,$],[m,C]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[x,[f,$],[m,A]],[/(macintosh);/i],[x,[f,$]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[x,[f,ni],[m,C]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[x,[f,J],[m,A]],[/honor([-\w ]+)[;\)]/i],[x,[f,J],[m,C]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[x,[f,Q],[m,A]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[x,[f,Q],[m,C]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[x,/_/g," "],[f,bi],[m,A]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[x,/_/g," "],[f,bi],[m,C]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[x,[f,ri],[m,C]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[x,[f,ai],[m,C]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[x,[f,strMapper,{OnePlus:["203","304","403","404","413","415"],"*":ai}],[m,A]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[x,[f,"BLU"],[m,C]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[x,[f,"Vivo"],[m,C]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[x,[f,"Realme"],[m,C]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[x,[f,Z],[m,A]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[x,[f,Z],[m,C]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[x,[f,ti],[m,C]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[x,[f,ti],[m,A]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[x,[f,ii],[m,A]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[x,[f,ii],[m,C]],[/(nokia) (t[12][01])/i],[f,x,[m,A]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[x,/_/g," "],[m,C],[f,"Nokia"]],[/(pixel (c|tablet))\b/i],[x,[f,K],[m,A]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[x,[f,K],[m,C]],[/(google) (pixelbook( go)?)/i],[f,x],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[x,[f,wi],[m,C]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[x,"Xperia Tablet"],[f,wi],[m,A]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[x,[f,G],[m,A]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[x,/(.+)/g,"Fire Phone $1"],[f,G],[m,C]],[/(playbook);[-\w\),; ]+(rim)/i],[x,f,[m,A]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[x,[f,Y],[m,C]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[x,[f,X],[m,A]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[x,[f,X],[m,C]],[/(nexus 9)/i],[x,[f,"HTC"],[m,A]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[f,[x,/_/g," "],[m,C]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[x,[f,"TCL"],[m,A]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[x,[f,"TCL"],[m,C]],[/(itel) ((\w+))/i],[[f,lowerize],x,[m,strMapper,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[x,[f,"Acer"],[m,A]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[x,[f,"Meizu"],[m,C]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[x,[f,"Ulefone"],[m,C]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[x,[f,"Energizer"],[m,C]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[x,[f,"Cat"],[m,C]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[x,[f,"Smartfren"],[m,C]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[x,[f,"Nothing"],[m,C]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[x,[f,"Archos"],[m,A]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[x,[f,"Archos"],[m,C]],[/; (n159v)/i],[x,[f,"HMD"],[m,C]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[f,x,[m,A]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|hmd|imo|infinix|lava|oneplus|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i],[f,x,[m,C]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[f,x,[m,A]],[/(surface duo)/i],[x,[f,ei],[m,A]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[x,[f,"Fairphone"],[m,C]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[x,[f,oi],[m,A]],[/(sprint) (\w+)/i],[f,x,[m,C]],[/(kin\.[onetw]{3})/i],[[x,/\./g," "],[f,ei],[m,C]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[x,[f,di],[m,A]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[x,[f,di],[m,C]],[/smart-tv.+(samsung)/i],[f,[m,_]],[/hbbtv.+maple;(\d+)/i],[[x,/^/,"SmartTV"],[f,si],[m,_]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[f,x,[m,_]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[f,ii],[m,_]],[/(apple) ?tv/i],[f,[x,$+" TV"],[m,_]],[/crkey.*devicetype\/chromecast/i],[[x,ui+" Third Generation"],[f,K],[m,_]],[/crkey.*devicetype\/([^/]*)/i],[[x,/^/,"Chromecast "],[f,K],[m,_]],[/fuchsia.*crkey/i],[[x,ui+" Nest Hub"],[f,K],[m,_]],[/crkey/i],[[x,ui],[f,K],[m,_]],[/(portaltv)/i],[x,[f,fi],[m,_]],[/droid.+aft(\w+)( bui|\))/i],[x,[f,G],[m,_]],[/(shield \w+ tv)/i],[x,[f,oi],[m,_]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[x,[f,ni],[m,_]],[/(bravia[\w ]+)( bui|\))/i],[x,[f,wi],[m,_]],[/(mi(tv|box)-?\w+) bui/i],[x,[f,bi],[m,_]],[/Hbbtv.*(technisat) (.*);/i],[f,x,[m,_]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[f,/.+\/(\w+)/,"$1",strMapper,{LG:"lge"}],[x,trim],[m,_]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[x,[m,_]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:|large screen[\w ]+safari)\b/i],[[m,_]],[/(playstation \w+)/i],[x,[f,wi],[m,y]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[x,[f,ei],[m,y]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[f,x,[m,y]],[/droid.+; (shield)( bui|\))/i],[x,[f,oi],[m,y]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[x,[f,si],[m,S]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[f,x,[m,S]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[x,[f,ai],[m,S]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[x,[f,$],[m,S]],[/(opwwe\d{3})/i],[x,[f,ri],[m,S]],[/(moto 360)/i],[x,[f,ti],[m,S]],[/(smartwatch 3)/i],[x,[f,wi],[m,S]],[/(g watch r)/i],[x,[f,ii],[m,S]],[/droid.+; (wt63?0{2,3})\)/i],[x,[f,di],[m,S]],[/droid.+; (glass) \d/i],[x,[f,K],[m,I]],[/(pico) (4|neo3(?: link|pro)?)/i],[f,x,[m,I]],[/(quest( \d| pro)?s?).+vr/i],[x,[f,fi],[m,I]],[/mobile vr; rv.+firefox/i],[[m,I]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[f,[m,U]],[/(aeobc)\b/i],[x,[f,G],[m,U]],[/(homepod).+mac os/i],[x,[f,$],[m,U]],[/windows iot/i],[[m,U]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i],[x,[m,strMapper,{mobile:"Mobile",xr:"VR","*":A}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[m,A]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[m,C]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[x,[f,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[g,[p,hi+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[p,g],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[g,[p,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[p,g],[/ladybird\//i],[[p,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[g,p]],os:[[/(windows nt) (6\.[23]); arm/i],[[p,/N/,"R"],[g,strMapper,Ai]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[p,g],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[g,/(;|\))/g,"",strMapper,Ai],[p,xi]],[/(windows ce)\/?([\d\.]*)/i],[p,g],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[g,/_/g,"."],[p,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[p,"macOS"],[g,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[g,[p,ui+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[g,[p,ui+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[g,[p,ui+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[g,[p,ui+" Linux"]],[/crkey\/([\d\.]+)/i],[g,[p,ui]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[g,p],[/(ubuntu) ([\w\.]+) like android/i],[[p,/(.+)/,"$1 Touch"],g],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[p,g],[/\(bb(10);/i],[g,[p,Y]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[g,[p,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[g,[p,pi+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[g,[p,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[g,strMapper,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[p,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[g,[p,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[p,"Chrome OS"],g],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[p,g],[/(sunos) ?([\d\.]*)/i],[[p,"Solaris"],g],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[p,g]]},Ui=(setProps.call((i={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}}).init,[[b,[p,g,k,m]],[d,[v]],[l,[m,x,f]],[c,[p,g]],[u,[p,g]]]),setProps.call(i.isIgnore,[[b,[g,k]],[c,[g]],[u,[g]]]),setProps.call(i.isIgnoreRgx,[[b,/ ?browser$/i],[u,/ ?os$/i]]),setProps.call(i.toString,[[b,[p,g]],[d,[v]],[l,[f,x]],[c,[p,g]],[u,[p,g]]]),i),createIData=function(i,e){var t=Ui.init[e],o=Ui.isIgnore[e]||0,a=Ui.isIgnoreRgx[e]||0,n=Ui.toString[e]||0;function IData(){setProps.call(this,t)}return IData.prototype.getItem=function(){return i},IData.prototype.withClientHints=function(){return Ci?Ci.getHighEntropyValues(L).then(function(e){return i.setCH(new UACHData(e,!1)).parseCH().get()}):i.parseCH().get()},IData.prototype.withFeatureCheck=function(){return i.detectFeature().get()},e!=h&&(IData.prototype.is=function(i){var e=!1;for(var t in this)if(this.hasOwnProperty(t)&&!has(o,t)&&lowerize(a?strip(a,this[t]):this[t])==lowerize(a?strip(a,i):i)){if(e=!0,i!=s)break}else if(i==s&&e){e=!e;break}return e},IData.prototype.toString=function(){var i=r;for(var e in n)typeof this[n[e]]!==s&&(i+=(i?" ":r)+this[n[e]]);return i||s}),Ci||(IData.prototype.then=function(i){var e=this,IDataResolve=function(){for(var i in e)e.hasOwnProperty(i)&&(this[i]=e[i])};IDataResolve.prototype={is:IData.prototype.is,toString:IData.prototype.toString};var t=new IDataResolve;return i(t),t}),new IData};function UACHData(i,e){if(i=i||{},setProps.call(this,L),e)setProps.call(this,[[P,itemListToArray(i[O])],[H,itemListToArray(i[D])],[C,/\?1/.test(i[R])],[x,stripQuotes(i[W])],[T,stripQuotes(i[N])],[j,stripQuotes(i[F])],[v,stripQuotes(i[E])],[z,itemListToArray(i[B])],[M,stripQuotes(i[V])]]);else for(var t in i)this.hasOwnProperty(t)&&typeof i[t]!==s&&(this[t]=i[t])}function UAItem(i,e,t,o){return this.get=function(i){return i?this.data.hasOwnProperty(i)?this.data[i]:void 0:this.data},this.set=function(i,e){return this.data[i]=e,this},this.setCH=function(i){return this.uaCH=i,this},this.detectFeature=function(){if(yi&&yi.userAgent==this.ua)switch(this.itemType){case b:yi.brave&&typeof yi.brave.isBrave==a&&this.set(p,"Brave");break;case l:!this.get(m)&&Ci&&Ci[C]&&this.set(m,C),"Macintosh"==this.get(x)&&yi&&typeof yi.standalone!==s&&yi.maxTouchPoints&&yi.maxTouchPoints>2&&this.set(x,"iPad").set(m,A);break;case u:!this.get(p)&&Ci&&Ci[T]&&this.set(p,Ci[T]);break;case h:var i=this.data,detect=function(e){return i[e].getItem().detectFeature().get()};this.set(b,detect(b)).set(d,detect(d)).set(l,detect(l)).set(c,detect(c)).set(u,detect(u))}return this},this.parseUA=function(){return this.itemType!=h&&rgxMapper.call(this.data,this.ua,this.rgxMap),this.itemType==b&&this.set(k,majorize(this.get(g))),this},this.parseCH=function(){var i=this.uaCH,e=this.rgxMap;switch(this.itemType){case b:case c:var t,o=i[H]||i[P];if(o)for(var r in o){var a=o[r].brand||o[r],s=o[r].version;this.itemType==b&&!/not.a.brand/i.test(a)&&(!t||/Chrom/.test(t)&&a!=ci||t==hi&&/WebView2/.test(a))&&(a=strMapper(a,Si),(t=this.get(p))&&!/Chrom/.test(t)&&/Chrom/.test(a)||this.set(p,a).set(g,s).set(k,majorize(s)),t=a),this.itemType==c&&a==ci&&this.set(g,s)}break;case d:var n=i[v];n&&(n&&"64"==i[M]&&(n+="64"),rgxMapper.call(this.data,n+";",e));break;case l:if(i[C]&&this.set(m,C),i[x]&&(this.set(x,i[x]),!this.get(m)||!this.get(f))){var w={};rgxMapper.call(w,"droid 9; "+i[x]+")",e),!this.get(m)&&w.type&&this.set(m,w.type),!this.get(f)&&w.vendor&&this.set(f,w.vendor)}if(i[z]){var y;if("string"!=typeof i[z])for(var A=0;!y&&A<i[z].length;)y=strMapper(i[z][A++],_i);else y=strMapper(i[z],_i);this.set(m,y)}break;case u:var _=i[T];if(_){var S=i[j];_==xi&&(S=parseInt(majorize(S),10)>=13?"11":"10"),this.set(p,_).set(g,S)}this.get(p)==xi&&"Xbox"==i[x]&&this.set(p,"Xbox").set(g,void 0);break;case h:var I=this.data,parse=function(e){return I[e].getItem().setCH(i).parseCH().get()};this.set(b,parse(b)).set(d,parse(d)).set(l,parse(l)).set(c,parse(c)).set(u,parse(u))}return this},setProps.call(this,[["itemType",i],["ua",e],["uaCH",o],["rgxMap",t],["data",createIData(this,i)]]),this}function UAParser(i,e,t){if(typeof i===n?(isExtensions(i,!0)?(typeof e===n&&(t=e),e=i):(t=i,e=void 0),i=void 0):typeof i!==w||isExtensions(e,!0)||(t=e,e=void 0),t&&typeof t.append===a){var s={};t.forEach(function(i,e){s[e]=i}),t=s}if(!(this instanceof UAParser))return new UAParser(i,e,t).getResult();var p=typeof i===w?i:t&&t[o]?t[o]:yi&&yi.userAgent?yi.userAgent:r,m=new UACHData(t,!0),f=e?function(i,e){var t={},o=e;if(!isExtensions(e))for(var r in o={},e)for(var a in e[r])o[a]=e[r][a].concat(o[a]?o[a]:[]);for(var s in i)t[s]=o[s]&&o[s].length%2==0?o[s].concat(i[s]):i[s];return t}(Ii,e):Ii,createItemFunc=function(i){return i==h?function(){return new UAItem(i,p,f,m).set("ua",p).set(b,this.getBrowser()).set(d,this.getCPU()).set(l,this.getDevice()).set(c,this.getEngine()).set(u,this.getOS()).get()}:function(){return new UAItem(i,p,f[i],m).parseUA().get()}};return setProps.call(this,[["getBrowser",createItemFunc(b)],["getCPU",createItemFunc(d)],["getDevice",createItemFunc(l)],["getEngine",createItemFunc(c)],["getOS",createItemFunc(u)],["getResult",createItemFunc(h)],["getUA",function(){return p}],["setUA",function(i){return isString(i)&&(p=i.length>500?trim(i,500):i),this}]]).setUA(p),this}UAParser.VERSION="2.0.4",UAParser.BROWSER=enumerize([p,g,k,m]),UAParser.CPU=enumerize([v]),UAParser.DEVICE=enumerize([x,f,m,y,C,_,A,S,U]),UAParser.ENGINE=UAParser.OS=enumerize([p,g]);const qi=t.createContext(void 0);exports.MobileProvider=({userAgent:i,children:t})=>{const o=(i=>{const e=new UAParser;e.setUA(i);const t=e.getDevice();return"mobile"===t.type||"tablet"===t.type})(i),r={isMobile:o,userAgent:i};return e.jsxRuntimeExports.jsx(qi.Provider,{value:r,children:t})},exports.default=qi;
2
+ //# sourceMappingURL=contexts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.js","sources":["../../node_modules/ua-parser-js/src/main/ua-parser.mjs","../../src/contexts/MobileContext.tsx"],"sourcesContent":["// Generated ESM version of ua-parser-js\n// DO NOT EDIT THIS FILE!\n// Source: /src/main/ua-parser.js\n\n/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v2.0.4\n Copyright © 2012-2025 Faisal Salman <f@faisalman.com>\n AGPLv3 License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://uaparser.dev\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n/* jshint esversion: 6 */ \n/* globals window */\n\n\n \n //////////////\n // Constants\n /////////////\n\n var LIBVERSION = '2.0.4',\n UA_MAX_LENGTH = 500,\n USER_AGENT = 'user-agent',\n EMPTY = '',\n UNKNOWN = '?',\n\n // typeof\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n\n // properties\n UA_BROWSER = 'browser',\n UA_CPU = 'cpu',\n UA_DEVICE = 'device',\n UA_ENGINE = 'engine',\n UA_OS = 'os',\n UA_RESULT = 'result',\n \n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n MAJOR = 'major',\n MODEL = 'model',\n\n // device types\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n XR = 'xr',\n EMBEDDED = 'embedded',\n\n // browser types\n INAPP = 'inapp',\n\n // client hints\n BRANDS = 'brands',\n FORMFACTORS = 'formFactors',\n FULLVERLIST = 'fullVersionList',\n PLATFORM = 'platform',\n PLATFORMVER = 'platformVersion',\n BITNESS = 'bitness',\n CH_HEADER = 'sec-ch-ua',\n CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list',\n CH_HEADER_ARCH = CH_HEADER + '-arch',\n CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS,\n CH_HEADER_FORM_FACTORS = CH_HEADER + '-form-factors',\n CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE,\n CH_HEADER_MODEL = CH_HEADER + '-' + MODEL,\n CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM,\n CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version',\n CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTORS, BITNESS],\n\n // device vendors\n AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LENOVO = 'Lenovo',\n HONOR = 'Honor',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n NVIDIA = 'Nvidia',\n ONEPLUS = 'OnePlus',\n OPPO = 'OPPO',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n\n // browsers\n CHROME = 'Chrome',\n CHROMIUM = 'Chromium',\n CHROMECAST = 'Chromecast',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n OPERA = 'Opera',\n FACEBOOK = 'Facebook',\n SOGOU = 'Sogou',\n\n PREFIX_MOBILE = 'Mobile ',\n SUFFIX_BROWSER = ' Browser',\n\n // os\n WINDOWS = 'Windows';\n \n var isWindow = typeof window !== UNDEF_TYPE,\n NAVIGATOR = (isWindow && window.navigator) ? \n window.navigator : \n undefined,\n NAVIGATOR_UADATA = (NAVIGATOR && NAVIGATOR.userAgentData) ? \n NAVIGATOR.userAgentData : \n undefined;\n\n ///////////\n // Helper\n //////////\n\n var extend = function (defaultRgx, extensions) {\n var mergedRgx = {};\n var extraRgx = extensions;\n if (!isExtensions(extensions)) {\n extraRgx = {};\n for (var i in extensions) {\n for (var j in extensions[i]) {\n extraRgx[j] = extensions[i][j].concat(extraRgx[j] ? extraRgx[j] : []);\n }\n }\n }\n for (var k in defaultRgx) {\n mergedRgx[k] = extraRgx[k] && extraRgx[k].length % 2 === 0 ? extraRgx[k].concat(defaultRgx[k]) : defaultRgx[k];\n }\n return mergedRgx;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i<arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n if (typeof str1 === OBJ_TYPE && str1.length > 0) {\n for (var i in str1) {\n if (lowerize(str2) == lowerize(str1[i])) return true;\n }\n return false;\n }\n return isString(str1) ? lowerize(str2) == lowerize(str1) : false;\n },\n isExtensions = function (obj, deep) {\n for (var prop in obj) {\n return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);\n }\n },\n isString = function (val) {\n return typeof val === STR_TYPE;\n },\n itemListToArray = function (header) {\n if (!header) return undefined;\n var arr = [];\n var tokens = strip(/\\\\?\\\"/g, header).split(',');\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].indexOf(';') > -1) {\n var token = trim(tokens[i]).split(';v=');\n arr[i] = { brand : token[0], version : token[1] };\n } else {\n arr[i] = trim(tokens[i]);\n }\n }\n return arr;\n },\n lowerize = function (str) {\n return isString(str) ? str.toLowerCase() : str;\n },\n majorize = function (version) {\n return isString(version) ? strip(/[^\\d\\.]/g, version).split('.')[0] : undefined;\n },\n setProps = function (arr) {\n for (var i in arr) {\n var propName = arr[i];\n if (typeof propName == OBJ_TYPE && propName.length == 2) {\n this[propName[0]] = propName[1];\n } else {\n this[propName] = undefined;\n }\n }\n return this;\n },\n strip = function (pattern, str) {\n return isString(str) ? str.replace(pattern, EMPTY) : str;\n },\n stripQuotes = function (str) {\n return strip(/\\\\?\\\"/g, str); \n },\n trim = function (str, len) {\n if (isString(str)) {\n str = strip(/^\\s\\s*/, str);\n return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n if(!ua || !arrays) return;\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length >= 3) {\n // Check whether q[1] FUNCTION or REGEX\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n if (q.length > 3) {\n this[q[0]] = match ? q[1].apply(this, q.slice(2)) : undefined;\n } else {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n }\n } else {\n if (q.length == 3) {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n } else if (q.length == 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n } else if (q.length > 4) {\n this[q[0]] = match ? q[3].apply(this, [match.replace(q[1], q[2])].concat(q.slice(4))) : undefined;\n }\n }\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return map.hasOwnProperty('*') ? map['*'] : str;\n };\n\n ///////////////\n // String map\n //////////////\n\n var windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.51': '3.51',\n 'NT 4.0': '4.0',\n '2000' : ['5.0', '5.01'],\n 'XP' : ['5.1', '5.2'],\n 'Vista' : '6.0',\n '7' : '6.1',\n '8' : '6.2',\n '8.1' : '6.3',\n '10' : ['6.4', '10.0'],\n 'NT' : ''\n },\n \n formFactorsMap = {\n 'embedded' : 'Automotive',\n 'mobile' : 'Mobile',\n 'tablet' : ['Tablet', 'EInk'],\n 'smarttv' : 'TV',\n 'wearable' : 'Watch',\n 'xr' : ['VR', 'XR'],\n '?' : ['Desktop', 'Unknown'],\n '*' : undefined\n },\n\n browserHintsMap = {\n 'Chrome' : 'Google Chrome',\n 'Edge' : 'Microsoft Edge',\n 'Edge WebView2' : 'Microsoft Edge WebView2',\n 'Chrome WebView': 'Android WebView',\n 'Chrome Headless':'HeadlessChrome',\n 'Huawei Browser': 'HuaweiBrowser',\n 'MIUI Browser' : 'Miui Browser',\n 'Opera Mobi' : 'OperaMobile',\n 'Yandex' : 'YaBrowser'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var defaultRegexes = {\n\n browser : [[\n\n // Most common regardless engine\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n /webview.+edge\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, EDGE+' WebView']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i \n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /\\b(?:mxbrowser|mxios|myie2)\\/?([-\\w\\.]*)\\b/i // Maxthon\n ], [VERSION, [NAME, 'Maxthon']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\\/ ]?([\\w\\.]*)/i, \n // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir\n // Trident based\n /(avant|iemobile|slim(?:browser|boat|jet))[\\/ ]?([\\d\\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon\n /(heytap|ovi|115|surf)browser\\/([\\d\\.]+)/i, // HeyTap/Ovi/115/Surf\n /(ecosia|weibo)(?:__| \\w+@)([\\d\\.]+)/i // Ecosia/Weibo\n ], [NAME, VERSION], [\n /quark(?:pc)?\\/([-\\w\\.]+)/i // Quark\n ], [VERSION, [NAME, 'Quark']], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UCBrowser']], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart ' + LENOVO + SUFFIX_BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure' + SUFFIX_BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [\n /fxios\\/([\\w\\.-]+)/i // Firefox for iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + FIREFOX]], [\n /\\bqihoobrowser\\/?([\\w\\.]*)/i // 360\n ], [VERSION, [NAME, '360']], [\n /\\b(qq)\\/([\\w\\.]+)/i // QQ\n ], [[NAME, /(.+)/, '$1Browser'], VERSION], [\n /(oculus|sailfish|huawei|vivo|pico)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, SOGOU + ' Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, SOGOU + ' Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345(?=browser|chrome|explorer))\\w*[\\/ ]?v?([\\w\\.]+)/i // QQ/2345\n ], [NAME, VERSION], [\n /(lbbrowser|rekonq)/i // LieBao Browser/Rekonq\n ], [NAME], [\n /ome\\/([\\w\\.]+) \\w* ?(iron) saf/i, // Iron\n /ome\\/([\\w\\.]+).+qihu (360)[es]e/i // 360\n ], [VERSION, NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION, [TYPE, INAPP]], [\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /(daum)apps[\\/ ]([\\w\\.]+)/i, // Daum App\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(instagram|snapchat|klarna)[\\/ ]([-\\w\\.]+)/i // Instagram/Snapchat/Klarna\n ], [NAME, VERSION, [TYPE, INAPP]], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME, [TYPE, INAPP]], [\n\n /(chromium)[\\/ ]([-\\w\\.]+)/i // Chromium\n ], [NAME, VERSION], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n /wv\\).+chrome\\/([\\w\\.]+).+edgw\\//i // Edge WebView2\n ], [VERSION, [NAME, EDGE+' WebView2']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android' + SUFFIX_BROWSER]], [\n\n /chrome\\/([\\w\\.]+) mobile/i // Chrome Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile(?:\\/\\w+ | ?)safari/i // Safari Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Safari']], [\n /iphone .*mobile(?:\\/\\w+ | ?)safari/i\n ], [[NAME, PREFIX_MOBILE + 'Safari']], [\n /version\\/([\\w\\.\\,]+) .*(safari)/i // Safari\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, '1']], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(?:mobile|tablet);.*(firefox)\\/([\\w\\.-]+)/i // Firefox Mobile\n ], [[NAME, PREFIX_MOBILE + FIREFOX], VERSION], [\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(wolvic|librewolf)\\/([\\w\\.]+)/i // Wolvic/LibreWolf\n ], [NAME, VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird\n /\\b(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, [VERSION, /_/g, '.']], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /[^\\d\\.]+./, EMPTY]]\n ],\n\n cpu : [[\n\n /\\b((amd|x|x86[-_]?|wow|win)64)\\b/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i, // IA32 (quicktime)\n /\\b((i[346]|x)86)(pc)?\\b/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?[89]e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /( (ce|mobile); ppc;|\\/[\\w\\.]+arm\\b)/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((ppc|powerpc)(64)?)( mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n / sun4\\w[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /\\b(avr32|ia64(?=;)|68k(?=\\))|\\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-(?![lr])\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]((?!sm-[lr]|browser)[-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Honor\n /\\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\\)|;)/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, TABLET]], [\n /honor([-\\w ]+)[;\\)]/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\\w\\. ]*(?= bui|\\)))\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /oid[^\\)]+; (2[\\dbc]{4}(182|283|rp\\w{2})[cgl]|m2105k81a?c)(?: bui|\\))/i,\n /\\b((?:red)?mi[-_ ]?pad[\\w- ]*)(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\\))/i, // Xiaomi Mi\n / ([\\w ]+) miui\\/v?\\d/i\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n\n // OnePlus\n /droid.+; (cph2[3-6]\\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\\d|p[g-k]\\w[1m]10)\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]], [\n /\\b(opd2(\\d{3}a?))(?: bui|\\))/i\n ], [MODEL, [VENDOR, strMapper, { 'OnePlus' : ['203', '304', '403', '404', '413', '415'], '*' : OPPO }], [TYPE, TABLET]], [\n\n // BLU\n /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\\w\\+ ]*)(?: bui|\\))/i // Vivo series\n ], [MODEL, [VENDOR, 'BLU'], [TYPE, MOBILE]], [ \n\n // Vivo\n /; vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\\d{3,4}(?:f[cu]|xu|[av])|yt\\d?-[jx]?\\d+[lfmx])( bui|;|\\)|\\/)/i,\n /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\\w- ]+?)|tb[\\w-]{6,7})( bui|;|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]], [ \n /lenovo[-_ ]?([-\\w ]+?)(?: bui|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ]([\\w\\s]+)(\\)| bui)/i,\n /((?:moto(?! 360)[-\\w\\(\\) ]+|xt\\d{3,4}[cgkosw\\+]?[-\\d]*|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Nokia\n /(nokia) (t[12][01])/i\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n /(?:maemo|nokia).*(n900|lumia \\d+|rm-\\d+)/i,\n /nokia[-_ ]?(([-\\w\\. ]*))/i\n ], [[MODEL, /_/g, ' '], [TYPE, MOBILE], [VENDOR, 'Nokia']], [\n\n // Google\n /(pixel (c|tablet))\\b/i // Google Pixel C/Tablet\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n // Google Pixel\n /droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\\d ]*a?( pro)?( xl)?( fold)?( \\(5g\\))?)( bui|\\))/i\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n /(google) (pixelbook( go)?)/i\n ], [VENDOR, MODEL], [\n\n // Sony\n /droid.+; (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-\\w\\w\\d\\d)(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo(?!bc)\\w\\w)( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // TCL\n /tcl (xess p17aa)/i,\n /droid [\\w\\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n /droid [\\w\\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, MOBILE]], [\n\n // itel\n /(itel) ((\\w+))/i\n ], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // Energizer\n /; (energy ?\\w+)(?: bui|\\))/i,\n /; energizer ([\\w ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Energizer'], [TYPE, MOBILE]], [\n\n // Cat\n /; cat (b35);/i,\n /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Cat'], [TYPE, MOBILE]], [\n\n // Smartfren\n /((?:new )?andromax[\\w- ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [\n\n // Nothing\n /droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i\n ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [\n\n // Archos\n /; (x67 5g|tikeasy \\w+|ac[1789]\\d\\w+)( b|\\))/i,\n /archos ?(5|gamepad2?|([\\w ]*[t1789]|hello) ?\\d+[\\w ]*)( b|\\))/i\n ], [MODEL, [VENDOR, 'Archos'], [TYPE, TABLET]], [\n /archos ([\\w ]+)( b|\\))/i,\n /; (ac[3-6]\\d\\w{2,8})( b|\\))/i \n ], [MODEL, [VENDOR, 'Archos'], [TYPE, MOBILE]], [\n\n // HMD\n /; (n159v)/i\n ], [MODEL, [VENDOR, 'HMD'], [TYPE, MOBILE]], [\n\n // MIXED\n /(imo) (tab \\w+)/i, // IMO\n /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i // Infinix XPad / Tecno\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan\n /; (blu|hmd|imo|infinix|lava|oneplus|tcl)[_ ]([\\w\\+ ]+?)(?: bui|\\)|; r)/i, // BLU/HMD/IMO/Infinix/Lava/OnePlus/TCL\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i // Kindle\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /((?:tegranote|shield t(?!.+d tv))[\\w- ]*?)(?: b|\\))/i // Nvidia Tablets\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(vizio)(?: |.+model\\/)(\\w+-\\w+)/i, // Vizio\n /tcast.+(lg)e?. ([-\\w]+)/i // LG SmartTV\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/chromecast/i // Google Chromecast Third Generation\n ], [[MODEL, CHROMECAST+' Third Generation'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/([^/]*)/i // Google Chromecast with specific device type\n ], [[MODEL, /^/, 'Chromecast '], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /fuchsia.*crkey/i // Google Chromecast Nest Hub\n ], [[MODEL, CHROMECAST+' Nest Hub'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast, Linux-based or unknown\n ], [[MODEL, CHROMECAST], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /(portaltv)/i // Facebook Portal TV\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /(shield \\w+ tv)/i // Nvidia Shield TV\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mi(tv|box)-?\\w+) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, /.+\\/(\\w+)/, '$1', strMapper, {'LG':'lge'}], [MODEL, trim], [TYPE, SMARTTV]], [\n // SmartTV from Unidentified Vendors\n /droid.+; ([\\w- ]+) (?:android tv|smart[- ]?tv)/i\n ], [MODEL, [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:|large screen[\\w ]+safari)\\b/i\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(playstation \\w+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n /(ouya)/i, // Ouya\n /(nintendo) (\\w+)/i, // Nintendo\n /(retroid) (pocket ([^\\)]+))/i // Retroid Pocket\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield)( bui|\\))/i // Nvidia Portable\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /\\b(sm-[lr]\\d\\d[0156][fnuw]?s?|gear live)\\b/i // Samsung Galaxy Watch\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [\n /((pebble))app/i, // Pebble\n /(asus|google|lg|oppo) ((pixel |zen)?watch[\\w ]*)( bui|\\))/i // Asus ZenWatch / LG Watch / Pixel Watch\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(ow(?:19|20)?we?[1-3]{1,3})/i // Oppo Watch\n ], [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /(opwwe\\d{3})/i // OnePlus Watch\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]], [\n /(moto 360)/i // Motorola 360\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]], [\n /(smartwatch 3)/i // Sony SmartWatch\n ], [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]], [\n /(g watch r)/i // LG G Watch R\n ], [MODEL, [VENDOR, LG], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n\n ///////////////////\n // XR\n ///////////////////\n\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, XR]], [\n /(pico) (4|neo3(?: link|pro)?)/i // Pico\n ], [VENDOR, MODEL, [TYPE, XR]], [\n /(quest( \\d| pro)?s?).+vr/i // Meta Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, XR]], [\n /mobile vr; rv.+firefox/i // Unidentifiable VR device using Firefox Reality / Wolvic\n ], [[TYPE, XR]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n /(homepod).+mac os/i // Apple HomePod\n ], [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]], [\n /windows iot/i // Unidentifiable embedded device using Windows IoT\n ], [[TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+?(mobile|vr|\\d) safari/i\n ], [MODEL, [TYPE, strMapper, { 'mobile' : 'Mobile', 'xr' : 'VR', '*' : TABLET }]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /droid .+?; ([\\w\\. -]+)( bui|\\))/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /(arkweb)\\/([\\w\\.]+)/i // ArkWeb\n ], [NAME, VERSION], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n\n /\\b(libweb)/i // LibWeb\n ], [NAME, VERSION], [\n /ladybird\\//i\n ], [[NAME, 'LibWeb']], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /(windows nt) (6\\.[23]); arm/i // Windows RT\n ], [[NAME, /N/, 'R'], [VERSION, strMapper, windowsVersionMap]], [\n /(windows (?:phone|mobile|iot))(?: os)?[\\/ ]?([\\d\\.]*( se)?)/i, // Windows IoT/Mobile/Phone\n // Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11\n /(windows)[\\/ ](1[01]|2000|3\\.1|7|8(\\.1)?|9[58]|me|server 20\\d\\d( r2)?|vista|xp)/i\n ], [NAME, VERSION], [\n /windows nt ?([\\d\\.\\)]*)(?!.+xbox)/i,\n /\\bwin(?=3| ?9|n)(?:nt| 9x )?([\\d\\.;]*)/i\n ], [[VERSION, /(;|\\))/g, '', strMapper, windowsVersionMap], [NAME, WINDOWS]], [\n /(windows ce)\\/?([\\d\\.]*)/i // Windows CE\n ], [NAME, VERSION], [\n\n // iOS/macOS\n /[adehimnop]{4,7}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+(haiku|morphos))/i // Mac OS\n ], [[NAME, 'macOS'], [VERSION, /_/g, '.']], [\n\n // Google Chromecast\n /android ([\\d\\.]+).*crkey/i // Google Chromecast, Android-based\n ], [VERSION, [NAME, CHROMECAST + ' Android']], [\n /fuchsia.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Fuchsia-based\n ], [VERSION, [NAME, CHROMECAST + ' Fuchsia']], [\n /crkey\\/([\\d\\.]+).*devicetype\\/smartspeaker/i // Google Chromecast, Linux-based Smart Speaker\n ], [VERSION, [NAME, CHROMECAST + ' SmartSpeaker']], [\n /linux.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Legacy Linux-based\n ], [VERSION, [NAME, CHROMECAST + ' Linux']], [\n /crkey\\/([\\d\\.]+)/i // Google Chromecast, unknown\n ], [VERSION, [NAME, CHROMECAST]], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86)/i // Android-x86\n ], [VERSION, NAME], [ \n /(ubuntu) ([\\w\\.]+) like android/i // Ubuntu Touch\n ], [[NAME, /(.+)/, '$1 Touch'], VERSION], [\n /(harmonyos)[\\/ ]?([\\d\\.]*)/i, // HarmonyOS\n // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen\n /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\\w*[-\\/\\.; ]?([\\d\\.]*)/i\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i, // WebOS\n /webos(?:[ \\/]?|\\.tv-20(?=2[2-9]))(\\d[\\d\\.]*)/i\n ], [VERSION, [NAME, 'webOS']], [\n /web0s;.+?(?:chr[o0]me|safari)\\/(\\d+)/i\n // https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine\n ], [[VERSION, strMapper, {'25':'120','24':'108','23':'94','22':'87','6':'79','5':'68','4':'53','3':'38','2':'538','1':'537','*':'TV'}], [NAME, 'webOS']], [ \n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google ChromeOS\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, \"Chrome OS\"], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) (\\w+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n /(pico) .+os([\\w\\.]+)/i, // Pico\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /linux.+(mint)[\\/\\(\\) ]?([\\w\\.]*)/i, // Mint\n /(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\\d\\.]*)/i, // Mageia/VectorLinux/Fuchsia/ArcaOS/Arch\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /\\b(aix)[; ]([1-9\\.]{0,4})/i, // AIX\n /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\\w*| ?)([\\w\\.]*)/i, // Hurd/Linux/MorphOS\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) ?(r\\d)?/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\d\\.]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /\\b(beos|os\\/2|amigaos|openvms|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Factories\n ////////////////\n\n var defaultProps = (function () {\n var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};\n setProps.call(props.init, [\n [UA_BROWSER, [NAME, VERSION, MAJOR, TYPE]],\n [UA_CPU, [ARCHITECTURE]],\n [UA_DEVICE, [TYPE, MODEL, VENDOR]],\n [UA_ENGINE, [NAME, VERSION]],\n [UA_OS, [NAME, VERSION]]\n ]);\n setProps.call(props.isIgnore, [\n [UA_BROWSER, [VERSION, MAJOR]],\n [UA_ENGINE, [VERSION]],\n [UA_OS, [VERSION]]\n ]);\n setProps.call(props.isIgnoreRgx, [\n [UA_BROWSER, / ?browser$/i],\n [UA_OS, / ?os$/i]\n ]);\n setProps.call(props.toString, [\n [UA_BROWSER, [NAME, VERSION]],\n [UA_CPU, [ARCHITECTURE]],\n [UA_DEVICE, [VENDOR, MODEL]],\n [UA_ENGINE, [NAME, VERSION]],\n [UA_OS, [NAME, VERSION]]\n ]);\n return props;\n })();\n\n var createIData = function (item, itemType) {\n\n var init_props = defaultProps.init[itemType],\n is_ignoreProps = defaultProps.isIgnore[itemType] || 0,\n is_ignoreRgx = defaultProps.isIgnoreRgx[itemType] || 0,\n toString_props = defaultProps.toString[itemType] || 0;\n\n function IData () {\n setProps.call(this, init_props);\n }\n\n IData.prototype.getItem = function () {\n return item;\n };\n\n IData.prototype.withClientHints = function () {\n\n // nodejs / non-client-hints browsers\n if (!NAVIGATOR_UADATA) {\n return item\n .parseCH()\n .get();\n }\n\n // browsers based on chromium 85+\n return NAVIGATOR_UADATA\n .getHighEntropyValues(CH_ALL_VALUES)\n .then(function (res) {\n return item\n .setCH(new UACHData(res, false))\n .parseCH()\n .get();\n });\n };\n\n IData.prototype.withFeatureCheck = function () {\n return item.detectFeature().get();\n };\n\n if (itemType != UA_RESULT) {\n IData.prototype.is = function (strToCheck) {\n var is = false;\n for (var i in this) {\n if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {\n is = true;\n if (strToCheck != UNDEF_TYPE) break;\n } else if (strToCheck == UNDEF_TYPE && is) {\n is = !is;\n break;\n }\n }\n return is;\n };\n IData.prototype.toString = function () {\n var str = EMPTY;\n for (var i in toString_props) {\n if (typeof(this[toString_props[i]]) !== UNDEF_TYPE) {\n str += (str ? ' ' : EMPTY) + this[toString_props[i]];\n }\n }\n return str || UNDEF_TYPE;\n };\n }\n\n if (!NAVIGATOR_UADATA) {\n IData.prototype.then = function (cb) { \n var that = this;\n var IDataResolve = function () {\n for (var prop in that) {\n if (that.hasOwnProperty(prop)) {\n this[prop] = that[prop];\n }\n }\n };\n IDataResolve.prototype = {\n is : IData.prototype.is,\n toString : IData.prototype.toString\n };\n var resolveData = new IDataResolve();\n cb(resolveData);\n return resolveData;\n };\n }\n\n return new IData();\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n function UACHData (uach, isHttpUACH) {\n uach = uach || {};\n setProps.call(this, CH_ALL_VALUES);\n if (isHttpUACH) {\n setProps.call(this, [\n [BRANDS, itemListToArray(uach[CH_HEADER])],\n [FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])],\n [MOBILE, /\\?1/.test(uach[CH_HEADER_MOBILE])],\n [MODEL, stripQuotes(uach[CH_HEADER_MODEL])],\n [PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])],\n [PLATFORMVER, stripQuotes(uach[CH_HEADER_PLATFORM_VER])],\n [ARCHITECTURE, stripQuotes(uach[CH_HEADER_ARCH])],\n [FORMFACTORS, itemListToArray(uach[CH_HEADER_FORM_FACTORS])],\n [BITNESS, stripQuotes(uach[CH_HEADER_BITNESS])]\n ]);\n } else {\n for (var prop in uach) {\n if(this.hasOwnProperty(prop) && typeof uach[prop] !== UNDEF_TYPE) this[prop] = uach[prop];\n }\n }\n }\n\n function UAItem (itemType, ua, rgxMap, uaCH) {\n\n this.get = function (prop) {\n if (!prop) return this.data;\n return this.data.hasOwnProperty(prop) ? this.data[prop] : undefined;\n };\n\n this.set = function (prop, val) {\n this.data[prop] = val;\n return this;\n };\n\n this.setCH = function (ch) {\n this.uaCH = ch;\n return this;\n };\n\n this.detectFeature = function () {\n if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) {\n switch (this.itemType) {\n case UA_BROWSER:\n // Brave-specific detection\n if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == FUNC_TYPE) {\n this.set(NAME, 'Brave');\n }\n break;\n case UA_DEVICE:\n // Chrome-specific detection: check for 'mobile' value of navigator.userAgentData\n if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (this.get(MODEL) == 'Macintosh' && NAVIGATOR && typeof NAVIGATOR.standalone !== UNDEF_TYPE && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) {\n this.set(MODEL, 'iPad')\n .set(TYPE, TABLET);\n }\n break;\n case UA_OS:\n // Chrome-specific detection: check for 'platform' value of navigator.userAgentData\n if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) {\n this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);\n }\n break;\n case UA_RESULT:\n var data = this.data;\n var detect = function (itemType) {\n return data[itemType]\n .getItem()\n .detectFeature()\n .get();\n };\n this.set(UA_BROWSER, detect(UA_BROWSER))\n .set(UA_CPU, detect(UA_CPU))\n .set(UA_DEVICE, detect(UA_DEVICE))\n .set(UA_ENGINE, detect(UA_ENGINE))\n .set(UA_OS, detect(UA_OS));\n }\n }\n return this;\n };\n\n this.parseUA = function () {\n if (this.itemType != UA_RESULT) {\n rgxMapper.call(this.data, this.ua, this.rgxMap);\n }\n if (this.itemType == UA_BROWSER) {\n this.set(MAJOR, majorize(this.get(VERSION)));\n }\n return this;\n };\n\n this.parseCH = function () {\n var uaCH = this.uaCH,\n rgxMap = this.rgxMap;\n \n switch (this.itemType) {\n case UA_BROWSER:\n case UA_ENGINE:\n var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;\n if (brands) {\n for (var i in brands) {\n var brandName = brands[i].brand || brands[i],\n brandVersion = brands[i].version;\n if (this.itemType == UA_BROWSER && \n !/not.a.brand/i.test(brandName) && \n (!prevName || \n (/Chrom/.test(prevName) && brandName != CHROMIUM) || \n (prevName == EDGE && /WebView2/.test(brandName))\n )) {\n brandName = strMapper(brandName, browserHintsMap);\n prevName = this.get(NAME);\n if (!(prevName && !/Chrom/.test(prevName) && /Chrom/.test(brandName))) {\n this.set(NAME, brandName)\n .set(VERSION, brandVersion)\n .set(MAJOR, majorize(brandVersion));\n }\n prevName = brandName;\n }\n if (this.itemType == UA_ENGINE && brandName == CHROMIUM) {\n this.set(VERSION, brandVersion);\n }\n }\n }\n break;\n case UA_CPU:\n var archName = uaCH[ARCHITECTURE];\n if (archName) {\n if (archName && uaCH[BITNESS] == '64') archName += '64';\n rgxMapper.call(this.data, archName + ';', rgxMap);\n }\n break;\n case UA_DEVICE:\n if (uaCH[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n if (uaCH[MODEL]) {\n this.set(MODEL, uaCH[MODEL]);\n if (!this.get(TYPE) || !this.get(VENDOR)) {\n var reParse = {};\n rgxMapper.call(reParse, 'droid 9; ' + uaCH[MODEL] + ')', rgxMap);\n if (!this.get(TYPE) && !!reParse.type) {\n this.set(TYPE, reParse.type);\n }\n if (!this.get(VENDOR) && !!reParse.vendor) {\n this.set(VENDOR, reParse.vendor);\n }\n }\n }\n if (uaCH[FORMFACTORS]) {\n var ff;\n if (typeof uaCH[FORMFACTORS] !== 'string') {\n var idx = 0;\n while (!ff && idx < uaCH[FORMFACTORS].length) {\n ff = strMapper(uaCH[FORMFACTORS][idx++], formFactorsMap);\n }\n } else {\n ff = strMapper(uaCH[FORMFACTORS], formFactorsMap);\n }\n this.set(TYPE, ff);\n }\n break;\n case UA_OS:\n var osName = uaCH[PLATFORM];\n if(osName) {\n var osVersion = uaCH[PLATFORMVER];\n if (osName == WINDOWS) osVersion = (parseInt(majorize(osVersion), 10) >= 13 ? '11' : '10');\n this.set(NAME, osName)\n .set(VERSION, osVersion);\n }\n // Xbox-Specific Detection\n if (this.get(NAME) == WINDOWS && uaCH[MODEL] == 'Xbox') {\n this.set(NAME, 'Xbox')\n .set(VERSION, undefined);\n } \n break;\n case UA_RESULT:\n var data = this.data;\n var parse = function (itemType) {\n return data[itemType]\n .getItem()\n .setCH(uaCH)\n .parseCH()\n .get();\n };\n this.set(UA_BROWSER, parse(UA_BROWSER))\n .set(UA_CPU, parse(UA_CPU))\n .set(UA_DEVICE, parse(UA_DEVICE))\n .set(UA_ENGINE, parse(UA_ENGINE))\n .set(UA_OS, parse(UA_OS));\n }\n return this;\n };\n\n setProps.call(this, [\n ['itemType', itemType],\n ['ua', ua],\n ['uaCH', uaCH],\n ['rgxMap', rgxMap],\n ['data', createIData(this, itemType)]\n ]);\n\n return this;\n }\n\n function UAParser (ua, extensions, headers) {\n\n if (typeof ua === OBJ_TYPE) {\n if (isExtensions(ua, true)) {\n if (typeof extensions === OBJ_TYPE) {\n headers = extensions; // case UAParser(extensions, headers) \n }\n extensions = ua; // case UAParser(extensions)\n } else {\n headers = ua; // case UAParser(headers)\n extensions = undefined;\n }\n ua = undefined;\n } else if (typeof ua === STR_TYPE && !isExtensions(extensions, true)) {\n headers = extensions; // case UAParser(ua, headers)\n extensions = undefined;\n }\n\n // Convert Headers object into a plain object\n if (headers && typeof headers.append === FUNC_TYPE) {\n var kv = {};\n headers.forEach(function (v, k) { kv[k] = v; });\n headers = kv;\n }\n \n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions, headers).getResult();\n }\n\n var userAgent = typeof ua === STR_TYPE ? ua : // Passed user-agent string\n (headers && headers[USER_AGENT] ? headers[USER_AGENT] : // User-Agent from passed headers\n ((NAVIGATOR && NAVIGATOR.userAgent) ? NAVIGATOR.userAgent : // navigator.userAgent\n EMPTY)), // empty string\n\n httpUACH = new UACHData(headers, true),\n regexMap = extensions ? \n extend(defaultRegexes, extensions) : \n defaultRegexes,\n\n createItemFunc = function (itemType) {\n if (itemType == UA_RESULT) {\n return function () {\n return new UAItem(itemType, userAgent, regexMap, httpUACH)\n .set('ua', userAgent)\n .set(UA_BROWSER, this.getBrowser())\n .set(UA_CPU, this.getCPU())\n .set(UA_DEVICE, this.getDevice())\n .set(UA_ENGINE, this.getEngine())\n .set(UA_OS, this.getOS())\n .get();\n };\n } else {\n return function () {\n return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH)\n .parseUA()\n .get();\n };\n }\n };\n \n // public methods\n setProps.call(this, [\n ['getBrowser', createItemFunc(UA_BROWSER)],\n ['getCPU', createItemFunc(UA_CPU)],\n ['getDevice', createItemFunc(UA_DEVICE)],\n ['getEngine', createItemFunc(UA_ENGINE)],\n ['getOS', createItemFunc(UA_OS)],\n ['getResult', createItemFunc(UA_RESULT)],\n ['getUA', function () { return userAgent; }],\n ['setUA', function (ua) {\n if (isString(ua))\n userAgent = ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n }]\n ])\n .setUA(userAgent);\n\n return this;\n }\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n export {UAParser};","import { createContext, ReactNode } from 'react';\nimport { UAParser } from 'ua-parser-js';\n\ninterface MobileContextValue {\n isMobile: boolean;\n userAgent: string;\n}\n\ninterface MobileProviderProps {\n userAgent: string;\n children: ReactNode;\n}\n\nconst MobileContext = createContext<MobileContextValue | undefined>(undefined);\n\nconst detectMobile = (userAgent: string): boolean => {\n const parser = new UAParser();\n parser.setUA(userAgent);\n const device = parser.getDevice();\n return device.type === 'mobile' || device.type === 'tablet';\n};\n\nexport const MobileProvider = ({\n userAgent,\n children,\n}: MobileProviderProps) => {\n const isMobile = detectMobile(userAgent);\n\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n const value: MobileContextValue = {\n isMobile,\n userAgent,\n };\n\n return (\n <MobileContext.Provider value={value}>{children}</MobileContext.Provider>\n );\n};\n\nexport default MobileContext;\n"],"names":["props","USER_AGENT","EMPTY","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","UA_BROWSER","UA_CPU","UA_DEVICE","UA_ENGINE","UA_OS","UA_RESULT","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","MAJOR","MODEL","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","XR","EMBEDDED","INAPP","BRANDS","FORMFACTORS","FULLVERLIST","PLATFORM","PLATFORMVER","BITNESS","CH_HEADER","CH_HEADER_FULL_VER_LIST","CH_HEADER_ARCH","CH_HEADER_BITNESS","CH_HEADER_FORM_FACTORS","CH_HEADER_MOBILE","CH_HEADER_MODEL","CH_HEADER_PLATFORM","CH_HEADER_PLATFORM_VER","CH_ALL_VALUES","AMAZON","APPLE","ASUS","BLACKBERRY","GOOGLE","HUAWEI","LENOVO","HONOR","LG","MICROSOFT","MOTOROLA","NVIDIA","ONEPLUS","OPPO","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","CHROME","CHROMIUM","CHROMECAST","EDGE","FIREFOX","OPERA","FACEBOOK","SOGOU","PREFIX_MOBILE","SUFFIX_BROWSER","WINDOWS","NAVIGATOR","window","navigator","undefined","NAVIGATOR_UADATA","userAgentData","enumerize","arr","enums","i","length","toUpperCase","has","str1","str2","lowerize","isString","isExtensions","obj","deep","prop","test","val","itemListToArray","header","tokens","strip","split","indexOf","token","trim","brand","version","str","toLowerCase","majorize","setProps","propName","this","pattern","replace","stripQuotes","len","substring","rgxMapper","ua","arrays","j","k","p","q","matches","match","regex","exec","call","apply","concat","slice","strMapper","map","hasOwnProperty","windowsVersionMap","ME","XP","Vista","NT","formFactorsMap","embedded","mobile","tablet","smarttv","wearable","xr","browserHintsMap","Chrome","Edge","Yandex","defaultRegexes","browser","cpu","device","OnePlus","engine","os","defaultProps","init","isIgnore","isIgnoreRgx","toString","createIData","item","itemType","init_props","is_ignoreProps","is_ignoreRgx","toString_props","IData","prototype","getItem","withClientHints","getHighEntropyValues","then","res","setCH","UACHData","parseCH","get","withFeatureCheck","detectFeature","is","strToCheck","cb","that","IDataResolve","resolveData","uach","isHttpUACH","UAItem","rgxMap","uaCH","data","set","ch","userAgent","brave","isBrave","standalone","maxTouchPoints","detect","parseUA","prevName","brands","brandName","brandVersion","archName","reParse","type","vendor","ff","idx","osName","osVersion","parseInt","parse","UAParser","extensions","headers","append","kv","forEach","v","getResult","httpUACH","regexMap","defaultRgx","mergedRgx","extraRgx","extend","createItemFunc","getBrowser","getCPU","getDevice","getEngine","getOS","setUA","BROWSER","CPU","DEVICE","ENGINE","OS","MobileContext","createContext","children","isMobile","parser","detectMobile","value","_jsx","Provider"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/cjs/index.js CHANGED
@@ -1 +1,2 @@
1
1
  "use strict";var r=require("./Typography.js"),e=require("./Button.js"),i=require("./Input.js"),o=require("./Tabs.js"),s=require("./Drawer.js"),u=require("./Backdrop.js"),t=require("./Breadcrumb.js"),p=require("./Pagination.js"),n=require("./Accordion.js"),a=require("./Divider.js"),c=require("./RadioGroup.js"),j=require("./Chips.js"),q=require("./Menu.js"),d=require("./licensing.js"),x=require("./contexts.js");require("react"),require("./utils.js"),require("./chunks/jsx-runtime-Bgd4cJfV.js"),require("./chunks/chevron-left-Do__K6cA.js"),require("./chunks/createLucideIcon-BqJVOzoK.js");const b=r.Typography,h=e.Button,B=i.Input,g=o.Tabs,l=s.Drawer,v=u.Backdrop,k=t.Breadcrumb,m=p.Pagination,y=n.Accordion,D=a.Divider,T=c.RadioGroup,A=j.Chips,M=q.Menu;exports.initializeAutomobiKit=d.initializeAutomobiKit,exports.MobileProvider=x.MobileProvider,exports.Accordion=y,exports.Backdrop=v,exports.Breadcrumb=k,exports.Button=h,exports.Chips=A,exports.Divider=D,exports.Drawer=l,exports.Input=B,exports.Menu=M,exports.Pagination=m,exports.RadioGroup=T,exports.Tabs=g,exports.Typography=b;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["// Temporarily removed license protection for testing\n// import { withLicenseProtection } from './components/ProtectedComponent';\n\n// Original Components (exported directly for testing)\nimport { Typography as OriginalTypography } from './components/Typography/Typography';\nimport { Button as OriginalButton } from './components/Button/Button';\nimport { Input as OriginalInput } from './components/Input/Input';\nimport { Tabs as OriginalTabs } from './components/Tabs/Tabs';\nimport { Drawer as OriginalDrawer } from './components/Drawer/Drawer';\nimport { Backdrop as OriginalBackdrop } from './components/Backdrop/Backdrop';\nimport { Breadcrumb as OriginalBreadcrumb } from './components/Breadcrumb/Breadcrumb';\nimport { Pagination as OriginalPagination } from './components/Pagination/Pagination';\nimport { Accordion as OriginalAccordion } from './components/Accordion/Accordion';\nimport { Divider as OriginalDivider } from './components/Divider/Divider';\nimport { RadioGroup as OriginalRadioGroup } from './components/RadioGroup/RadioGroup';\nimport { Chips as OriginalChips } from './components/Chips/Chips';\nimport { Menu as OriginalMenu } from './components/Menu/Menu';\n\n// License Management - Must be imported and called first\nexport { initializeAutomobiKit } from './licensing';\nexport type { LicenseConfig } from './licensing';\n\n// Components (exported directly without protection for testing)\nexport const Typography = OriginalTypography;\nexport const Button = OriginalButton;\nexport const Input = OriginalInput;\nexport const Tabs = OriginalTabs;\nexport const Drawer = OriginalDrawer;\nexport const Backdrop = OriginalBackdrop;\nexport const Breadcrumb = OriginalBreadcrumb;\nexport const Pagination = OriginalPagination;\nexport const Accordion = OriginalAccordion;\nexport const Divider = OriginalDivider;\nexport const RadioGroup = OriginalRadioGroup;\nexport const Chips = OriginalChips;\nexport const Menu = OriginalMenu;\n\n// Type exports\nexport type {\n TypographyProps,\n TypographyVariant,\n} from './components/Typography/Typography';\n\nexport type {\n ButtonProps,\n ButtonVariant,\n ButtonSize,\n} from './components/Button/Button';\n\nexport type { InputProps } from './components/Input/Input';\n\nexport type { TabsProps, TabItem } from './components/Tabs/Tabs';\n\nexport type { DrawerProps, DrawerDirection } from './components/Drawer/Drawer';\n\nexport type { BackdropProps } from './components/Backdrop/Backdrop';\n\nexport type {\n BreadcrumbProps,\n BreadcrumbItem,\n} from './components/Breadcrumb/Breadcrumb';\n\nexport type { UnifiedPaginationProps as PaginationProps } from './components/Pagination/Pagination';\n\nexport type { AccordionProps } from './components/Accordion/Accordion';\n\nexport type { DividerProps } from './components/Divider/Divider';\n\nexport type {\n RadioGroupProps,\n RadioOption,\n} from './components/RadioGroup/RadioGroup';\n\nexport type { ChipsProps } from './components/Chips/Chips';\n\nexport type { MenuProps, MenuItem } from './components/Menu/Menu';\n\n// Contexts\nexport { MobileProvider } from './contexts/MobileContext';\n"],"names":["Typography","OriginalTypography","Button","OriginalButton","Input","OriginalInput","Tabs","OriginalTabs","Drawer","OriginalDrawer","Backdrop","OriginalBackdrop","Breadcrumb","OriginalBreadcrumb","Pagination","OriginalPagination","Accordion","OriginalAccordion","Divider","OriginalDivider","RadioGroup","OriginalRadioGroup","Chips","OriginalChips","Menu","OriginalMenu"],"mappings":"8kBAuBO,MAAMA,EAAaC,EAAAA,WACbC,EAASC,EAAAA,OACTC,EAAQC,EAAAA,MACRC,EAAOC,EAAAA,KACPC,EAASC,EAAAA,OACTC,EAAWC,EAAAA,SACXC,EAAaC,EAAAA,WACbC,EAAaC,EAAAA,WACbC,EAAYC,EAAAA,UACZC,EAAUC,EAAAA,QACVC,EAAaC,EAAAA,WACbC,EAAQC,EAAAA,MACRC,EAAOC,EAAAA"}
@@ -1 +1,2 @@
1
1
  "use strict";class i{static instance;isInitialized=!1;isValid=!1;licenseKey=null;validKeys=["automoby-kit-war-key-2025"];constructor(){}static getInstance(){return i.instance||(i.instance=new i),i.instance}initialize(i){try{return this.licenseKey=i.key,this.isValid=this.validateLicense(i.key),this.isInitialized=!0,this.isValid?(console.log("✅ Automoby Kit initialized successfully"),!0):(console.error("❌ Invalid license key provided for Automoby Kit"),!1)}catch(i){return console.error("❌ Failed to initialize Automoby Kit:",i),this.isValid=!1,this.isInitialized=!0,!1}}validateLicense(i){return!(!i||""===i.trim())&&this.validKeys.includes(i)}canUseComponents(){return this.isInitialized?!!this.isValid||(console.error("❌ Invalid license key. Please contact support or provide a valid license key."),!1):(console.error("❌ Automoby Kit not initialized. Please call initializeAutomobiKit() with your license key."),!1)}getLicenseStatus(){return{initialized:this.isInitialized,valid:this.isValid,key:this.licenseKey?`${this.licenseKey.substring(0,8)}...`:null}}reset(){this.isInitialized=!1,this.isValid=!1,this.licenseKey=null}}exports.canUseComponents=function(){return i.getInstance().canUseComponents()},exports.initializeAutomobiKit=function(e){return i.getInstance().initialize(e)};
2
+ //# sourceMappingURL=licensing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"licensing.js","sources":["../../src/licensing/LicenseManager.ts","../../src/licensing/index.ts"],"sourcesContent":["/**\n * License Manager for Automoby Kit\n * Handles runtime key validation and component access control\n */\n\nexport interface LicenseConfig {\n key: string;\n}\n\nclass LicenseManager {\n private static instance: LicenseManager;\n\n private isInitialized = false;\n\n private isValid = false;\n\n private licenseKey: string | null = null;\n\n // Valid license keys - in production, these would be validated against your backend\n private validKeys = ['automoby-kit-war-key-2025'];\n\n private constructor() {\n // Private constructor for singleton pattern\n }\n\n public static getInstance(): LicenseManager {\n if (!LicenseManager.instance) {\n LicenseManager.instance = new LicenseManager();\n }\n return LicenseManager.instance;\n }\n\n /**\n * Initialize the license with provided configuration\n */\n public initialize(config: LicenseConfig): boolean {\n try {\n this.licenseKey = config.key;\n\n // Validate the license key\n this.isValid = this.validateLicense(config.key);\n this.isInitialized = true;\n\n if (this.isValid) {\n console.log('✅ Automoby Kit initialized successfully');\n return true;\n }\n console.error('❌ Invalid license key provided for Automoby Kit');\n return false;\n } catch (error) {\n console.error('❌ Failed to initialize Automoby Kit:', error);\n this.isValid = false;\n this.isInitialized = true;\n return false;\n }\n }\n\n /**\n * Validate license key (in production, this would call your backend)\n */\n private validateLicense(key: string): boolean {\n // Basic validation - empty key is invalid\n if (!key || key.trim() === '') {\n return false;\n }\n\n // For demo purposes, we're using hardcoded keys\n // In production, you would validate against your backend API\n return this.validKeys.includes(key);\n }\n\n /**\n * Check if the license is valid and components can be used\n */\n public canUseComponents(): boolean {\n if (!this.isInitialized) {\n console.error(\n '❌ Automoby Kit not initialized. Please call initializeAutomobiKit() with your license key.',\n );\n return false;\n }\n\n if (!this.isValid) {\n console.error(\n '❌ Invalid license key. Please contact support or provide a valid license key.',\n );\n return false;\n }\n\n return true;\n }\n\n /**\n * Get current license status\n */\n public getLicenseStatus(): {\n initialized: boolean;\n valid: boolean;\n key: string | null;\n } {\n return {\n initialized: this.isInitialized,\n valid: this.isValid,\n key: this.licenseKey ? `${this.licenseKey.substring(0, 8)}...` : null,\n };\n }\n\n /**\n * Reset license state (useful for testing)\n */\n public reset(): void {\n this.isInitialized = false;\n this.isValid = false;\n this.licenseKey = null;\n }\n}\n\nexport default LicenseManager;\n","import LicenseManager, { LicenseConfig } from './LicenseManager';\n\n/**\n * Initialize Automoby Kit with your license key\n * This function must be called before using any components\n *\n * @param config - License configuration\n * @returns boolean indicating success\n *\n * @example\n * ```typescript\n * import { initializeAutomobiKit } from 'automoby-kit';\n *\n * // Initialize with your license key\n * const success = initializeAutomobiKit({\n * key: 'your-license-key-here',\n * domain: 'yourdomain.com', // optional\n * environment: 'production' // optional\n * });\n *\n * if (success) {\n * // Now you can use components\n * }\n * ```\n */\nexport function initializeAutomobiKit(config: LicenseConfig): boolean {\n const licenseManager = LicenseManager.getInstance();\n return licenseManager.initialize(config);\n}\n\n/**\n * Check if components can be used\n */\nexport function canUseComponents(): boolean {\n const licenseManager = LicenseManager.getInstance();\n return licenseManager.canUseComponents();\n}\n\nexport type { LicenseConfig };\n"],"names":["LicenseManager","static","isInitialized","isValid","licenseKey","validKeys","constructor","getInstance","instance","initialize","config","this","key","validateLicense","console","log","error","trim","includes","canUseComponents","getLicenseStatus","initialized","valid","substring","reset"],"mappings":"aASA,MAAMA,EACIC,gBAEAC,eAAgB,EAEhBC,SAAU,EAEVC,WAA4B,KAG5BC,UAAY,CAAC,6BAErB,WAAAC,GAEA,CAEO,kBAAOC,GAIZ,OAHKP,EAAeQ,WAClBR,EAAeQ,SAAW,IAAIR,GAEzBA,EAAeQ,QACxB,CAKO,UAAAC,CAAWC,GAChB,IAOE,OANAC,KAAKP,WAAaM,EAAOE,IAGzBD,KAAKR,QAAUQ,KAAKE,gBAAgBH,EAAOE,KAC3CD,KAAKT,eAAgB,EAEjBS,KAAKR,SACPW,QAAQC,IAAI,4CACL,IAETD,QAAQE,MAAM,oDACP,EACT,CAAE,MAAOA,GAIP,OAHAF,QAAQE,MAAM,uCAAwCA,GACtDL,KAAKR,SAAU,EACfQ,KAAKT,eAAgB,GACd,CACT,CACF,CAKQ,eAAAW,CAAgBD,GAEtB,SAAKA,GAAsB,KAAfA,EAAIK,SAMTN,KAAKN,UAAUa,SAASN,EACjC,CAKO,gBAAAO,GACL,OAAKR,KAAKT,gBAOLS,KAAKR,UACRW,QAAQE,MACN,kFAEK,IAVPF,QAAQE,MACN,+FAEK,EAWX,CAKO,gBAAAI,GAKL,MAAO,CACLC,YAAaV,KAAKT,cAClBoB,MAAOX,KAAKR,QACZS,IAAKD,KAAKP,WAAa,GAAGO,KAAKP,WAAWmB,UAAU,EAAG,QAAU,KAErE,CAKO,KAAAC,GACLb,KAAKT,eAAgB,EACrBS,KAAKR,SAAU,EACfQ,KAAKP,WAAa,IACpB,sCC/EA,OADuBJ,EAAeO,cAChBY,kBACxB,gCAXM,SAAgCT,GAEpC,OADuBV,EAAeO,cAChBE,WAAWC,EACnC"}
package/dist/cjs/utils.js CHANGED
@@ -1 +1,2 @@
1
1
  "use strict";function r(e){var t,n,f="";if("string"==typeof e||"number"==typeof e)f+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(f&&(f+=" "),f+=n)}else for(n in e)e[n]&&(f&&(f+=" "),f+=n);return f}module.exports=function(...e){return function(){for(var e,t,n=0,f="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(f&&(f+=" "),f+=t);return f}(e)};
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../node_modules/clsx/dist/clsx.mjs","../../src/utils/cn.ts"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { clsx, type ClassValue } from 'clsx';\n\nexport default function cn(...inputs: ClassValue[]) {\n return clsx(inputs);\n}\n"],"names":["r","e","t","f","n","Array","isArray","o","length","inputs","arguments","clsx"],"mappings":"aAAA,SAASA,EAAEC,GAAG,IAAIC,EAAEC,EAAEC,EAAE,GAAG,GAAG,iBAAiBH,GAAG,iBAAiBA,EAAEG,GAAGH,OAAO,GAAG,iBAAiBA,EAAE,GAAGI,MAAMC,QAAQL,GAAG,CAAC,IAAIM,EAAEN,EAAEO,OAAO,IAAIN,EAAE,EAAEA,EAAEK,EAAEL,IAAID,EAAEC,KAAKC,EAAEH,EAAEC,EAAEC,OAAOE,IAAIA,GAAG,KAAKA,GAAGD,EAAE,MAAM,IAAIA,KAAKF,EAAEA,EAAEE,KAAKC,IAAIA,GAAG,KAAKA,GAAGD,GAAG,OAAOC,CAAC,gBCElO,YAAgBK,GAC5B,ODHsP,WAAgB,IAAI,IAAIR,EAAEC,EAAEC,EAAE,EAAEC,EAAE,GAAGG,EAAEG,UAAUF,OAAOL,EAAEI,EAAEJ,KAAKF,EAAES,UAAUP,MAAMD,EAAEF,EAAEC,MAAMG,IAAIA,GAAG,KAAKA,GAAGF,GAAG,OAAOE,CAAC,CCGtWO,CAAKF,EACd","x_google_ignoreList":[0]}
@@ -1 +1,2 @@
1
1
  "use client";import{j as e}from"./chunks/jsx-runtime-DZXOD2H9.js";import r,{useState as a}from"react";import i from"./utils.js";import{Typography as s}from"./Typography.js";import{c as t}from"./chunks/createLucideIcon-DGp0SoUT.js";const n=t("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),o=t("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),d=r.forwardRef(({title:r,body:t,startIcon:d,isExpanded:l,onToggle:c,defaultExpanded:u=!1,className:m,id:h,disabled:f=!1,isMobile:x,...p},b)=>{const[j,y]=a(u),v=void 0!==l?l:j,g=h||`accordion-${Math.random().toString(36).substr(2,9)}`,N=`${g}-header`,k=`${g}-content`,w=x?20:24,z=x?"body-s-heavy":"body-l-heavy",$=x?"body-s-medium":"body-m-medium";return e.jsxs("div",{ref:b,className:i("rounded-2xl border-0 overflow-hidden","transition-all duration-200 ease-in-out",m),...p,children:[e.jsxs("button",{id:N,type:"button",onClick:()=>{if(f)return;const e=!v;void 0===l&&y(e),c?.(e)},disabled:f,"aria-expanded":v,"aria-controls":k,className:i("w-full flex items-center justify-between",x?"p-3":"p-4","focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2","disabled:opacity-50 disabled:cursor-not-allowed","transition-all duration-200 ease-in-out",!f&&"hover:bg-neutral-lighter"),children:[e.jsx("div",{className:"flex-shrink-0 mr-4",children:v?e.jsx(o,{size:w,className:"text-neutral-darker transition-transform duration-200","aria-hidden":"true"}):e.jsx(n,{size:w,className:"text-neutral-darker transition-transform duration-200","aria-hidden":"true"})}),e.jsxs("div",{className:i("flex items-center flex-1",x?"gap-3":"gap-4"),children:[e.jsx("div",{className:"flex-1 text-right",children:e.jsx(s,{variant:z,color:"neutral-darker",children:r})}),d&&e.jsx("div",{className:i("flex-shrink-0 flex items-center justify-center",x?"w-6 h-6":"w-8 h-8"),children:d})]})]}),e.jsx("div",{id:k,role:"region","aria-labelledby":N,className:i("w-full overflow-hidden transition-all duration-300 ease-in-out",v?"max-h-screen opacity-100":"max-h-0 opacity-0"),children:e.jsx("div",{className:i(x?"pb-3 mt-1":"pb-4 mt-1.5"),children:e.jsx("div",{className:i("bg-neutral-lighter rounded-lg",x?"p-3":"p-4"),children:e.jsx(s,{variant:$,color:"neutral-dark",children:t})})})})]})});d.displayName="Accordion";export{d as Accordion};
2
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sources":["../../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../../node_modules/lucide-react/dist/esm/icons/chevron-up.js","../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.522.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.522.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]];\nconst ChevronUp = createLucideIcon(\"chevron-up\", __iconNode);\n\nexport { __iconNode, ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n","import React, { useState } from 'react';\nimport { ChevronDown, ChevronUp } from 'lucide-react';\nimport cn from '@/utils/cn';\nimport { Typography } from '../Typography/Typography';\n\nexport interface AccordionProps {\n /** The header text content */\n title: string;\n /** The body text content */\n body: string;\n /** Icon to display at the start of the header */\n startIcon?: React.ReactNode;\n /** Whether the accordion is expanded (controlled) */\n isExpanded?: boolean;\n /** Callback when the accordion state changes */\n onToggle?: (isExpanded: boolean) => void;\n /** Default expanded state (uncontrolled) */\n defaultExpanded?: boolean;\n /** Additional CSS classes for the root element */\n className?: string;\n /** Unique identifier for the accordion */\n id?: string;\n /** Whether the accordion is disabled */\n disabled?: boolean;\n /** Whether the component is in mobile mode */\n isMobile: boolean;\n}\n\nconst Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n (\n {\n title,\n body,\n startIcon,\n isExpanded: controlledExpanded,\n onToggle,\n defaultExpanded = false,\n className,\n id,\n disabled = false,\n isMobile,\n ...props\n },\n ref,\n ) => {\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);\n\n // Use controlled state if provided, otherwise use internal state\n const isExpanded =\n controlledExpanded !== undefined ? controlledExpanded : internalExpanded;\n\n const handleToggle = () => {\n if (disabled) return;\n\n const newExpanded = !isExpanded;\n\n if (controlledExpanded === undefined) {\n setInternalExpanded(newExpanded);\n }\n\n onToggle?.(newExpanded);\n };\n\n const accordionId =\n id || `accordion-${Math.random().toString(36).substr(2, 9)}`;\n const headerId = `${accordionId}-header`;\n const contentId = `${accordionId}-content`;\n\n // Icon size based on device\n const iconSize = isMobile ? 20 : 24;\n\n // Typography variants based on device\n const titleVariant = isMobile ? 'body-s-heavy' : 'body-l-heavy';\n const bodyVariant = isMobile ? 'body-s-medium' : 'body-m-medium';\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-2xl border-0 overflow-hidden',\n 'transition-all duration-200 ease-in-out',\n className,\n )}\n {...props}\n >\n {/* Header */}\n <button\n id={headerId}\n type=\"button\"\n onClick={handleToggle}\n disabled={disabled}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n className={cn(\n 'w-full flex items-center justify-between',\n isMobile ? 'p-3' : 'p-4',\n 'focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2',\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n 'transition-all duration-200 ease-in-out',\n !disabled && 'hover:bg-neutral-lighter',\n )}\n >\n {/* Left side: Chevron icon */}\n <div className=\"flex-shrink-0 mr-4\">\n {isExpanded ? (\n <ChevronUp\n size={iconSize}\n className=\"text-neutral-darker transition-transform duration-200\"\n aria-hidden=\"true\"\n />\n ) : (\n <ChevronDown\n size={iconSize}\n className=\"text-neutral-darker transition-transform duration-200\"\n aria-hidden=\"true\"\n />\n )}\n </div>\n\n {/* Right side: Start icon and title */}\n <div\n className={cn(\n 'flex items-center flex-1',\n isMobile ? 'gap-3' : 'gap-4',\n )}\n >\n <div className=\"flex-1 text-right\">\n <Typography variant={titleVariant} color=\"neutral-darker\">\n {title}\n </Typography>\n </div>\n {startIcon && (\n <div\n className={cn(\n 'flex-shrink-0 flex items-center justify-center',\n isMobile ? 'w-6 h-6' : 'w-8 h-8',\n )}\n >\n {startIcon}\n </div>\n )}\n </div>\n </button>\n\n {/* Content */}\n <div\n id={contentId}\n role=\"region\"\n aria-labelledby={headerId}\n className={cn(\n 'w-full overflow-hidden transition-all duration-300 ease-in-out',\n isExpanded ? 'max-h-screen opacity-100' : 'max-h-0 opacity-0',\n )}\n >\n <div className={cn(isMobile ? 'pb-3 mt-1' : 'pb-4 mt-1.5')}>\n <div\n className={cn(\n 'bg-neutral-lighter rounded-lg',\n isMobile ? 'p-3' : 'p-4',\n )}\n >\n <Typography variant={bodyVariant} color=\"neutral-dark\">\n {body}\n </Typography>\n </div>\n </div>\n </div>\n </div>\n );\n },\n);\n\nAccordion.displayName = 'Accordion';\n\nexport { Accordion };\n"],"names":["ChevronDown","createLucideIcon","d","key","ChevronUp","Accordion","React","forwardRef","title","body","startIcon","isExpanded","controlledExpanded","onToggle","defaultExpanded","className","id","disabled","isMobile","props","ref","internalExpanded","setInternalExpanded","useState","undefined","accordionId","Math","random","toString","substr","headerId","contentId","iconSize","titleVariant","bodyVariant","_jsxs","cn","children","type","onClick","newExpanded","_jsx","size","Typography","variant","color","role","displayName"],"mappings":"uOASA,MACMA,EAAcC,EAAiB,eADlB,CAAC,CAAC,OAAQ,CAAEC,EAAG,eAAgBC,IAAK,aCCjDC,EAAYH,EAAiB,aADhB,CAAC,CAAC,OAAQ,CAAEC,EAAG,iBAAkBC,IAAK,aCmBnDE,EAAYC,EAAMC,WACtB,EAEIC,QACAC,OACAC,YACAC,WAAYC,EACZC,WACAC,mBAAkB,EAClBC,YACAC,KACAC,YAAW,EACXC,cACGC,GAELC,KAEA,MAAOC,EAAkBC,GAAuBC,EAAST,GAGnDH,OACmBa,IAAvBZ,EAAmCA,EAAqBS,EAcpDI,EACJT,GAAM,aAAaU,KAAKC,SAASC,SAAS,IAAIC,OAAO,EAAG,KACpDC,EAAW,GAAGL,WACdM,EAAY,GAAGN,YAGfO,EAAWd,EAAW,GAAK,GAG3Be,EAAef,EAAW,eAAiB,eAC3CgB,EAAchB,EAAW,gBAAkB,gBAEjD,OACEiB,EAAAA,KAAA,MAAA,CACEf,IAAKA,EACLL,UAAWqB,EACT,uCACA,0CACArB,MAEEI,EAAKkB,SAAA,CAGTF,EAAAA,KAAA,SAAA,CACEnB,GAAIc,EACJQ,KAAK,SACLC,QAtCe,KACnB,GAAItB,EAAU,OAEd,MAAMuB,GAAe7B,OAEMa,IAAvBZ,GACFU,EAAoBkB,GAGtB3B,IAAW2B,IA8BPvB,SAAUA,EAAQ,gBACHN,EAAU,gBACVoB,EACfhB,UAAWqB,EACT,2CACAlB,EAAW,MAAQ,MACnB,yEACA,kDACA,2CACCD,GAAY,4BACdoB,SAAA,CAGDI,EAAAA,IAAA,MAAA,CAAK1B,UAAU,qBAAoBsB,SAChC1B,EACC8B,EAAAA,IAACrC,EAAS,CACRsC,KAAMV,EACNjB,UAAU,wDAAuD,cACrD,SAGd0B,MAACzC,EAAW,CACV0C,KAAMV,EACNjB,UAAU,wDAAuD,cACrD,WAMlBoB,EAAAA,KAAA,MAAA,CACEpB,UAAWqB,EACT,2BACAlB,EAAW,QAAU,SACtBmB,SAAA,CAEDI,EAAAA,IAAA,MAAA,CAAK1B,UAAU,oBAAmBsB,SAChCI,EAAAA,IAACE,EAAU,CAACC,QAASX,EAAcY,MAAM,iBAAgBR,SACtD7B,MAGJE,GACC+B,EAAAA,IAAA,MAAA,CACE1B,UAAWqB,EACT,iDACAlB,EAAW,UAAY,WACxBmB,SAEA3B,UAOT+B,EAAAA,IAAA,MAAA,CACEzB,GAAIe,EACJe,KAAK,SAAQ,kBACIhB,EACjBf,UAAWqB,EACT,iEACAzB,EAAa,2BAA6B,qBAC3C0B,SAEDI,EAAAA,IAAA,MAAA,CAAK1B,UAAWqB,EAAGlB,EAAW,YAAc,eAAcmB,SACxDI,EAAAA,IAAA,MAAA,CACE1B,UAAWqB,EACT,gCACAlB,EAAW,MAAQ,OACpBmB,SAEDI,EAAAA,IAACE,EAAU,CAACC,QAASV,EAAaW,MAAM,eAAcR,SACnD5B,eAUjBJ,EAAU0C,YAAc","x_google_ignoreList":[0,1]}
@@ -1 +1,2 @@
1
1
  import{j as r}from"./chunks/jsx-runtime-DZXOD2H9.js";import e from"react";import t from"./utils.js";const n=e.forwardRef(({isOpen:e=!1,onClick:n,blur:o=!1,zIndex:a=51,className:i,children:s,...c},l)=>{const d=t("fixed inset-0 transition-all duration-300",{"opacity-100 pointer-events-auto":e,"opacity-0 pointer-events-none":!e,"backdrop-blur-sm":o},i),p={backgroundColor:"rgba(0, 0, 0, 0.60)",zIndex:a};return r.jsx("div",{ref:l,className:d,style:p,onClick:r=>{n&&r.target===r.currentTarget&&n()},role:"presentation","aria-hidden":!e,...c,children:s})});n.displayName="Backdrop";export{n as Backdrop};
2
+ //# sourceMappingURL=Backdrop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Backdrop.js","sources":["../../src/components/Backdrop/Backdrop.tsx"],"sourcesContent":["import React from 'react';\nimport cn from '@/utils/cn';\n\nexport interface BackdropProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Whether the backdrop is visible\n */\n isOpen?: boolean;\n /**\n * Callback function when backdrop is clicked\n */\n onClick?: () => void;\n /**\n * Whether to show a blur effect\n */\n blur?: boolean;\n /**\n * Custom z-index (defaults to z-51 which is drawer z-index + 1)\n */\n zIndex?: number;\n}\n\nexport const Backdrop = React.forwardRef<HTMLDivElement, BackdropProps>(\n (\n {\n isOpen = false,\n onClick,\n blur = false,\n zIndex = 51,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick && event.target === event.currentTarget) {\n onClick();\n }\n };\n\n const backdropClasses = cn(\n 'fixed inset-0 transition-all duration-300',\n {\n 'opacity-100 pointer-events-auto': isOpen,\n 'opacity-0 pointer-events-none': !isOpen,\n 'backdrop-blur-sm': blur,\n },\n className,\n );\n\n const backdropStyle: React.CSSProperties = {\n backgroundColor: 'rgba(0, 0, 0, 0.60)',\n zIndex,\n };\n\n return (\n <div\n ref={ref}\n className={backdropClasses}\n style={backdropStyle}\n onClick={handleClick}\n role=\"presentation\"\n aria-hidden={!isOpen}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nBackdrop.displayName = 'Backdrop';\n"],"names":["Backdrop","React","forwardRef","isOpen","onClick","blur","zIndex","className","children","props","ref","backdropClasses","cn","backdropStyle","backgroundColor","_jsx","style","event","target","currentTarget","role","displayName"],"mappings":"oGAsBO,MAAMA,EAAWC,EAAMC,WAC5B,EAEIC,UAAS,EACTC,UACAC,QAAO,EACPC,SAAS,GACTC,YACAC,cACGC,GAELC,KAEA,MAMMC,EAAkBC,EACtB,4CACA,CACE,kCAAmCT,EACnC,iCAAkCA,EAClC,mBAAoBE,GAEtBE,GAGIM,EAAqC,CACzCC,gBAAiB,sBACjBR,UAGF,OACES,EAAAA,IAAA,MAAA,CACEL,IAAKA,EACLH,UAAWI,EACXK,MAAOH,EACPT,QA1BiBa,IACfb,GAAWa,EAAMC,SAAWD,EAAME,eACpCf,KAyBAgB,KAAK,eAAc,eACLjB,KACVM,EAAKD,SAERA,MAMTR,EAASqB,YAAc"}
@@ -1 +1,2 @@
1
1
  import{j as e}from"./chunks/jsx-runtime-DZXOD2H9.js";import r from"react";import a from"./utils.js";import{C as t}from"./chunks/chevron-left-4HSuTes3.js";import"./chunks/createLucideIcon-DGp0SoUT.js";const n=r.forwardRef(({items:r,className:n,isMobile:l},s)=>e.jsx("nav",{ref:s,className:a("flex flex-row-reverse items-center",l?"gap-1 px-4 py-2.5":"gap-3 pr-1 pt-3 pb-4 pl-0",n),"aria-label":"Breadcrumb navigation",children:e.jsx("ol",{className:"flex flex-row-reverse items-center gap-inherit",children:r.map((n,s)=>{const i=s===r.length-1,o=!i&&(n.href||n.onClick),c=`${n.label}-${s}`;return e.jsxs("li",{className:"flex items-center gap-inherit",children:[o?e.jsx("a",{href:n.href||"#",className:a("whitespace-nowrap border-0 bg-transparent p-0 no-underline",l?"text-t":"text-s","text-neutral-main","cursor-pointer hover:text-neutral-dark transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 rounded-sm"),onClick:e=>((e,a,t)=>{a!==r.length-1&&e.onClick&&(t.preventDefault(),e.onClick())})(n,s,e),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),n.onClick&&n.onClick())},"aria-label":`Go to ${n.label}`,children:n.label}):e.jsx("span",{className:a("whitespace-nowrap",l?"text-t":"text-s","text-neutral-main","font-medium"),"aria-current":i?"page":void 0,"aria-label":i?`Current page: ${n.label}`:void 0,children:n.label}),!i&&e.jsx(t,{className:a("text-black flex-shrink-0",l?"w-2.5 h-2.5":"w-3 h-3"),"aria-hidden":"true"})]},c)})})}));n.displayName="Breadcrumb";export{n as Breadcrumb};
2
+ //# sourceMappingURL=Breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumb.js","sources":["../../src/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import React from 'react';\nimport { ChevronLeft } from 'lucide-react';\nimport cn from '@/utils/cn';\n\nexport interface BreadcrumbItem {\n label: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface BreadcrumbProps {\n items: BreadcrumbItem[];\n className?: string;\n /**\n * Whether the component is in mobile mode\n */\n isMobile: boolean;\n}\n\nconst Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n ({ items, className, isMobile }, ref) => {\n const handleItemClick = (\n item: BreadcrumbItem,\n index: number,\n e: React.MouseEvent,\n ) => {\n // Don't make the last item (current page) clickable\n if (index === items.length - 1) return;\n\n if (item.onClick) {\n e.preventDefault();\n item.onClick();\n }\n // If item has href, let the anchor tag handle navigation naturally\n };\n\n return (\n <nav\n ref={ref}\n className={cn(\n // Base layout - RTL with flex-row-reverse to show items right to left\n 'flex flex-row-reverse items-center',\n // Responsive gap and padding based on mobile state\n isMobile ? 'gap-1 px-4 py-2.5' : 'gap-3 pr-1 pt-3 pb-4 pl-0',\n className,\n )}\n aria-label=\"Breadcrumb navigation\"\n >\n <ol className=\"flex flex-row-reverse items-center gap-inherit\">\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n const isClickable = !isLast && (item.href || item.onClick);\n const itemKey = `${item.label}-${index}`;\n\n return (\n <li key={itemKey} className=\"flex items-center gap-inherit\">\n {/* Breadcrumb item */}\n {isClickable ? (\n <a\n href={item.href || '#'}\n className={cn(\n // Base styles\n 'whitespace-nowrap border-0 bg-transparent p-0 no-underline',\n // Responsive font size based on mobile state\n isMobile ? 'text-t' : 'text-s',\n // Color\n 'text-neutral-main',\n // Cursor and hover effects for clickable items\n 'cursor-pointer hover:text-neutral-dark transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 rounded-sm',\n )}\n onClick={(e) => handleItemClick(item, index, e)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (item.onClick) {\n item.onClick();\n }\n }\n }}\n aria-label={`Go to ${item.label}`}\n >\n {item.label}\n </a>\n ) : (\n <span\n className={cn(\n // Base styles\n 'whitespace-nowrap',\n // Responsive font size based on mobile state\n isMobile ? 'text-t' : 'text-s',\n // Color\n 'text-neutral-main',\n // Different styles for current page (last item)\n 'font-medium',\n )}\n aria-current={isLast ? 'page' : undefined}\n aria-label={\n isLast ? `Current page: ${item.label}` : undefined\n }\n >\n {item.label}\n </span>\n )}\n\n {/* Separator - only show if not the last item */}\n {!isLast && (\n <ChevronLeft\n className={cn(\n 'text-black flex-shrink-0',\n // Responsive icon size\n isMobile ? 'w-2.5 h-2.5' : 'w-3 h-3',\n )}\n aria-hidden=\"true\"\n />\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n },\n);\n\nBreadcrumb.displayName = 'Breadcrumb';\n\nexport { Breadcrumb };\n"],"names":["Breadcrumb","React","forwardRef","items","className","isMobile","ref","_jsx","cn","children","map","item","index","isLast","length","isClickable","href","onClick","itemKey","label","_jsxs","e","preventDefault","handleItemClick","onKeyDown","key","undefined","ChevronLeft","displayName"],"mappings":"wMAmBA,MAAMA,EAAaC,EAAMC,WACvB,EAAGC,QAAOC,YAAWC,YAAYC,IAiB7BC,EAAAA,WACED,IAAKA,EACLF,UAAWI,EAET,qCAEAH,EAAW,oBAAsB,4BACjCD,GACD,aACU,wBAAuBK,SAElCF,EAAAA,IAAA,KAAA,CAAIH,UAAU,iDAAgDK,SAC3DN,EAAMO,IAAI,CAACC,EAAMC,KAChB,MAAMC,EAASD,IAAUT,EAAMW,OAAS,EAClCC,GAAeF,IAAWF,EAAKK,MAAQL,EAAKM,SAC5CC,EAAU,GAAGP,EAAKQ,SAASP,IAEjC,OACEQ,EAAAA,WAAkBhB,UAAU,gCAA+BK,SAAA,CAExDM,EACCR,EAAAA,SACES,KAAML,EAAKK,MAAQ,IACnBZ,UAAWI,EAET,6DAEAH,EAAW,SAAW,SAEtB,oBAEA,+IAEFY,QAAUI,GAjDF,EACtBV,EACAC,EACAS,KAGIT,IAAUT,EAAMW,OAAS,GAEzBH,EAAKM,UACPI,EAAEC,iBACFX,EAAKM,YAuCuBM,CAAgBZ,EAAMC,EAAOS,GAC7CG,UAAYH,IACI,UAAVA,EAAEI,KAA6B,MAAVJ,EAAEI,MACzBJ,EAAEC,iBACEX,EAAKM,SACPN,EAAKM,yBAIC,SAASN,EAAKQ,iBAEzBR,EAAKQ,QAGRZ,EAAAA,IAAA,OAAA,CACEH,UAAWI,EAET,oBAEAH,EAAW,SAAW,SAEtB,oBAEA,eACD,eACaQ,EAAS,YAASa,EAAS,aAEvCb,EAAS,iBAAiBF,EAAKQ,aAAUO,EAASjB,SAGnDE,EAAKQ,SAKRN,GACAN,EAAAA,IAACoB,EAAW,CACVvB,UAAWI,EACT,2BAEAH,EAAW,cAAgB,WAC5B,cACW,WAzDTa,UAqEvBlB,EAAW4B,YAAc"}
@@ -1 +1,2 @@
1
1
  import{j as r}from"./chunks/jsx-runtime-DZXOD2H9.js";import e from"react";import t from"./utils.js";import{getTypographyClasses as a}from"./Typography.js";const o={sm:"px-[16px] py-[7px]",md:"px-[16px] py-[9px]",lg:"px-[16px] py-[13px]",xl:"px-[20px] py-[13px]"},l={sm:"body-s-bold",md:"body-m-bold",lg:"body-l-bold",xl:"body-xl-heavy"},i={primary:"\n bg-[var(--color-primary)] text-white\n hover:bg-[var(--color-primary-dark)]\n disabled:bg-[var(--color-neutral-light)] disabled:text-[var(--color-neutral-darker)]\n ",secondary:"\n bg-[var(--color-primary-lightest)] text-[var(--color-primary)]\n hover:bg-[var(--color-primary-lighter)]\n disabled:bg-[var(--color-neutral-light)] disabled:text-[var(--color-neutral-darker)]\n ",tertiary:"\n bg-white border border-[var(--color-primary-light)] text-[var(--color-primary)]\n hover:bg-[var(--color-neutral-lighter)]\n disabled:bg-[var(--color-neutral-light)] disabled:text-[var(--color-neutral-darker)]\n ",ghost:"\n bg-transparent text-[var(--color-primary)]\n hover:bg-[var(--color-primary-lightest)]\n disabled:bg-[var(--color-neutral-light)] disabled:text-[var(--color-neutral-darker)]\n "},n=e.forwardRef(({className:e,variant:n="primary",size:s="md",icon:d,iconPosition:p="right",children:c,loading:m=!1,disabled:b,textVariant:x,...g},y)=>{const h=x||l[s];return r.jsxs("button",{ref:y,type:"button",className:t("inline-flex items-center justify-center rounded-[8px] transition-colors duration-200",o[s],i[n],a(h),b&&"opacity-50 pointer-events-none",e),disabled:b||m,...g,children:[d&&"left"===p&&r.jsx("span",{className:"mr-2 flex items-center",children:d}),m?"...":c,d&&"right"===p&&r.jsx("span",{className:"ml-2 flex items-center",children:d})]})});n.displayName="Button";export{n as Button};
2
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../../src/components/Button/Button.tsx"],"sourcesContent":["import React from 'react';\nimport cn from '@/utils/cn';\nimport {\n TypographyVariant,\n getTypographyClasses,\n} from '../Typography/Typography';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'ghost';\nexport type ButtonSize = 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n textVariant?: TypographyVariant;\n icon?: React.ReactNode;\n iconPosition?: 'left' | 'right';\n loading?: boolean;\n}\n\nconst sizeClasses: Record<ButtonSize, string> = {\n sm: 'px-[16px] py-[7px]',\n md: 'px-[16px] py-[9px]',\n lg: 'px-[16px] py-[13px]',\n xl: 'px-[20px] py-[13px]',\n};\n\nconst defaultTextVariants: Record<ButtonSize, TypographyVariant> = {\n sm: 'body-s-bold', // 14px / Bold (600)\n md: 'body-m-bold', // 16px / Bold (600)\n lg: 'body-l-bold', // 18px / Bold (600)\n xl: 'body-xl-heavy', // 20px / Heavy (700)\n};\n\nconst variantClasses: Record<ButtonVariant, string> = {\n primary: `\n bg-[var(--color-primary)] text-white\n hover:bg-[var(--color-primary-dark)]\n disabled:bg-[var(--color-neutral-light)] disabled:text-[var(--color-neutral-darker)]\n `,\n secondary: `\n bg-[var(--color-primary-lightest)] text-[var(--color-primary)]\n hover:bg-[var(--color-primary-lighter)]\n disabled:bg-[var(--color-neutral-light)] disabled:text-[var(--color-neutral-darker)]\n `,\n tertiary: `\n bg-white border border-[var(--color-primary-light)] text-[var(--color-primary)]\n hover:bg-[var(--color-neutral-lighter)]\n disabled:bg-[var(--color-neutral-light)] disabled:text-[var(--color-neutral-darker)]\n `,\n ghost: `\n bg-transparent text-[var(--color-primary)]\n hover:bg-[var(--color-primary-lightest)]\n disabled:bg-[var(--color-neutral-light)] disabled:text-[var(--color-neutral-darker)]\n `,\n};\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant = 'primary',\n size = 'md',\n icon,\n iconPosition = 'right',\n children,\n loading = false,\n disabled,\n textVariant,\n ...props\n },\n ref,\n ) => {\n const finalTextVariant = textVariant || defaultTextVariants[size];\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'inline-flex items-center justify-center rounded-[8px] transition-colors duration-200',\n sizeClasses[size],\n variantClasses[variant],\n getTypographyClasses(finalTextVariant),\n disabled && 'opacity-50 pointer-events-none',\n className,\n )}\n disabled={disabled || loading}\n {...props}\n >\n {icon && iconPosition === 'left' && (\n <span className=\"mr-2 flex items-center\">{icon}</span>\n )}\n {loading ? '...' : children}\n {icon && iconPosition === 'right' && (\n <span className=\"ml-2 flex items-center\">{icon}</span>\n )}\n </button>\n );\n },\n);\n\nButton.displayName = 'Button';\n"],"names":["sizeClasses","sm","md","lg","xl","defaultTextVariants","variantClasses","primary","secondary","tertiary","ghost","Button","React","forwardRef","className","variant","size","icon","iconPosition","children","loading","disabled","textVariant","props","ref","finalTextVariant","_jsxs","type","cn","getTypographyClasses","_jsx","displayName"],"mappings":"2JAoBA,MAAMA,EAA0C,CAC9CC,GAAI,qBACJC,GAAI,qBACJC,GAAI,sBACJC,GAAI,uBAGAC,EAA6D,CACjEJ,GAAI,cACJC,GAAI,cACJC,GAAI,cACJC,GAAI,iBAGAE,EAAgD,CACpDC,QAAS,qLAKTC,UAAW,kNAKXC,SAAU,mOAKVC,MAAO,gMAOIC,EAASC,EAAMC,WAC1B,EAEIC,YACAC,UAAU,UACVC,OAAO,KACPC,OACAC,eAAe,QACfC,WACAC,WAAU,EACVC,WACAC,iBACGC,GAELC,KAEA,MAAMC,EAAmBH,GAAejB,EAAoBW,GAE5D,OACEU,OAAA,SAAA,CACEF,IAAKA,EACLG,KAAK,SACLb,UAAWc,EACT,uFACA5B,EAAYgB,GACZV,EAAeS,GACfc,EAAqBJ,GACrBJ,GAAY,iCACZP,GAEFO,SAAUA,GAAYD,KAClBG,EAAKJ,SAAA,CAERF,GAAyB,SAAjBC,GACPY,EAAAA,IAAA,OAAA,CAAMhB,UAAU,yBAAwBK,SAAEF,IAE3CG,EAAU,MAAQD,EAClBF,GAAyB,UAAjBC,GACPY,EAAAA,YAAMhB,UAAU,yBAAwBK,SAAEF,SAOpDN,EAAOoB,YAAc"}
package/dist/esm/Chips.js CHANGED
@@ -1 +1,2 @@
1
1
  import{j as r}from"./chunks/jsx-runtime-DZXOD2H9.js";import e from"react";import o from"./utils.js";import{c as t}from"./chunks/createLucideIcon-DGp0SoUT.js";const a=t("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),i={purple:{background:"bg-[var(--color-primary-lightest)]",text:"text-[var(--color-primary-darkest)]",border:"border-[var(--color-primary-light)]"},red:{background:"bg-[var(--color-error-light)]",text:"text-[var(--color-error)]",border:"border-[#f0d6d6]"},green:{background:"bg-[var(--color-success-light)]",text:"text-[var(--color-success)]",border:"border-[#d4e8dc]"},orange:{background:"bg-[var(--color-warning-light)]",text:"text-[var(--color-warning)]",border:"border-[#f5e1d1]"},blue:{background:"bg-[var(--color-info-light)]",text:"text-[var(--color-info)]",border:"border-[#d3e9f2]"},white:{background:"bg-[var(--color-white)]",text:"text-[var(--color-neutral-darker)]",border:"border-[var(--color-neutral-light)]"},disabled:{background:"bg-[var(--color-neutral-lighter)]",text:"text-[var(--color-neutral-main)]",border:"border-[var(--color-neutral-light)]"}},n={mobile:{padding:"px-2.5 py-1",gap:"gap-1",iconSize:"size-4",fontSize:"text-[12px]",lineHeight:"leading-[1.8]"},desktop:{padding:"px-3 py-1",gap:"gap-1.5",iconSize:"size-5",fontSize:"text-[14px]",lineHeight:"leading-[24px]"}},l=e.forwardRef(({variant:e="purple",size:t,children:l="متن پیشفرض",disabled:d=!1,onClick:c,onIconClick:s,className:b,isMobile:p,...g},u)=>{const x=i[d?"disabled":e],v=n[t||(p?"mobile":"desktop")],handleIconClick=r=>{r.stopPropagation(),s&&s()};return r.jsxs("div",{ref:u,className:o("relative rounded-[50px] border border-solid inline-flex","flex-row items-center justify-center","font-sans font-bold not-italic","text-nowrap text-right","transition-all duration-200",x.background,x.text,x.border,v.padding,v.gap,v.fontSize,v.lineHeight,c&&!d&&"cursor-pointer hover:opacity-80",d&&"cursor-not-allowed opacity-60",b),onClick:d?void 0:c,onKeyDown:c&&!d?r=>{"Enter"!==r.key&&" "!==r.key||!c||d||(r.preventDefault(),c())}:void 0,tabIndex:c&&!d?0:void 0,role:c?"button":void 0,...g,children:[r.jsx("span",{className:"text-center",children:l}),(()=>{const e=r.jsx(a,{className:o(v.iconSize)});return s?r.jsx("button",{type:"button",onClick:handleIconClick,disabled:d,className:o("flex items-center justify-center","hover:opacity-70 transition-opacity",d&&"cursor-not-allowed opacity-50"),"aria-label":"حذف",children:e}):e})()]})});l.displayName="Chips";export{l as Chips,l as default};
2
+ //# sourceMappingURL=Chips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chips.js","sources":["../../node_modules/lucide-react/dist/esm/icons/x.js","../../src/components/Chips/Chips.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.522.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","import React from 'react';\nimport { X } from 'lucide-react';\nimport cn from '@/utils/cn';\n\nexport interface ChipsProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The variant/color of the chip\n */\n variant?:\n | 'purple'\n | 'red'\n | 'green'\n | 'orange'\n | 'blue'\n | 'white'\n | 'disabled';\n /**\n * Size of the chip - affects padding and font size. If not provided, automatically detected from MobileContext\n */\n size?: 'mobile' | 'desktop';\n /**\n * Text content of the chip\n */\n children?: React.ReactNode;\n /**\n * Whether the chip is disabled\n */\n disabled?: boolean;\n /**\n * Click handler for the chip\n */\n onClick?: () => void;\n /**\n * Click handler for the X icon/close button\n */\n onIconClick?: () => void;\n /**\n * Custom class name\n */\n className?: string;\n /**\n * Whether the component is in mobile mode\n */\n isMobile: boolean;\n}\n\nconst chipVariants = {\n purple: {\n background: 'bg-[var(--color-primary-lightest)]',\n text: 'text-[var(--color-primary-darkest)]',\n border: 'border-[var(--color-primary-light)]',\n },\n red: {\n background: 'bg-[var(--color-error-light)]',\n text: 'text-[var(--color-error)]',\n border: 'border-[#f0d6d6]',\n },\n green: {\n background: 'bg-[var(--color-success-light)]',\n text: 'text-[var(--color-success)]',\n border: 'border-[#d4e8dc]',\n },\n orange: {\n background: 'bg-[var(--color-warning-light)]',\n text: 'text-[var(--color-warning)]',\n border: 'border-[#f5e1d1]',\n },\n blue: {\n background: 'bg-[var(--color-info-light)]',\n text: 'text-[var(--color-info)]',\n border: 'border-[#d3e9f2]',\n },\n white: {\n background: 'bg-[var(--color-white)]',\n text: 'text-[var(--color-neutral-darker)]',\n border: 'border-[var(--color-neutral-light)]',\n },\n disabled: {\n background: 'bg-[var(--color-neutral-lighter)]',\n text: 'text-[var(--color-neutral-main)]',\n border: 'border-[var(--color-neutral-light)]',\n },\n};\n\nconst chipSizes = {\n mobile: {\n padding: 'px-2.5 py-1',\n gap: 'gap-1',\n iconSize: 'size-4',\n fontSize: 'text-[12px]',\n lineHeight: 'leading-[1.8]',\n },\n desktop: {\n padding: 'px-3 py-1',\n gap: 'gap-1.5',\n iconSize: 'size-5',\n fontSize: 'text-[14px]',\n lineHeight: 'leading-[24px]',\n },\n};\n\nexport const Chips = React.forwardRef<HTMLDivElement, ChipsProps>(\n (\n {\n variant = 'purple',\n size,\n children = 'متن پیشفرض',\n disabled = false,\n onClick,\n onIconClick,\n className,\n isMobile,\n ...props\n },\n ref,\n ) => {\n const actualSize = size || (isMobile ? 'mobile' : 'desktop');\n\n const actualVariant = disabled ? 'disabled' : variant;\n const variantStyles = chipVariants[actualVariant];\n const sizeStyles = chipSizes[actualSize];\n\n const handleIconClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (onIconClick) {\n onIconClick();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if ((e.key === 'Enter' || e.key === ' ') && onClick && !disabled) {\n e.preventDefault();\n onClick();\n }\n };\n\n const renderIcon = () => {\n const iconElement = <X className={cn(sizeStyles.iconSize)} />;\n\n if (onIconClick) {\n return (\n <button\n type=\"button\"\n onClick={handleIconClick}\n disabled={disabled}\n className={cn(\n 'flex items-center justify-center',\n 'hover:opacity-70 transition-opacity',\n disabled && 'cursor-not-allowed opacity-50',\n )}\n aria-label=\"حذف\"\n >\n {iconElement}\n </button>\n );\n }\n\n return iconElement;\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n // Base styles\n 'relative rounded-[50px] border border-solid inline-flex',\n 'flex-row items-center justify-center',\n 'font-sans font-bold not-italic',\n 'text-nowrap text-right',\n 'transition-all duration-200',\n\n // Variant styles\n variantStyles.background,\n variantStyles.text,\n variantStyles.border,\n\n // Size styles\n sizeStyles.padding,\n sizeStyles.gap,\n sizeStyles.fontSize,\n sizeStyles.lineHeight,\n\n // Interactive styles\n onClick && !disabled && 'cursor-pointer hover:opacity-80',\n disabled && 'cursor-not-allowed opacity-60',\n\n className,\n )}\n onClick={disabled ? undefined : onClick}\n onKeyDown={onClick && !disabled ? handleKeyDown : undefined}\n tabIndex={onClick && !disabled ? 0 : undefined}\n role={onClick ? 'button' : undefined}\n {...props}\n >\n <span className=\"text-center\">{children}</span>\n {renderIcon()}\n </div>\n );\n },\n);\n\nChips.displayName = 'Chips';\n\nexport default Chips;\n"],"names":["X","createLucideIcon","d","key","chipVariants","purple","background","text","border","red","green","orange","blue","white","disabled","chipSizes","mobile","padding","gap","iconSize","fontSize","lineHeight","desktop","Chips","React","forwardRef","variant","size","children","onClick","onIconClick","className","isMobile","props","ref","variantStyles","sizeStyles","handleIconClick","e","stopPropagation","_jsxs","cn","undefined","onKeyDown","preventDefault","tabIndex","role","_jsx","iconElement","type","renderIcon","displayName"],"mappings":"8JASA,MAIMA,EAAIC,EAAiB,IAJR,CACjB,CAAC,OAAQ,CAAEC,EAAG,aAAcC,IAAK,WACjC,CAAC,OAAQ,CAAED,EAAG,aAAcC,IAAK,aCmC7BC,EAAe,CACnBC,OAAQ,CACNC,WAAY,qCACZC,KAAM,sCACNC,OAAQ,uCAEVC,IAAK,CACHH,WAAY,gCACZC,KAAM,4BACNC,OAAQ,oBAEVE,MAAO,CACLJ,WAAY,kCACZC,KAAM,8BACNC,OAAQ,oBAEVG,OAAQ,CACNL,WAAY,kCACZC,KAAM,8BACNC,OAAQ,oBAEVI,KAAM,CACJN,WAAY,+BACZC,KAAM,2BACNC,OAAQ,oBAEVK,MAAO,CACLP,WAAY,0BACZC,KAAM,qCACNC,OAAQ,uCAEVM,SAAU,CACRR,WAAY,oCACZC,KAAM,mCACNC,OAAQ,wCAINO,EAAY,CAChBC,OAAQ,CACNC,QAAS,cACTC,IAAK,QACLC,SAAU,SACVC,SAAU,cACVC,WAAY,iBAEdC,QAAS,CACPL,QAAS,YACTC,IAAK,UACLC,SAAU,SACVC,SAAU,cACVC,WAAY,mBAIHE,EAAQC,EAAMC,WACzB,EAEIC,UAAU,SACVC,OACAC,WAAW,aACXd,YAAW,EACXe,UACAC,cACAC,YACAC,cACGC,GAELC,KAEA,MAGMC,EAAgB/B,EADAU,EAAW,WAAaY,GAExCU,EAAarB,EAJAY,IAASK,EAAW,SAAW,YAM5CK,gBAAmBC,IACvBA,EAAEC,kBACET,GACFA,KAmCJ,OACEU,EAAAA,YACEN,IAAKA,EACLH,UAAWU,EAET,0DACA,uCACA,iCACA,yBACA,8BAGAN,EAAc7B,WACd6B,EAAc5B,KACd4B,EAAc3B,OAGd4B,EAAWnB,QACXmB,EAAWlB,IACXkB,EAAWhB,SACXgB,EAAWf,WAGXQ,IAAYf,GAAY,kCACxBA,GAAY,gCAEZiB,GAEFF,QAASf,OAAW4B,EAAYb,EAChCc,UAAWd,IAAYf,EA5DJwB,IACN,UAAVA,EAAEnC,KAA6B,MAAVmC,EAAEnC,MAAgB0B,GAAYf,IACtDwB,EAAEM,iBACFf,WAyDkDa,EAClDG,SAAUhB,IAAYf,EAAW,OAAI4B,EACrCI,KAAMjB,EAAU,cAAWa,KACvBT,EAAKL,SAAA,CAETmB,EAAAA,YAAMhB,UAAU,cAAaH,SAAEA,IA1DhB,MACjB,MAAMoB,EAAcD,EAAAA,IAAC/C,GAAE+B,UAAWU,EAAGL,EAAWjB,YAEhD,OAAIW,EAEAiB,EAAAA,IAAA,SAAA,CACEE,KAAK,SACLpB,QAASQ,gBACTvB,SAAUA,EACViB,UAAWU,EACT,mCACA,sCACA3B,GAAY,iCACb,aACU,MAAKc,SAEfoB,IAKAA,GAsCJE,QAMT3B,EAAM4B,YAAc","x_google_ignoreList":[0]}
@@ -1 +1,2 @@
1
1
  import{j as r}from"./chunks/jsx-runtime-DZXOD2H9.js";import t from"react";import i from"./utils.js";const a=t.forwardRef(({width:t="100%",height:a=1,orientation:e="horizontal",variant:n="neutral-light",className:o,style:s,...l},m)=>{const h="horizontal"===e,u={width:h?t:a,height:h?a:t,...s};return r.jsx("div",{ref:m,className:i("shrink-0",{"neutral-light":"bg-neutral-light","neutral-main":"bg-neutral-main",primary:"bg-primary"}[n],o),style:u,role:"separator",...l})});a.displayName="Divider";export{a as Divider};
2
+ //# sourceMappingURL=Divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Divider.js","sources":["../../src/components/Divider/Divider.tsx"],"sourcesContent":["import React from 'react';\nimport cn from '@/utils/cn';\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Width of the divider\n * @default \"100%\"\n */\n width?: string | number;\n /**\n * Height (thickness) of the divider\n * @default 1\n */\n height?: string | number;\n /**\n * Orientation of the divider\n * @default \"horizontal\"\n */\n orientation?: 'horizontal' | 'vertical';\n /**\n * Color variant of the divider\n * @default \"neutral-light\"\n */\n variant?: 'neutral-light' | 'neutral-main' | 'primary';\n}\n\nconst Divider = React.forwardRef<HTMLDivElement, DividerProps>(\n (\n {\n width = '100%',\n height = 1,\n orientation = 'horizontal',\n variant = 'neutral-light',\n className,\n style,\n ...props\n },\n ref,\n ) => {\n const isHorizontal = orientation === 'horizontal';\n\n const variantClasses = {\n 'neutral-light': 'bg-neutral-light',\n 'neutral-main': 'bg-neutral-main',\n primary: 'bg-primary',\n };\n\n const dividerStyle = {\n width: isHorizontal ? width : height,\n height: isHorizontal ? height : width,\n ...style,\n };\n\n return (\n <div\n ref={ref}\n className={cn('shrink-0', variantClasses[variant], className)}\n style={dividerStyle}\n role=\"separator\"\n {...props}\n />\n );\n },\n);\n\nDivider.displayName = 'Divider';\n\nexport { Divider };\n"],"names":["Divider","React","forwardRef","width","height","orientation","variant","className","style","props","ref","isHorizontal","dividerStyle","_jsx","cn","primary","role","displayName"],"mappings":"oGA0BA,MAAMA,EAAUC,EAAMC,WACpB,EAEIC,QAAQ,OACRC,SAAS,EACTC,cAAc,aACdC,UAAU,gBACVC,YACAC,WACGC,GAELC,KAEA,MAAMC,EAA+B,eAAhBN,EAQfO,EAAe,CACnBT,MAAOQ,EAAeR,EAAQC,EAC9BA,OAAQO,EAAeP,EAASD,KAC7BK,GAGL,OACEK,EAAAA,IAAA,MAAA,CACEH,IAAKA,EACLH,UAAWO,EAAG,WAfK,CACrB,gBAAiB,mBACjB,eAAgB,kBAChBC,QAAS,cAYkCT,GAAUC,GACnDC,MAAOI,EACPI,KAAK,eACDP,MAMZT,EAAQiB,YAAc"}
@@ -1 +1,2 @@
1
1
  "use client";import{j as t}from"./chunks/jsx-runtime-DZXOD2H9.js";import e,{useRef as r,useEffect as o}from"react";import l from"./utils.js";const n=e.forwardRef(({children:e,direction:n="bottom",fullScreen:a=!1,isOpen:s=!1,onClose:u,className:i,isMobile:d,...c},f)=>{const m=r(null),b=r(null);o(()=>{const handleEscape=t=>{"Escape"===t.key&&s&&u&&u()};return s&&(document.addEventListener("keydown",handleEscape),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",handleEscape),document.body.style.overflow="auto"}},[s,u]);const h=l("fixed inset-0 z-50 transition-all duration-300",{"bg-neutral-darker/50 backdrop-blur-sm":s,"bg-transparent pointer-events-none":!s}),p=l("fixed bg-white shadow-2xl transition-all duration-300 ease-out overflow-auto",(()=>{switch(n){case"top":return"top-0 left-0 right-0";case"bottom":default:return"bottom-0 left-0 right-0";case"left":return"top-0 left-0 bottom-0";case"right":return"top-0 right-0 bottom-0"}})(),(()=>{const t="top"===n||"bottom"===n;return a?"w-full h-full":t?"w-full max-h-[90vh]":"h-full max-w-[90vw]"})(),(()=>{if(!s)switch(n){case"top":return"-translate-y-full";case"bottom":default:return"translate-y-full";case"left":return"-translate-x-full";case"right":return"translate-x-full"}return"translate-x-0 translate-y-0"})(),{"rounded-t-2xl":"bottom"===n&&!a,"rounded-b-2xl":"top"===n&&!a,"rounded-r-2xl":"left"===n&&!a,"rounded-l-2xl":"right"===n&&!a,"p-6":!d,"p-4":d},i);return s?t.jsx("div",{ref:m,className:h,onClick:t=>{!a&&u&&m.current&&t.target===m.current&&u()},onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||!a&&u&&m.current&&t.target===m.current&&u()},tabIndex:-1,role:"button","aria-label":"Close drawer",children:t.jsx("div",{ref:f||b,className:p,role:"dialog","aria-modal":"true","aria-label":"Drawer",...c,children:e})}):null});n.displayName="Drawer";export{n as Drawer};
2
+ //# sourceMappingURL=Drawer.js.map