pelatform-ui 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +259 -0
- package/css/components/apexcharts.css +101 -0
- package/css/components/book.css +19 -0
- package/css/components/extra.css +12 -0
- package/css/components/image-input.css +51 -0
- package/css/components/leaflet.css +25 -0
- package/css/components/patterns.css +34 -0
- package/css/components/rating.css +89 -0
- package/css/components/scrollable.css +118 -0
- package/css/components/theme-transition.css +51 -0
- package/css/theme.css +243 -0
- package/dist/animation.d.ts +5 -0
- package/dist/animation.js +2 -0
- package/dist/aria.d.ts +1 -0
- package/dist/aria.js +2 -0
- package/dist/base.d.ts +1 -0
- package/dist/base.js +2 -0
- package/dist/chunk-2MIG2DIO.js +51 -0
- package/dist/components.d.ts +2987 -0
- package/dist/components.js +2316 -0
- package/dist/default.d.ts +1 -0
- package/dist/default.js +2 -0
- package/dist/hooks.d.ts +93 -0
- package/dist/hooks.js +9 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/package.json +111 -0
package/README.md
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
# pelatform-ui
|
|
2
|
+
|
|
3
|
+
A Modern and Minimal React UI Library built with TailwindCSS. The main package that provides access to all Pelatform UI components, hooks, and utilities through a unified interface. This package includes all the components, hooks, and utilities from the other Pelatform UI packages.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
bun add pelatform-ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Peer Dependencies
|
|
12
|
+
|
|
13
|
+
Make sure you have these installed:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
bun add react react-dom @tanstack/react-query lucide-react motion next-themes sonner
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Import Styles
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import "pelatform-ui/css";
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Package Structure
|
|
26
|
+
|
|
27
|
+
pelatform-ui is the main entry point that consolidates all Pelatform UI packages:
|
|
28
|
+
|
|
29
|
+
- **@@pelatform/ui.general** - Core utilities and types
|
|
30
|
+
- **@@pelatform/ui.hook** - React hooks (15 hooks)
|
|
31
|
+
- **@@pelatform/ui.animation** - Animation components (14 components)
|
|
32
|
+
- **@@pelatform/ui.aria** - Accessible ARIA components (2 components)
|
|
33
|
+
- **@@pelatform/ui.base** - Base headless components (40+ components)
|
|
34
|
+
- **@@pelatform/ui.default** - Styled default components (71 components)
|
|
35
|
+
|
|
36
|
+
Plus additional ready-to-use components for layouts, navigation, and UI elements.
|
|
37
|
+
|
|
38
|
+
## Import Paths
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
// Main exports (utilities, types, icons)
|
|
42
|
+
import { cn, cva, googleTrackEvent } from "pelatform-ui";
|
|
43
|
+
|
|
44
|
+
// Hooks
|
|
45
|
+
import { useHydrated, useMobile, useMediaQuery } from "pelatform-ui/hooks";
|
|
46
|
+
|
|
47
|
+
// Animation components
|
|
48
|
+
import {
|
|
49
|
+
ShimmeringText,
|
|
50
|
+
CountingNumber,
|
|
51
|
+
Marquee,
|
|
52
|
+
} from "pelatform-ui/animation";
|
|
53
|
+
|
|
54
|
+
// ARIA components
|
|
55
|
+
import { DateField, ShowMore } from "pelatform-ui/aria";
|
|
56
|
+
|
|
57
|
+
// Base components
|
|
58
|
+
import { Button, Input, Select } from "pelatform-ui/base";
|
|
59
|
+
|
|
60
|
+
// Default styled components
|
|
61
|
+
import { Card, DataGrid, Kanban } from "pelatform-ui/default";
|
|
62
|
+
|
|
63
|
+
// All components (base + default + custom)
|
|
64
|
+
import { SiteHeader, SiteFooter, CommandMenu } from "pelatform-ui/components";
|
|
65
|
+
|
|
66
|
+
// Styles
|
|
67
|
+
import "pelatform-ui/css";
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Quick Start
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
import { Button, Card, Input } from "pelatform-ui/default";
|
|
74
|
+
import { useHydrated } from "pelatform-ui/hooks";
|
|
75
|
+
import "pelatform-ui/css";
|
|
76
|
+
|
|
77
|
+
function App() {
|
|
78
|
+
const hydrated = useHydrated();
|
|
79
|
+
|
|
80
|
+
if (!hydrated) return null;
|
|
81
|
+
|
|
82
|
+
return (
|
|
83
|
+
<Card>
|
|
84
|
+
<Input placeholder="Enter text" />
|
|
85
|
+
<Button>Submit</Button>
|
|
86
|
+
</Card>
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Components
|
|
92
|
+
|
|
93
|
+
### Layout Components
|
|
94
|
+
|
|
95
|
+
- **Auth** - Authentication page layout
|
|
96
|
+
- **Blank** - Minimal blank layout
|
|
97
|
+
- **Body** - Main content body
|
|
98
|
+
- **ComingSoon** - Coming soon page
|
|
99
|
+
- **Error** - Error page layout
|
|
100
|
+
- **Grid** - Grid-based layout
|
|
101
|
+
- **Section** - Content section
|
|
102
|
+
- **SiteHeader** - Sticky header with blur
|
|
103
|
+
- **SiteFooter** - Site footer
|
|
104
|
+
- **Wrapper** - Container wrapper
|
|
105
|
+
|
|
106
|
+
### Navigation Components
|
|
107
|
+
|
|
108
|
+
- **BackLink** - Back navigation link
|
|
109
|
+
- **CommandMenu** - Command palette
|
|
110
|
+
- **MainNav** - Main navigation menu
|
|
111
|
+
- **MobileNav** - Mobile navigation
|
|
112
|
+
|
|
113
|
+
### Feedback Components
|
|
114
|
+
|
|
115
|
+
- **Alert** - Alert notifications
|
|
116
|
+
- **AlertToast** - Toast notifications
|
|
117
|
+
- **AlertNotification** - Notification alerts
|
|
118
|
+
- **AlertComingsoon** - Coming soon alert
|
|
119
|
+
- **Dialog** - Modal dialog
|
|
120
|
+
- **ScreenLoader** - Loading screen
|
|
121
|
+
|
|
122
|
+
### UI Components
|
|
123
|
+
|
|
124
|
+
- **Announcement** - Announcement banner with tags
|
|
125
|
+
- **BackgroundPaths** - Decorative backgrounds
|
|
126
|
+
- **Book** - Book/document display
|
|
127
|
+
- **DotsPattern** - Dot pattern background
|
|
128
|
+
- **GridBackground** - Grid pattern background
|
|
129
|
+
- **HexagonBadge** - Hexagon-shaped badge
|
|
130
|
+
- **Icons** - Icon components
|
|
131
|
+
- **ImageInput** - Image upload input
|
|
132
|
+
- **LanguageSwitcher** - Language selector
|
|
133
|
+
- **Logo** - Brand logo
|
|
134
|
+
- **ModeSwitcher** - Theme mode toggle
|
|
135
|
+
- **MovingBorder** - Animated border effect
|
|
136
|
+
- **Subscribe** - Email subscription
|
|
137
|
+
- **Toolbar** - Toolbar component
|
|
138
|
+
- **UserAvatar** - User avatar display
|
|
139
|
+
|
|
140
|
+
### Provider Components
|
|
141
|
+
|
|
142
|
+
- **QueryProvider** - TanStack Query provider
|
|
143
|
+
- **ThemeProvider** - Theme management (next-themes + tooltip)
|
|
144
|
+
|
|
145
|
+
### MDX Components
|
|
146
|
+
|
|
147
|
+
- **CodeDisplay** - Code snippet display
|
|
148
|
+
- **Download** - Download link
|
|
149
|
+
- **Link** - Custom link
|
|
150
|
+
- **Video** - Video embed
|
|
151
|
+
- **Wrapper** - MDX content wrapper
|
|
152
|
+
- **YouTube** - YouTube embed
|
|
153
|
+
|
|
154
|
+
### Utility Components
|
|
155
|
+
|
|
156
|
+
- **Fonts** - Font configuration
|
|
157
|
+
- **RecaptchaPopover** - reCAPTCHA integration
|
|
158
|
+
- **Shared** - Shared utilities
|
|
159
|
+
|
|
160
|
+
## Theme Management
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
import { ThemeProvider } from "pelatform-ui/components";
|
|
164
|
+
|
|
165
|
+
function App({ children }) {
|
|
166
|
+
return (
|
|
167
|
+
<ThemeProvider
|
|
168
|
+
attribute="class"
|
|
169
|
+
defaultTheme="system"
|
|
170
|
+
enableSystem
|
|
171
|
+
disableTransitionOnChange
|
|
172
|
+
>
|
|
173
|
+
{children}
|
|
174
|
+
</ThemeProvider>
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Hooks
|
|
180
|
+
|
|
181
|
+
15 production-ready hooks for common use cases:
|
|
182
|
+
|
|
183
|
+
- **useAnalytics** - CRUD operation tracking
|
|
184
|
+
- **useBodyClass** - Body class management
|
|
185
|
+
- **useCopyToClipboard** - Clipboard operations
|
|
186
|
+
- **useFileUpload** - File upload with drag & drop
|
|
187
|
+
- **useHydrated** - SSR-safe hydration detection
|
|
188
|
+
- **useMediaQuery** - Media query tracking
|
|
189
|
+
- **useMenu** - Menu navigation state
|
|
190
|
+
- **useMobile** - Mobile detection
|
|
191
|
+
- **useMounted** - Mount state detection
|
|
192
|
+
- **useMutationObserver** - DOM mutation observation
|
|
193
|
+
- **useRecaptchaV2** - reCAPTCHA integration
|
|
194
|
+
- **useRemoveGAParams** - GA parameter cleanup
|
|
195
|
+
- **useScrollPosition** - Scroll tracking
|
|
196
|
+
- **useSliderInput** - Slider input management
|
|
197
|
+
- **useViewport** - Viewport dimensions
|
|
198
|
+
|
|
199
|
+
## Styling
|
|
200
|
+
|
|
201
|
+
The package uses Tailwind CSS with custom theme configuration. Import the CSS in your app:
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
import "pelatform-ui/css";
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
CSS includes:
|
|
208
|
+
|
|
209
|
+
- Theme variables
|
|
210
|
+
- Component styles
|
|
211
|
+
- Animation utilities
|
|
212
|
+
- Pattern backgrounds
|
|
213
|
+
- Custom transitions
|
|
214
|
+
|
|
215
|
+
## TypeScript Support
|
|
216
|
+
|
|
217
|
+
Full TypeScript support with comprehensive type definitions for all components and hooks.
|
|
218
|
+
|
|
219
|
+
## Features
|
|
220
|
+
|
|
221
|
+
- 100+ total components across all packages
|
|
222
|
+
- 15 React hooks for common use cases
|
|
223
|
+
- Full dark mode support
|
|
224
|
+
- Responsive design
|
|
225
|
+
- Accessibility (WCAG 2.1)
|
|
226
|
+
- SSR-safe implementations
|
|
227
|
+
- Tree-shakeable exports
|
|
228
|
+
- TanStack Query integration
|
|
229
|
+
- Next.js optimized
|
|
230
|
+
- Tailwind CSS styling
|
|
231
|
+
|
|
232
|
+
## Dependencies
|
|
233
|
+
|
|
234
|
+
### Production Dependencies
|
|
235
|
+
|
|
236
|
+
- `@radix-ui/react-dialog`
|
|
237
|
+
- `radix-ui`
|
|
238
|
+
- `tw-animate-css`
|
|
239
|
+
|
|
240
|
+
### Peer Dependencies
|
|
241
|
+
|
|
242
|
+
- `react`
|
|
243
|
+
- `react-dom`
|
|
244
|
+
- `@tanstack/react-query`
|
|
245
|
+
- `lucide-react`
|
|
246
|
+
- `motion`
|
|
247
|
+
- `next-themes`
|
|
248
|
+
- `sonner`
|
|
249
|
+
|
|
250
|
+
## Links
|
|
251
|
+
|
|
252
|
+
- [npm Package](https://www.npmjs.com/package/pelatform-ui)
|
|
253
|
+
- [Contributing Guide](../../../CONTRIBUTING.md)
|
|
254
|
+
- [Code of Conduct](../../../CODE_OF_CONDUCT.md)
|
|
255
|
+
- [License](../../../LICENSE)
|
|
256
|
+
|
|
257
|
+
## License
|
|
258
|
+
|
|
259
|
+
MIT © [Pelatform Inc.](../../../LICENSE)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.apexcharts-text,
|
|
3
|
+
.apexcharts-title-text,
|
|
4
|
+
.apexcharts-legend-text {
|
|
5
|
+
font-family: inherit !important;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.apexcharts-title-text {
|
|
9
|
+
font-weight: var(--font-weight-normal);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.apexcharts-pie-label {
|
|
13
|
+
@apply text-xs;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.apexcharts-toolbar {
|
|
17
|
+
text-align: start !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.apexcharts-menu {
|
|
21
|
+
border: 1px solid var(--color-border) !important;
|
|
22
|
+
box-shadow: var(--box-shadow-sm) !important;
|
|
23
|
+
background-color: var(--color-background) !important;
|
|
24
|
+
border-radius: 0.625rem !important;
|
|
25
|
+
padding: 0.5rem 0 !important;
|
|
26
|
+
overflow: hidden;
|
|
27
|
+
min-width: 10rem !important;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.apexcharts-menu .apexcharts-menu-item {
|
|
31
|
+
padding: 0.5rem 0.5rem !important;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.apexcharts-menu .apexcharts-menu-item:hover {
|
|
35
|
+
background-color: var(--gray-100) !important;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.apexcharts-tooltip {
|
|
39
|
+
border: 1px solid var(--color-border) !important;
|
|
40
|
+
box-shadow: var(--box-shadow-sm) !important;
|
|
41
|
+
background-color: var(--color-background) !important;
|
|
42
|
+
border-radius: 0.625rem !important;
|
|
43
|
+
color: var(--color-secondary-foreground) !important;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.apexcharts-tooltip .apexcharts-tooltip-title {
|
|
47
|
+
@apply text-foreground text-sm font-medium;
|
|
48
|
+
padding: 0.25rem 0.5rem !important;
|
|
49
|
+
background-color: transparent !important;
|
|
50
|
+
border-bottom: 1px solid var(--color-border) !important;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.apexcharts-xaxistooltip {
|
|
54
|
+
border: 1px solid var(--color-border) !important;
|
|
55
|
+
box-shadow: var(--box-shadow-sm) !important;
|
|
56
|
+
background-color: var(--color-background) !important;
|
|
57
|
+
border-radius: 0.625rem;
|
|
58
|
+
color: var(--color-foreground);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.apexcharts-xaxistooltip:before {
|
|
62
|
+
border-bottom: 0 !important;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.apexcharts-legend {
|
|
66
|
+
display: flex;
|
|
67
|
+
flex-direction: column;
|
|
68
|
+
@apply gap-2;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.apexcharts-legend .apexcharts-legend-series {
|
|
72
|
+
@apply gap-1;
|
|
73
|
+
display: flex;
|
|
74
|
+
align-items: center;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.apexcharts-legend .apexcharts-legend-series .apexcharts-legend-text {
|
|
78
|
+
@apply text-muted-foreground text-sm font-medium;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.apexcharts-card-rounded .apexcharts-canvas svg {
|
|
82
|
+
border-bottom-left-radius: var(--radius-xl);
|
|
83
|
+
border-bottom-right-radius: var(--radius-xl);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.apexcharts-rounded-sm .apexcharts-canvas svg {
|
|
87
|
+
border-radius: var(--radius-sm);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.apexcharts-rounded .apexcharts-canvas svg {
|
|
91
|
+
border-radius: var(--radius-md);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.apexcharts-rounded-lg .apexcharts-canvas svg {
|
|
95
|
+
border-radius: var(--radius-lg);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.apexcharts-rounded-xl .apexcharts-canvas svg {
|
|
99
|
+
border-radius: var(--radius-xl);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.bg-book-bind-bg {
|
|
3
|
+
background: linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 100%);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.bg-book-pages {
|
|
7
|
+
background: linear-gradient(90deg, #f1f1f1 0%, #ffffff 100%);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.shadow-book {
|
|
11
|
+
box-shadow:
|
|
12
|
+
0 4px 6px -1px rgba(0, 0, 0, 0.1),
|
|
13
|
+
0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.book-bg {
|
|
17
|
+
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 100%);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.pf-image-input {
|
|
3
|
+
@apply relative inline-flex size-20 cursor-pointer items-center justify-center;
|
|
4
|
+
|
|
5
|
+
input[type="file"] {
|
|
6
|
+
@apply absolute size-0 appearance-none opacity-0;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.pf-image-input-remove {
|
|
11
|
+
@apply bg-background border-border end-px top-px absolute z-1 flex size-5 cursor-pointer items-center justify-center rounded-full border shadow-sm;
|
|
12
|
+
|
|
13
|
+
i {
|
|
14
|
+
@apply text-muted-foreground text-[11px];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
svg {
|
|
18
|
+
@apply text-muted-foreground size-3.25;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&:hover {
|
|
22
|
+
i {
|
|
23
|
+
@apply text-foreground;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
svg {
|
|
27
|
+
@apply text-foreground;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.pf-image-input-placeholder {
|
|
33
|
+
@apply border-border pf-image-input-empty:border-border relative size-full overflow-hidden rounded-full border bg-cover bg-no-repeat;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.pf-image-input-preview {
|
|
37
|
+
@apply relative size-full overflow-hidden rounded-full bg-cover bg-no-repeat;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@custom-variant pf-image-input-empty {
|
|
42
|
+
[data-pf-image-input-initialized].empty & {
|
|
43
|
+
@slot;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@custom-variant image-input-changed {
|
|
48
|
+
[data-pf-image-input-initialized].changed & {
|
|
49
|
+
@slot;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
/* Base Leaflet container styles */
|
|
3
|
+
.leaflet-container {
|
|
4
|
+
/* Leaflet pane and control styles */
|
|
5
|
+
& .leaflet-pane,
|
|
6
|
+
& .leaflet-top,
|
|
7
|
+
& .leaflet-bottom,
|
|
8
|
+
& .leaflet-control {
|
|
9
|
+
z-index: 1 !important;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Leaflet popup content wrapper styles */
|
|
13
|
+
& .leaflet-popup-content-wrapper {
|
|
14
|
+
border-radius: var(--radius-md);
|
|
15
|
+
text-align: center;
|
|
16
|
+
background-color: var(--color-popover);
|
|
17
|
+
|
|
18
|
+
/* Leaflet popup content styles */
|
|
19
|
+
& .leaflet-popup-content {
|
|
20
|
+
font-family: inherit;
|
|
21
|
+
@apply text-xs;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@layer utilities {
|
|
2
|
+
.bg-dashed {
|
|
3
|
+
background-image: linear-gradient(
|
|
4
|
+
45deg,
|
|
5
|
+
var(--color-border) 12.5%,
|
|
6
|
+
transparent 12.5%,
|
|
7
|
+
transparent 50%,
|
|
8
|
+
var(--color-border) 50%,
|
|
9
|
+
var(--color-border) 62.5%,
|
|
10
|
+
transparent 62.5%,
|
|
11
|
+
transparent 100%
|
|
12
|
+
);
|
|
13
|
+
background-size: 0.25rem 0.25rem;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.grid-magicpattern {
|
|
17
|
+
width: 100%;
|
|
18
|
+
height: 100%;
|
|
19
|
+
background-size: cover;
|
|
20
|
+
background-position: center center;
|
|
21
|
+
background-repeat: repeat;
|
|
22
|
+
background-image: url("data:image/svg+xml;utf8,%3Csvg viewBox=%220 0 2000 1400%22 xmlns=%22http:%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cmask id=%22b%22 x=%220%22 y=%220%22 width=%222000%22 height=%221400%22%3E%3Cpath fill=%22url(%23a)%22 d=%22M0 0h2000v1400H0z%22%2F%3E%3C%2Fmask%3E%3Cpath fill=%22%23fff%22 d=%22M0 0h2000v1400H0z%22%2F%3E%3Cg style=%22transform-origin:center center%22 stroke=%22%23d8d8d88f%22 stroke-width=%222%22 mask=%22url(%23b)%22%3E%3Cpath fill=%22none%22 d=%22M0 0h100v100H0zM100 0h100v100H100zM200 0h100v100H200zM300 0h100v100H300z%22%2F%3E%3Cpath fill=%22%23d8d8d878%22 d=%22M400 0h100v100H400z%22%2F%3E%3Cpath fill=%22%23d8d8d808%22 d=%22M500 0h100v100H500z%22%2F%3E%3Cpath fill=%22none%22 d=%22M600 0h100v100H600zM700 0h100v100H700zM800 0h100v100H800zM900 0h100v100H900z%22%2F%3E%3Cpath fill=%22%23d8d8d826%22 d=%22M1000 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d852%22 d=%22M1100 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d805%22 d=%22M1200 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d888%22 d=%22M1300 0h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 0h100v100h-100zM1500 0h100v100h-100zM1600 0h100v100h-100zM1700 0h100v100h-100zM1800 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d816%22 d=%22M1900 0h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 100h100v100H0zM100 100h100v100H100z%22%2F%3E%3Cpath fill=%22%23d8d8d842%22 d=%22M200 100h100v100H200z%22%2F%3E%3Cpath fill=%22%23d8d8d87d%22 d=%22M300 100h100v100H300z%22%2F%3E%3Cpath fill=%22%23d8d8d836%22 d=%22M400 100h100v100H400z%22%2F%3E%3Cpath fill=%22%23d8d8d82e%22 d=%22M500 100h100v100H500z%22%2F%3E%3Cpath fill=%22%23d8d8d85b%22 d=%22M600 100h100v100H600z%22%2F%3E%3Cpath fill=%22%23d8d8d888%22 d=%22M700 100h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 100h100v100H800zM900 100h100v100H900z%22%2F%3E%3Cpath fill=%22%23d8d8d83a%22 d=%22M1000 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1100 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d88e%22 d=%22M1200 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d80c%22 d=%22M1400 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1500 100h100v100h-100zM1600 100h100v100h-100zM1700 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d827%22 d=%22M1800 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 100h100v100h-100zM0 200h100v100H0zM100 200h100v100H100zM200 200h100v100H200zM300 200h100v100H300zM400 200h100v100H400zM500 200h100v100H500zM600 200h100v100H600zM700 200h100v100H700zM800 200h100v100H800zM900 200h100v100H900zM1000 200h100v100h-100zM1100 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d838%22 d=%22M1200 200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 200h100v100h-100zM1400 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d818%22 d=%22M1500 200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d865%22 d=%22M1700 200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1800 200h100v100h-100zM1900 200h100v100h-100zM0 300h100v100H0zM100 300h100v100H100zM200 300h100v100H200zM300 300h100v100H300zM400 300h100v100H400z%22%2F%3E%3Cpath fill=%22%23d8d8d85a%22 d=%22M500 300h100v100H500z%22%2F%3E%3Cpath fill=%22none%22 d=%22M600 300h100v100H600zM700 300h100v100H700z%22%2F%3E%3Cpath fill=%22%23d8d8d866%22 d=%22M800 300h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 300h100v100H900zM1000 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d871%22 d=%22M1100 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d872%22 d=%22M1300 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 300h100v100h-100zM1500 300h100v100h-100zM1600 300h100v100h-100zM1700 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d80d%22 d=%22M1800 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 300h100v100h-100zM0 400h100v100H0zM100 400h100v100H100z%22%2F%3E%3Cpath fill=%22%23d8d8d838%22 d=%22M200 400h100v100H200z%22%2F%3E%3Cpath fill=%22none%22 d=%22M300 400h100v100H300z%22%2F%3E%3Cpath fill=%22%23d8d8d86f%22 d=%22M400 400h100v100H400z%22%2F%3E%3Cpath fill=%22%23d8d8d855%22 d=%22M500 400h100v100H500z%22%2F%3E%3Cpath fill=%22none%22 d=%22M600 400h100v100H600zM700 400h100v100H700zM800 400h100v100H800zM900 400h100v100H900zM1000 400h100v100h-100zM1100 400h100v100h-100zM1200 400h100v100h-100zM1300 400h100v100h-100zM1400 400h100v100h-100zM1500 400h100v100h-100zM1600 400h100v100h-100zM1700 400h100v100h-100zM1800 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d826%22 d=%22M1900 400h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 500h100v100H0z%22%2F%3E%3Cpath fill=%22%23d8d8d849%22 d=%22M100 500h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 500h100v100H200zM300 500h100v100H300z%22%2F%3E%3Cpath fill=%22%23d8d8d838%22 d=%22M400 500h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 500h100v100H500zM600 500h100v100H600zM700 500h100v100H700z%22%2F%3E%3Cpath fill=%22%23d8d8d811%22 d=%22M800 500h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 500h100v100H900z%22%2F%3E%3Cpath fill=%22%23d8d8d82d%22 d=%22M1000 500h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1100 500h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d80b%22 d=%22M1200 500h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 500h100v100h-100zM1400 500h100v100h-100zM1500 500h100v100h-100zM1600 500h100v100h-100zM1700 500h100v100h-100zM1800 500h100v100h-100zM1900 500h100v100h-100zM0 600h100v100H0z%22%2F%3E%3Cpath fill=%22%23d8d8d85f%22 d=%22M100 600h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 600h100v100H200zM300 600h100v100H300zM400 600h100v100H400zM500 600h100v100H500zM600 600h100v100H600zM700 600h100v100H700zM800 600h100v100H800z%22%2F%3E%3Cpath fill=%22%23d8d8d854%22 d=%22M900 600h100v100H900z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1000 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d833%22 d=%22M1100 600h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 600h100v100h-100zM1300 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d838%22 d=%22M1400 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d84e%22 d=%22M1500 600h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 600h100v100h-100zM1700 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d801%22 d=%22M1800 600h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 600h100v100h-100zM0 700h100v100H0zM100 700h100v100H100zM200 700h100v100H200z%22%2F%3E%3Cpath fill=%22%23d8d8d821%22 d=%22M300 700h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 700h100v100H400zM500 700h100v100H500zM600 700h100v100H600zM700 700h100v100H700z%22%2F%3E%3Cpath fill=%22%23d8d8d826%22 d=%22M800 700h100v100H800z%22%2F%3E%3Cpath fill=%22%23d8d8d86d%22 d=%22M900 700h100v100H900z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1000 700h100v100h-100zM1100 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d876%22 d=%22M1200 700h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 700h100v100h-100zM1400 700h100v100h-100zM1500 700h100v100h-100zM1600 700h100v100h-100zM1700 700h100v100h-100zM1800 700h100v100h-100zM1900 700h100v100h-100zM0 800h100v100H0zM100 800h100v100H100zM200 800h100v100H200z%22%2F%3E%3Cpath fill=%22%23d8d8d859%22 d=%22M300 800h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 800h100v100H400z%22%2F%3E%3Cpath fill=%22%23d8d8d889%22 d=%22M500 800h100v100H500z%22%2F%3E%3Cpath fill=%22%23d8d8d858%22 d=%22M600 800h100v100H600z%22%2F%3E%3Cpath fill=%22none%22 d=%22M700 800h100v100H700zM800 800h100v100H800zM900 800h100v100H900zM1000 800h100v100h-100zM1100 800h100v100h-100zM1200 800h100v100h-100zM1300 800h100v100h-100zM1400 800h100v100h-100zM1500 800h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d831%22 d=%22M1600 800h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 800h100v100h-100zM1800 800h100v100h-100zM1900 800h100v100h-100zM0 900h100v100H0z%22%2F%3E%3Cpath fill=%22%23d8d8d816%22 d=%22M100 900h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 900h100v100H200zM300 900h100v100H300zM400 900h100v100H400zM500 900h100v100H500z%22%2F%3E%3Cpath fill=%22%23d8d8d869%22 d=%22M600 900h100v100H600z%22%2F%3E%3Cpath fill=%22%23d8d8d809%22 d=%22M700 900h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 900h100v100H800zM900 900h100v100H900zM1000 900h100v100h-100zM1100 900h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d820%22 d=%22M1200 900h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 900h100v100h-100zM1400 900h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d82c%22 d=%22M1500 900h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 900h100v100h-100zM1700 900h100v100h-100zM1800 900h100v100h-100zM1900 900h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d82f%22 d=%22M0 1000h100v100H0z%22%2F%3E%3Cpath fill=%22%23d8d8d881%22 d=%22M100 1000h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 1000h100v100H200z%22%2F%3E%3Cpath fill=%22%23d8d8d85c%22 d=%22M300 1000h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 1000h100v100H400zM500 1000h100v100H500zM600 1000h100v100H600zM700 1000h100v100H700zM800 1000h100v100H800zM900 1000h100v100H900zM1000 1000h100v100h-100zM1100 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d85c%22 d=%22M1200 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d832%22 d=%22M1300 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 1000h100v100h-100zM1500 1000h100v100h-100zM1600 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d81d%22 d=%22M1700 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1800 1000h100v100h-100zM1900 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d853%22 d=%22M0 1100h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 1100h100v100H100z%22%2F%3E%3Cpath fill=%22%23d8d8d849%22 d=%22M200 1100h100v100H200z%22%2F%3E%3Cpath fill=%22none%22 d=%22M300 1100h100v100H300zM400 1100h100v100H400zM500 1100h100v100H500zM600 1100h100v100H600z%22%2F%3E%3Cpath fill=%22%23d8d8d81d%22 d=%22M700 1100h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 1100h100v100H800zM900 1100h100v100H900zM1000 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d863%22 d=%22M1100 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d83f%22 d=%22M1200 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 1100h100v100h-100zM1400 1100h100v100h-100zM1500 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d824%22 d=%22M1600 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 1100h100v100h-100zM1800 1100h100v100h-100zM1900 1100h100v100h-100zM0 1200h100v100H0z%22%2F%3E%3Cpath fill=%22%23d8d8d850%22 d=%22M100 1200h100v100H100z%22%2F%3E%3Cpath fill=%22%23d8d8d87f%22 d=%22M200 1200h100v100H200z%22%2F%3E%3Cpath fill=%22none%22 d=%22M300 1200h100v100H300zM400 1200h100v100H400zM500 1200h100v100H500zM600 1200h100v100H600zM700 1200h100v100H700zM800 1200h100v100H800zM900 1200h100v100H900zM1000 1200h100v100h-100zM1100 1200h100v100h-100zM1200 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d838%22 d=%22M1300 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d888%22 d=%22M1400 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1500 1200h100v100h-100zM1600 1200h100v100h-100zM1700 1200h100v100h-100zM1800 1200h100v100h-100zM1900 1200h100v100h-100zM0 1300h100v100H0zM100 1300h100v100H100zM200 1300h100v100H200zM300 1300h100v100H300z%22%2F%3E%3Cpath fill=%22%23d8d8d838%22 d=%22M400 1300h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 1300h100v100H500zM600 1300h100v100H600zM700 1300h100v100H700zM800 1300h100v100H800z%22%2F%3E%3Cpath fill=%22%23d8d8d841%22 d=%22M900 1300h100v100H900z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1000 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d862%22 d=%22M1100 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d842%22 d=%22M1300 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d854%22 d=%22M1400 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1500 1300h100v100h-100zM1600 1300h100v100h-100zM1700 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23d8d8d840%22 d=%22M1800 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 1300h100v100h-100z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CradialGradient id=%22a%22%3E%3Cstop offset=%220%22 stop-color=%22%23fff%22 stop-opacity=%22.838%22%2F%3E%3Cstop offset=%2286.5%25%22 stop-color=%22%23fff%22 stop-opacity=%220%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E");
|
|
23
|
+
}
|
|
24
|
+
.dark {
|
|
25
|
+
.grid-magicpattern {
|
|
26
|
+
width: 100%;
|
|
27
|
+
height: 100%;
|
|
28
|
+
background-size: cover;
|
|
29
|
+
background-position: center center;
|
|
30
|
+
background-repeat: repeat;
|
|
31
|
+
background-image: url("data:image/svg+xml;utf8,%3Csvg viewBox=%220 0 2000 1400%22 xmlns=%22http:%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cmask id=%22b%22 x=%220%22 y=%220%22 width=%222000%22 height=%221400%22%3E%3Cpath fill=%22url(%23a)%22 d=%22M0 0h2000v1400H0z%22%2F%3E%3C%2Fmask%3E%3Cpath d=%22M0 0h2000v1400H0z%22%2F%3E%3Cg style=%22transform-origin:center center%22 stroke=%22%236565658f%22 stroke-width=%222%22 mask=%22url(%23b)%22%3E%3Cpath fill=%22none%22 d=%22M0 0h100v100H0zM100 0h100v100H100zM200 0h100v100H200z%22%2F%3E%3Cpath fill=%22%2365656582%22 d=%22M300 0h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 0h100v100H400zM500 0h100v100H500zM600 0h100v100H600zM700 0h100v100H700zM800 0h100v100H800zM900 0h100v100H900z%22%2F%3E%3Cpath fill=%22%2365656534%22 d=%22M1000 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656539%22 d=%22M1100 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656580%22 d=%22M1200 0h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 0h100v100h-100zM1400 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656567%22 d=%22M1500 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656574%22 d=%22M1600 0h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656584%22 d=%22M1800 0h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565657b%22 d=%22M0 100h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 100h100v100H100zM200 100h100v100H200zM300 100h100v100H300z%22%2F%3E%3Cpath fill=%22%2365656555%22 d=%22M400 100h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 100h100v100H500zM600 100h100v100H600zM700 100h100v100H700z%22%2F%3E%3Cpath fill=%22%2365656504%22 d=%22M800 100h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 100h100v100H900zM1000 100h100v100h-100zM1100 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656515%22 d=%22M1200 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565653f%22 d=%22M1300 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 100h100v100h-100zM1500 100h100v100h-100zM1600 100h100v100h-100zM1700 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656531%22 d=%22M1800 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565657f%22 d=%22M1900 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 200h100v100H0zM100 200h100v100H100z%22%2F%3E%3Cpath fill=%22%2365656550%22 d=%22M200 200h100v100H200z%22%2F%3E%3Cpath fill=%22none%22 d=%22M300 200h100v100H300z%22%2F%3E%3Cpath fill=%22%236565654a%22 d=%22M400 200h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 200h100v100H500zM600 200h100v100H600zM700 200h100v100H700zM800 200h100v100H800zM900 200h100v100H900z%22%2F%3E%3Cpath fill=%22%2365656563%22 d=%22M1000 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656540%22 d=%22M1100 200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 200h100v100h-100zM1300 200h100v100h-100zM1400 200h100v100h-100zM1500 200h100v100h-100zM1600 200h100v100h-100zM1700 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656563%22 d=%22M1800 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565657e%22 d=%22M1900 200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 300h100v100H0zM100 300h100v100H100zM200 300h100v100H200z%22%2F%3E%3Cpath fill=%22%2365656510%22 d=%22M300 300h100v100H300z%22%2F%3E%3Cpath fill=%22%2365656514%22 d=%22M400 300h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 300h100v100H500zM600 300h100v100H600z%22%2F%3E%3Cpath fill=%22%236565656a%22 d=%22M700 300h100v100H700z%22%2F%3E%3Cpath fill=%22%236565651e%22 d=%22M800 300h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 300h100v100H900zM1000 300h100v100h-100zM1100 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565653d%22 d=%22M1200 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656572%22 d=%22M1300 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 300h100v100h-100zM1500 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656584%22 d=%22M1600 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 300h100v100h-100zM1800 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656562%22 d=%22M1900 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565650b%22 d=%22M0 400h100v100H0z%22%2F%3E%3Cpath fill=%22%236565652e%22 d=%22M100 400h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 400h100v100H200zM300 400h100v100H300zM400 400h100v100H400z%22%2F%3E%3Cpath fill=%22%236565655a%22 d=%22M500 400h100v100H500z%22%2F%3E%3Cpath fill=%22none%22 d=%22M600 400h100v100H600z%22%2F%3E%3Cpath fill=%22%2365656541%22 d=%22M700 400h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 400h100v100H800zM900 400h100v100H900zM1000 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656557%22 d=%22M1100 400h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565651a%22 d=%22M1300 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656503%22 d=%22M1400 400h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1500 400h100v100h-100zM1600 400h100v100h-100zM1700 400h100v100h-100zM1800 400h100v100h-100zM1900 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565654b%22 d=%22M0 500h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 500h100v100H100zM200 500h100v100H200zM300 500h100v100H300zM400 500h100v100H400zM500 500h100v100H500zM600 500h100v100H600z%22%2F%3E%3Cpath fill=%22%236565656a%22 d=%22M700 500h100v100H700z%22%2F%3E%3Cpath fill=%22%2365656559%22 d=%22M800 500h100v100H800z%22%2F%3E%3Cpath fill=%22%2365656507%22 d=%22M900 500h100v100H900z%22%2F%3E%3Cpath fill=%22%2365656505%22 d=%22M1000 500h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1100 500h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656586%22 d=%22M1200 500h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656577%22 d=%22M1300 500h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 500h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656532%22 d=%22M1500 500h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 500h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656571%22 d=%22M1700 500h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656526%22 d=%22M1800 500h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 500h100v100h-100zM0 600h100v100H0zM100 600h100v100H100z%22%2F%3E%3Cpath fill=%22%2365656587%22 d=%22M200 600h100v100H200z%22%2F%3E%3Cpath fill=%22none%22 d=%22M300 600h100v100H300z%22%2F%3E%3Cpath fill=%22%2365656574%22 d=%22M400 600h100v100H400z%22%2F%3E%3Cpath fill=%22%2365656543%22 d=%22M500 600h100v100H500z%22%2F%3E%3Cpath fill=%22%2365656528%22 d=%22M600 600h100v100H600z%22%2F%3E%3Cpath fill=%22none%22 d=%22M700 600h100v100H700zM800 600h100v100H800zM900 600h100v100H900zM1000 600h100v100h-100zM1100 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656502%22 d=%22M1200 600h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 600h100v100h-100zM1400 600h100v100h-100zM1500 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565656c%22 d=%22M1600 600h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 600h100v100h-100zM1800 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565653d%22 d=%22M1900 600h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 700h100v100H0zM100 700h100v100H100z%22%2F%3E%3Cpath fill=%22%236565655b%22 d=%22M200 700h100v100H200z%22%2F%3E%3Cpath fill=%22none%22 d=%22M300 700h100v100H300z%22%2F%3E%3Cpath fill=%22%2365656551%22 d=%22M400 700h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 700h100v100H500zM600 700h100v100H600zM700 700h100v100H700z%22%2F%3E%3Cpath fill=%22%2365656539%22 d=%22M800 700h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 700h100v100H900zM1000 700h100v100h-100zM1100 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656543%22 d=%22M1200 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656555%22 d=%22M1300 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656541%22 d=%22M1400 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656509%22 d=%22M1500 700h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656554%22 d=%22M1700 700h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1800 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656565%22 d=%22M1900 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565654d%22 d=%22M0 800h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 800h100v100H100zM200 800h100v100H200zM300 800h100v100H300zM400 800h100v100H400zM500 800h100v100H500zM600 800h100v100H600zM700 800h100v100H700z%22%2F%3E%3Cpath fill=%22%2365656570%22 d=%22M800 800h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 800h100v100H900zM1000 800h100v100h-100zM1100 800h100v100h-100zM1200 800h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656555%22 d=%22M1300 800h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 800h100v100h-100zM1500 800h100v100h-100zM1600 800h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565654b%22 d=%22M1700 800h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1800 800h100v100h-100zM1900 800h100v100h-100zM0 900h100v100H0zM100 900h100v100H100zM200 900h100v100H200zM300 900h100v100H300zM400 900h100v100H400zM500 900h100v100H500zM600 900h100v100H600zM700 900h100v100H700zM800 900h100v100H800z%22%2F%3E%3Cpath fill=%22%236565656e%22 d=%22M900 900h100v100H900z%22%2F%3E%3Cpath fill=%22%2365656577%22 d=%22M1000 900h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1100 900h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565651c%22 d=%22M1200 900h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 900h100v100h-100zM1400 900h100v100h-100zM1500 900h100v100h-100zM1600 900h100v100h-100zM1700 900h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656516%22 d=%22M1800 900h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 900h100v100h-100zM0 1000h100v100H0z%22%2F%3E%3Cpath fill=%22%2365656576%22 d=%22M100 1000h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 1000h100v100H200zM300 1000h100v100H300zM400 1000h100v100H400zM500 1000h100v100H500z%22%2F%3E%3Cpath fill=%22%2365656555%22 d=%22M600 1000h100v100H600z%22%2F%3E%3Cpath fill=%22none%22 d=%22M700 1000h100v100H700zM800 1000h100v100H800z%22%2F%3E%3Cpath fill=%22%236565658c%22 d=%22M900 1000h100v100H900z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1000 1000h100v100h-100zM1100 1000h100v100h-100zM1200 1000h100v100h-100zM1300 1000h100v100h-100zM1400 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656549%22 d=%22M1500 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 1000h100v100h-100zM1700 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656553%22 d=%22M1800 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656516%22 d=%22M1900 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 1100h100v100H0zM100 1100h100v100H100zM200 1100h100v100H200z%22%2F%3E%3Cpath fill=%22%236565657b%22 d=%22M300 1100h100v100H300z%22%2F%3E%3Cpath fill=%22%2365656556%22 d=%22M400 1100h100v100H400z%22%2F%3E%3Cpath fill=%22%2365656569%22 d=%22M500 1100h100v100H500z%22%2F%3E%3Cpath fill=%22%236565654a%22 d=%22M600 1100h100v100H600z%22%2F%3E%3Cpath fill=%22none%22 d=%22M700 1100h100v100H700z%22%2F%3E%3Cpath fill=%22%2365656503%22 d=%22M800 1100h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 1100h100v100H900zM1000 1100h100v100h-100zM1100 1100h100v100h-100zM1200 1100h100v100h-100zM1300 1100h100v100h-100zM1400 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656518%22 d=%22M1500 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 1100h100v100h-100zM1700 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656564%22 d=%22M1800 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 1100h100v100h-100zM0 1200h100v100H0zM100 1200h100v100H100zM200 1200h100v100H200zM300 1200h100v100H300zM400 1200h100v100H400zM500 1200h100v100H500z%22%2F%3E%3Cpath fill=%22%236565650a%22 d=%22M600 1200h100v100H600z%22%2F%3E%3Cpath fill=%22%2365656565%22 d=%22M700 1200h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 1200h100v100H800zM900 1200h100v100H900zM1000 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656544%22 d=%22M1100 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 1200h100v100h-100zM1300 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656568%22 d=%22M1400 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1500 1200h100v100h-100zM1600 1200h100v100h-100zM1700 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656563%22 d=%22M1800 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656565%22 d=%22M0 1300h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 1300h100v100H100zM200 1300h100v100H200zM300 1300h100v100H300zM400 1300h100v100H400z%22%2F%3E%3Cpath fill=%22%2365656545%22 d=%22M500 1300h100v100H500z%22%2F%3E%3Cpath fill=%22%2365656549%22 d=%22M600 1300h100v100H600z%22%2F%3E%3Cpath fill=%22%236565651d%22 d=%22M700 1300h100v100H700z%22%2F%3E%3Cpath fill=%22%2365656585%22 d=%22M800 1300h100v100H800z%22%2F%3E%3Cpath fill=%22%2365656580%22 d=%22M900 1300h100v100H900z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1000 1300h100v100h-100zM1100 1300h100v100h-100zM1200 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22%236565652c%22 d=%22M1300 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 1300h100v100h-100zM1500 1300h100v100h-100zM1600 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22%2365656540%22 d=%22M1700 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1800 1300h100v100h-100zM1900 1300h100v100h-100z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CradialGradient id=%22a%22%3E%3Cstop offset=%220%22 stop-color=%22%23fff%22 stop-opacity=%22.838%22%2F%3E%3Cstop offset=%2286.5%25%22 stop-color=%22%23fff%22 stop-opacity=%220%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
/* Base pf-rating styles */
|
|
3
|
+
.pf-rating {
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
align-items: stretch;
|
|
6
|
+
|
|
7
|
+
& input {
|
|
8
|
+
appearance: none;
|
|
9
|
+
position: absolute;
|
|
10
|
+
inset-inline-start: 9999px;
|
|
11
|
+
|
|
12
|
+
&[disabled] {
|
|
13
|
+
display: none;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* pf-rating on state */
|
|
19
|
+
.pf-rating-on {
|
|
20
|
+
@apply text-yellow-400;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* pf-rating off state */
|
|
24
|
+
.pf-rating-off {
|
|
25
|
+
@apply text-muted-foreground;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* pf-rating label base styles */
|
|
29
|
+
.pf-rating-label {
|
|
30
|
+
display: inline-flex !important;
|
|
31
|
+
align-items: center;
|
|
32
|
+
|
|
33
|
+
& .pf-rating-on {
|
|
34
|
+
display: none !important;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
& .pf-rating-off {
|
|
38
|
+
display: inline-flex !important;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Hover and checked states for pf-rating label */
|
|
43
|
+
.pf-rating:hover label.pf-rating-label,
|
|
44
|
+
label.pf-rating-label,
|
|
45
|
+
label.pf-rating-label.checked,
|
|
46
|
+
div.pf-rating-label.checked {
|
|
47
|
+
& .pf-rating-on {
|
|
48
|
+
display: inline-flex !important;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
& .pf-rating-off {
|
|
52
|
+
display: none !important;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Sibling hover and checked states */
|
|
57
|
+
label.pf-rating-label:hover ~ label.pf-rating-label,
|
|
58
|
+
.pf-rating-input:checked ~ .pf-rating-label {
|
|
59
|
+
& .pf-rating-on {
|
|
60
|
+
display: none !important;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
& .pf-rating-off {
|
|
64
|
+
display: inline-flex !important;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Indeterminate pf-rating label state */
|
|
69
|
+
.pf-rating-label.indeterminate {
|
|
70
|
+
position: relative;
|
|
71
|
+
|
|
72
|
+
& .pf-rating-on {
|
|
73
|
+
display: inline-flex !important;
|
|
74
|
+
position: absolute;
|
|
75
|
+
z-index: 1;
|
|
76
|
+
overflow: hidden;
|
|
77
|
+
inset-inline-start: 0;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
& .pf-rating-off {
|
|
81
|
+
display: inline-flex !important;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Cursor for label */
|
|
86
|
+
label.pf-rating-label {
|
|
87
|
+
cursor: pointer;
|
|
88
|
+
}
|
|
89
|
+
}
|