automoby-kit 1.0.8 → 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 (87) 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 +2 -1
  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 +2 -1
  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/dist/types/index.d.ts +14 -14
  86. package/dist/types/index.js +18 -16
  87. package/package.json +1 -1
@@ -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
- "use strict";var e=require("./ProtectedComponent.js"),r=require("./Typography.js"),i=require("./Button.js"),t=require("./Input.js"),o=require("./Tabs.js"),s=require("./Drawer.js"),n=require("./Backdrop.js"),c=require("./Breadcrumb.js"),u=require("./Pagination.js"),p=require("./Accordion.js"),a=require("./Divider.js"),h=require("./RadioGroup.js"),d=require("./Chips.js"),j=require("./Menu.js"),q=require("./licensing.js"),P=require("./contexts.js");require("./chunks/jsx-runtime-Bgd4cJfV.js"),require("react"),require("./utils.js"),require("./chunks/chevron-left-Do__K6cA.js"),require("./chunks/createLucideIcon-BqJVOzoK.js");const w=e.withLicenseProtection(r.Typography,"Typography"),x=e.withLicenseProtection(i.Button,"Button"),L=e.withLicenseProtection(t.Input,"Input"),b=e.withLicenseProtection(o.Tabs,"Tabs"),B=e.withLicenseProtection(s.Drawer,"Drawer"),g=e.withLicenseProtection(n.Backdrop,"Backdrop"),m=e.withLicenseProtection(c.Breadcrumb,"Breadcrumb"),v=e.withLicenseProtection(u.Pagination,"Pagination"),y=e.withLicenseProtection(p.Accordion,"Accordion"),D=e.withLicenseProtection(a.Divider,"Divider"),T=e.withLicenseProtection(h.RadioGroup,"RadioGroup"),k=e.withLicenseProtection(d.Chips,"Chips"),l=e.withLicenseProtection(j.Menu,"Menu");exports.initializeAutomobiKit=q.initializeAutomobiKit,exports.MobileProvider=P.MobileProvider,exports.Accordion=y,exports.Backdrop=g,exports.Breadcrumb=m,exports.Button=x,exports.Chips=k,exports.Divider=D,exports.Drawer=B,exports.Input=L,exports.Menu=l,exports.Pagination=v,exports.RadioGroup=T,exports.Tabs=b,exports.Typography=w;
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"}