automoby-kit 1.0.63 → 1.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +312 -100
- package/dist/cjs/Input.js +1 -1
- package/dist/cjs/contexts.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/Input.js +1 -1
- package/dist/esm/contexts.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/types/Input.js +31 -37
- package/dist/types/contexts/MobileContext.d.ts +2 -0
- package/dist/types/contexts.js +24 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +1 -1
- package/package.json +176 -176
package/README.md
CHANGED
|
@@ -1,100 +1,312 @@
|
|
|
1
|
-
# Automoby Kit
|
|
2
|
-
|
|
3
|
-
A comprehensive React UI component library - created in war 2025.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
import {
|
|
68
|
-
|
|
69
|
-
function App() {
|
|
70
|
-
return (
|
|
71
|
-
<
|
|
72
|
-
<
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
1
|
+
# Automoby Kit
|
|
2
|
+
|
|
3
|
+
A comprehensive React UI component library built with TypeScript and Tailwind CSS - created in war 2025.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## ✨ Features
|
|
10
|
+
|
|
11
|
+
- 🎨 **15+ Production-Ready Components** - Comprehensive UI library for modern React applications
|
|
12
|
+
- 📱 **Mobile-First Design** - Built-in mobile detection and responsive behavior
|
|
13
|
+
- 🎯 **TypeScript Native** - Full type safety with complete TypeScript definitions
|
|
14
|
+
- 🌳 **Tree-Shakeable** - Import only what you need for optimal bundle size
|
|
15
|
+
- 🎨 **Tailwind CSS** - Styled with Tailwind for easy customization
|
|
16
|
+
- ♿ **Accessible** - ARIA-compliant components following best practices
|
|
17
|
+
- 🚀 **Modern React 19** - Built for the latest React features
|
|
18
|
+
|
|
19
|
+
## 🚀 Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install automoby-kit
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Peer Dependencies
|
|
26
|
+
|
|
27
|
+
Make sure you have these installed:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install react react-dom clsx lucide-react tailwindcss ua-parser-js
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 📦 Usage
|
|
34
|
+
|
|
35
|
+
### Import All Components
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import {
|
|
39
|
+
Button,
|
|
40
|
+
Typography,
|
|
41
|
+
Input,
|
|
42
|
+
Tabs,
|
|
43
|
+
Dialog,
|
|
44
|
+
Select
|
|
45
|
+
} from 'automoby-kit';
|
|
46
|
+
|
|
47
|
+
function App() {
|
|
48
|
+
return (
|
|
49
|
+
<div>
|
|
50
|
+
<Typography variant="h1">Welcome to Automoby Kit</Typography>
|
|
51
|
+
<Button variant="primary" size="lg">
|
|
52
|
+
Click me!
|
|
53
|
+
</Button>
|
|
54
|
+
<Input placeholder="Enter text..." />
|
|
55
|
+
</div>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Import Individual Components (Tree-Shaking)
|
|
61
|
+
|
|
62
|
+
For better bundle optimization, import components individually:
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
import { Button } from 'automoby-kit/Button';
|
|
66
|
+
import { Typography } from 'automoby-kit/Typography';
|
|
67
|
+
import { Input } from 'automoby-kit/Input';
|
|
68
|
+
|
|
69
|
+
function App() {
|
|
70
|
+
return (
|
|
71
|
+
<div>
|
|
72
|
+
<Typography variant="h1">Optimized Bundle</Typography>
|
|
73
|
+
<Button variant="primary">Click me!</Button>
|
|
74
|
+
<Input placeholder="Type here..." />
|
|
75
|
+
</div>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## 🧩 Available Components
|
|
81
|
+
|
|
82
|
+
### Form Components
|
|
83
|
+
- **Input** - Advanced input fields with label, error states, and various types
|
|
84
|
+
- **Select** - Dropdown select with keyboard navigation and accessibility
|
|
85
|
+
- **RadioGroup** - Radio button groups with customizable options
|
|
86
|
+
|
|
87
|
+
### Navigation Components
|
|
88
|
+
- **Breadcrumb** - Navigation breadcrumbs for showing page hierarchy
|
|
89
|
+
- **Menu** - Context menus and dropdowns with nested support
|
|
90
|
+
- **Tabs** - Tabbed interfaces for organizing content
|
|
91
|
+
- **Pagination** - Page navigation with mobile and desktop variants
|
|
92
|
+
|
|
93
|
+
### Display Components
|
|
94
|
+
- **Typography** - Text rendering with various heading and body styles
|
|
95
|
+
- **Button** - Interactive buttons with multiple variants and sizes
|
|
96
|
+
- **Chips** - Tag-like elements for categories or filters
|
|
97
|
+
- **Divider** - Visual separators for content sections
|
|
98
|
+
- **Accordion** - Collapsible content sections
|
|
99
|
+
|
|
100
|
+
### Overlay Components
|
|
101
|
+
- **Dialog** - Modal dialogs with customizable content and actions
|
|
102
|
+
- **Drawer** - Slide-out panels from any direction
|
|
103
|
+
- **Backdrop** - Overlay backgrounds for modals
|
|
104
|
+
|
|
105
|
+
## 🏗️ TypeScript Support
|
|
106
|
+
|
|
107
|
+
All components come with full TypeScript support and exported types:
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
import {
|
|
111
|
+
ButtonProps,
|
|
112
|
+
ButtonVariant,
|
|
113
|
+
ButtonSize,
|
|
114
|
+
TypographyProps,
|
|
115
|
+
TypographyVariant,
|
|
116
|
+
InputProps,
|
|
117
|
+
DialogProps,
|
|
118
|
+
SelectProps,
|
|
119
|
+
SelectOption
|
|
120
|
+
} from 'automoby-kit';
|
|
121
|
+
|
|
122
|
+
// Use types in your components
|
|
123
|
+
const MyButton: React.FC<ButtonProps> = (props) => {
|
|
124
|
+
return <Button {...props} />;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
// Define variants with type safety
|
|
128
|
+
const variant: ButtonVariant = 'primary';
|
|
129
|
+
const size: ButtonSize = 'lg';
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## 📱 Mobile Context
|
|
133
|
+
|
|
134
|
+
The library includes a mobile detection context for responsive behavior:
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
import { MobileProvider, useMobile } from 'automoby-kit';
|
|
138
|
+
|
|
139
|
+
function App() {
|
|
140
|
+
return (
|
|
141
|
+
<MobileProvider userAgent={navigator.userAgent}>
|
|
142
|
+
<MyComponent />
|
|
143
|
+
</MobileProvider>
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function MyComponent() {
|
|
148
|
+
const isMobile = useMobile();
|
|
149
|
+
|
|
150
|
+
return (
|
|
151
|
+
<div>
|
|
152
|
+
{isMobile ? (
|
|
153
|
+
<p>Mobile View</p>
|
|
154
|
+
) : (
|
|
155
|
+
<p>Desktop View</p>
|
|
156
|
+
)}
|
|
157
|
+
</div>
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## 🎨 Component Examples
|
|
163
|
+
|
|
164
|
+
### Dialog
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
import { Dialog, DialogButton } from 'automoby-kit';
|
|
168
|
+
import { useState } from 'react';
|
|
169
|
+
|
|
170
|
+
function MyDialog() {
|
|
171
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
172
|
+
|
|
173
|
+
return (
|
|
174
|
+
<Dialog
|
|
175
|
+
isOpen={isOpen}
|
|
176
|
+
onClose={() => setIsOpen(false)}
|
|
177
|
+
title="Confirm Action"
|
|
178
|
+
content={<p>Are you sure you want to proceed?</p>}
|
|
179
|
+
buttons={
|
|
180
|
+
<>
|
|
181
|
+
<DialogButton variant="primary" onClick={() => setIsOpen(false)}>
|
|
182
|
+
Confirm
|
|
183
|
+
</DialogButton>
|
|
184
|
+
<DialogButton variant="secondary" onClick={() => setIsOpen(false)}>
|
|
185
|
+
Cancel
|
|
186
|
+
</DialogButton>
|
|
187
|
+
</>
|
|
188
|
+
}
|
|
189
|
+
/>
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Select
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
import { Select } from 'automoby-kit';
|
|
198
|
+
|
|
199
|
+
function MySelect() {
|
|
200
|
+
const options = [
|
|
201
|
+
{ value: '1', label: 'Option 1' },
|
|
202
|
+
{ value: '2', label: 'Option 2' },
|
|
203
|
+
{ value: '3', label: 'Option 3' },
|
|
204
|
+
];
|
|
205
|
+
|
|
206
|
+
return (
|
|
207
|
+
<Select
|
|
208
|
+
label="Choose an option"
|
|
209
|
+
placeholder="Select..."
|
|
210
|
+
options={options}
|
|
211
|
+
onChange={(value) => console.log('Selected:', value)}
|
|
212
|
+
/>
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Pagination
|
|
218
|
+
|
|
219
|
+
```typescript
|
|
220
|
+
import { Pagination } from 'automoby-kit';
|
|
221
|
+
|
|
222
|
+
function MyPagination() {
|
|
223
|
+
return (
|
|
224
|
+
<Pagination
|
|
225
|
+
currentPage={1}
|
|
226
|
+
totalPages={10}
|
|
227
|
+
onPageChange={(page) => console.log('Page:', page)}
|
|
228
|
+
/>
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## 🎯 Available Exports
|
|
234
|
+
|
|
235
|
+
### Components
|
|
236
|
+
`Button`, `Typography`, `Input`, `Tabs`, `Drawer`, `Backdrop`, `Breadcrumb`, `Pagination`, `Accordion`, `Divider`, `RadioGroup`, `Chips`, `Menu`, `Dialog`, `DialogButton`, `Select`
|
|
237
|
+
|
|
238
|
+
### Context Providers
|
|
239
|
+
`MobileProvider`, `useMobile`
|
|
240
|
+
|
|
241
|
+
### Utilities
|
|
242
|
+
`cn` (classname utility from `automoby-kit/utils`)
|
|
243
|
+
|
|
244
|
+
### Types
|
|
245
|
+
All component props and variants are exported for TypeScript users.
|
|
246
|
+
|
|
247
|
+
## 🛠️ Peer Dependencies
|
|
248
|
+
|
|
249
|
+
```json
|
|
250
|
+
{
|
|
251
|
+
"react": "^19.1.0",
|
|
252
|
+
"react-dom": "^19.1.0",
|
|
253
|
+
"clsx": "^2.1.1",
|
|
254
|
+
"lucide-react": "^0.522.0",
|
|
255
|
+
"tailwindcss": "^4.1.10",
|
|
256
|
+
"typescript": "^5.8.3",
|
|
257
|
+
"ua-parser-js": "^2.0.4"
|
|
258
|
+
}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## 📦 Bundle Formats
|
|
262
|
+
|
|
263
|
+
This package ships with multiple bundle formats:
|
|
264
|
+
|
|
265
|
+
- **ESM** - `dist/esm` - ES Modules for modern bundlers
|
|
266
|
+
- **CommonJS** - `dist/cjs` - CommonJS for Node.js compatibility
|
|
267
|
+
- **TypeScript Definitions** - `dist/types` - Complete type definitions
|
|
268
|
+
|
|
269
|
+
## 🔧 Configuration
|
|
270
|
+
|
|
271
|
+
If you're using Next.js 13+, add 'use client' directive when needed (automatically handled in pre-built bundles):
|
|
272
|
+
|
|
273
|
+
```typescript
|
|
274
|
+
'use client';
|
|
275
|
+
|
|
276
|
+
import { Button } from 'automoby-kit';
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## 🌟 Why Automoby Kit?
|
|
280
|
+
|
|
281
|
+
- **Battle-Tested** - Built during production demands
|
|
282
|
+
- **Developer Experience** - Intuitive API with excellent TypeScript support
|
|
283
|
+
- **Performance** - Optimized bundle size with tree-shaking support
|
|
284
|
+
- **Modern Stack** - Built with latest React 19 and TypeScript 5.8
|
|
285
|
+
- **Accessible** - WCAG compliant components
|
|
286
|
+
- **Customizable** - Easy to theme with Tailwind CSS
|
|
287
|
+
|
|
288
|
+
## 🆘 Support
|
|
289
|
+
|
|
290
|
+
If you encounter any issues:
|
|
291
|
+
|
|
292
|
+
1. Check the [GitHub issues](https://github.com/yourusername/automoby-kit/issues)
|
|
293
|
+
2. Submit a detailed issue report
|
|
294
|
+
3. Provide a minimal reproduction example
|
|
295
|
+
|
|
296
|
+
## 👥 Authors
|
|
297
|
+
|
|
298
|
+
- **Ghazal Kordi** - Co-creator
|
|
299
|
+
- **Alireza Mirzaee** - Co-creator
|
|
300
|
+
|
|
301
|
+
## 📄 License
|
|
302
|
+
|
|
303
|
+
ISC
|
|
304
|
+
|
|
305
|
+
## 🔄 Version History
|
|
306
|
+
|
|
307
|
+
- **1.0.64** - Current stable release
|
|
308
|
+
- **1.0.0** - Initial release
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
Built with ❤️ in 2025
|
package/dist/cjs/Input.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";var
|
|
1
|
+
"use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./utils.js"),l=require("./contexts.js");const a=t.forwardRef(({state:a="default",label:n,value:i,onChange:s,helperText:o,startIcon:u,endIcon:d,type:x="text",placeholder:h,isMobile:p,containerClassName:c,...m},f)=>{const[b,g]=t.useState(!1),j=t.useId(),w=l.useMobile(),v=p??w,y=b||""!==i&&null!=i,N="disabled"===a,I=r("relative flex items-center border rounded-lg transition-all duration-300 w-full",{"h-12":v,"h-14":!v},"transition-all duration-300",{"border-neutral-light":"default"===a&&!b,"border-primary":"default"===a&&b,"border-error":"error"===a,"bg-white border-neutral-light cursor-not-allowed":N},c),q=r("absolute pointer-events-none transition-all duration-300",{"-top-2.5 bg-white px-1 mx-3 font-medium":y,"text-xs":y&&v,"text-s":y&&!v,"text-s font-medium":!y&&v,"text-m font-medium":!y&&!v,"right-3":!u,"top-1/2 -translate-y-1/2":!y,"right-11":!y&&u,"right-4":!y&&!u,"text-neutral-main":!b&&"default"===a,"text-neutral-light":N,"text-primary":b&&"default"===a,"text-error":y&&"error"===a}),C=r("peer w-full h-full bg-transparent outline-none font-medium disabled:text-neutral-light",{"text-s":v,"text-m":!v},{"pr-10":u,"pl-10":d,"px-3":!u&&!d,"pr-3 pl-10":!u&&d,"pl-3 pr-10":u&&!d,"cursor-not-allowed text-red-500":N,"text-neutral-dark":!b,"text-neutral-darker":b}),F=r("absolute transition-colors duration-300",{"h-4 w-4":v,"h-5 w-5":!v},{"text-neutral-main":"error"!==a&&!b,"text-primary":"default"===a&&b,"text-error":"error"===a,"text-neutral-light":N}),k=r("font-light mt-1 h-4 px-3",{"text-xs":v,"text-s":!v},{"text-neutral-main":"default"===a,"text-primary":"default"===a&&b,"text-error":"error"===a,"text-neutral-light":N}),B=h&&!b?void 0:h;return e.jsxs("div",{children:[e.jsxs("div",{className:I,children:[d&&e.jsx("span",{className:r(F,"left-3"),children:d}),e.jsx("label",{htmlFor:j,className:q,children:n}),e.jsx("input",{ref:f,id:j,type:x,value:i,onChange:s,onFocus:e=>{N||(g(!0),m.onFocus?.(e))},onBlur:e=>{N||(g(!1),m.onBlur?.(e))},disabled:N,placeholder:B,className:C,...m}),u&&e.jsx("span",{className:r(F,"right-3"),children:u})]}),o&&e.jsx("p",{className:k,children:o})]})});a.displayName="Input",exports.Input=a;
|
package/dist/cjs/contexts.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var i,e=require("react/jsx-runtime"),t=require("react"),r="user-agent",o="",a="function",s="undefined",n="object",w="string",d="browser",b="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",_="tablet",A="smarttv",S="wearable",O="xr",I="embedded",M="inapp",q="brands",U="formFactors",P="fullVersionList",z="platform",E="platformVersion",T="bitness",H="sec-ch-ua",j=H+"-full-version-list",D=H+"-arch",B=H+"-"+T,V=H+"-form-factors",R=H+"-"+C,L=H+"-"+x,W=H+"-"+z,F=W+"-version",N=[q,P,C,x,z,E,v,U,T],G="Amazon",$="Apple",X="ASUS",Y="BlackBerry",K="Google",Q="Huawei",Z="Lenovo",J="Honor",ii="LG",ei="Microsoft",ti="Motorola",ri="Nvidia",oi="OnePlus",ai="OPPO",si="Samsung",ni="Sharp",wi="Sony",di="Xiaomi",bi="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(","),r=0;r<t.length;r++)if(t[r].indexOf(";")>-1){var o=trim(t[r]).split(";v=");e[r]={brand:o[0],version:o[1]}}else e[r]=trim(t[r]);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,o):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,r,o,s,w,d,b=0;b<e.length&&!w;){var l=e[b],c=e[b+1];for(t=r=0;t<l.length&&!w&&l[t];)if(w=l[t++].exec(i))for(o=0;o<c.length;o++)d=w[++r],typeof(s=c[o])===n&&s.length>0?2===s.length?typeof s[1]==a?this[s[0]]=s[1].call(this,d):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]!==a||s[1].exec&&s[1].test?3==s.length?this[s[0]]=d?d.replace(s[1],s[2]):void 0:4==s.length?this[s[0]]=d?s[3].call(this,d.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=d?s[3].apply(this,[d.replace(s[1],s[2])].concat(s.slice(4))):void 0):s.length>3?this[s[0]]=d?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=d?s[1].call(this,d,s[2]):void 0):this[s]=d||void 0;b+=2}},strMapper=function(i,e){for(var t in e)if(typeof e[t]===n&&e[t].length>0){for(var r=0;r<e[t].length;r++)if(has(e[t][r],i))return"?"===t?void 0:t}else if(has(e[t],i))return"?"===t?void 0:t;return e.hasOwnProperty("*")?e["*"]:i},_i={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:""},Ai={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"},Oi={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,M]],[/(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,M]],[/\bgsa\/([\w\.]+) .*safari\//i],[g,[p,"GSA"],[m,M]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[g,[p,"TikTok"],[m,M]],[/\[(linkedin)app\]/i],[p,[m,M]],[/(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\.]+./,o]]],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/,o,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,_]],[/\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,_]],[/(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,_]],[/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,_]],[/(?: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,di],[m,_]],[/\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,di],[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,oi],[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,_]],[/(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,_]],[/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,_]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[x,[f,ii],[m,_]],[/(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,_]],[/(?: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,_]],[/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,_]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[x,[f,G],[m,_]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[x,/(.+)/g,"Fire Phone $1"],[f,G],[m,C]],[/(playbook);[-\w\),; ]+(rim)/i],[x,f,[m,_]],[/\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,_]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[x,[f,X],[m,C]],[/(nexus 9)/i],[x,[f,"HTC"],[m,_]],[/(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,_]],[/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,_]],[/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,_]],[/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,_]],[/(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,_]],[/(surface duo)/i],[x,[f,ei],[m,_]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[x,[f,"Fairphone"],[m,C]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[x,[f,ri],[m,_]],[/(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,bi],[m,_]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[x,[f,bi],[m,C]],[/smart-tv.+(samsung)/i],[f,[m,A]],[/hbbtv.+maple;(\d+)/i],[[x,/^/,"SmartTV"],[f,si],[m,A]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[f,x,[m,A]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[f,ii],[m,A]],[/(apple) ?tv/i],[f,[x,$+" TV"],[m,A]],[/crkey.*devicetype\/chromecast/i],[[x,ui+" Third Generation"],[f,K],[m,A]],[/crkey.*devicetype\/([^/]*)/i],[[x,/^/,"Chromecast "],[f,K],[m,A]],[/fuchsia.*crkey/i],[[x,ui+" Nest Hub"],[f,K],[m,A]],[/crkey/i],[[x,ui],[f,K],[m,A]],[/(portaltv)/i],[x,[f,fi],[m,A]],[/droid.+aft(\w+)( bui|\))/i],[x,[f,G],[m,A]],[/(shield \w+ tv)/i],[x,[f,ri],[m,A]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[x,[f,ni],[m,A]],[/(bravia[\w ]+)( bui|\))/i],[x,[f,wi],[m,A]],[/(mi(tv|box)-?\w+) bui/i],[x,[f,di],[m,A]],[/Hbbtv.*(technisat) (.*);/i],[f,x,[m,A]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[f,/.+\/(\w+)/,"$1",strMapper,{LG:"lge"}],[x,trim],[m,A]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[x,[m,A]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:|large screen[\w ]+safari)\b/i],[[m,A]],[/(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,ri],[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,oi],[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,bi],[m,S]],[/droid.+; (glass) \d/i],[x,[f,K],[m,O]],[/(pico) (4|neo3(?: link|pro)?)/i],[f,x,[m,O]],[/(quest( \d| pro)?s?).+vr/i],[x,[f,fi],[m,O]],[/mobile vr; rv.+firefox/i],[[m,O]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[f,[m,I]],[/(aeobc)\b/i],[x,[f,G],[m,I]],[/(homepod).+mac os/i],[x,[f,$],[m,I]],[/windows iot/i],[[m,I]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i],[x,[m,strMapper,{mobile:"Mobile",xr:"VR","*":_}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[m,_]],[/(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,_i]],[/(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,_i],[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]]},Ii=(setProps.call((i={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}}).init,[[d,[p,g,k,m]],[b,[v]],[l,[m,x,f]],[c,[p,g]],[u,[p,g]]]),setProps.call(i.isIgnore,[[d,[g,k]],[c,[g]],[u,[g]]]),setProps.call(i.isIgnoreRgx,[[d,/ ?browser$/i],[u,/ ?os$/i]]),setProps.call(i.toString,[[d,[p,g]],[b,[v]],[l,[f,x]],[c,[p,g]],[u,[p,g]]]),i),createIData=function(i,e){var t=Ii.init[e],r=Ii.isIgnore[e]||0,a=Ii.isIgnoreRgx[e]||0,n=Ii.toString[e]||0;function IData(){setProps.call(this,t)}return IData.prototype.getItem=function(){return i},IData.prototype.withClientHints=function(){return Ci?Ci.getHighEntropyValues(N).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(r,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=o;for(var e in n)typeof this[n[e]]!==s&&(i+=(i?" ":o)+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,N),e)setProps.call(this,[[q,itemListToArray(i[H])],[P,itemListToArray(i[j])],[C,/\?1/.test(i[R])],[x,stripQuotes(i[L])],[z,stripQuotes(i[W])],[E,stripQuotes(i[F])],[v,stripQuotes(i[D])],[U,itemListToArray(i[V])],[T,stripQuotes(i[B])]]);else for(var t in i)this.hasOwnProperty(t)&&typeof i[t]!==s&&(this[t]=i[t])}function UAItem(i,e,t,r){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 d: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,_);break;case u:!this.get(p)&&Ci&&Ci[z]&&this.set(p,Ci[z]);break;case h:var i=this.data,detect=function(e){return i[e].getItem().detectFeature().get()};this.set(d,detect(d)).set(b,detect(b)).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==d&&this.set(k,majorize(this.get(g))),this},this.parseCH=function(){var i=this.uaCH,e=this.rgxMap;switch(this.itemType){case d:case c:var t,r=i[P]||i[q];if(r)for(var o in r){var a=r[o].brand||r[o],s=r[o].version;this.itemType==d&&!/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 b:var n=i[v];n&&(n&&"64"==i[T]&&(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[U]){var y;if("string"!=typeof i[U])for(var _=0;!y&&_<i[U].length;)y=strMapper(i[U][_++],Ai);else y=strMapper(i[U],Ai);this.set(m,y)}break;case u:var A=i[z];if(A){var S=i[E];A==xi&&(S=parseInt(majorize(S),10)>=13?"11":"10"),this.set(p,A).set(g,S)}this.get(p)==xi&&"Xbox"==i[x]&&this.set(p,"Xbox").set(g,void 0);break;case h:var O=this.data,parse=function(e){return O[e].getItem().setCH(i).parseCH().get()};this.set(d,parse(d)).set(b,parse(b)).set(l,parse(l)).set(c,parse(c)).set(u,parse(u))}return this},setProps.call(this,[["itemType",i],["ua",e],["uaCH",r],["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[r]?t[r]:yi&&yi.userAgent?yi.userAgent:o,m=new UACHData(t,!0),f=e?function(i,e){var t={},r=e;if(!isExtensions(e))for(var o in r={},e)for(var a in e[o])r[a]=e[o][a].concat(r[a]?r[a]:[]);for(var s in i)t[s]=r[s]&&r[s].length%2==0?r[s].concat(i[s]):i[s];return t}(Oi,e):Oi,createItemFunc=function(i){return i==h?function(){return new UAItem(i,p,f,m).set("ua",p).set(d,this.getBrowser()).set(b,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(d)],["getCPU",createItemFunc(b)],["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,I]),UAParser.ENGINE=UAParser.OS=enumerize([p,g]);const Mi=t.createContext(void 0),detectDeviceByScreenWidth=()=>{if("undefined"==typeof window)return!1;return window.innerWidth<1024};exports.MobileProvider=({userAgent:i,children:r})=>{const o=(i=>{const e=new UAParser(i).getDevice();return"mobile"===e.type||"tablet"===e.type})(i),[a,s]=t.useState(()=>detectDeviceByScreenWidth());t.useEffect(()=>{const handleResize=()=>{s(detectDeviceByScreenWidth())};return s(detectDeviceByScreenWidth()),window.addEventListener("resize",handleResize),()=>{window.removeEventListener("resize",handleResize)}},[]);const n="undefined"!=typeof window?a:o,w=t.useMemo(()=>({isMobile:n,userAgent:i}),[n,i]);return e.jsx(Mi.Provider,{value:w,children:r})},exports.default=Mi,exports.useMobile=()=>{if("true"===process.env.STORYBOOK_FORCE_MOBILE)return!0;if("false"===process.env.STORYBOOK_FORCE_MOBILE)return!1;const i=t.useContext(Mi);if(void 0===i)throw new Error("useMobile must be used within a MobileProvider");return i.isMobile};
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var i,e=require("react/jsx-runtime"),t=require("react"),r="user-agent",o="",a="function",s="undefined",n="object",w="string",d="browser",b="cpu",l="device",c="engine",u="os",h="result",p="name",m="type",f="vendor",v="version",g="architecture",x="major",k="model",y="console",C="mobile",_="tablet",A="smarttv",S="wearable",O="xr",I="embedded",M="inapp",T="brands",q="formFactors",P="fullVersionList",U="platform",E="platformVersion",z="bitness",H="sec-ch-ua",j=H+"-full-version-list",D=H+"-arch",B=H+"-"+z,V=H+"-form-factors",R=H+"-"+C,L=H+"-"+k,W=H+"-"+U,F=W+"-version",N=[T,P,C,k,U,E,g,q,z],G="Amazon",$="Apple",X="ASUS",Y="BlackBerry",K="Google",Q="Huawei",Z="Lenovo",J="Honor",ii="LG",ei="Microsoft",ti="Motorola",ri="Nvidia",oi="OnePlus",ai="OPPO",si="Samsung",ni="Sharp",wi="Sony",di="Xiaomi",bi="Zebra",li="Chrome",ci="Chromium",ui="Chromecast",hi="Edge",pi="Firefox",mi="Opera",fi="Facebook",vi="Sogou",gi="Mobile ",xi=" Browser",ki="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(","),r=0;r<t.length;r++)if(t[r].indexOf(";")>-1){var o=trim(t[r]).split(";v=");e[r]={brand:o[0],version:o[1]}}else e[r]=trim(t[r]);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,o):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,r,o,s,w,d,b=0;b<e.length&&!w;){var l=e[b],c=e[b+1];for(t=r=0;t<l.length&&!w&&l[t];)if(w=l[t++].exec(i))for(o=0;o<c.length;o++)d=w[++r],typeof(s=c[o])===n&&s.length>0?2===s.length?typeof s[1]==a?this[s[0]]=s[1].call(this,d):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]!==a||s[1].exec&&s[1].test?3==s.length?this[s[0]]=d?d.replace(s[1],s[2]):void 0:4==s.length?this[s[0]]=d?s[3].call(this,d.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=d?s[3].apply(this,[d.replace(s[1],s[2])].concat(s.slice(4))):void 0):s.length>3?this[s[0]]=d?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=d?s[1].call(this,d,s[2]):void 0):this[s]=d||void 0;b+=2}},strMapper=function(i,e){for(var t in e)if(typeof e[t]===n&&e[t].length>0){for(var r=0;r<e[t].length;r++)if(has(e[t][r],i))return"?"===t?void 0:t}else if(has(e[t],i))return"?"===t?void 0:t;return e.hasOwnProperty("*")?e["*"]:i},_i={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:""},Ai={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"},Oi={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[v,[p,gi+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[v,[p,hi+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[v,[p,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[p,v],[/opios[\/ ]+([\w\.]+)/i],[v,[p,mi+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[v,[p,mi+" GX"]],[/\bopr\/([\w\.]+)/i],[v,[p,mi]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[v,[p,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[v,[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,v],[/quark(?:pc)?\/([-\w\.]+)/i],[v,[p,"Quark"]],[/\bddg\/([\w\.]+)/i],[v,[p,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[v,[p,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[v,[p,"WeChat"]],[/konqueror\/([\w\.]+)/i],[v,[p,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[v,[p,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[v,[p,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[v,[p,"Smart "+Z+xi]],[/(avast|avg)\/([\w\.]+)/i],[[p,/(.+)/,"$1 Secure"+xi],v],[/\bfocus\/([\w\.]+)/i],[v,[p,pi+" Focus"]],[/\bopt\/([\w\.]+)/i],[v,[p,mi+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[v,[p,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[v,[p,"Dolphin"]],[/coast\/([\w\.]+)/i],[v,[p,mi+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[v,[p,"MIUI"+xi]],[/fxios\/([\w\.-]+)/i],[v,[p,gi+pi]],[/\bqihoobrowser\/?([\w\.]*)/i],[v,[p,"360"]],[/\b(qq)\/([\w\.]+)/i],[[p,/(.+)/,"$1Browser"],v],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[p,/(.+)/,"$1"+xi],v],[/samsungbrowser\/([\w\.]+)/i],[v,[p,si+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[v,[p,vi+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[p,vi+" Mobile"],v],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[p,v],[/(lbbrowser|rekonq)/i],[p],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[v,p],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[p,fi],v,[m,M]],[/(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,v,[m,M]],[/\bgsa\/([\w\.]+) .*safari\//i],[v,[p,"GSA"],[m,M]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[v,[p,"TikTok"],[m,M]],[/\[(linkedin)app\]/i],[p,[m,M]],[/(chromium)[\/ ]([-\w\.]+)/i],[p,v],[/headlesschrome(?:\/([\w\.]+)| )/i],[v,[p,li+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[v,[p,hi+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[p,li+" WebView"],v],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[v,[p,"Android"+xi]],[/chrome\/([\w\.]+) mobile/i],[v,[p,gi+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[p,v],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[v,[p,gi+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[p,gi+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[v,p],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[p,[v,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[p,v],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[p,gi+pi],v],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[p,"Netscape"],v],[/(wolvic|librewolf)\/([\w\.]+)/i],[p,v],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[v,[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,[v,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[p,[v,/[^\d\.]+./,o]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[g,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[g,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[g,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[g,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[g,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[g,/ower/,o,lowerize]],[/ sun4\w[;\)]/i],[[g,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[g,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],[k,[f,si],[m,_]],[/\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],[k,[f,si],[m,C]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[k,[f,$],[m,C]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[k,[f,$],[m,_]],[/(macintosh);/i],[k,[f,$]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[k,[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],[k,[f,J],[m,_]],[/honor([-\w ]+)[;\)]/i],[k,[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],[k,[f,Q],[m,_]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[k,[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],[[k,/_/g," "],[f,di],[m,_]],[/\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],[[k,/_/g," "],[f,di],[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],[k,[f,oi],[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],[k,[f,ai],[m,C]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[k,[f,strMapper,{OnePlus:["203","304","403","404","413","415"],"*":ai}],[m,_]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[k,[f,"BLU"],[m,C]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[k,[f,"Vivo"],[m,C]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[k,[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],[k,[f,Z],[m,_]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[k,[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],[k,[f,ti],[m,C]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[k,[f,ti],[m,_]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[k,[f,ii],[m,_]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[k,[f,ii],[m,C]],[/(nokia) (t[12][01])/i],[f,k,[m,_]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[k,/_/g," "],[m,C],[f,"Nokia"]],[/(pixel (c|tablet))\b/i],[k,[f,K],[m,_]],[/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],[k,[f,K],[m,C]],[/(google) (pixelbook( go)?)/i],[f,k],[/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],[k,[f,wi],[m,C]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[k,"Xperia Tablet"],[f,wi],[m,_]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[k,[f,G],[m,_]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[k,/(.+)/g,"Fire Phone $1"],[f,G],[m,C]],[/(playbook);[-\w\),; ]+(rim)/i],[k,f,[m,_]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[k,[f,Y],[m,C]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[k,[f,X],[m,_]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[k,[f,X],[m,C]],[/(nexus 9)/i],[k,[f,"HTC"],[m,_]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[f,[k,/_/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],[k,[f,"TCL"],[m,_]],[/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],[k,[f,"TCL"],[m,C]],[/(itel) ((\w+))/i],[[f,lowerize],k,[m,strMapper,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[k,[f,"Acer"],[m,_]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[k,[f,"Meizu"],[m,C]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[k,[f,"Ulefone"],[m,C]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[k,[f,"Energizer"],[m,C]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[k,[f,"Cat"],[m,C]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[k,[f,"Smartfren"],[m,C]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[k,[f,"Nothing"],[m,C]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[k,[f,"Archos"],[m,_]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[k,[f,"Archos"],[m,C]],[/; (n159v)/i],[k,[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,k,[m,_]],[/(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,k,[m,C]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[f,k,[m,_]],[/(surface duo)/i],[k,[f,ei],[m,_]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[k,[f,"Fairphone"],[m,C]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[k,[f,ri],[m,_]],[/(sprint) (\w+)/i],[f,k,[m,C]],[/(kin\.[onetw]{3})/i],[[k,/\./g," "],[f,ei],[m,C]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[k,[f,bi],[m,_]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[k,[f,bi],[m,C]],[/smart-tv.+(samsung)/i],[f,[m,A]],[/hbbtv.+maple;(\d+)/i],[[k,/^/,"SmartTV"],[f,si],[m,A]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[f,k,[m,A]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[f,ii],[m,A]],[/(apple) ?tv/i],[f,[k,$+" TV"],[m,A]],[/crkey.*devicetype\/chromecast/i],[[k,ui+" Third Generation"],[f,K],[m,A]],[/crkey.*devicetype\/([^/]*)/i],[[k,/^/,"Chromecast "],[f,K],[m,A]],[/fuchsia.*crkey/i],[[k,ui+" Nest Hub"],[f,K],[m,A]],[/crkey/i],[[k,ui],[f,K],[m,A]],[/(portaltv)/i],[k,[f,fi],[m,A]],[/droid.+aft(\w+)( bui|\))/i],[k,[f,G],[m,A]],[/(shield \w+ tv)/i],[k,[f,ri],[m,A]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[k,[f,ni],[m,A]],[/(bravia[\w ]+)( bui|\))/i],[k,[f,wi],[m,A]],[/(mi(tv|box)-?\w+) bui/i],[k,[f,di],[m,A]],[/Hbbtv.*(technisat) (.*);/i],[f,k,[m,A]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[f,/.+\/(\w+)/,"$1",strMapper,{LG:"lge"}],[k,trim],[m,A]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[k,[m,A]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:|large screen[\w ]+safari)\b/i],[[m,A]],[/(playstation \w+)/i],[k,[f,wi],[m,y]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[k,[f,ei],[m,y]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[f,k,[m,y]],[/droid.+; (shield)( bui|\))/i],[k,[f,ri],[m,y]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[k,[f,si],[m,S]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[f,k,[m,S]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[k,[f,ai],[m,S]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[k,[f,$],[m,S]],[/(opwwe\d{3})/i],[k,[f,oi],[m,S]],[/(moto 360)/i],[k,[f,ti],[m,S]],[/(smartwatch 3)/i],[k,[f,wi],[m,S]],[/(g watch r)/i],[k,[f,ii],[m,S]],[/droid.+; (wt63?0{2,3})\)/i],[k,[f,bi],[m,S]],[/droid.+; (glass) \d/i],[k,[f,K],[m,O]],[/(pico) (4|neo3(?: link|pro)?)/i],[f,k,[m,O]],[/(quest( \d| pro)?s?).+vr/i],[k,[f,fi],[m,O]],[/mobile vr; rv.+firefox/i],[[m,O]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[f,[m,I]],[/(aeobc)\b/i],[k,[f,G],[m,I]],[/(homepod).+mac os/i],[k,[f,$],[m,I]],[/windows iot/i],[[m,I]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i],[k,[m,strMapper,{mobile:"Mobile",xr:"VR","*":_}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[m,_]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[m,C]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[k,[f,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[v,[p,hi+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[p,v],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[v,[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,v],[/ladybird\//i],[[p,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[v,p]],os:[[/(windows nt) (6\.[23]); arm/i],[[p,/N/,"R"],[v,strMapper,_i]],[/(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,v],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[v,/(;|\))/g,"",strMapper,_i],[p,ki]],[/(windows ce)\/?([\d\.]*)/i],[p,v],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[v,/_/g,"."],[p,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[p,"macOS"],[v,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[v,[p,ui+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[v,[p,ui+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[v,[p,ui+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[v,[p,ui+" Linux"]],[/crkey\/([\d\.]+)/i],[v,[p,ui]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[v,p],[/(ubuntu) ([\w\.]+) like android/i],[[p,/(.+)/,"$1 Touch"],v],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[p,v],[/\(bb(10);/i],[v,[p,Y]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[v,[p,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[v,[p,pi+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[v,[p,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[v,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],[v,[p,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[p,"Chrome OS"],v],[/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,v],[/(sunos) ?([\d\.]*)/i],[[p,"Solaris"],v],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[p,v]]},Ii=(setProps.call((i={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}}).init,[[d,[p,v,x,m]],[b,[g]],[l,[m,k,f]],[c,[p,v]],[u,[p,v]]]),setProps.call(i.isIgnore,[[d,[v,x]],[c,[v]],[u,[v]]]),setProps.call(i.isIgnoreRgx,[[d,/ ?browser$/i],[u,/ ?os$/i]]),setProps.call(i.toString,[[d,[p,v]],[b,[g]],[l,[f,k]],[c,[p,v]],[u,[p,v]]]),i),createIData=function(i,e){var t=Ii.init[e],r=Ii.isIgnore[e]||0,a=Ii.isIgnoreRgx[e]||0,n=Ii.toString[e]||0;function IData(){setProps.call(this,t)}return IData.prototype.getItem=function(){return i},IData.prototype.withClientHints=function(){return Ci?Ci.getHighEntropyValues(N).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(r,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=o;for(var e in n)typeof this[n[e]]!==s&&(i+=(i?" ":o)+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,N),e)setProps.call(this,[[T,itemListToArray(i[H])],[P,itemListToArray(i[j])],[C,/\?1/.test(i[R])],[k,stripQuotes(i[L])],[U,stripQuotes(i[W])],[E,stripQuotes(i[F])],[g,stripQuotes(i[D])],[q,itemListToArray(i[V])],[z,stripQuotes(i[B])]]);else for(var t in i)this.hasOwnProperty(t)&&typeof i[t]!==s&&(this[t]=i[t])}function UAItem(i,e,t,r){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 d: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(k)&&yi&&typeof yi.standalone!==s&&yi.maxTouchPoints&&yi.maxTouchPoints>2&&this.set(k,"iPad").set(m,_);break;case u:!this.get(p)&&Ci&&Ci[U]&&this.set(p,Ci[U]);break;case h:var i=this.data,detect=function(e){return i[e].getItem().detectFeature().get()};this.set(d,detect(d)).set(b,detect(b)).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==d&&this.set(x,majorize(this.get(v))),this},this.parseCH=function(){var i=this.uaCH,e=this.rgxMap;switch(this.itemType){case d:case c:var t,r=i[P]||i[T];if(r)for(var o in r){var a=r[o].brand||r[o],s=r[o].version;this.itemType==d&&!/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(v,s).set(x,majorize(s)),t=a),this.itemType==c&&a==ci&&this.set(v,s)}break;case b:var n=i[g];n&&(n&&"64"==i[z]&&(n+="64"),rgxMapper.call(this.data,n+";",e));break;case l:if(i[C]&&this.set(m,C),i[k]&&(this.set(k,i[k]),!this.get(m)||!this.get(f))){var w={};rgxMapper.call(w,"droid 9; "+i[k]+")",e),!this.get(m)&&w.type&&this.set(m,w.type),!this.get(f)&&w.vendor&&this.set(f,w.vendor)}if(i[q]){var y;if("string"!=typeof i[q])for(var _=0;!y&&_<i[q].length;)y=strMapper(i[q][_++],Ai);else y=strMapper(i[q],Ai);this.set(m,y)}break;case u:var A=i[U];if(A){var S=i[E];A==ki&&(S=parseInt(majorize(S),10)>=13?"11":"10"),this.set(p,A).set(v,S)}this.get(p)==ki&&"Xbox"==i[k]&&this.set(p,"Xbox").set(v,void 0);break;case h:var O=this.data,parse=function(e){return O[e].getItem().setCH(i).parseCH().get()};this.set(d,parse(d)).set(b,parse(b)).set(l,parse(l)).set(c,parse(c)).set(u,parse(u))}return this},setProps.call(this,[["itemType",i],["ua",e],["uaCH",r],["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[r]?t[r]:yi&&yi.userAgent?yi.userAgent:o,m=new UACHData(t,!0),f=e?function(i,e){var t={},r=e;if(!isExtensions(e))for(var o in r={},e)for(var a in e[o])r[a]=e[o][a].concat(r[a]?r[a]:[]);for(var s in i)t[s]=r[s]&&r[s].length%2==0?r[s].concat(i[s]):i[s];return t}(Oi,e):Oi,createItemFunc=function(i){return i==h?function(){return new UAItem(i,p,f,m).set("ua",p).set(d,this.getBrowser()).set(b,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(d)],["getCPU",createItemFunc(b)],["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,v,x,m]),UAParser.CPU=enumerize([g]),UAParser.DEVICE=enumerize([k,f,m,y,C,A,_,S,I]),UAParser.ENGINE=UAParser.OS=enumerize([p,v]);const Mi=t.createContext(void 0),detectDeviceByScreenWidth=()=>{if("undefined"==typeof window)return!1;return window.innerWidth<1024},detectTabletByScreenWidth=()=>{if("undefined"==typeof window)return!1;const i=window.innerWidth;return i>=1024&&i<1280};exports.MobileProvider=({userAgent:i,children:r})=>{const o=(i=>{const e=new UAParser(i).getDevice();return"mobile"===e.type||"tablet"===e.type})(i),[a,s]=t.useState(()=>detectDeviceByScreenWidth()),[n,w]=t.useState(()=>detectTabletByScreenWidth());t.useEffect(()=>{const handleResize=()=>{s(detectDeviceByScreenWidth()),w(detectTabletByScreenWidth())};return s(detectDeviceByScreenWidth()),w(detectTabletByScreenWidth()),window.addEventListener("resize",handleResize),()=>{window.removeEventListener("resize",handleResize)}},[]);const d="undefined"!=typeof window?a:o,b="undefined"!=typeof window&&n,l=t.useMemo(()=>({isMobile:d,isTablet:b,userAgent:i}),[d,b,i]);return e.jsx(Mi.Provider,{value:l,children:r})},exports.default=Mi,exports.useMobile=()=>{if("true"===process.env.STORYBOOK_FORCE_MOBILE)return!0;if("false"===process.env.STORYBOOK_FORCE_MOBILE)return!1;const i=t.useContext(Mi);if(void 0===i)throw new Error("useMobile must be used within a MobileProvider");return i.isMobile},exports.useTablet=()=>{const i=t.useContext(Mi);if(void 0===i)throw new Error("useTablet must be used within a MobileProvider");return i.isTablet};
|
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("./Typography.js"),r=require("./Button.js"),s=require("./Input.js"),o=require("./Tabs.js"),a=require("./Drawer.js"),i=require("./Backdrop.js"),t=require("./Breadcrumb.js"),l=require("./Pagination.js"),n=require("./Accordion.js"),c=require("./Divider.js"),d=require("./RadioGroup.js"),
|
|
1
|
+
"use strict";var e=require("./Typography.js"),r=require("./Button.js"),s=require("./Input.js"),o=require("./Tabs.js"),a=require("./Drawer.js"),i=require("./Backdrop.js"),t=require("./Breadcrumb.js"),l=require("./Pagination.js"),n=require("./Accordion.js"),c=require("./Divider.js"),d=require("./RadioGroup.js"),u=require("./chunks/Chips-Ws80QAgh.js"),x=require("./Menu.js"),p=require("react/jsx-runtime"),b=require("react"),m=require("./utils.js"),h=require("./contexts.js");require("react-dom"),require("./chunks/chevron-left-Do__K6cA.js"),require("./chunks/createLucideIcon-BqJVOzoK.js");const j=b.forwardRef(({isOpen:e=!1,onClose:r,title:s,content:o,buttons:a,showCloseButton:t=!0,size:l="md",className:n,children:c},d)=>{const handleClose=()=>{r&&r()},x=m("bg-white rounded-[10px] shadow-lg mx-4",{sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl"}[l],n);return p.jsx(i.Backdrop,{isOpen:e,onClick:handleClose,blur:!0,children:p.jsx("div",{ref:d,className:x,onClick:e=>e.stopPropagation(),onKeyDown:e=>{"Escape"===e.key&&r&&r()},role:"dialog","aria-modal":"true","aria-labelledby":s?"dialog-title":void 0,children:p.jsxs("div",{className:"flex flex-col p-6 gap-8",children:[s&&p.jsx("div",{className:"flex flex-col gap-2.5",children:p.jsx("div",{className:"flex items-center justify-between pb-4 border-b border-[#ebeaf0]",children:p.jsxs("div",{className:"flex items-center justify-between gap-3 w-full flex-row-reverse",children:[p.jsx("div",{className:"text-[#590d8b] text-xl font-extrabold leading-8",children:s}),t&&p.jsx("button",{type:"button",onClick:handleClose,className:"p-1 rounded-full hover:bg-gray-100 transition-colors","aria-label":"Close dialog",children:p.jsx(u.X,{className:"w-6 h-6 text-[#a4a2bb]"})})]})})}),o&&p.jsx("div",{className:"flex flex-col gap-4",children:o}),c&&!o&&p.jsx("div",{className:"flex flex-col gap-4",children:c}),a&&p.jsx("div",{className:"flex flex-col gap-1.5",children:a})]})})})});j.displayName="Dialog";const g=b.forwardRef(({variant:e="primary",icon:r,children:s,className:o,...a},i)=>{const t=m("h-14 px-4 py-[13px] rounded-md font-bold text-base leading-[1.8] flex items-center justify-center gap-2 transition-colors",{"bg-[#590d8b] text-white hover:bg-[#4a0a75]":"primary"===e,"bg-white text-[#1a1922] border border-[#ebeaf0] hover:bg-gray-50":"secondary"===e},o);return p.jsxs("button",{type:"button",ref:i,className:t,...a,children:[s,r&&p.jsx("span",{className:"w-5 h-5",children:r})]})});g.displayName="DialogButton";const f=e.Typography,v=r.Button,y=s.Input,w=o.Tabs,q=a.Drawer,N=i.Backdrop,B=t.Breadcrumb,k=l.Pagination,D=n.Accordion,C=c.Divider,T=d.RadioGroup,M=u.Chips,P=x.Menu;exports.MobileProvider=h.MobileProvider,exports.useMobile=h.useMobile,exports.useTablet=h.useTablet,exports.Accordion=D,exports.Backdrop=N,exports.Breadcrumb=B,exports.Button=v,exports.Chips=M,exports.Dialog=j,exports.DialogButton=g,exports.Divider=C,exports.Drawer=q,exports.Input=y,exports.Menu=P,exports.Pagination=k,exports.RadioGroup=T,exports.Tabs=w,exports.Typography=f;
|
package/dist/esm/Input.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsxs as t,jsx as
|
|
1
|
+
"use client";import{jsxs as t,jsx as e}from"react/jsx-runtime";import r,{useState as l,useId as a}from"react";import n from"./utils.js";import{useMobile as o}from"./contexts.js";const i=r.forwardRef(({state:r="default",label:i,value:s,onChange:d,helperText:u,startIcon:m,endIcon:x,type:p="text",placeholder:h,isMobile:c,containerClassName:f,...g},b)=>{const[w,y]=l(!1),N=a(),v=o(),j=c??v,C=w||""!==s&&null!=s,F="disabled"===r,I=n("relative flex items-center border rounded-lg transition-all duration-300 w-full",{"h-12":j,"h-14":!j},"transition-all duration-300",{"border-neutral-light":"default"===r&&!w,"border-primary":"default"===r&&w,"border-error":"error"===r,"bg-white border-neutral-light cursor-not-allowed":F},f),k=n("absolute pointer-events-none transition-all duration-300",{"-top-2.5 bg-white px-1 mx-3 font-medium":C,"text-xs":C&&j,"text-s":C&&!j,"text-s font-medium":!C&&j,"text-m font-medium":!C&&!j,"right-3":!m,"top-1/2 -translate-y-1/2":!C,"right-11":!C&&m,"right-4":!C&&!m,"text-neutral-main":!w&&"default"===r,"text-neutral-light":F,"text-primary":w&&"default"===r,"text-error":C&&"error"===r}),B=n("peer w-full h-full bg-transparent outline-none font-medium disabled:text-neutral-light",{"text-s":j,"text-m":!j},{"pr-10":m,"pl-10":x,"px-3":!m&&!x,"pr-3 pl-10":!m&&x,"pl-3 pr-10":m&&!x,"cursor-not-allowed text-red-500":F,"text-neutral-dark":!w,"text-neutral-darker":w}),M=n("absolute transition-colors duration-300",{"h-4 w-4":j,"h-5 w-5":!j},{"text-neutral-main":"error"!==r&&!w,"text-primary":"default"===r&&w,"text-error":"error"===r,"text-neutral-light":F}),R=n("font-light mt-1 h-4 px-3",{"text-xs":j,"text-s":!j},{"text-neutral-main":"default"===r,"text-primary":"default"===r&&w,"text-error":"error"===r,"text-neutral-light":F}),T=h&&!w?void 0:h;return t("div",{children:[t("div",{className:I,children:[x&&e("span",{className:n(M,"left-3"),children:x}),e("label",{htmlFor:N,className:k,children:i}),e("input",{ref:b,id:N,type:p,value:s,onChange:d,onFocus:t=>{F||(y(!0),g.onFocus?.(t))},onBlur:t=>{F||(y(!1),g.onBlur?.(t))},disabled:F,placeholder:T,className:B,...g}),m&&e("span",{className:n(M,"right-3"),children:m})]}),u&&e("p",{className:R,children:u})]})});i.displayName="Input";export{i as Input};
|