@jetomit.bio/components 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -0
- package/dist/Gotham-Bold-QMVVU2UR.woff +0 -0
- package/dist/assets/buttons/ar.png +0 -0
- package/dist/assets/buttons/cz.png +0 -0
- package/dist/assets/buttons/de.png +0 -0
- package/dist/assets/buttons/en.png +0 -0
- package/dist/assets/buttons/es.png +0 -0
- package/dist/assets/buttons/fr.png +0 -0
- package/dist/assets/buttons/hl.png +0 -0
- package/dist/assets/buttons/hu.png +0 -0
- package/dist/assets/buttons/pt.png +0 -0
- package/dist/assets/buttons/ru.png +0 -0
- package/dist/assets/buttons/sk.png +0 -0
- package/dist/assets/buttons/zh.png +0 -0
- package/dist/assets/fonts/Gotham-Bold.woff +0 -0
- package/dist/assets/logos/png/darkbackgroundwhite.png +0 -0
- package/dist/assets/logos/png/transparentblack.png +0 -0
- package/dist/assets/logos/png/transparentwhite.png +0 -0
- package/dist/assets/logos/png/whitebackgroundblack.png +0 -0
- package/dist/assets/logos/svg/darkbackgroundwhite.svg +31 -0
- package/dist/assets/logos/svg/transparentblack.svg +26 -0
- package/dist/assets/logos/svg/transparentwhite.svg +26 -0
- package/dist/assets/logos/svg/whitebackgroundblack.svg +31 -0
- package/dist/index.d.mts +34 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -0
- package/dist/styles/rootsdk.css +2 -0
- package/dist/styles/rootsdk.css.map +1 -0
- package/dist/styles/rootsdk.d.mts +2 -0
- package/dist/styles/rootsdk.d.ts +2 -0
- package/package.json +54 -0
- package/tailwind.config.js +37 -0
package/README.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# ROOT Community Components
|
|
2
|
+
|
|
3
|
+
⚠️ **Disclaimer**: This is not an official ROOT addon. It is a community-maintained React component library built for the ROOT community.
|
|
4
|
+
|
|
5
|
+
A premium React component library styled with **Tailwind CSS** and written in **TypeScript**. Exposes custom vector logos, localized community badges (PNGs), and glassmorphic card layouts.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🚀 Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @jetomit.bio/components
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## ⚙️ Configuration
|
|
18
|
+
|
|
19
|
+
### 1. Import Styles
|
|
20
|
+
Import the compiled CSS styles at the root of your application (e.g., in `src/app/layout.tsx` or `pages/_app.tsx`):
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import '@jetomit.bio/components/styles.css';
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. Configure Tailwind CSS (Preset)
|
|
27
|
+
This library uses design tokens that can be easily merged with your tailwind configuration. In your `tailwind.config.js`, register our theme values as a preset:
|
|
28
|
+
|
|
29
|
+
```javascript
|
|
30
|
+
module.exports = {
|
|
31
|
+
presets: [
|
|
32
|
+
require('@jetomit.bio/components/tailwind.config.js')
|
|
33
|
+
],
|
|
34
|
+
content: [
|
|
35
|
+
"./app/**/*.{js,ts,jsx,tsx}",
|
|
36
|
+
"./components/**/*.{js,ts,jsx,tsx}",
|
|
37
|
+
// Scan library files for utility classes:
|
|
38
|
+
"./node_modules/@jetomit.bio/components/dist/**/*.{js,mjs,ts,tsx}"
|
|
39
|
+
],
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
If you are using **Tailwind CSS v4** (Next.js 15+), register the content source inside your `globals.css`:
|
|
44
|
+
```css
|
|
45
|
+
@import "tailwindcss";
|
|
46
|
+
@source "../../node_modules/@jetomit.bio/components/dist/**/*.{js,mjs}";
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 📦 Usage
|
|
52
|
+
|
|
53
|
+
Import components using standard ESM named imports:
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
'use client';
|
|
57
|
+
|
|
58
|
+
import { RootButton, RootLogo, RootCommunityButton, RootCard } from '@jetomit.bio/components';
|
|
59
|
+
|
|
60
|
+
export default function Home() {
|
|
61
|
+
return (
|
|
62
|
+
<div className="rootsdk-body min-h-screen p-8">
|
|
63
|
+
{/* 1. Logo */}
|
|
64
|
+
<RootLogo variant="transparent-white" size={60} />
|
|
65
|
+
|
|
66
|
+
{/* 2. Glassmorphic Card */}
|
|
67
|
+
<RootCard
|
|
68
|
+
title="Server Instance"
|
|
69
|
+
description="Deploy and manage instances of the root ecosystem."
|
|
70
|
+
cardStatus="online"
|
|
71
|
+
/>
|
|
72
|
+
|
|
73
|
+
{/* 3. Localized Button Badge */}
|
|
74
|
+
<RootCommunityButton lang="sk" onClick={() => console.log('Slovak button clicked')} />
|
|
75
|
+
|
|
76
|
+
{/* 4. Button */}
|
|
77
|
+
<RootButton variant="primary">
|
|
78
|
+
Submit
|
|
79
|
+
</RootButton>
|
|
80
|
+
</div>
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 📂 Components Included
|
|
88
|
+
|
|
89
|
+
- **`<RootButton />`**: Core button component supporting primary and secondary variants with glassmorphic glow.
|
|
90
|
+
- **`<RootLogo />`**: Scalable vector logo supporting 4 background/theme variants.
|
|
91
|
+
- **`<RootCommunityButton />`**: Localized PNG badge buttons supporting 12 languages (Slovak, English, Czech, German, etc.).
|
|
92
|
+
- **`<RootCard />`**: Glassmorphic panel supporting 8 semantic states (`online`, `offline`, `idle`, `sudo`, etc.).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
|
3
|
+
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
4
|
+
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
|
|
6
|
+
preserveAspectRatio="xMidYMid meet">
|
|
7
|
+
|
|
8
|
+
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
|
|
9
|
+
fill="none" stroke="none">
|
|
10
|
+
<path fill="#000000" d="M662 5109 c-247 -42 -471 -212 -581 -442 -83 -172 -76 23 -76 -2107
|
|
11
|
+
0 -2129 -7 -1935 75 -2106 79 -163 211 -295 374 -374 171 -82 -23 -75 2106
|
|
12
|
+
-75 2129 0 1935 -7 2106 75 163 79 295 211 374 374 82 171 75 -23 75 2106 0
|
|
13
|
+
2129 7 1935 -75 2106 -79 163 -211 296 -374 374 -170 82 28 74 -2076 76 -1051
|
|
14
|
+
1 -1898 -2 -1928 -7z"/>
|
|
15
|
+
|
|
16
|
+
<path fill="#ffffff" d="M2515 4269 c-16 -5 -113 -29 -215 -53 -102 -24 -279 -67 -395 -95
|
|
17
|
+
-115 -28 -268 -64 -340 -81 -71 -17 -220 -53 -330 -80 -110 -26 -226 -54 -257
|
|
18
|
+
-61 l-58 -12 0 -1019 0 -1018 660 0 660 0 0 -500 c0 -275 2 -500 5 -500 3 0
|
|
19
|
+
132 73 287 162 156 88 297 169 314 179 18 9 128 72 245 140 118 67 235 134
|
|
20
|
+
260 148 25 14 227 129 448 256 l401 230 0 960 0 960 -327 79 c-560 134 -812
|
|
21
|
+
195 -968 232 -357 87 -351 86 -390 73z m311 -599 c137 -33 344 -83 459 -110
|
|
22
|
+
116 -28 249 -60 298 -72 l87 -21 0 -597 0 -596 -447 -255 -448 -255 -3 313 -2 313 -660 0 -660 0 0 540 c0 297 3 540 8 540 4 0 248 58 542 130 294 71 544
|
|
23
|
+
129 556 129 11 1 133 -26 270 -59z"/>
|
|
24
|
+
<path fill="#ffffff" d="M1642 3043 l3 -238 245 -11 c135 -6 318 -14 408 -17 l162 -5 0 118 0
|
|
25
|
+
118 -42 16 c-24 8 -128 44 -233 79 -104 36 -265 90 -356 121 -91 31 -171 56
|
|
26
|
+
-177 56 -9 0 -12 -59 -10 -237z"/>
|
|
27
|
+
<path fill="#ffffff" d="M3290 3224 c-91 -31 -257 -88 -370 -126 -113 -37 -217 -74 -232 -80
|
|
28
|
+
l-28 -10 0 -120 0 -119 93 5 c50 3 235 11 410 18 l317 11 0 239 c0 184 -3 238
|
|
29
|
+
-12 238 -7 0 -87 -26 -178 -56z"/>
|
|
30
|
+
</g>
|
|
31
|
+
</svg>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
|
3
|
+
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
4
|
+
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
|
|
6
|
+
preserveAspectRatio="xMidYMid meet">
|
|
7
|
+
|
|
8
|
+
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
|
|
9
|
+
fill="#000000" stroke="none">
|
|
10
|
+
<path d="M2515 4269 c-16 -5 -113 -29 -215 -53 -102 -24 -279 -67 -395 -95
|
|
11
|
+
-115 -28 -268 -64 -340 -81 -71 -17 -220 -53 -330 -80 -110 -26 -226 -54 -257
|
|
12
|
+
-61 l-58 -12 0 -1019 0 -1018 660 0 660 0 0 -500 c0 -275 2 -500 5 -500 3 0
|
|
13
|
+
132 73 287 162 156 88 297 169 314 179 18 9 128 72 245 140 118 67 235 134
|
|
14
|
+
260 148 25 14 227 129 448 256 l401 230 0 960 0 960 -327 79 c-560 134 -812
|
|
15
|
+
195 -968 232 -357 87 -351 86 -390 73z m311 -599 c137 -33 344 -83 459 -110
|
|
16
|
+
116 -28 249 -60 298 -72 l87 -21 0 -597 0 -596 -447 -255 -448 -255 -3 313 -2
|
|
17
|
+
313 -660 0 -660 0 0 540 c0 297 3 540 8 540 4 0 248 58 542 130 294 71 544
|
|
18
|
+
129 556 129 11 1 133 -26 270 -59z"/>
|
|
19
|
+
<path d="M1642 3043 l3 -238 245 -11 c135 -6 318 -14 408 -17 l162 -5 0 118 0
|
|
20
|
+
118 -42 16 c-24 8 -128 44 -233 79 -104 36 -265 90 -356 121 -91 31 -171 56
|
|
21
|
+
-177 56 -9 0 -12 -59 -10 -237z"/>
|
|
22
|
+
<path d="M3290 3224 c-91 -31 -257 -88 -370 -126 -113 -37 -217 -74 -232 -80
|
|
23
|
+
l-28 -10 0 -120 0 -119 93 5 c50 3 235 11 410 18 l317 11 0 239 c0 184 -3 238
|
|
24
|
+
-12 238 -7 0 -87 -26 -178 -56z"/>
|
|
25
|
+
</g>
|
|
26
|
+
</svg>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
|
3
|
+
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
4
|
+
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
|
|
6
|
+
preserveAspectRatio="xMidYMid meet">
|
|
7
|
+
|
|
8
|
+
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
|
|
9
|
+
fill="#ffffff" stroke="none">
|
|
10
|
+
<path d="M2515 4269 c-16 -5 -113 -29 -215 -53 -102 -24 -279 -67 -395 -95
|
|
11
|
+
-115 -28 -268 -64 -340 -81 -71 -17 -220 -53 -330 -80 -110 -26 -226 -54 -257
|
|
12
|
+
-61 l-58 -12 0 -1019 0 -1018 660 0 660 0 0 -500 c0 -275 2 -500 5 -500 3 0
|
|
13
|
+
132 73 287 162 156 88 297 169 314 179 18 9 128 72 245 140 118 67 235 134
|
|
14
|
+
260 148 25 14 227 129 448 256 l401 230 0 960 0 960 -327 79 c-560 134 -812
|
|
15
|
+
195 -968 232 -357 87 -351 86 -390 73z m311 -599 c137 -33 344 -83 459 -110
|
|
16
|
+
116 -28 249 -60 298 -72 l87 -21 0 -597 0 -596 -447 -255 -448 -255 -3 313 -2
|
|
17
|
+
313 -660 0 -660 0 0 540 c0 297 3 540 8 540 4 0 248 58 542 130 294 71 544
|
|
18
|
+
129 556 129 11 1 133 -26 270 -59z"/>
|
|
19
|
+
<path d="M1642 3043 l3 -238 245 -11 c135 -6 318 -14 408 -17 l162 -5 0 118 0
|
|
20
|
+
118 -42 16 c-24 8 -128 44 -233 79 -104 36 -265 90 -356 121 -91 31 -171 56
|
|
21
|
+
-177 56 -9 0 -12 -59 -10 -237z"/>
|
|
22
|
+
<path d="M3290 3224 c-91 -31 -257 -88 -370 -126 -113 -37 -217 -74 -232 -80
|
|
23
|
+
l-28 -10 0 -120 0 -119 93 5 c50 3 235 11 410 18 l317 11 0 239 c0 184 -3 238
|
|
24
|
+
-12 238 -7 0 -87 -26 -178 -56z"/>
|
|
25
|
+
</g>
|
|
26
|
+
</svg>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
|
3
|
+
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
4
|
+
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
|
|
6
|
+
preserveAspectRatio="xMidYMid meet">
|
|
7
|
+
|
|
8
|
+
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
|
|
9
|
+
fill="none" stroke="none">
|
|
10
|
+
<path fill="#ffffff" d="M662 5109 c-247 -42 -471 -212 -581 -442 -83 -172 -76 23 -76 -2107
|
|
11
|
+
0 -2129 -7 -1935 75 -2106 79 -163 211 -295 374 -374 171 -82 -23 -75 2106
|
|
12
|
+
-75 2129 0 1935 -7 2106 75 163 79 295 211 374 374 82 171 75 -23 75 2106 0
|
|
13
|
+
2129 7 1935 -75 2106 -79 163 -211 296 -374 374 -170 82 28 74 -2076 76 -1051
|
|
14
|
+
1 -1898 -2 -1928 -7z"/>
|
|
15
|
+
<path fill="#0c1017" d="M2515 4269 c-16 -5 -113 -29 -215 -53 -102 -24 -279 -67 -395 -95
|
|
16
|
+
-115 -28 -268 -64 -340 -81 -71 -17 -220 -53 -330 -80 -110 -26 -226 -54 -257
|
|
17
|
+
-61 l-58 -12 0 -1019 0 -1018 660 0 660 0 0 -500 c0 -275 2 -500 5 -500 3 0
|
|
18
|
+
132 73 287 162 156 88 297 169 314 179 18 9 128 72 245 140 118 67 235 134
|
|
19
|
+
260 148 25 14 227 129 448 256 l401 230 0 960 0 960 -327 79 c-560 134 -812
|
|
20
|
+
195 -968 232 -357 87 -351 86 -390 73z m311 -599 c137 -33 344 -83 459 -110
|
|
21
|
+
116 -28 249 -60 298 -72 l87 -21 0 -597 0 -596 -447 -255 -448 -255 -3 313 -2
|
|
22
|
+
313 -660 0 -660 0 0 540 c0 297 3 540 8 540 4 0 248 58 542 130 294 71 544
|
|
23
|
+
129 556 129 11 1 133 -26 270 -59z"/>
|
|
24
|
+
<path fill="#0c1017" d="M1642 3043 l3 -238 245 -11 c135 -6 318 -14 408 -17 l162 -5 0 118 0
|
|
25
|
+
118 -42 16 c-24 8 -128 44 -233 79 -104 36 -265 90 -356 121 -91 31 -171 56
|
|
26
|
+
-177 56 -9 0 -12 -59 -10 -237z"/>
|
|
27
|
+
<path fill="#0c1017" d="M3290 3224 c-91 -31 -257 -88 -370 -126 -113 -37 -217 -74 -232 -80
|
|
28
|
+
l-28 -10 0 -120 0 -119 93 5 c50 3 235 11 410 18 l317 11 0 239 c0 184 -3 238
|
|
29
|
+
-12 238 -7 0 -87 -26 -178 -56z"/>
|
|
30
|
+
</g>
|
|
31
|
+
</svg>
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface RootButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
|
+
variant?: 'primary' | 'secondary';
|
|
5
|
+
isLoading?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const RootButton: React.ForwardRefExoticComponent<RootButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
8
|
+
|
|
9
|
+
interface RootLogoProps extends React.SVGProps<SVGSVGElement> {
|
|
10
|
+
variant?: 'dark-background-white' | 'transparent-black' | 'transparent-white' | 'white-background-black';
|
|
11
|
+
size?: number | string;
|
|
12
|
+
}
|
|
13
|
+
declare const RootLogo: React.FC<RootLogoProps>;
|
|
14
|
+
|
|
15
|
+
type RootLanguage = 'ar' | 'cz' | 'de' | 'en' | 'es' | 'fr' | 'hl' | 'hu' | 'pt' | 'ru' | 'sk' | 'zh';
|
|
16
|
+
interface RootCommunityButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
17
|
+
lang?: RootLanguage;
|
|
18
|
+
basePath?: string;
|
|
19
|
+
width?: number | string;
|
|
20
|
+
height?: number | string;
|
|
21
|
+
}
|
|
22
|
+
declare const RootCommunityButton: React.ForwardRefExoticComponent<RootCommunityButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
23
|
+
|
|
24
|
+
type RootCardStatus = 'online' | 'offline' | 'idle' | 'mentioned' | 'settings' | 'delete' | 'error' | 'sudo';
|
|
25
|
+
interface RootCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
26
|
+
title: string;
|
|
27
|
+
description: string;
|
|
28
|
+
cardStatus?: RootCardStatus;
|
|
29
|
+
size?: 'normal' | 'large';
|
|
30
|
+
action?: React.ReactNode;
|
|
31
|
+
}
|
|
32
|
+
declare const RootCard: React.ForwardRefExoticComponent<RootCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
33
|
+
|
|
34
|
+
export { RootButton, type RootButtonProps, RootCard, type RootCardProps, type RootCardStatus, RootCommunityButton, type RootCommunityButtonProps, type RootLanguage, RootLogo, type RootLogoProps };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface RootButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
|
+
variant?: 'primary' | 'secondary';
|
|
5
|
+
isLoading?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const RootButton: React.ForwardRefExoticComponent<RootButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
8
|
+
|
|
9
|
+
interface RootLogoProps extends React.SVGProps<SVGSVGElement> {
|
|
10
|
+
variant?: 'dark-background-white' | 'transparent-black' | 'transparent-white' | 'white-background-black';
|
|
11
|
+
size?: number | string;
|
|
12
|
+
}
|
|
13
|
+
declare const RootLogo: React.FC<RootLogoProps>;
|
|
14
|
+
|
|
15
|
+
type RootLanguage = 'ar' | 'cz' | 'de' | 'en' | 'es' | 'fr' | 'hl' | 'hu' | 'pt' | 'ru' | 'sk' | 'zh';
|
|
16
|
+
interface RootCommunityButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
17
|
+
lang?: RootLanguage;
|
|
18
|
+
basePath?: string;
|
|
19
|
+
width?: number | string;
|
|
20
|
+
height?: number | string;
|
|
21
|
+
}
|
|
22
|
+
declare const RootCommunityButton: React.ForwardRefExoticComponent<RootCommunityButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
23
|
+
|
|
24
|
+
type RootCardStatus = 'online' | 'offline' | 'idle' | 'mentioned' | 'settings' | 'delete' | 'error' | 'sudo';
|
|
25
|
+
interface RootCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
26
|
+
title: string;
|
|
27
|
+
description: string;
|
|
28
|
+
cardStatus?: RootCardStatus;
|
|
29
|
+
size?: 'normal' | 'large';
|
|
30
|
+
action?: React.ReactNode;
|
|
31
|
+
}
|
|
32
|
+
declare const RootCard: React.ForwardRefExoticComponent<RootCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
33
|
+
|
|
34
|
+
export { RootButton, type RootButtonProps, RootCard, type RootCardProps, type RootCardStatus, RootCommunityButton, type RootCommunityButtonProps, type RootLanguage, RootLogo, type RootLogoProps };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';var g=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var g__namespace=/*#__PURE__*/_interopNamespace(g);var y=g__namespace.forwardRef(({children:o,className:n="",variant:t="primary",isLoading:r=false,disabled:s,...e},i)=>{let a=`rootsdk-btn ${t==="primary"?"rootsdk-btn-primary":"rootsdk-btn-secondary"} ${n}`;return jsxRuntime.jsxs("button",{ref:i,disabled:s||r,className:a,...e,children:[r&&jsxRuntime.jsxs("svg",{className:"animate-spin -ml-1 mr-2 h-4 w-4 text-current",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[jsxRuntime.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),jsxRuntime.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),o]})});y.displayName="RootButton";var k=({variant:o="transparent-black",size:n="100%",className:t="",style:r,...s})=>{let e=o==="dark-background-white",i=o==="white-background-black",a=e||o==="transparent-white"?"#ffffff":"#000000",c=e?"#000000":i?"#ffffff":"none";return jsxRuntime.jsx("svg",{version:"1.0",xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 512 512",preserveAspectRatio:"xMidYMid meet",className:t,style:{display:"inline-block",...r},...s,children:jsxRuntime.jsxs("g",{transform:"translate(0.000000,512.000000) scale(0.100000,-0.100000)",fill:"none",stroke:"none",children:[(e||i)&&jsxRuntime.jsx("path",{fill:c,d:"M662 5109 c-247 -42 -471 -212 -581 -442 -83 -172 -76 23 -76 -2107 0 -2129 -7 -1935 75 -2106 79 -163 211 -295 374 -374 171 -82 -23 -75 2106 -75 2129 0 1935 -7 2106 75 163 79 295 211 374 374 82 171 75 -23 75 2106 0 2129 7 1935 -75 2106 -79 163 -211 296 -374 374 -170 82 28 74 -2076 76 -1051 1 -1898 -2 -1928 -7z"}),jsxRuntime.jsx("path",{fill:a,d:"M2515 4269 c-16 -5 -113 -29 -215 -53 -102 -24 -279 -67 -395 -95 -115 -28 -268 -64 -340 -81 -71 -17 -220 -53 -330 -80 -110 -26 -226 -54 -257 -61 l-58 -12 0 -1019 0 -1018 660 0 660 0 0 -500 c0 -275 2 -500 5 -500 3 0 132 73 287 162 156 88 297 169 314 179 18 9 128 72 245 140 118 67 235 134 260 148 25 14 227 129 448 256 l401 230 0 960 0 960 -327 79 c-560 134 -812 195 -968 232 -357 87 -351 86 -390 73z m311 -599 c137 -33 344 -83 459 -110 116 -28 249 -60 298 -72 l87 -21 0 -597 0 -596 -447 -255 -448 -255 -3 313 -2 313 -660 0 -660 0 0 540 c0 297 3 540 8 540 4 0 248 58 542 130 294 71 544 129 556 129 11 1 133 -26 270 -59z"}),jsxRuntime.jsx("path",{fill:a,d:"M1642 3043 l3 -238 245 -11 c135 -6 318 -14 408 -17 l162 -5 0 118 0 118 -42 16 c-24 8 -128 44 -233 79 -104 36 -265 90 -356 121 -91 31 -171 56 -177 56 -9 0 -12 -59 -10 -237z"}),jsxRuntime.jsx("path",{fill:a,d:"M3290 3224 c-91 -31 -257 -88 -370 -126 -113 -37 -217 -74 -232 -80 l-28 -10 0 -120 0 -119 93 5 c50 3 235 11 410 18 l317 11 0 239 c0 184 -3 238 -12 238 -7 0 -87 -26 -178 -56z"})]})})};k.displayName="RootLogo";var v=g__namespace.forwardRef(({lang:o="en",basePath:n="/assets/buttons",width:t="240px",height:r="auto",className:s="",style:e,disabled:i,...l},a)=>{let c={en:"Add to ROOT Community",sk:"Prida\u0165 do ROOT komunity",cz:"P\u0159idat do ROOT komunity",de:"Zu ROOT Community hinzuf\xFCgen",es:"A\xF1adir a la comunidad de ROOT",fr:"Ajouter \xE0 la communaut\xE9 ROOT",ar:"\u0623\u0636\u0641 \u0625\u0644\u0649 \u0645\u062C\u062A\u0645\u0639 ROOT",hu:"Hozz\xE1ad\xE1s a ROOT k\xF6z\xF6ss\xE9ghez",pt:"Adicionar \xE0 comunidade ROOT",ru:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u043E ROOT",zh:"\u6DFB\u52A0\u5230 ROOT \u793E\u533A",hl:"Add to ROOT Community (HL)"},x=`${n}/${o}.png`;return jsxRuntime.jsx("button",{ref:a,disabled:i,className:`inline-block overflow-hidden transition-transform duration-200 hover:scale-[1.02] active:scale-[0.98] disabled:opacity-50 disabled:cursor-not-allowed ${s}`,style:{background:"none",border:"none",padding:0,outline:"none",...e},...l,children:jsxRuntime.jsx("img",{src:x,alt:c[o],style:{width:t,height:r,display:"block",objectFit:"contain"}})})});v.displayName="RootCommunityButton";var C=g__namespace.forwardRef(({title:o,description:n,cardStatus:t,size:r="normal",action:s,className:e="",...i},l)=>{let a=`rootsdk-card ${r==="large"?"rootsdk-card-large":""} ${t==="mentioned"?"status-mentioned":""} ${e}`,c=t?`status-${t}`:"";return jsxRuntime.jsx("div",{ref:l,className:a,...i,children:jsxRuntime.jsxs("div",{className:"flex flex-col h-full justify-between space-y-4",children:[jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsxs("div",{className:"flex justify-between items-start gap-2",children:[jsxRuntime.jsx("h3",{className:"text-lg font-bold text-white tracking-wide",children:o}),t&&t!=="mentioned"&&jsxRuntime.jsxs("span",{className:`inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider ${c}`,children:[jsxRuntime.jsx("span",{className:"h-2 w-2 rounded-full current-color-bg",style:{backgroundColor:"currentColor"}}),t]})]}),jsxRuntime.jsx("p",{className:"text-sm leading-relaxed text-slate-400 font-normal",children:n})]}),s&&jsxRuntime.jsx("div",{className:"pt-2",children:s})]})})});C.displayName="RootCard";
|
|
2
|
+
exports.RootButton=y;exports.RootCard=C;exports.RootCommunityButton=v;exports.RootLogo=k;//# sourceMappingURL=index.js.map
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/RootButton.tsx","../src/components/RootLogo.tsx","../src/components/RootCommunityButton.tsx","../src/components/RootCard.tsx"],"names":["RootButton","g","children","className","variant","isLoading","disabled","props","ref","buttonClasses","jsxs","jsx","RootLogo","size","style","isDarkBg","isWhiteBg","pathColor","bgColor","RootCommunityButton","b","lang","basePath","width","height","altTexts","imageSrc","RootCard","h","title","description","cardStatus","action","cardClass","statusColorClass"],"mappings":"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","file":"index.js","sourcesContent":["import * as React from 'react';\n\nexport interface RootButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary';\n isLoading?: boolean;\n}\n\nexport const RootButton = React.forwardRef<HTMLButtonElement, RootButtonProps>(\n (\n {\n children,\n className = '',\n variant = 'primary',\n isLoading = false,\n disabled,\n ...props\n },\n ref\n ) => {\n const variantClass = variant === 'primary' ? 'rootsdk-btn-primary' : 'rootsdk-btn-secondary';\n const buttonClasses = `rootsdk-btn ${variantClass} ${className}`;\n\n return (\n <button\n ref={ref}\n disabled={disabled || isLoading}\n className={buttonClasses}\n {...props}\n >\n {isLoading && (\n <svg\n className=\"animate-spin -ml-1 mr-2 h-4 w-4 text-current\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n )}\n {children}\n </button>\n );\n }\n);\n\nRootButton.displayName = 'RootButton';\n","import * as React from 'react';\n\nexport interface RootLogoProps extends React.SVGProps<SVGSVGElement> {\n variant?: 'dark-background-white' | 'transparent-black' | 'transparent-white' | 'white-background-black';\n size?: number | string;\n}\n\nexport const RootLogo: React.FC<RootLogoProps> = ({\n variant = 'transparent-black',\n size = '100%',\n className = '',\n style,\n ...props\n}) => {\n // Determine backgrounds and path colors based on variant\n const isDarkBg = variant === 'dark-background-white';\n const isWhiteBg = variant === 'white-background-black';\n const isTransparentWhite = variant === 'transparent-white';\n \n const pathColor = (isDarkBg || isTransparentWhite) ? '#ffffff' : '#000000';\n const bgColor = isDarkBg ? '#000000' : (isWhiteBg ? '#ffffff' : 'none');\n\n return (\n <svg\n version=\"1.0\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 512 512\"\n preserveAspectRatio=\"xMidYMid meet\"\n className={className}\n style={{ display: 'inline-block', ...style }}\n {...props}\n >\n <g\n transform=\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\"\n fill=\"none\"\n stroke=\"none\"\n >\n {/* Render background shape for non-transparent variants */}\n {(isDarkBg || isWhiteBg) && (\n <path\n fill={bgColor}\n d=\"M662 5109 c-247 -42 -471 -212 -581 -442 -83 -172 -76 23 -76 -2107 0 -2129 -7 -1935 75 -2106 79 -163 211 -295 374 -374 171 -82 -23 -75 2106 -75 2129 0 1935 -7 2106 75 163 79 295 211 374 374 82 171 75 -23 75 2106 0 2129 7 1935 -75 2106 -79 163 -211 296 -374 374 -170 82 28 74 -2076 76 -1051 1 -1898 -2 -1928 -7z\"\n />\n )}\n\n {/* Main logo paths */}\n <path\n fill={pathColor}\n d=\"M2515 4269 c-16 -5 -113 -29 -215 -53 -102 -24 -279 -67 -395 -95 -115 -28 -268 -64 -340 -81 -71 -17 -220 -53 -330 -80 -110 -26 -226 -54 -257 -61 l-58 -12 0 -1019 0 -1018 660 0 660 0 0 -500 c0 -275 2 -500 5 -500 3 0 132 73 287 162 156 88 297 169 314 179 18 9 128 72 245 140 118 67 235 134 260 148 25 14 227 129 448 256 l401 230 0 960 0 960 -327 79 c-560 134 -812 195 -968 232 -357 87 -351 86 -390 73z m311 -599 c137 -33 344 -83 459 -110 116 -28 249 -60 298 -72 l87 -21 0 -597 0 -596 -447 -255 -448 -255 -3 313 -2 313 -660 0 -660 0 0 540 c0 297 3 540 8 540 4 0 248 58 542 130 294 71 544 129 556 129 11 1 133 -26 270 -59z\"\n />\n <path\n fill={pathColor}\n d=\"M1642 3043 l3 -238 245 -11 c135 -6 318 -14 408 -17 l162 -5 0 118 0 118 -42 16 c-24 8 -128 44 -233 79 -104 36 -265 90 -356 121 -91 31 -171 56 -177 56 -9 0 -12 -59 -10 -237z\"\n />\n <path\n fill={pathColor}\n d=\"M3290 3224 c-91 -31 -257 -88 -370 -126 -113 -37 -217 -74 -232 -80 l-28 -10 0 -120 0 -119 93 5 c50 3 235 11 410 18 l317 11 0 239 c0 184 -3 238 -12 238 -7 0 -87 -26 -178 -56z\"\n />\n </g>\n </svg>\n );\n};\n\nRootLogo.displayName = 'RootLogo';\n","import * as React from 'react';\n\nexport type RootLanguage = 'ar' | 'cz' | 'de' | 'en' | 'es' | 'fr' | 'hl' | 'hu' | 'pt' | 'ru' | 'sk' | 'zh';\n\nexport interface RootCommunityButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n lang?: RootLanguage;\n basePath?: string;\n width?: number | string;\n height?: number | string;\n}\n\nexport const RootCommunityButton = React.forwardRef<HTMLButtonElement, RootCommunityButtonProps>(\n (\n {\n lang = 'en',\n basePath = '/assets/buttons',\n width = '240px',\n height = 'auto',\n className = '',\n style,\n disabled,\n ...props\n },\n ref\n ) => {\n // Map languages to friendly alt texts\n const altTexts: Record<RootLanguage, string> = {\n en: 'Add to ROOT Community',\n sk: 'Pridať do ROOT komunity',\n cz: 'Přidat do ROOT komunity',\n de: 'Zu ROOT Community hinzufügen',\n es: 'Añadir a la comunidad de ROOT',\n fr: 'Ajouter à la communauté ROOT',\n ar: 'أضف إلى مجتمع ROOT',\n hu: 'Hozzáadás a ROOT közösséghez',\n pt: 'Adicionar à comunidade ROOT',\n ru: 'Добавить в сообщество ROOT',\n zh: '添加到 ROOT 社区',\n hl: 'Add to ROOT Community (HL)',\n };\n\n const imageSrc = `${basePath}/${lang}.png`;\n\n return (\n <button\n ref={ref}\n disabled={disabled}\n className={`inline-block overflow-hidden transition-transform duration-200 hover:scale-[1.02] active:scale-[0.98] disabled:opacity-50 disabled:cursor-not-allowed ${className}`}\n style={{ background: 'none', border: 'none', padding: 0, outline: 'none', ...style }}\n {...props}\n >\n {/* eslint-disable-next-line @next/next/no-img-element */}\n <img\n src={imageSrc}\n alt={altTexts[lang]}\n style={{ width, height, display: 'block', objectFit: 'contain' }}\n />\n </button>\n );\n }\n);\n\nRootCommunityButton.displayName = 'RootCommunityButton';\n","import * as React from 'react';\n\nexport type RootCardStatus = 'online' | 'offline' | 'idle' | 'mentioned' | 'settings' | 'delete' | 'error' | 'sudo';\n\nexport interface RootCardProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string;\n description: string;\n cardStatus?: RootCardStatus;\n size?: 'normal' | 'large';\n action?: React.ReactNode;\n}\n\nexport const RootCard = React.forwardRef<HTMLDivElement, RootCardProps>(\n (\n {\n title,\n description,\n cardStatus,\n size = 'normal',\n action,\n className = '',\n ...props\n },\n ref\n ) => {\n // Generate class list\n const cardClass = `rootsdk-card ${\n size === 'large' ? 'rootsdk-card-large' : ''\n } ${cardStatus === 'mentioned' ? 'status-mentioned' : ''} ${className}`;\n\n // Get color or indicator based on status\n const statusColorClass = cardStatus ? `status-${cardStatus}` : '';\n\n return (\n <div ref={ref} className={cardClass} {...props}>\n <div className=\"flex flex-col h-full justify-between space-y-4\">\n <div className=\"space-y-2\">\n <div className=\"flex justify-between items-start gap-2\">\n <h3 className=\"text-lg font-bold text-white tracking-wide\">{title}</h3>\n {cardStatus && cardStatus !== 'mentioned' && (\n <span className={`inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider ${statusColorClass}`}>\n <span className={`h-2 w-2 rounded-full current-color-bg`} style={{ backgroundColor: 'currentColor' }} />\n {cardStatus}\n </span>\n )}\n </div>\n <p className=\"text-sm leading-relaxed text-slate-400 font-normal\">\n {description}\n </p>\n </div>\n {action && <div className=\"pt-2\">{action}</div>}\n </div>\n </div>\n );\n }\n);\n\nRootCard.displayName = 'RootCard';\n"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import*as g from'react';import {jsxs,jsx}from'react/jsx-runtime';var y=g.forwardRef(({children:o,className:n="",variant:t="primary",isLoading:r=false,disabled:s,...e},i)=>{let a=`rootsdk-btn ${t==="primary"?"rootsdk-btn-primary":"rootsdk-btn-secondary"} ${n}`;return jsxs("button",{ref:i,disabled:s||r,className:a,...e,children:[r&&jsxs("svg",{className:"animate-spin -ml-1 mr-2 h-4 w-4 text-current",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),o]})});y.displayName="RootButton";var k=({variant:o="transparent-black",size:n="100%",className:t="",style:r,...s})=>{let e=o==="dark-background-white",i=o==="white-background-black",a=e||o==="transparent-white"?"#ffffff":"#000000",c=e?"#000000":i?"#ffffff":"none";return jsx("svg",{version:"1.0",xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 512 512",preserveAspectRatio:"xMidYMid meet",className:t,style:{display:"inline-block",...r},...s,children:jsxs("g",{transform:"translate(0.000000,512.000000) scale(0.100000,-0.100000)",fill:"none",stroke:"none",children:[(e||i)&&jsx("path",{fill:c,d:"M662 5109 c-247 -42 -471 -212 -581 -442 -83 -172 -76 23 -76 -2107 0 -2129 -7 -1935 75 -2106 79 -163 211 -295 374 -374 171 -82 -23 -75 2106 -75 2129 0 1935 -7 2106 75 163 79 295 211 374 374 82 171 75 -23 75 2106 0 2129 7 1935 -75 2106 -79 163 -211 296 -374 374 -170 82 28 74 -2076 76 -1051 1 -1898 -2 -1928 -7z"}),jsx("path",{fill:a,d:"M2515 4269 c-16 -5 -113 -29 -215 -53 -102 -24 -279 -67 -395 -95 -115 -28 -268 -64 -340 -81 -71 -17 -220 -53 -330 -80 -110 -26 -226 -54 -257 -61 l-58 -12 0 -1019 0 -1018 660 0 660 0 0 -500 c0 -275 2 -500 5 -500 3 0 132 73 287 162 156 88 297 169 314 179 18 9 128 72 245 140 118 67 235 134 260 148 25 14 227 129 448 256 l401 230 0 960 0 960 -327 79 c-560 134 -812 195 -968 232 -357 87 -351 86 -390 73z m311 -599 c137 -33 344 -83 459 -110 116 -28 249 -60 298 -72 l87 -21 0 -597 0 -596 -447 -255 -448 -255 -3 313 -2 313 -660 0 -660 0 0 540 c0 297 3 540 8 540 4 0 248 58 542 130 294 71 544 129 556 129 11 1 133 -26 270 -59z"}),jsx("path",{fill:a,d:"M1642 3043 l3 -238 245 -11 c135 -6 318 -14 408 -17 l162 -5 0 118 0 118 -42 16 c-24 8 -128 44 -233 79 -104 36 -265 90 -356 121 -91 31 -171 56 -177 56 -9 0 -12 -59 -10 -237z"}),jsx("path",{fill:a,d:"M3290 3224 c-91 -31 -257 -88 -370 -126 -113 -37 -217 -74 -232 -80 l-28 -10 0 -120 0 -119 93 5 c50 3 235 11 410 18 l317 11 0 239 c0 184 -3 238 -12 238 -7 0 -87 -26 -178 -56z"})]})})};k.displayName="RootLogo";var v=g.forwardRef(({lang:o="en",basePath:n="/assets/buttons",width:t="240px",height:r="auto",className:s="",style:e,disabled:i,...l},a)=>{let c={en:"Add to ROOT Community",sk:"Prida\u0165 do ROOT komunity",cz:"P\u0159idat do ROOT komunity",de:"Zu ROOT Community hinzuf\xFCgen",es:"A\xF1adir a la comunidad de ROOT",fr:"Ajouter \xE0 la communaut\xE9 ROOT",ar:"\u0623\u0636\u0641 \u0625\u0644\u0649 \u0645\u062C\u062A\u0645\u0639 ROOT",hu:"Hozz\xE1ad\xE1s a ROOT k\xF6z\xF6ss\xE9ghez",pt:"Adicionar \xE0 comunidade ROOT",ru:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u043E ROOT",zh:"\u6DFB\u52A0\u5230 ROOT \u793E\u533A",hl:"Add to ROOT Community (HL)"},x=`${n}/${o}.png`;return jsx("button",{ref:a,disabled:i,className:`inline-block overflow-hidden transition-transform duration-200 hover:scale-[1.02] active:scale-[0.98] disabled:opacity-50 disabled:cursor-not-allowed ${s}`,style:{background:"none",border:"none",padding:0,outline:"none",...e},...l,children:jsx("img",{src:x,alt:c[o],style:{width:t,height:r,display:"block",objectFit:"contain"}})})});v.displayName="RootCommunityButton";var C=g.forwardRef(({title:o,description:n,cardStatus:t,size:r="normal",action:s,className:e="",...i},l)=>{let a=`rootsdk-card ${r==="large"?"rootsdk-card-large":""} ${t==="mentioned"?"status-mentioned":""} ${e}`,c=t?`status-${t}`:"";return jsx("div",{ref:l,className:a,...i,children:jsxs("div",{className:"flex flex-col h-full justify-between space-y-4",children:[jsxs("div",{className:"space-y-2",children:[jsxs("div",{className:"flex justify-between items-start gap-2",children:[jsx("h3",{className:"text-lg font-bold text-white tracking-wide",children:o}),t&&t!=="mentioned"&&jsxs("span",{className:`inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider ${c}`,children:[jsx("span",{className:"h-2 w-2 rounded-full current-color-bg",style:{backgroundColor:"currentColor"}}),t]})]}),jsx("p",{className:"text-sm leading-relaxed text-slate-400 font-normal",children:n})]}),s&&jsx("div",{className:"pt-2",children:s})]})})});C.displayName="RootCard";
|
|
2
|
+
export{y as RootButton,C as RootCard,v as RootCommunityButton,k as RootLogo};//# sourceMappingURL=index.mjs.map
|
|
3
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/RootButton.tsx","../src/components/RootLogo.tsx","../src/components/RootCommunityButton.tsx","../src/components/RootCard.tsx"],"names":["RootButton","children","className","variant","isLoading","disabled","props","ref","buttonClasses","jsxs","jsx","RootLogo","size","style","isDarkBg","isWhiteBg","pathColor","bgColor","RootCommunityButton","b","lang","basePath","width","height","altTexts","imageSrc","RootCard","h","title","description","cardStatus","action","cardClass","statusColorClass"],"mappings":"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","file":"index.mjs","sourcesContent":["import * as React from 'react';\n\nexport interface RootButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary';\n isLoading?: boolean;\n}\n\nexport const RootButton = React.forwardRef<HTMLButtonElement, RootButtonProps>(\n (\n {\n children,\n className = '',\n variant = 'primary',\n isLoading = false,\n disabled,\n ...props\n },\n ref\n ) => {\n const variantClass = variant === 'primary' ? 'rootsdk-btn-primary' : 'rootsdk-btn-secondary';\n const buttonClasses = `rootsdk-btn ${variantClass} ${className}`;\n\n return (\n <button\n ref={ref}\n disabled={disabled || isLoading}\n className={buttonClasses}\n {...props}\n >\n {isLoading && (\n <svg\n className=\"animate-spin -ml-1 mr-2 h-4 w-4 text-current\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n )}\n {children}\n </button>\n );\n }\n);\n\nRootButton.displayName = 'RootButton';\n","import * as React from 'react';\n\nexport interface RootLogoProps extends React.SVGProps<SVGSVGElement> {\n variant?: 'dark-background-white' | 'transparent-black' | 'transparent-white' | 'white-background-black';\n size?: number | string;\n}\n\nexport const RootLogo: React.FC<RootLogoProps> = ({\n variant = 'transparent-black',\n size = '100%',\n className = '',\n style,\n ...props\n}) => {\n // Determine backgrounds and path colors based on variant\n const isDarkBg = variant === 'dark-background-white';\n const isWhiteBg = variant === 'white-background-black';\n const isTransparentWhite = variant === 'transparent-white';\n \n const pathColor = (isDarkBg || isTransparentWhite) ? '#ffffff' : '#000000';\n const bgColor = isDarkBg ? '#000000' : (isWhiteBg ? '#ffffff' : 'none');\n\n return (\n <svg\n version=\"1.0\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 512 512\"\n preserveAspectRatio=\"xMidYMid meet\"\n className={className}\n style={{ display: 'inline-block', ...style }}\n {...props}\n >\n <g\n transform=\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\"\n fill=\"none\"\n stroke=\"none\"\n >\n {/* Render background shape for non-transparent variants */}\n {(isDarkBg || isWhiteBg) && (\n <path\n fill={bgColor}\n d=\"M662 5109 c-247 -42 -471 -212 -581 -442 -83 -172 -76 23 -76 -2107 0 -2129 -7 -1935 75 -2106 79 -163 211 -295 374 -374 171 -82 -23 -75 2106 -75 2129 0 1935 -7 2106 75 163 79 295 211 374 374 82 171 75 -23 75 2106 0 2129 7 1935 -75 2106 -79 163 -211 296 -374 374 -170 82 28 74 -2076 76 -1051 1 -1898 -2 -1928 -7z\"\n />\n )}\n\n {/* Main logo paths */}\n <path\n fill={pathColor}\n d=\"M2515 4269 c-16 -5 -113 -29 -215 -53 -102 -24 -279 -67 -395 -95 -115 -28 -268 -64 -340 -81 -71 -17 -220 -53 -330 -80 -110 -26 -226 -54 -257 -61 l-58 -12 0 -1019 0 -1018 660 0 660 0 0 -500 c0 -275 2 -500 5 -500 3 0 132 73 287 162 156 88 297 169 314 179 18 9 128 72 245 140 118 67 235 134 260 148 25 14 227 129 448 256 l401 230 0 960 0 960 -327 79 c-560 134 -812 195 -968 232 -357 87 -351 86 -390 73z m311 -599 c137 -33 344 -83 459 -110 116 -28 249 -60 298 -72 l87 -21 0 -597 0 -596 -447 -255 -448 -255 -3 313 -2 313 -660 0 -660 0 0 540 c0 297 3 540 8 540 4 0 248 58 542 130 294 71 544 129 556 129 11 1 133 -26 270 -59z\"\n />\n <path\n fill={pathColor}\n d=\"M1642 3043 l3 -238 245 -11 c135 -6 318 -14 408 -17 l162 -5 0 118 0 118 -42 16 c-24 8 -128 44 -233 79 -104 36 -265 90 -356 121 -91 31 -171 56 -177 56 -9 0 -12 -59 -10 -237z\"\n />\n <path\n fill={pathColor}\n d=\"M3290 3224 c-91 -31 -257 -88 -370 -126 -113 -37 -217 -74 -232 -80 l-28 -10 0 -120 0 -119 93 5 c50 3 235 11 410 18 l317 11 0 239 c0 184 -3 238 -12 238 -7 0 -87 -26 -178 -56z\"\n />\n </g>\n </svg>\n );\n};\n\nRootLogo.displayName = 'RootLogo';\n","import * as React from 'react';\n\nexport type RootLanguage = 'ar' | 'cz' | 'de' | 'en' | 'es' | 'fr' | 'hl' | 'hu' | 'pt' | 'ru' | 'sk' | 'zh';\n\nexport interface RootCommunityButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n lang?: RootLanguage;\n basePath?: string;\n width?: number | string;\n height?: number | string;\n}\n\nexport const RootCommunityButton = React.forwardRef<HTMLButtonElement, RootCommunityButtonProps>(\n (\n {\n lang = 'en',\n basePath = '/assets/buttons',\n width = '240px',\n height = 'auto',\n className = '',\n style,\n disabled,\n ...props\n },\n ref\n ) => {\n // Map languages to friendly alt texts\n const altTexts: Record<RootLanguage, string> = {\n en: 'Add to ROOT Community',\n sk: 'Pridať do ROOT komunity',\n cz: 'Přidat do ROOT komunity',\n de: 'Zu ROOT Community hinzufügen',\n es: 'Añadir a la comunidad de ROOT',\n fr: 'Ajouter à la communauté ROOT',\n ar: 'أضف إلى مجتمع ROOT',\n hu: 'Hozzáadás a ROOT közösséghez',\n pt: 'Adicionar à comunidade ROOT',\n ru: 'Добавить в сообщество ROOT',\n zh: '添加到 ROOT 社区',\n hl: 'Add to ROOT Community (HL)',\n };\n\n const imageSrc = `${basePath}/${lang}.png`;\n\n return (\n <button\n ref={ref}\n disabled={disabled}\n className={`inline-block overflow-hidden transition-transform duration-200 hover:scale-[1.02] active:scale-[0.98] disabled:opacity-50 disabled:cursor-not-allowed ${className}`}\n style={{ background: 'none', border: 'none', padding: 0, outline: 'none', ...style }}\n {...props}\n >\n {/* eslint-disable-next-line @next/next/no-img-element */}\n <img\n src={imageSrc}\n alt={altTexts[lang]}\n style={{ width, height, display: 'block', objectFit: 'contain' }}\n />\n </button>\n );\n }\n);\n\nRootCommunityButton.displayName = 'RootCommunityButton';\n","import * as React from 'react';\n\nexport type RootCardStatus = 'online' | 'offline' | 'idle' | 'mentioned' | 'settings' | 'delete' | 'error' | 'sudo';\n\nexport interface RootCardProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string;\n description: string;\n cardStatus?: RootCardStatus;\n size?: 'normal' | 'large';\n action?: React.ReactNode;\n}\n\nexport const RootCard = React.forwardRef<HTMLDivElement, RootCardProps>(\n (\n {\n title,\n description,\n cardStatus,\n size = 'normal',\n action,\n className = '',\n ...props\n },\n ref\n ) => {\n // Generate class list\n const cardClass = `rootsdk-card ${\n size === 'large' ? 'rootsdk-card-large' : ''\n } ${cardStatus === 'mentioned' ? 'status-mentioned' : ''} ${className}`;\n\n // Get color or indicator based on status\n const statusColorClass = cardStatus ? `status-${cardStatus}` : '';\n\n return (\n <div ref={ref} className={cardClass} {...props}>\n <div className=\"flex flex-col h-full justify-between space-y-4\">\n <div className=\"space-y-2\">\n <div className=\"flex justify-between items-start gap-2\">\n <h3 className=\"text-lg font-bold text-white tracking-wide\">{title}</h3>\n {cardStatus && cardStatus !== 'mentioned' && (\n <span className={`inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider ${statusColorClass}`}>\n <span className={`h-2 w-2 rounded-full current-color-bg`} style={{ backgroundColor: 'currentColor' }} />\n {cardStatus}\n </span>\n )}\n </div>\n <p className=\"text-sm leading-relaxed text-slate-400 font-normal\">\n {description}\n </p>\n </div>\n {action && <div className=\"pt-2\">{action}</div>}\n </div>\n </div>\n );\n }\n);\n\nRootCard.displayName = 'RootCard';\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
@font-face{font-family:Gotham;src:url("../Gotham-Bold-QMVVU2UR.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}:root{--rootsdk-background-secondary: rgba(255, 255, 255, .03);--rootsdk-border: rgba(255, 255, 255, .1);--rootsdk-brand-primary: #a8ff5d;--rootsdk-text-primary: #ffffff;--rootsdk-text-secondary: #b0b5c5}.rootsdk-body{background-color:#0c1017;background-image:radial-gradient(circle at top,#23315e,#0c1017 60%);color:var(--rootsdk-text-primary);font-family:Gotham,sans-serif;font-weight:700;margin:0;min-height:100vh}.rootsdk-h1{font-size:42px;line-height:1.1;font-weight:700;color:var(--rootsdk-text-primary)}@media(min-width:768px){.rootsdk-h1{font-size:72px}}.rootsdk-h2{font-size:32px;line-height:1.2;font-weight:700;color:var(--rootsdk-text-primary)}@media(min-width:768px){.rootsdk-h2{font-size:42px}}.rootsdk-body-text{font-size:16px;color:var(--rootsdk-text-secondary);line-height:1.6}@media(min-width:768px){.rootsdk-body-text{font-size:18px}}.rootsdk-section{display:flex;flex-direction:column;align-items:center;padding:60px 15px;width:100%;box-sizing:border-box}@media(min-width:768px){.rootsdk-section{padding:100px 20px}}.rootsdk-card{background-color:var(--rootsdk-background-secondary);border:1px solid var(--rootsdk-border);border-radius:12px;padding:24px;box-sizing:border-box;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform .2s ease,border-color .2s ease,background-color .2s ease}.rootsdk-card-large{border-radius:20px}.rootsdk-card:hover{transform:translateY(-4px);border-color:var(--rootsdk-brand-primary);background-color:#ffffff0d}.rootsdk-grid-status{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:16px;width:100%}@media(min-width:768px){.rootsdk-grid-status{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.rootsdk-grid-large{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px;width:100%}.rootsdk-btn{display:inline-flex;align-items:center;justify-content:center;font-family:Gotham,sans-serif;font-weight:700;font-size:14px;padding:12px 28px;border-radius:50px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease;border:none;outline:none}.rootsdk-btn-primary{background-color:#fff;color:#0c1017}.rootsdk-btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 30px #ffffff26}.rootsdk-btn-secondary{background-color:transparent;border:1px solid rgba(255,255,255,.3);color:var(--rootsdk-text-primary)}.rootsdk-btn-secondary:hover{background-color:#ffffff1a;border-color:#fffc;box-shadow:0 0 20px #ffffff1a}.status-online{color:#a8ff5d}.status-offline{color:#4f5c6f}.status-idle{color:#ea913e}.status-mentioned{background-color:#251721}.status-settings{color:#3b6af9}.status-delete{color:#97302f}.status-error{color:#7c2b2e}.status-sudo{color:#8859f2}
|
|
2
|
+
/*# sourceMappingURL=rootsdk.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/styles/rootsdk.css"],"sourcesContent":["@font-face {\n font-family: 'Gotham';\n src: url('../../public/assets/fonts/Gotham-Bold.woff') format('woff');\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n}\n\n:root {\n --rootsdk-background-secondary: rgba(255, 255, 255, 0.03);\n --rootsdk-border: rgba(255, 255, 255, 0.1);\n --rootsdk-brand-primary: #a8ff5d;\n --rootsdk-text-primary: #ffffff;\n --rootsdk-text-secondary: #b0b5c5;\n}\n\n/* Base resets & typography */\n.rootsdk-body {\n background-color: #0c1017;\n background-image: radial-gradient(circle at top, #23315e 0%, #0c1017 60%);\n color: var(--rootsdk-text-primary);\n font-family: 'Gotham', sans-serif;\n font-weight: 700;\n margin: 0;\n min-height: 100vh;\n}\n\n.rootsdk-h1 {\n font-size: 42px;\n line-height: 1.1;\n font-weight: 700;\n color: var(--rootsdk-text-primary);\n}\n\n@media (min-width: 768px) {\n .rootsdk-h1 {\n font-size: 72px;\n }\n}\n\n.rootsdk-h2 {\n font-size: 32px;\n line-height: 1.2;\n font-weight: 700;\n color: var(--rootsdk-text-primary);\n}\n\n@media (min-width: 768px) {\n .rootsdk-h2 {\n font-size: 42px;\n }\n}\n\n.rootsdk-body-text {\n font-size: 16px;\n color: var(--rootsdk-text-secondary);\n line-height: 1.6;\n}\n\n@media (min-width: 768px) {\n .rootsdk-body-text {\n font-size: 18px;\n }\n}\n\n/* Sections */\n.rootsdk-section {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 60px 15px;\n width: 100%;\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .rootsdk-section {\n padding: 100px 20px;\n }\n}\n\n/* Glassmorphic Cards */\n.rootsdk-card {\n background-color: var(--rootsdk-background-secondary);\n border: 1px solid var(--rootsdk-border);\n border-radius: 12px;\n padding: 24px;\n box-sizing: border-box;\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;\n}\n\n.rootsdk-card-large {\n border-radius: 20px;\n}\n\n.rootsdk-card:hover {\n transform: translateY(-4px);\n border-color: var(--rootsdk-brand-primary);\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n/* Layout Grids */\n.rootsdk-grid-status {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));\n gap: 16px;\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .rootsdk-grid-status {\n grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));\n }\n}\n\n.rootsdk-grid-large {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\n gap: 20px;\n width: 100%;\n}\n\n/* Buttons */\n.rootsdk-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-family: 'Gotham', sans-serif;\n font-weight: 700;\n font-size: 14px;\n padding: 12px 28px;\n border-radius: 50px;\n cursor: pointer;\n transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;\n border: none;\n outline: none;\n}\n\n.rootsdk-btn-primary {\n background-color: #ffffff;\n color: #0c1017;\n}\n\n.rootsdk-btn-primary:hover {\n transform: translateY(-2px);\n box-shadow: 0 0 30px rgba(255, 255, 255, 0.15);\n}\n\n.rootsdk-btn-secondary {\n background-color: transparent;\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: var(--rootsdk-text-primary);\n}\n\n.rootsdk-btn-secondary:hover {\n background-color: rgba(255, 255, 255, 0.1);\n border-color: rgba(255, 255, 255, 0.8);\n box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);\n}\n\n/* Status colors helpers */\n.status-online { color: #a8ff5d; }\n.status-offline { color: #4f5c6f; }\n.status-idle { color: #ea913e; }\n.status-mentioned { background-color: #251721; }\n.status-settings { color: #3b6af9; }\n.status-delete { color: #97302f; }\n.status-error { color: #7c2b2e; }\n.status-sudo { color: #8859f2; }\n"],"mappings":"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","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jetomit.bio/components",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "React component library for the ROOT community styled with Tailwind CSS",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"tailwind.config.js"
|
|
11
|
+
],
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.mjs",
|
|
16
|
+
"require": "./dist/index.js",
|
|
17
|
+
"default": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./styles.css": "./dist/styles/rootsdk.css"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsup",
|
|
23
|
+
"dev": "tsup --watch",
|
|
24
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
25
|
+
"prepublishOnly": "npm run build"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
29
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
30
|
+
"tailwindcss": "^3.0.0 || ^4.0.0"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@types/react": "^18.3.3",
|
|
34
|
+
"@types/react-dom": "^18.3.0",
|
|
35
|
+
"postcss": "^8.4.38",
|
|
36
|
+
"react": "^18.3.1",
|
|
37
|
+
"react-dom": "^18.3.1",
|
|
38
|
+
"tailwindcss": "^3.4.4",
|
|
39
|
+
"tsup": "^8.1.0",
|
|
40
|
+
"typescript": "^5.4.5"
|
|
41
|
+
},
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"access": "public"
|
|
44
|
+
},
|
|
45
|
+
"keywords": [
|
|
46
|
+
"react",
|
|
47
|
+
"components",
|
|
48
|
+
"tailwind",
|
|
49
|
+
"root-community",
|
|
50
|
+
"typescript"
|
|
51
|
+
],
|
|
52
|
+
"author": "",
|
|
53
|
+
"license": "MIT"
|
|
54
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** @type {import('tailwindcss').Config} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
content: ["./src/**/*.{js,ts,jsx,tsx}"],
|
|
4
|
+
theme: {
|
|
5
|
+
extend: {
|
|
6
|
+
colors: {
|
|
7
|
+
root: {
|
|
8
|
+
main: '#0d1521',
|
|
9
|
+
secondary: '#161e2a',
|
|
10
|
+
text: '#ececec',
|
|
11
|
+
online: '#a8ff5d',
|
|
12
|
+
offline: '#4f5c6f',
|
|
13
|
+
mentioned: '#251721',
|
|
14
|
+
idle: '#ea913e',
|
|
15
|
+
icons: '#9ea1a6',
|
|
16
|
+
settings: '#3b6af9',
|
|
17
|
+
delete: '#97302f',
|
|
18
|
+
error: '#7c2b2e',
|
|
19
|
+
sudo: '#8859f2',
|
|
20
|
+
|
|
21
|
+
50: '#f5f7fa',
|
|
22
|
+
100: '#eaeef4',
|
|
23
|
+
200: '#d0daf2',
|
|
24
|
+
300: '#a6bbe7',
|
|
25
|
+
400: '#7594d6',
|
|
26
|
+
500: '#5272c4',
|
|
27
|
+
600: '#3e58a7',
|
|
28
|
+
700: '#334687',
|
|
29
|
+
800: '#2d3b6f',
|
|
30
|
+
900: '#28345d',
|
|
31
|
+
950: '#1b223f',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
plugins: [],
|
|
37
|
+
}
|