modular-ui-kit-vue 1.0.4 → 1.0.6

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 CHANGED
@@ -1,32 +1,21 @@
1
1
  # modular-ui-kit-vue
2
2
 
3
- ![NPM Version](https://img.shields.io/npm/v/modular-ui-kit-vue?color=42b883)
4
- ![NPM Downloads](https://img.shields.io/npm/dm/modular-ui-kit-vue?color=35495e)
3
+ [![NPM Version](https://img.shields.io/npm/v/modular-ui-kit-vue?color=42b883)](https://www.npmjs.com/package/modular-ui-kit-vue)
4
+ [![NPM Downloads](https://img.shields.io/npm/dm/modular-ui-kit-vue?color=35495e)](https://www.npmjs.com/package/modular-ui-kit-vue)
5
5
  [![GitHub Clones](https://img.shields.io/badge/dynamic/json?color=success&label=Clone&query=count&url=https://gist.githubusercontent.com/eugenia-vitinschii/2e6247835bbf3928be881ca260cad051/raw/clone.json&logo=github)](https://github.com/MShawon/github-clone-count-badge)
6
6
 
7
7
  `modular-ui-kit-vue` is a lightweight library of independent frontend components designed for rapid development and clean code. No heavy backend logic: just pure, flexible, and responsive UI elements ready to be dropped into any web application.
8
8
 
9
- ### Install
10
-
11
- ```sh
12
- npm install modular-ui-kit-vue
13
- ```
14
-
15
- ```sh
16
- yarn add modular-ui-kit-vue
17
- ```
18
-
19
- ```sh
20
- pnpm add modular-ui-kit-vue
21
- ```
9
+ [Demo Project (main branch)](https://github.com/eugenia-vitinschii/modular-ui-kit-vue/tree/main) •
10
+ [Wiki & Documentation](https://github.com/eugenia-vitinschii/modular-ui-kit-vue/wiki)
22
11
 
23
12
  ### Quick start
24
13
 
25
14
  ```vue
26
15
  <template>
27
- <base-text as="h1" :type="'heading'" :variant="'primary'">My component</base-text>
28
- <base-text as="h1" :type="'subheading'" :variant="'warning'">My component</base-text>
29
- <base-text as="h1" :variant="'muted'">My component</base-text>
16
+ <base-text as="h1" :type="'heading'" :variant="'primary'">Modular UI Kit</base-text>
17
+ <base-text as="h2" :type="'subheading'" :variant="'warning'">Craft flexible & lightweight Vue 3 interface<base-text>
18
+ <base-text :variant="'muted'">Explore reusable components, custom design tokens, and flexible typography out of the box.</base-text>
30
19
  </template>
31
20
  <script setup lang="ts">
32
21
  import { BaseText } from 'modular-ui-kit-vue'
@@ -34,13 +23,158 @@ import 'modular-ui-kit-vue/dist/modular-ui-kit-vue.css'
34
23
  </script>
35
24
  ```
36
25
 
37
- ### Accessibility (a11y)
26
+ ### Available Components
38
27
 
39
- All components are built with basic accessibility in mind:
28
+ Buttons
40
29
 
41
- - Native keyboard navigation support (Focus states, `Enter` / `Space` key handlers).
42
- - Proper ARIA attributes (`aria-expanded`, `aria-hidden`) out of the box.
43
- - High-contrast focus rings for better visibility.
30
+ - BaseButton: Standard action button
31
+ - BaseIconButton: svg action button
32
+
33
+ Form Elements
34
+
35
+ - BaseCheckbox: Checkbox input component
36
+ - BaseInput: Standard text input field
37
+ - BaseRadio: Radio button option
38
+ - BaseSelect: Dropdown select menu
39
+ - BaseTextarea : Multi-line text input field
40
+
41
+ Feedback & States
42
+
43
+ - BaseToast / BaseToastContainer: Toast notification components
44
+ - useToast: Composition API helper for managing toasts
45
+ - BaseSkeleton: Skeleton loader for async data
46
+ - EmptyState: Placeholder display for empty data views
47
+
48
+ - ErrorState: Placeholder display for error screens
49
+
50
+ Navigation
51
+
52
+ - BaseBreadcrumbs: Breadcrumb navigation path
53
+ - BasePagination: Page navigation control
54
+
55
+ Overlays
56
+
57
+ - BaseModal: Modal dialog window with color variants
58
+
59
+ Typography
60
+
61
+ - BaseText: Standardized typography component
62
+
63
+ ### Design Tokens
64
+
65
+ modular-ui-kit-vue is built using native CSS variables. You can easily override default colors, typography, borders, and spacing to match your brand design.
66
+
67
+ open or create app.sass, copy and use:
68
+
69
+ ```
70
+ /* DESIGN TOKENS (CSS Variables for Customization) */
71
+ :root
72
+ /* === Colors: Text === */
73
+ --ui-text: #eceef2
74
+ --ui-text-muted: #8a93a6
75
+
76
+ /* === Colors: Backgrounds === */
77
+ --ui-bg: #0b0d11
78
+ --ui-bg-soft: #12151c
79
+ --ui-bg-card: #171b24
80
+ --ui-bg-code: #1e2330
81
+
82
+ /* === Colors: Accents & Statuses === */
83
+ --ui-primary: #6366f1
84
+ --ui-primary-hover: #4f46e5
85
+ --ui-danger: #ff4a6b
86
+ --ui-success: #10b981
87
+ --ui-warning: #f59e0b
88
+
89
+ /* === Typography === */
90
+ --ui-font-heading: 26px
91
+ --ui-font-subheading: 19px
92
+ --ui-font-body: 16px
93
+
94
+ --ui-font-heading-md: 24px
95
+ --ui-font-subheading-md: 18px
96
+ --ui-font-body-md: 15px
97
+
98
+ --ui-font-heading-sm: 20px
99
+ --ui-font-subheading-sm: 16px
100
+ --ui-font-body-sm: 14px
101
+
102
+ /* === Borders === */
103
+ --ui-border-color: rgba(236, 238, 242, 0.08)
104
+ --ui-border-width: 1px
105
+ --ui-border-style: solid
106
+ --ui-border-radius: 0px
107
+
108
+ /* === Space Tokens: Elements (inputs, buttons, icons) === */
109
+ --ui-space-content-sm: 6px
110
+ --ui-space-content-md: 10px
111
+ --ui-space-content-lg: 14px
112
+
113
+ /* === Space Tokens: Containers (forms, cards, sections) === */
114
+ --ui-space-container-sm: 16px
115
+ --ui-space-container-md: 24px
116
+ --ui-space-container-lg: 32px
117
+
118
+ /* === Design Utilities === */
119
+ --ui-transition: all 0.3s ease-out
120
+ --ui-opacity: 0.4
121
+
122
+ /* SASS VARIABLES ALIASES */
123
+
124
+ /* === Colors === */
125
+ $text: var(--ui-text)
126
+ $text-muted: var(--ui-text-muted)
127
+
128
+ $bg: var(--ui-bg)
129
+ $bg-soft: var(--ui-bg-soft)
130
+ $bg-card: var(--ui-bg-card)
131
+ $bg-code: var(--ui-bg-code)
132
+
133
+ $primary: var(--ui-primary)
134
+ $primary-hover: var(--ui-primary-hover)
135
+ $danger: var(--ui-danger)
136
+ $success: var(--ui-success)
137
+ $warning: var(--ui-warning)
138
+
139
+ /* === Typography === */
140
+ $heading: var(--ui-font-heading)
141
+ $subheading: var(--ui-font-subheading)
142
+ $body-text: var(--ui-font-body)
143
+
144
+ $heading-md: var(--ui-font-heading-md)
145
+ $subheading-md: var(--ui-font-subheading-md)
146
+ $body-text-md: var(--ui-font-body-md)
147
+
148
+ $heading-sm: var(--ui-font-heading-sm)
149
+ $subheading-sm: var(--ui-font-subheading-sm)
150
+ $body-text-sm: var(--ui-font-body-sm)
151
+
152
+ /* === Borders === */
153
+ $border-color: var(--ui-border-color)
154
+ $border-width: var(--ui-border-width)
155
+ $border-style: var(--ui-border-style)
156
+ $border-radius: var(--ui-border-radius)
157
+
158
+ /* === Space Tokens === */
159
+ $space-content-sm: var(--ui-space-content-sm)
160
+ $space-content-md: var(--ui-space-content-md)
161
+ $space-content-lg: var(--ui-space-content-lg)
162
+
163
+ $space-container-sm: var(--ui-space-container-sm)
164
+ $space-container-md: var(--ui-space-container-md)
165
+ $space-container-lg: var(--ui-space-container-lg)
166
+
167
+ /* === Design === */
168
+ $transition: var(--ui-transition)
169
+ $opacity: var(--ui-opacity)
170
+ ```
171
+
172
+ import styles inside main.ts
173
+
174
+ ```
175
+ import 'modular-ui-kit-vue/dist/modular-ui-kit-vue.css'
176
+ import '@/assets/sass/app.sass'
177
+ ```
44
178
 
45
179
  ### Documentation
46
180
 
@@ -73,7 +207,8 @@ export type UIButtonType = "button" | "submit" | "reset"
73
207
  - loading?: boolean
74
208
  - disabled?: boolean
75
209
 
76
- - ## Deafult params
210
+ Deafult params
211
+
77
212
  - variant: "primary",
78
213
  - type: "button",
79
214
  - size: "lg",
@@ -86,3 +221,37 @@ Usage
86
221
  <base-button :variant="'secondary'" @click="handleRegister">register</base-button>
87
222
  <base-button :type="'submit'" :loading="auth.isLoading" :disabled="auth.isLoading">login</base-button>
88
223
  ```
224
+
225
+ ### Types
226
+
227
+ ```ts
228
+ /* UI VARIANTS */
229
+ export type UIVariant = 'primary' | 'danger' | 'warning' | 'success' | 'secondary'
230
+ export type UISize = 'sm' | 'md' | 'lg'
231
+
232
+ /* TEXT */
233
+ export type UITextType = 'heading' | 'subheading' | 'body-text'
234
+ export type UITextAlign = 'left' | 'center' | 'right'
235
+ export type UITextVariant = UIVariant | 'muted'
236
+
237
+ /* BUTTONS */
238
+ export type UIButtonVariant = UIVariant | 'ghost'
239
+ export type UIButtonType = 'button' | 'submit' | 'reset'
240
+
241
+ /* EMPTY STATE VARIANT */
242
+ export type UIEmptyStateVariant = 'secondary' | 'primary'
243
+
244
+ /* INPUT TYPE */
245
+ export type UIInputType = 'text' | 'email' | 'password' | 'search' | 'date' | 'tel' | 'number'
246
+
247
+ /* SKELTON TYPE */
248
+ export type UISkeletonType = 'text' | 'circle' | 'rect'
249
+ ```
250
+
251
+ ### Accessibility (a11y)
252
+
253
+ All components are built with basic accessibility in mind:
254
+
255
+ - Native keyboard navigation support (Focus states, `Enter` / `Space` key handlers).
256
+ - Proper ARIA attributes (`aria-expanded`, `aria-hidden`) out of the box.
257
+ - High-contrast focus rings for better visibility.
@@ -1,2 +1,2 @@
1
- @import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root,html{--ui-text:#eceef2;--ui-text-muted:#8a93a6;--ui-bg:#0b0d11;--ui-bg-soft:#12151c;--ui-bg-card:#171b24;--ui-bg-code:#1e2330;--ui-primary:#6366f1;--ui-primary-hover:#4f46e5;--ui-danger:#ff4a6b;--ui-success:#10b981;--ui-warning:#f59e0b;--ui-font-heading:26px;--ui-font-subheading:19px;--ui-font-body:16px;--ui-font-heading-md:24px;--ui-font-subheading-md:18px;--ui-font-body-md:15px;--ui-font-heading-sm:20px;--ui-font-subheading-sm:16px;--ui-font-body-sm:14px;--ui-border-color:#eceef214;--ui-border-width:1px;--ui-border-style:solid;--ui-border-radius:0px;--ui-space-content-sm:6px;--ui-space-content-md:10px;--ui-space-content-lg:14px;--ui-space-container-sm:16px;--ui-space-container-md:24px;--ui-space-container-lg:32px;--ui-transition:all .3s ease-out;--ui-opacity:.4}*,:before,:after{box-sizing:border-box}:focus,:active,a:focus,a:active{outline:none}nav,footer,aside{display:block}html,body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:#232222;height:100%;margin:0;padding:0;font-family:Inter,sans-serif;font-size:100%;line-height:1.5}input,textarea,button,select{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer;background:0 0;border:none}button::-moz-focus-inner{border:0;padding:0}a,a:visited{cursor:pointer;text-decoration:none}button,a:hover{text-decoration:none}h1,h2,h3,h4,h5,h6{font-weight:400}ul{padding-inline-start:0}ul li{margin:0;list-style:none}img{max-width:100%;display:block}.heading{font-size:26px;font-weight:600;line-height:34px}.subheading{font-size:19px;font-weight:500;line-height:28px}.body-text{font-size:16px;font-weight:400;line-height:24px}@media (width<=1024px){.heading{font-size:24px;line-height:30px}.subheading{font-size:18px;line-height:24px}.body-text{font-size:15px;line-height:22px}}@media (width<=767px){.heading{font-size:20px;line-height:26px}.subheading{font-size:16px;line-height:22px}.body-text{font-size:14px;line-height:20px}}a{text-underline-offset:4px;transition:all .3s ease-out;display:block}a:hover{opacity:.8}a:active{opacity:.6;filter:brightness(.9)}.shimmer{position:relative;overflow:hidden}.shimmer:before{content:"";background:linear-gradient(90deg,#0000 0%,#8a93a6 50%,#0000 100%);width:150px;height:100%;animation:2.6s infinite loading;position:absolute;top:0;left:-150px}@keyframes loading{0%{left:-150px}to{left:100%}}.fade-enter-active,.fade-leave-active{transition:opacity .25s}.fade-enter-from,.fade-leave-to{opacity:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{-webkit-user-select:none;user-select:none;white-space:nowrap;cursor:pointer;border:none;outline:none;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-weight:500;line-height:1.2;transition:all .3s ease-out;display:inline-flex}.btn--sm{--spinner-size:14px;height:38px;padding:3px 14px;font-size:14px}.btn--md{--spinner-size:18px;height:44px;padding:3px 16px;font-size:15px}.btn--lg{--spinner-size:22px;height:50px;padding:3px 18px;font-size:16px}.btn--primary{color:#eceef2;--spinner-color:#6366f1;background:#171b24;border:1px solid #6366f1;border-radius:10px}.btn--primary:hover:not(:disabled):not(.is-loading){background:#6366f1}.btn--primary:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--primary:disabled{cursor:not-allowed;opacity:.4;transform:none}.btn--primary.is-loading{cursor:wait}.btn--secondary{color:#eceef2;--spinner-color:#8a93a6;background:#171b24;border:1px solid #8a93a6;border-radius:10px}.btn--secondary:hover:not(:disabled):not(.is-loading){background:#8a93a6}.btn--secondary:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--secondary:disabled{cursor:not-allowed;opacity:.4;transform:none}.btn--secondary.is-loading{cursor:wait}.btn--success{color:#eceef2;--spinner-color:#10b981;background:#171b24;border:1px solid #10b981;border-radius:10px}.btn--success:hover:not(:disabled):not(.is-loading){background:#10b981}.btn--success:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--success:disabled{cursor:not-allowed;opacity:.4;transform:none}.btn--success.is-loading{cursor:wait}.btn--warning{color:#eceef2;--spinner-color:#f59e0b;background:#171b24;border:1px solid #f59e0b;border-radius:10px}.btn--warning:hover:not(:disabled):not(.is-loading){background:#f59e0b}.btn--warning:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--warning:disabled{cursor:not-allowed;opacity:.4;transform:none}.btn--warning.is-loading{cursor:wait}.btn--danger{color:#eceef2;--spinner-color:#ff4a6b;background:#171b24;border:1px solid #ff4a6b;border-radius:10px}.btn--danger:hover:not(:disabled):not(.is-loading){background:#ff4a6b}.btn--danger:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--danger:disabled{cursor:not-allowed;opacity:.4;transform:none}.btn--danger.is-loading{cursor:wait}.btn--ghost{color:#8a93a6;--spinner-color:#0b0d11;background:#171b24;border:1px solid #0b0d11;border-radius:10px}.btn--ghost:hover:not(:disabled):not(.is-loading){filter:brightness(1.1)}.btn--ghost:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--ghost:disabled{cursor:not-allowed;opacity:.4;transform:none}.btn--ghost.is-loading{cursor:wait}.btn-spinner{width:var(--spinner-size,18px);height:var(--spinner-size,18px);border:2px solid var(--spinner-color,currentColor);border-right-color:#0000;border-radius:50%;flex-shrink:0;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-icon{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;transition:all .3s ease-out;display:inline-flex}.btn-icon svg{transition:all .3s ease-out}.btn-icon--sm{width:32px;min-width:32px;height:32px;min-height:32px}.btn-icon--sm svg{width:18px;height:18px}.btn-icon--sm{--spinner-size:14px}.btn-icon--md{width:40px;min-width:40px;height:40px;min-height:40px}.btn-icon--md svg{width:22px;height:22px}.btn-icon--md{--spinner-size:18px}.btn-icon--lg{width:48px;min-width:48px;height:48px;min-height:48px}.btn-icon--lg svg{width:26px;height:26px}.btn-icon--lg{--spinner-size:22px}.btn-icon--primary{color:#6366f1;background:0 0}.btn-icon--primary svg{fill:currentColor}.btn-icon--primary:hover:not(:disabled):not(.is-loading){color:#4f46e5}.btn-icon--primary:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-icon--primary.is-loading{cursor:wait}.btn-icon--secondary{color:#eceef2;background:0 0}.btn-icon--secondary svg{fill:currentColor}.btn-icon--secondary:hover:not(:disabled):not(.is-loading){color:#4f46e5}.btn-icon--secondary:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--secondary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-icon--secondary.is-loading{cursor:wait}.btn-icon--success{color:#10b981;background:0 0}.btn-icon--success svg{fill:currentColor}.btn-icon--success:hover:not(:disabled):not(.is-loading){filter:brightness(1.2)}.btn-icon--success:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--success:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-icon--success.is-loading{cursor:wait}.btn-icon--warning{color:#f59e0b;background:0 0}.btn-icon--warning svg{fill:currentColor}.btn-icon--warning:hover:not(:disabled):not(.is-loading){filter:brightness(1.2)}.btn-icon--warning:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--warning:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-icon--warning.is-loading{cursor:wait}.btn-icon--danger{color:#ff4a6b;background:0 0}.btn-icon--danger svg{fill:currentColor}.btn-icon--danger:hover:not(:disabled):not(.is-loading){filter:brightness(1.2)}.btn-icon--danger:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--danger:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-icon--danger.is-loading{cursor:wait}.btn-icon--ghost{color:#8a93a6;background:0 0}.btn-icon--ghost svg{fill:currentColor}.btn-icon--ghost:hover:not(:disabled):not(.is-loading){color:#eceef2}.btn-icon--ghost:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--ghost:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-icon--ghost.is-loading{cursor:wait}.form-error{color:#ff4a6b;font-size:13px}.form-hint,.form-label{color:#8a93a6;font-size:13px}.form-label--top{margin:0 0 10px}.form-label--side{margin:10px}.form__item{background:#171b24;width:100%;margin:14px 0;padding:14px;transition:all .3s ease-out}@media (width<=1024px){.form__item{margin:10px 0;padding:10px}}@media (width<=768px){.form__item{margin:6px 0;padding:6px}}.form__actions{background:#171b24;width:100%;margin:14px 0;padding:14px;transition:all .3s ease-out}@media (width<=1024px){.form__actions{margin:10px 0;padding:10px}}@media (width<=768px){.form__actions{margin:6px 0;padding:6px}}.form__actions{flex-direction:row;justify-content:start;align-items:center;gap:10px;display:flex}.base-input{flex-direction:column;display:flex}.base-input__control{color:#eceef2;background:#12151c;border:1px solid #0b0d11;border-radius:0;margin-top:5px;padding:10px;transition:all .3s ease-out}.base-input__control:focus,.base-input__control:focus-visible{border-color:#4f46e5;outline:none;box-shadow:0 0 0 4px #6366f126}.base-input__control:disabled{opacity:.4;cursor:not-allowed}.base-input__control.is-error{border-color:#ff4a6b}.base-input__control.is-error:focus,.base-input__control.is-error:focus-visible{box-shadow:0 0 0 4px #ff4a6b26;border-color:#ff4a6b!important}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(98%)sepia(1%)saturate(678%)hue-rotate(181deg)brightness(98%)contrast(94%)}.base-select{flex-direction:column;display:flex}.base-select__wrapper{position:relative}.base-select__field{color:#eceef2;background:#12151c;border:1px solid #0b0d11;border-radius:0;margin-top:5px;padding:10px;transition:all .3s ease-out}.base-select__field:focus,.base-select__field:focus-visible{border-color:#4f46e5;outline:none;box-shadow:0 0 0 4px #6366f126}.base-select__field:disabled{opacity:.4;cursor:not-allowed}.base-select__field.is-error{border-color:#ff4a6b}.base-select__field.is-error:focus,.base-select__field.is-error:focus-visible{box-shadow:0 0 0 4px #ff4a6b26;border-color:#ff4a6b!important}.base-select__field{appearance:none;cursor:pointer;border-radius:0;width:100%}.base-select__icon{pointer-events:none;color:#8a93a6;font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.base-textarea{flex-direction:column;display:flex}.base-textarea__field{color:#eceef2;background:#12151c;border:1px solid #0b0d11;border-radius:0;margin-top:5px;padding:10px;transition:all .3s ease-out}.base-textarea__field:focus,.base-textarea__field:focus-visible{border-color:#4f46e5;outline:none;box-shadow:0 0 0 4px #6366f126}.base-textarea__field:disabled{opacity:.4;cursor:not-allowed}.base-textarea__field.is-error{border-color:#ff4a6b}.base-textarea__field.is-error:focus,.base-textarea__field.is-error:focus-visible{box-shadow:0 0 0 4px #ff4a6b26;border-color:#ff4a6b!important}.base-textarea__field{resize:vertical;min-height:120px}.base-textarea__field::placeholder{color:#8a93a6}.base-checkbox{position:relative}.base-checkbox__wrapper{cursor:pointer;flex-direction:column;width:100%;display:flex}.base-checkbox__data{-webkit-user-select:none;user-select:none;align-items:center;margin-bottom:6px;display:inline-flex}.base-checkbox__field{opacity:0;appearance:none;width:0;height:0;position:absolute}.base-checkbox__field:focus-visible+.base-checkbox__box{border-color:#4f46e5}.base-checkbox__field:checked+.base-checkbox__box{border-color:#6366f1}.base-checkbox__field:checked+.base-checkbox__box .base-checkbox__check{transform:scale(1)}.base-checkbox__field:disabled+.base-checkbox__box{opacity:.4;cursor:not-allowed}.base-checkbox__box{color:#eceef2;background:#12151c;border:1px solid #0b0d11;border-radius:0;margin-top:5px;padding:10px;transition:all .3s ease-out}.base-checkbox__box:focus,.base-checkbox__box:focus-visible{border-color:#4f46e5;outline:none;box-shadow:0 0 0 4px #6366f126}.base-checkbox__box:disabled{opacity:.4;cursor:not-allowed}.base-checkbox__box.is-error{border-color:#ff4a6b}.base-checkbox__box.is-error:focus,.base-checkbox__box.is-error:focus-visible{box-shadow:0 0 0 4px #ff4a6b26;border-color:#ff4a6b!important}.base-checkbox__box{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-bottom:4px;display:flex}.base-checkbox__check{color:#eceef2;border-radius:50%;transition:all .3s ease-out;transform:scale(0)}.base-radio{position:relative}.base-radio__wrapper{cursor:pointer;flex-direction:column;width:100%;display:flex}.base-radio__data{-webkit-user-select:none;user-select:none;align-items:center;margin-bottom:6px;display:inline-flex;position:relative}.base-radio__field{opacity:0;appearance:none;width:0;height:0;position:absolute}.base-radio__field:checked+.base-radio__box{border-color:#6366f1}.base-radio__field:checked+.base-radio__box .base-radio__circle{background:#eceef2;transform:scale(1)}.base-radio__field:disabled+.base-radio__box{opacity:.4;cursor:not-allowed}.base-radio__box{color:#eceef2;background:#12151c;border:1px solid #0b0d11;border-radius:0;margin-top:5px;padding:10px;transition:all .3s ease-out}.base-radio__box:focus,.base-radio__box:focus-visible{border-color:#4f46e5;outline:none;box-shadow:0 0 0 4px #6366f126}.base-radio__box:disabled{opacity:.4;cursor:not-allowed}.base-radio__box.is-error{border-color:#ff4a6b}.base-radio__box.is-error:focus,.base-radio__box.is-error:focus-visible{box-shadow:0 0 0 4px #ff4a6b26;border-color:#ff4a6b!important}.base-radio__box{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-bottom:5px;display:flex}.base-radio__circle{background:0 0;border-radius:50%;flex-shrink:0;width:10px;height:10px;transition:all .3s ease-out;display:block;transform:scale(0)}.base-breadcrumbs{white-space:nowrap;max-width:100%;overflow:auto scroll}.base-breadcrumbs__list{align-items:center;list-style:none;display:flex}.base-breadcrumbs__item{align-items:center;display:flex}.base-breadcrumbs__item a,.base-breadcrumbs__item span{margin-top:0;padding-top:0}.base-breadcrumbs__item a:hover{color:#4f46e5}.base-breadcrumbs__item-separator{margin:0 8px}.base-pagination{justify-content:center;align-items:center;gap:8px;width:100%;display:flex}.base-pagination p{padding-top:0;transition:all .3s ease-out;cursor:pointer!important}.base-pagination p:hover{color:#4f46e5}.base-pagination .btn-icon.is-active p{font-weight:700;color:#6366f1!important}.base-pagination__desktop{align-items:center;gap:5px;display:flex}@media (width<=640px){.base-pagination__desktop{display:none}}.base-pagination__mobile{display:none}@media (width<=640px){.base-pagination__mobile{align-items:center;display:flex}}.empty-state{border:1px solid #0b0d11;border-radius:0;padding:10px}.empty-state__text p,.empty-state__text h3{text-align:center}.empty-state__actions{justify-content:center;display:flex}.empty-state--secondary{border-color:#eceef2}.empty-state--primary{border-color:#6366f1}.empty-state--primary p,.empty-state--primary h3,.empty-state--primary a{color:#6366f1}.error-state{border:1px dotted #ff4a6b;border-radius:0;padding:10px}.error-state__action{justify-content:center;display:flex}.base-skeleton{opacity:.4;background:#0b0d11;border-radius:0}.base-skeleton__circle{border-radius:50%;width:50px;height:50px}.base-skeleton__text{width:100%;height:20px}.base-skeleton__rect{width:100%;height:100px}.base-toast-container{z-index:99999;pointer-events:none;position:fixed;top:20px;right:20px}.base-toast{pointer-events:auto;background:#0b0d11;border:1px solid #0b0d11;border-radius:0;width:300px;margin-top:5px;padding:10px;animation:.25s fadeIn;position:relative;overflow:hidden}.base-toast__wrapper{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.base-toast__wrapper p{margin:0;padding:0}.base-toast__progress{pointer-events:none;background:#ffffffb3;height:4px;transition:width .1s linear;position:absolute;bottom:0;left:0}.base-toast--primary{border-color:#6366f1}.base-toast--secondary{border-color:#eceef2}.base-toast--success{border-color:#10b981}.base-toast--warning{border-color:#f59e0b}.base-toast--danger{border-color:#ff4a6b}.toast-enter-active,.toast-leave-active{transition:all .25s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(30px)}.base-modal-backdrop{z-index:10000;pointer-events:auto;background:#00000080;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.base-modal{background:#171b24;border:1px solid #0b0d11;border-radius:0;width:100%;max-width:450px;padding:24px}.base-modal__header{margin-bottom:16px}.base-modal__content{flex-direction:column;gap:16px;margin-bottom:24px;display:flex}.base-modal__footer{justify-content:flex-end;gap:12px;display:flex}@media (width<=500px){.base-modal{max-width:100%}}.modal-fade-enter-active,.modal-fade-leave-active{transition:opacity .25s}.modal-fade-enter-active .base-modal,.modal-fade-leave-active .base-modal{transition:transform .25s}.modal-fade-enter-from,.modal-fade-leave-to{opacity:0}.modal-fade-enter-from .base-modal,.modal-fade-leave-to .base-modal{transform:translateY(-20px)}.base-modal--primary{border-color:#6366f1}.base-modal--secondary{border-color:#eceef2}.base-modal--success{border-color:#10b981}.base-modal--warning{border-color:#f59e0b}.base-modal--danger{border-color:#ff4a6b}.txt--primary{color:#6366f1}.txt--danger{color:#ff4a6b}.txt--warning{color:#f59e0b}.txt--success{color:#10b981}.txt--secondary{color:#eceef2}.txt--muted{color:#8a93a6}.txt--left{text-align:left}.txt--center{text-align:center}.txt--right{text-align:right}
1
+ @import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--ui-text:#eceef2;--ui-text-muted:#8a93a6;--ui-bg:#0b0d11;--ui-bg-soft:#12151c;--ui-bg-card:#171b24;--ui-bg-code:#1e2330;--ui-primary:#6366f1;--ui-primary-hover:#4f46e5;--ui-danger:#ff4a6b;--ui-success:#10b981;--ui-warning:#f59e0b;--ui-font-heading:26px;--ui-font-subheading:19px;--ui-font-body:16px;--ui-font-heading-md:24px;--ui-font-subheading-md:18px;--ui-font-body-md:15px;--ui-font-heading-sm:20px;--ui-font-subheading-sm:16px;--ui-font-body-sm:14px;--ui-border-color:#eceef214;--ui-border-width:1px;--ui-border-style:solid;--ui-border-radius:0px;--ui-space-content-sm:6px;--ui-space-content-md:10px;--ui-space-content-lg:14px;--ui-space-container-sm:16px;--ui-space-container-md:24px;--ui-space-container-lg:32px;--ui-transition:all .3s ease-out;--ui-opacity:.4}*,:before,:after{box-sizing:border-box}:focus,:active,a:focus,a:active{outline:none}nav,footer,aside{display:block}html,body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:#232222;height:100%;margin:0;padding:0;font-family:Inter,sans-serif;font-size:100%;line-height:1.5}input,textarea,button,select{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer;background:0 0;border:none}button::-moz-focus-inner{border:0;padding:0}a,a:visited{cursor:pointer;text-decoration:none}button,a:hover{text-decoration:none}h1,h2,h3,h4,h5,h6{font-weight:400}ul{padding-inline-start:0}ul li{margin:0;list-style:none}img{max-width:100%;display:block}.heading{font-size:var(--ui-font-heading);font-weight:600;line-height:34px}.subheading{font-size:var(--ui-font-subheading);font-weight:500;line-height:28px}.body-text{font-size:var(--ui-font-body);font-weight:400;line-height:24px}@media (width<=1024px){.heading{font-size:var(--ui-font-heading-md);line-height:30px}.subheading{font-size:var(--ui-font-subheading-md);line-height:24px}.body-text{font-size:var(--ui-font-body-md);line-height:22px}}@media (width<=767px){.heading{font-size:var(--ui-font-heading-sm);line-height:26px}.subheading{font-size:var(--ui-font-subheading-sm);line-height:22px}.body-text{font-size:var(--ui-font-body-sm);line-height:20px}}a{transition:var(--ui-transition);text-underline-offset:4px;display:block}a:hover{opacity:.8}a:active{opacity:.6;filter:brightness(.9)}.shimmer{position:relative;overflow:hidden}.shimmer:before{content:"";background:linear-gradient(to right, transparent 0%, var(--ui-text-muted) 50%, transparent 100%);width:150px;height:100%;animation:2.6s infinite loading;position:absolute;top:0;left:-150px}@keyframes loading{0%{left:-150px}to{left:100%}}.fade-enter-active,.fade-leave-active{transition:opacity .25s}.fade-enter-from,.fade-leave-to{opacity:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{-webkit-user-select:none;user-select:none;white-space:nowrap;cursor:pointer;transition:var(--ui-transition);border:none;outline:none;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-weight:500;line-height:1.2;display:inline-flex}.btn--sm{--spinner-size:14px;height:38px;padding:3px 14px;font-size:14px}.btn--md{--spinner-size:18px;height:44px;padding:3px 16px;font-size:15px}.btn--lg{--spinner-size:22px;height:50px;padding:3px 18px;font-size:16px}.btn--primary{border:var(--ui-border-width) var(--ui-border-style) var(--ui-primary);background:var(--ui-bg-card);color:var(--ui-text);--spinner-color:var(--ui-primary);border-radius:10px}.btn--primary:hover:not(:disabled):not(.is-loading){background:var(--ui-primary)}.btn--primary:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--primary:disabled{cursor:not-allowed;opacity:var(--ui-opacity);transform:none}.btn--primary.is-loading{cursor:wait}.btn--secondary{border:var(--ui-border-width) var(--ui-border-style) var(--ui-text-muted);background:var(--ui-bg-card);color:var(--ui-text);--spinner-color:var(--ui-text-muted);border-radius:10px}.btn--secondary:hover:not(:disabled):not(.is-loading){background:var(--ui-text-muted)}.btn--secondary:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--secondary:disabled{cursor:not-allowed;opacity:var(--ui-opacity);transform:none}.btn--secondary.is-loading{cursor:wait}.btn--success{border:var(--ui-border-width) var(--ui-border-style) var(--ui-success);background:var(--ui-bg-card);color:var(--ui-text);--spinner-color:var(--ui-success);border-radius:10px}.btn--success:hover:not(:disabled):not(.is-loading){background:var(--ui-success)}.btn--success:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--success:disabled{cursor:not-allowed;opacity:var(--ui-opacity);transform:none}.btn--success.is-loading{cursor:wait}.btn--warning{border:var(--ui-border-width) var(--ui-border-style) var(--ui-warning);background:var(--ui-bg-card);color:var(--ui-text);--spinner-color:var(--ui-warning);border-radius:10px}.btn--warning:hover:not(:disabled):not(.is-loading){background:var(--ui-warning)}.btn--warning:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--warning:disabled{cursor:not-allowed;opacity:var(--ui-opacity);transform:none}.btn--warning.is-loading{cursor:wait}.btn--danger{border:var(--ui-border-width) var(--ui-border-style) var(--ui-danger);background:var(--ui-bg-card);color:var(--ui-text);--spinner-color:var(--ui-danger);border-radius:10px}.btn--danger:hover:not(:disabled):not(.is-loading){background:var(--ui-danger)}.btn--danger:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--danger:disabled{cursor:not-allowed;opacity:var(--ui-opacity);transform:none}.btn--danger.is-loading{cursor:wait}.btn--ghost{border:var(--ui-border-width) var(--ui-border-style) var(--ui-bg);background:var(--ui-bg-card);color:var(--ui-text-muted);--spinner-color:var(--ui-bg);border-radius:10px}.btn--ghost:hover:not(:disabled):not(.is-loading){filter:brightness(1.1)}.btn--ghost:active:not(:disabled):not(.is-loading){filter:brightness(.9);transform:scale(.97)}.btn--ghost:disabled{cursor:not-allowed;opacity:var(--ui-opacity);transform:none}.btn--ghost.is-loading{cursor:wait}.btn-spinner{width:var(--spinner-size,18px);height:var(--spinner-size,18px);border:2px solid var(--spinner-color,currentColor);border-right-color:#0000;border-radius:50%;flex-shrink:0;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-icon{cursor:pointer;transition:var(--ui-transition);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.btn-icon svg{transition:var(--ui-transition)}.btn-icon--sm{width:32px;min-width:32px;height:32px;min-height:32px}.btn-icon--sm svg{width:18px;height:18px}.btn-icon--sm{--spinner-size:14px}.btn-icon--md{width:40px;min-width:40px;height:40px;min-height:40px}.btn-icon--md svg{width:22px;height:22px}.btn-icon--md{--spinner-size:18px}.btn-icon--lg{width:48px;min-width:48px;height:48px;min-height:48px}.btn-icon--lg svg{width:26px;height:26px}.btn-icon--lg{--spinner-size:22px}.btn-icon--primary{color:var(--ui-primary);background:0 0}.btn-icon--primary svg{fill:currentColor}.btn-icon--primary:hover:not(:disabled):not(.is-loading){color:var(--ui-primary-hover)}.btn-icon--primary:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--primary:disabled{opacity:var(--ui-opacity);cursor:not-allowed;transform:none}.btn-icon--primary.is-loading{cursor:wait}.btn-icon--secondary{color:var(--ui-text);background:0 0}.btn-icon--secondary svg{fill:currentColor}.btn-icon--secondary:hover:not(:disabled):not(.is-loading){color:var(--ui-primary-hover)}.btn-icon--secondary:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--secondary:disabled{opacity:var(--ui-opacity);cursor:not-allowed;transform:none}.btn-icon--secondary.is-loading{cursor:wait}.btn-icon--success{color:var(--ui-success);background:0 0}.btn-icon--success svg{fill:currentColor}.btn-icon--success:hover:not(:disabled):not(.is-loading){filter:brightness(1.2)}.btn-icon--success:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--success:disabled{opacity:var(--ui-opacity);cursor:not-allowed;transform:none}.btn-icon--success.is-loading{cursor:wait}.btn-icon--warning{color:var(--ui-warning);background:0 0}.btn-icon--warning svg{fill:currentColor}.btn-icon--warning:hover:not(:disabled):not(.is-loading){filter:brightness(1.2)}.btn-icon--warning:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--warning:disabled{opacity:var(--ui-opacity);cursor:not-allowed;transform:none}.btn-icon--warning.is-loading{cursor:wait}.btn-icon--danger{color:var(--ui-danger);background:0 0}.btn-icon--danger svg{fill:currentColor}.btn-icon--danger:hover:not(:disabled):not(.is-loading){filter:brightness(1.2)}.btn-icon--danger:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--danger:disabled{opacity:var(--ui-opacity);cursor:not-allowed;transform:none}.btn-icon--danger.is-loading{cursor:wait}.btn-icon--ghost{color:var(--ui-text-muted);background:0 0}.btn-icon--ghost svg{fill:currentColor}.btn-icon--ghost:hover:not(:disabled):not(.is-loading){color:var(--ui-text)}.btn-icon--ghost:active:not(:disabled):not(.is-loading){transform:scale(.92)}.btn-icon--ghost:disabled{opacity:var(--ui-opacity);cursor:not-allowed;transform:none}.btn-icon--ghost.is-loading{cursor:wait}.form-error{color:var(--ui-danger);font-size:13px}.form-hint,.form-label{color:var(--ui-text-muted);font-size:13px}.form-label--top{margin:0 0 10px}.form-label--side{margin:10px}.form__item{background:var(--ui-bg-card);width:100%;transition:var(--ui-transition);padding:var(--ui-space-content-lg);margin:var(--ui-space-content-lg) 0px}@media (width<=1024px){.form__item{padding:var(--ui-space-content-md);margin:var(--ui-space-content-md) 0px}}@media (width<=768px){.form__item{padding:var(--ui-space-content-sm);margin:var(--ui-space-content-sm) 0px}}.form__actions{background:var(--ui-bg-card);width:100%;transition:var(--ui-transition);padding:var(--ui-space-content-lg);margin:var(--ui-space-content-lg) 0px}@media (width<=1024px){.form__actions{padding:var(--ui-space-content-md);margin:var(--ui-space-content-md) 0px}}@media (width<=768px){.form__actions{padding:var(--ui-space-content-sm);margin:var(--ui-space-content-sm) 0px}}.form__actions{flex-direction:row;justify-content:start;align-items:center;gap:10px;display:flex}.base-input{flex-direction:column;display:flex}.base-input__control{border:var(--ui-border-width) var(--ui-border-style) var(--ui-bg);border-radius:var(--ui-border-radius);background:var(--ui-bg-soft);padding:var(--ui-space-content-md);transition:var(--ui-transition);color:var(--ui-text);margin-top:5px}.base-input__control:focus,.base-input__control:focus-visible{border-color:var(--ui-primary-hover);box-shadow:0 0 0 4px rgba(var(--ui-primary), .15);outline:none}.base-input__control:disabled{opacity:var(--ui-opacity);cursor:not-allowed}.base-input__control.is-error{border-color:var(--ui-danger)}.base-input__control.is-error:focus,.base-input__control.is-error:focus-visible{box-shadow:0 0 0 4px rgba(var(--ui-danger), .15);border-color:var(--ui-danger)!important}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(98%)sepia(1%)saturate(678%)hue-rotate(181deg)brightness(98%)contrast(94%)}.base-select{flex-direction:column;display:flex}.base-select__wrapper{position:relative}.base-select__field{border:var(--ui-border-width) var(--ui-border-style) var(--ui-bg);border-radius:var(--ui-border-radius);background:var(--ui-bg-soft);padding:var(--ui-space-content-md);transition:var(--ui-transition);color:var(--ui-text);margin-top:5px}.base-select__field:focus,.base-select__field:focus-visible{border-color:var(--ui-primary-hover);box-shadow:0 0 0 4px rgba(var(--ui-primary), .15);outline:none}.base-select__field:disabled{opacity:var(--ui-opacity);cursor:not-allowed}.base-select__field.is-error{border-color:var(--ui-danger)}.base-select__field.is-error:focus,.base-select__field.is-error:focus-visible{box-shadow:0 0 0 4px rgba(var(--ui-danger), .15);border-color:var(--ui-danger)!important}.base-select__field{appearance:none;cursor:pointer;border-radius:0;width:100%}.base-select__icon{pointer-events:none;color:var(--ui-text-muted);font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.base-textarea{flex-direction:column;display:flex}.base-textarea__field{border:var(--ui-border-width) var(--ui-border-style) var(--ui-bg);border-radius:var(--ui-border-radius);background:var(--ui-bg-soft);padding:var(--ui-space-content-md);transition:var(--ui-transition);color:var(--ui-text);margin-top:5px}.base-textarea__field:focus,.base-textarea__field:focus-visible{border-color:var(--ui-primary-hover);box-shadow:0 0 0 4px rgba(var(--ui-primary), .15);outline:none}.base-textarea__field:disabled{opacity:var(--ui-opacity);cursor:not-allowed}.base-textarea__field.is-error{border-color:var(--ui-danger)}.base-textarea__field.is-error:focus,.base-textarea__field.is-error:focus-visible{box-shadow:0 0 0 4px rgba(var(--ui-danger), .15);border-color:var(--ui-danger)!important}.base-textarea__field{resize:vertical;min-height:120px}.base-textarea__field::placeholder{color:var(--ui-text-muted)}.base-checkbox{position:relative}.base-checkbox__wrapper{cursor:pointer;flex-direction:column;width:100%;display:flex}.base-checkbox__data{-webkit-user-select:none;user-select:none;align-items:center;margin-bottom:6px;display:inline-flex}.base-checkbox__field{opacity:0;appearance:none;width:0;height:0;position:absolute}.base-checkbox__field:focus-visible+.base-checkbox__box{border-color:var(--ui-primary-hover)}.base-checkbox__field:checked+.base-checkbox__box{border-color:var(--ui-primary)}.base-checkbox__field:checked+.base-checkbox__box .base-checkbox__check{transform:scale(1)}.base-checkbox__field:disabled+.base-checkbox__box{opacity:var(--ui-opacity);cursor:not-allowed}.base-checkbox__box{border:var(--ui-border-width) var(--ui-border-style) var(--ui-bg);border-radius:var(--ui-border-radius);background:var(--ui-bg-soft);padding:var(--ui-space-content-md);transition:var(--ui-transition);color:var(--ui-text);margin-top:5px}.base-checkbox__box:focus,.base-checkbox__box:focus-visible{border-color:var(--ui-primary-hover);box-shadow:0 0 0 4px rgba(var(--ui-primary), .15);outline:none}.base-checkbox__box:disabled{opacity:var(--ui-opacity);cursor:not-allowed}.base-checkbox__box.is-error{border-color:var(--ui-danger)}.base-checkbox__box.is-error:focus,.base-checkbox__box.is-error:focus-visible{box-shadow:0 0 0 4px rgba(var(--ui-danger), .15);border-color:var(--ui-danger)!important}.base-checkbox__box{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-bottom:4px;display:flex}.base-checkbox__check{color:var(--ui-text);transition:var(--ui-transition);border-radius:50%;transform:scale(0)}.base-radio{position:relative}.base-radio__wrapper{cursor:pointer;flex-direction:column;width:100%;display:flex}.base-radio__data{-webkit-user-select:none;user-select:none;align-items:center;margin-bottom:6px;display:inline-flex;position:relative}.base-radio__field{opacity:0;appearance:none;width:0;height:0;position:absolute}.base-radio__field:checked+.base-radio__box{border-color:var(--ui-primary)}.base-radio__field:checked+.base-radio__box .base-radio__circle{background:var(--ui-text);transform:scale(1)}.base-radio__field:disabled+.base-radio__box{opacity:var(--ui-opacity);cursor:not-allowed}.base-radio__box{border:var(--ui-border-width) var(--ui-border-style) var(--ui-bg);border-radius:var(--ui-border-radius);background:var(--ui-bg-soft);padding:var(--ui-space-content-md);transition:var(--ui-transition);color:var(--ui-text);margin-top:5px}.base-radio__box:focus,.base-radio__box:focus-visible{border-color:var(--ui-primary-hover);box-shadow:0 0 0 4px rgba(var(--ui-primary), .15);outline:none}.base-radio__box:disabled{opacity:var(--ui-opacity);cursor:not-allowed}.base-radio__box.is-error{border-color:var(--ui-danger)}.base-radio__box.is-error:focus,.base-radio__box.is-error:focus-visible{box-shadow:0 0 0 4px rgba(var(--ui-danger), .15);border-color:var(--ui-danger)!important}.base-radio__box{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-bottom:5px;display:flex}.base-radio__circle{transition:var(--ui-transition);background:0 0;border-radius:50%;flex-shrink:0;width:10px;height:10px;display:block;transform:scale(0)}.base-breadcrumbs{white-space:nowrap;max-width:100%;overflow:auto scroll}.base-breadcrumbs__list{align-items:center;list-style:none;display:flex}.base-breadcrumbs__item{align-items:center;display:flex}.base-breadcrumbs__item a,.base-breadcrumbs__item span{margin-top:0;padding-top:0}.base-breadcrumbs__item a:hover{color:var(--ui-primary-hover)}.base-breadcrumbs__item-separator{margin:0 8px}.base-pagination{justify-content:center;align-items:center;gap:8px;width:100%;display:flex}.base-pagination p{transition:var(--ui-transition);padding-top:0;cursor:pointer!important}.base-pagination p:hover{color:var(--ui-primary-hover)}.base-pagination .btn-icon.is-active p{font-weight:700;color:var(--ui-primary)!important}.base-pagination__desktop{align-items:center;gap:5px;display:flex}@media (width<=640px){.base-pagination__desktop{display:none}}.base-pagination__mobile{display:none}@media (width<=640px){.base-pagination__mobile{align-items:center;display:flex}}.empty-state{border:var(--ui-border-width) var(--ui-border-style) var(--ui-bg);border-radius:var(--ui-border-radius);padding:10px}.empty-state__text p,.empty-state__text h3{text-align:center}.empty-state__actions{justify-content:center;display:flex}.empty-state--secondary{border-color:var(--ui-text)}.empty-state--primary{border-color:var(--ui-primary)}.empty-state--primary p,.empty-state--primary h3,.empty-state--primary a{color:var(--ui-primary)}.error-state{border:var(--ui-border-width) dotted var(--ui-danger);border-radius:var(--ui-border-radius);padding:10px}.error-state__action{justify-content:center;display:flex}.base-skeleton{background:var(--ui-bg);opacity:var(--ui-opacity);border-radius:var(--ui-border-radius)}.base-skeleton__circle{border-radius:50%;width:50px;height:50px}.base-skeleton__text{width:100%;height:20px}.base-skeleton__rect{width:100%;height:100px}.base-toast-container{z-index:99999;pointer-events:none;position:fixed;top:20px;right:20px}.base-toast{border:var(--ui-border-width) var(--ui-border-style) var(--ui-bg);border-radius:var(--ui-border-radius);background:var(--ui-bg);pointer-events:auto;width:300px;margin-top:5px;padding:10px;animation:.25s fadeIn;position:relative;overflow:hidden}.base-toast__wrapper{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.base-toast__wrapper p{margin:0;padding:0}.base-toast__progress{pointer-events:none;background:#ffffffb3;height:4px;transition:width .1s linear;position:absolute;bottom:0;left:0}.base-toast--primary{border-color:var(--ui-primary)}.base-toast--secondary{border-color:var(--ui-text)}.base-toast--success{border-color:var(--ui-success)}.base-toast--warning{border-color:var(--ui-warning)}.base-toast--danger{border-color:var(--ui-danger)}.toast-enter-active,.toast-leave-active{transition:all .25s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(30px)}.base-modal-backdrop{z-index:10000;pointer-events:auto;background:#00000080;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.base-modal{border:var(--ui-border-width) var(--ui-border-style) var(--ui-bg);border-radius:var(--ui-border-radius);background:var(--ui-bg-card);width:100%;max-width:450px;padding:24px}.base-modal__header{margin-bottom:16px}.base-modal__content{flex-direction:column;gap:16px;margin-bottom:24px;display:flex}.base-modal__footer{justify-content:flex-end;gap:12px;display:flex}@media (width<=500px){.base-modal{max-width:100%}}.modal-fade-enter-active,.modal-fade-leave-active{transition:opacity .25s}.modal-fade-enter-active .base-modal,.modal-fade-leave-active .base-modal{transition:transform .25s}.modal-fade-enter-from,.modal-fade-leave-to{opacity:0}.modal-fade-enter-from .base-modal,.modal-fade-leave-to .base-modal{transform:translateY(-20px)}.base-modal--primary{border-color:var(--ui-primary)}.base-modal--secondary{border-color:var(--ui-text)}.base-modal--success{border-color:var(--ui-success)}.base-modal--warning{border-color:var(--ui-warning)}.base-modal--danger{border-color:var(--ui-danger)}.txt--primary{color:var(--ui-primary)}.txt--danger{color:var(--ui-danger)}.txt--warning{color:var(--ui-warning)}.txt--success{color:var(--ui-success)}.txt--secondary{color:var(--ui-text)}.txt--muted{color:var(--ui-text-muted)}.txt--left{text-align:left}.txt--center{text-align:center}.txt--right{text-align:right}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,27 @@
1
1
  {
2
2
  "name": "modular-ui-kit-vue",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
+ "keywords": [
5
+ "vue",
6
+ "vue3",
7
+ "vue-components",
8
+ "ui-kit",
9
+ "component-library",
10
+ "typescript",
11
+ "pinia",
12
+ "sass",
13
+ "design-system",
14
+ "frontend",
15
+ "responsive-ui"
16
+ ],
17
+ "homepage": "https://github.com/eugenia-vitinschii/modular-ui-kit-vue/tree/build/npm-package#readme",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/eugenia-vitinschii/modular-ui-kit-vue.git"
21
+ },
22
+ "bugs": {
23
+ "url": "https://github.com/eugenia-vitinschii/modular-ui-kit-vue/issues"
24
+ },
4
25
  "author": "vitinschii.eugenia@gmail.com",
5
26
  "description": "A modular, lightweight UI kit built with Vue 3, Pinia, and TypeScript.",
6
27
  "type": "module",