@mrintel/villain-ui 0.2.2 → 0.3.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.
Files changed (133) hide show
  1. package/dist/components/buttons/Button.svelte +33 -0
  2. package/dist/components/buttons/Button.svelte.d.ts +11 -0
  3. package/dist/components/buttons/ButtonGroup.svelte +30 -0
  4. package/dist/components/buttons/ButtonGroup.svelte.d.ts +8 -0
  5. package/dist/components/buttons/FloatingActionButton.svelte +44 -0
  6. package/dist/components/buttons/FloatingActionButton.svelte.d.ts +11 -0
  7. package/dist/components/buttons/IconButton.svelte +53 -0
  8. package/dist/components/buttons/IconButton.svelte.d.ts +13 -0
  9. package/dist/components/buttons/LinkButton.svelte +37 -0
  10. package/dist/components/buttons/LinkButton.svelte.d.ts +12 -0
  11. package/dist/components/buttons/buttonClasses.d.ts +10 -0
  12. package/dist/components/buttons/buttonClasses.js +10 -0
  13. package/dist/components/buttons/index.d.ts +5 -0
  14. package/dist/components/buttons/index.js +5 -0
  15. package/dist/components/cards/Card.svelte +46 -0
  16. package/dist/components/cards/Card.svelte.d.ts +11 -0
  17. package/dist/components/cards/Container.svelte +33 -0
  18. package/dist/components/cards/Container.svelte.d.ts +10 -0
  19. package/dist/components/cards/Divider.svelte +52 -0
  20. package/dist/components/cards/Divider.svelte.d.ts +9 -0
  21. package/dist/components/cards/Grid.svelte +44 -0
  22. package/dist/components/cards/Grid.svelte.d.ts +10 -0
  23. package/dist/components/cards/Panel.svelte +32 -0
  24. package/dist/components/cards/Panel.svelte.d.ts +10 -0
  25. package/dist/components/cards/SectionHeader.svelte +38 -0
  26. package/dist/components/cards/SectionHeader.svelte.d.ts +11 -0
  27. package/dist/components/cards/index.d.ts +6 -0
  28. package/dist/components/cards/index.js +6 -0
  29. package/dist/components/data/Avatar.svelte +67 -0
  30. package/dist/components/data/Avatar.svelte.d.ts +10 -0
  31. package/dist/components/data/Badge.svelte +32 -0
  32. package/dist/components/data/Badge.svelte.d.ts +8 -0
  33. package/dist/components/data/CodeBlock.svelte +121 -0
  34. package/dist/components/data/CodeBlock.svelte.d.ts +32 -0
  35. package/dist/components/data/List.svelte +64 -0
  36. package/dist/components/data/List.svelte.d.ts +8 -0
  37. package/dist/components/data/Pagination.svelte +123 -0
  38. package/dist/components/data/Pagination.svelte.d.ts +9 -0
  39. package/dist/components/data/Stat.svelte +103 -0
  40. package/dist/components/data/Stat.svelte.d.ts +11 -0
  41. package/dist/components/data/Table.svelte +76 -0
  42. package/dist/components/data/Table.svelte.d.ts +9 -0
  43. package/dist/components/data/Tag.svelte +53 -0
  44. package/dist/components/data/Tag.svelte.d.ts +9 -0
  45. package/dist/components/data/index.d.ts +8 -0
  46. package/dist/components/data/index.js +8 -0
  47. package/dist/components/forms/Checkbox.svelte +51 -0
  48. package/dist/components/forms/Checkbox.svelte.d.ts +10 -0
  49. package/dist/components/forms/FileUpload.svelte +164 -0
  50. package/dist/components/forms/FileUpload.svelte.d.ts +22 -0
  51. package/dist/components/forms/Input.svelte +57 -0
  52. package/dist/components/forms/Input.svelte.d.ts +13 -0
  53. package/dist/components/forms/InputGroup.svelte +7 -0
  54. package/dist/components/forms/InputGroup.svelte.d.ts +20 -0
  55. package/dist/components/forms/RadioGroup.svelte +87 -0
  56. package/dist/components/forms/RadioGroup.svelte.d.ts +15 -0
  57. package/dist/components/forms/RangeSlider.svelte +116 -0
  58. package/dist/components/forms/RangeSlider.svelte.d.ts +14 -0
  59. package/dist/components/forms/Select.svelte +71 -0
  60. package/dist/components/forms/Select.svelte.d.ts +16 -0
  61. package/dist/components/forms/Switch.svelte +56 -0
  62. package/dist/components/forms/Switch.svelte.d.ts +10 -0
  63. package/dist/components/forms/Textarea.svelte +57 -0
  64. package/dist/components/forms/Textarea.svelte.d.ts +13 -0
  65. package/dist/components/forms/index.d.ts +9 -0
  66. package/dist/components/forms/index.js +9 -0
  67. package/dist/components/navigation/Breadcrumbs.svelte +59 -0
  68. package/dist/components/navigation/Breadcrumbs.svelte.d.ts +14 -0
  69. package/dist/components/navigation/ContextMenu.svelte +83 -0
  70. package/dist/components/navigation/ContextMenu.svelte.d.ts +11 -0
  71. package/dist/components/navigation/DropdownMenu.svelte +80 -0
  72. package/dist/components/navigation/DropdownMenu.svelte.d.ts +10 -0
  73. package/dist/components/navigation/Menu.svelte +48 -0
  74. package/dist/components/navigation/Menu.svelte.d.ts +15 -0
  75. package/dist/components/navigation/Navbar.svelte +32 -0
  76. package/dist/components/navigation/Navbar.svelte.d.ts +9 -0
  77. package/dist/components/navigation/Sidebar.svelte +35 -0
  78. package/dist/components/navigation/Sidebar.svelte.d.ts +10 -0
  79. package/dist/components/navigation/Tabs.svelte +54 -0
  80. package/dist/components/navigation/Tabs.svelte.d.ts +15 -0
  81. package/dist/components/navigation/index.d.ts +7 -0
  82. package/dist/components/navigation/index.js +7 -0
  83. package/dist/components/overlays/Alert.svelte +99 -0
  84. package/dist/components/overlays/Alert.svelte.d.ts +11 -0
  85. package/dist/components/overlays/CommandPalette.svelte +217 -0
  86. package/dist/components/overlays/CommandPalette.svelte.d.ts +16 -0
  87. package/dist/components/overlays/Drawer.svelte +167 -0
  88. package/dist/components/overlays/Drawer.svelte.d.ts +14 -0
  89. package/dist/components/overlays/Dropdown.svelte +30 -0
  90. package/dist/components/overlays/Dropdown.svelte.d.ts +9 -0
  91. package/dist/components/overlays/Modal.svelte +130 -0
  92. package/dist/components/overlays/Modal.svelte.d.ts +13 -0
  93. package/dist/components/overlays/Popover.svelte +131 -0
  94. package/dist/components/overlays/Popover.svelte.d.ts +11 -0
  95. package/dist/components/overlays/ProgressBar.svelte +45 -0
  96. package/dist/components/overlays/ProgressBar.svelte.d.ts +10 -0
  97. package/dist/components/overlays/SkeletonLoader.svelte +82 -0
  98. package/dist/components/overlays/SkeletonLoader.svelte.d.ts +9 -0
  99. package/dist/components/overlays/Spinner.svelte +43 -0
  100. package/dist/components/overlays/Spinner.svelte.d.ts +7 -0
  101. package/dist/components/overlays/Toast.svelte +140 -0
  102. package/dist/components/overlays/Toast.svelte.d.ts +13 -0
  103. package/dist/components/overlays/Tooltip.svelte +115 -0
  104. package/dist/components/overlays/Tooltip.svelte.d.ts +10 -0
  105. package/dist/components/overlays/index.d.ts +11 -0
  106. package/dist/components/overlays/index.js +11 -0
  107. package/dist/components/typography/Code.svelte +14 -0
  108. package/dist/components/typography/Code.svelte.d.ts +6 -0
  109. package/dist/components/typography/Heading.svelte +22 -0
  110. package/dist/components/typography/Heading.svelte.d.ts +9 -0
  111. package/dist/components/typography/Text.svelte +24 -0
  112. package/dist/components/typography/Text.svelte.d.ts +9 -0
  113. package/dist/components/typography/index.d.ts +3 -0
  114. package/dist/components/typography/index.js +3 -0
  115. package/dist/components/utilities/Accordion.svelte +67 -0
  116. package/dist/components/utilities/Accordion.svelte.d.ts +14 -0
  117. package/dist/components/utilities/Carousel.svelte +152 -0
  118. package/dist/components/utilities/Carousel.svelte.d.ts +16 -0
  119. package/dist/components/utilities/Collapse.svelte +60 -0
  120. package/dist/components/utilities/Collapse.svelte.d.ts +10 -0
  121. package/dist/components/utilities/Portal.svelte +72 -0
  122. package/dist/components/utilities/Portal.svelte.d.ts +21 -0
  123. package/dist/components/utilities/ScrollArea.svelte +41 -0
  124. package/dist/components/utilities/ScrollArea.svelte.d.ts +8 -0
  125. package/dist/components/utilities/index.d.ts +5 -0
  126. package/dist/components/utilities/index.js +5 -0
  127. package/dist/index.d.ts +15 -175
  128. package/dist/index.js +24 -4560
  129. package/dist/lib/internal/id.d.ts +12 -0
  130. package/dist/lib/internal/id.js +15 -0
  131. package/dist/theme.css +218 -0
  132. package/package.json +6 -5
  133. package/dist/index.css +0 -1
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Generate a unique ID with an optional prefix.
3
+ * Uses nanoid for smaller size and better security than Math.random() or crypto.randomUUID().
4
+ *
5
+ * @param prefix - Optional prefix for the ID (e.g., 'input', 'modal', 'tooltip')
6
+ * @returns A unique ID string with the format `prefix-{nanoid}`
7
+ *
8
+ * @example
9
+ * createId('input') // Returns 'input-V1StGXR8_Z5jdHi6B'
10
+ * createId('modal') // Returns 'modal-n5yjdHi6BV1StGXR8'
11
+ */
12
+ export declare function createId(prefix: string): string;
@@ -0,0 +1,15 @@
1
+ import { nanoid } from 'nanoid';
2
+ /**
3
+ * Generate a unique ID with an optional prefix.
4
+ * Uses nanoid for smaller size and better security than Math.random() or crypto.randomUUID().
5
+ *
6
+ * @param prefix - Optional prefix for the ID (e.g., 'input', 'modal', 'tooltip')
7
+ * @returns A unique ID string with the format `prefix-{nanoid}`
8
+ *
9
+ * @example
10
+ * createId('input') // Returns 'input-V1StGXR8_Z5jdHi6B'
11
+ * createId('modal') // Returns 'modal-n5yjdHi6BV1StGXR8'
12
+ */
13
+ export function createId(prefix) {
14
+ return `${prefix}-${nanoid(9)}`;
15
+ }
package/dist/theme.css ADDED
@@ -0,0 +1,218 @@
1
+ @import 'tailwindcss';
2
+
3
+ @theme {
4
+ /* ===== Core Brand Base ===== */
5
+ --color-base-0: #050505;
6
+ --color-base-1: #0A0A0A;
7
+ --color-base-2: #111111;
8
+ --color-base-3: #161616;
9
+
10
+ /* ===== Primary Accent ===== */
11
+ --color-accent: #7F3DFF;
12
+ --color-accent-soft: #A974FF;
13
+ --color-accent-dark: #4C1AA8;
14
+
15
+ /* ===== Text Colors ===== */
16
+ --color-text: #EDEDED;
17
+ --color-text-soft: #ADADAD;
18
+ --color-text-muted: #7A7A7A;
19
+
20
+ /* ===== State Colors ===== */
21
+ --color-success: #00E897;
22
+ --color-warning: #FFC861;
23
+ --color-error: #FF4A6A;
24
+
25
+ /* ===== Surface Colors ===== */
26
+ --color-surface: var(--color-base-1);
27
+ --color-panel: var(--color-base-2);
28
+ --color-overlay: rgba(0, 0, 0, 0.65);
29
+
30
+ /* ===== Border Colors ===== */
31
+ --color-border: rgba(255, 255, 255, 0.08);
32
+ --color-border-strong: rgba(255, 255, 255, 0.16);
33
+
34
+ /* ===== Glow/Lighting Shadows ===== */
35
+ --shadow-accent-glow:
36
+ 0 0 20px rgba(127, 61, 255, 0.4),
37
+ 0 0 40px rgba(127, 61, 255, 0.2),
38
+ 0 0 60px rgba(127, 61, 255, 0.1);
39
+ --shadow-deep: 0 10px 40px rgba(0, 0, 0, 0.5);
40
+ --shadow-text-glow:
41
+ 0 0 20px rgba(127, 61, 255, 0.5),
42
+ 0 0 40px rgba(127, 61, 255, 0.3);
43
+
44
+ /* ===== Glass/Panel Effects ===== */
45
+ --glass-panel-background: rgba(17, 17, 17, 0.7);
46
+
47
+ /* ===== Border Radii ===== */
48
+ --radius-none: 0px;
49
+ --radius-sm: 4px;
50
+ --radius-md: 8px;
51
+ --radius-lg: 12px;
52
+ --radius-xl: 16px;
53
+ --radius-2xl: 24px;
54
+ --radius-pill: 999px;
55
+
56
+ /* ===== Typography ===== */
57
+ --font-heading: 'Poppins', sans-serif;
58
+ --font-body: 'Inter', sans-serif;
59
+ --font-mono: 'IBM Plex Mono', monospace;
60
+
61
+ /* Typography Scale */
62
+ --text-h1-size: 3.5rem;
63
+ --text-h1-line-height: 1.2;
64
+ --text-h1-weight: 700;
65
+
66
+ --text-h2-size: 2.5rem;
67
+ --text-h2-line-height: 1.25;
68
+ --text-h2-weight: 600;
69
+
70
+ --text-h3-size: 2rem;
71
+ --text-h3-line-height: 1.3;
72
+ --text-h3-weight: 600;
73
+
74
+ --text-h4-size: 1.5rem;
75
+ --text-h4-line-height: 1.35;
76
+ --text-h4-weight: 600;
77
+
78
+ --text-h5-size: 1.25rem;
79
+ --text-h5-line-height: 1.4;
80
+ --text-h5-weight: 500;
81
+
82
+ --text-h6-size: 1rem;
83
+ --text-h6-line-height: 1.5;
84
+ --text-h6-weight: 500;
85
+
86
+ --text-body-size: 1rem;
87
+ --text-body-line-height: 1.6;
88
+ --text-body-weight: 400;
89
+
90
+ --text-caption-size: 0.875rem;
91
+ --text-caption-line-height: 1.5;
92
+ --text-caption-weight: 400;
93
+
94
+ /* ===== Motion Curves ===== */
95
+ --ease-luxe: cubic-bezier(0.23, 1, 0.32, 1);
96
+ --ease-sharp: cubic-bezier(0.4, 0.1, 0.2, 1);
97
+
98
+ /* ===== Utility Spacing ===== */
99
+ --spacing-4\.5: 1.125rem;
100
+ --spacing-18: 4.5rem;
101
+
102
+ /* ===== Keyframe Animations ===== */
103
+ @keyframes fade-in {
104
+ from {
105
+ opacity: 0;
106
+ }
107
+ to {
108
+ opacity: 1;
109
+ }
110
+ }
111
+
112
+ @keyframes fade-up {
113
+ from {
114
+ opacity: 0;
115
+ transform: translateY(20px);
116
+ }
117
+ to {
118
+ opacity: 1;
119
+ transform: translateY(0);
120
+ }
121
+ }
122
+
123
+ @keyframes glow-pulse {
124
+ 0%, 100% {
125
+ box-shadow:
126
+ 0 0 20px rgba(127, 61, 255, 0.4),
127
+ 0 0 40px rgba(127, 61, 255, 0.2),
128
+ 0 0 60px rgba(127, 61, 255, 0.1);
129
+ }
130
+ 50% {
131
+ box-shadow:
132
+ 0 0 30px rgba(127, 61, 255, 0.6),
133
+ 0 0 60px rgba(127, 61, 255, 0.3),
134
+ 0 0 90px rgba(127, 61, 255, 0.15);
135
+ }
136
+ }
137
+
138
+ @keyframes fade-out {
139
+ from {
140
+ opacity: 1;
141
+ }
142
+ to {
143
+ opacity: 0;
144
+ }
145
+ }
146
+
147
+ @keyframes slide-in-left {
148
+ from {
149
+ opacity: 0;
150
+ transform: translateX(-100%);
151
+ }
152
+ to {
153
+ opacity: 1;
154
+ transform: translateX(0);
155
+ }
156
+ }
157
+
158
+ @keyframes slide-in-right {
159
+ from {
160
+ opacity: 0;
161
+ transform: translateX(100%);
162
+ }
163
+ to {
164
+ opacity: 1;
165
+ transform: translateX(0);
166
+ }
167
+ }
168
+
169
+ @keyframes slide-in-top {
170
+ from {
171
+ opacity: 0;
172
+ transform: translateY(-100%);
173
+ }
174
+ to {
175
+ opacity: 1;
176
+ transform: translateY(0);
177
+ }
178
+ }
179
+
180
+ @keyframes slide-in-bottom {
181
+ from {
182
+ opacity: 0;
183
+ transform: translateY(100%);
184
+ }
185
+ to {
186
+ opacity: 1;
187
+ transform: translateY(0);
188
+ }
189
+ }
190
+ }
191
+
192
+ /* ===== Custom Utility Classes ===== */
193
+
194
+ .text-glow {
195
+ text-shadow: var(--shadow-text-glow);
196
+ }
197
+
198
+ .glass-panel {
199
+ backdrop-filter: blur(14px);
200
+ background: var(--glass-panel-background);
201
+ border: 1px solid var(--color-border);
202
+ box-shadow: var(--shadow-deep);
203
+ }
204
+
205
+ .accent-glow {
206
+ box-shadow: var(--shadow-accent-glow);
207
+ }
208
+
209
+ .hover-lift {
210
+ transition: all 0.3s var(--ease-luxe);
211
+ }
212
+
213
+ .hover-lift:hover {
214
+ transform: translateY(-3px) scale(1.02);
215
+ box-shadow:
216
+ var(--shadow-accent-glow),
217
+ var(--shadow-deep);
218
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrintel/villain-ui",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "A luxury Svelte 5 component library with a distinctive dark aesthetic, built with TypeScript and Tailwind CSS v4",
@@ -30,7 +30,7 @@
30
30
  "exports": {
31
31
  ".": {
32
32
  "types": "./dist/index.d.ts",
33
- "svelte": "./src/index.js",
33
+ "svelte": "./dist/index.js",
34
34
  "import": "./dist/index.js",
35
35
  "default": "./dist/index.js"
36
36
  },
@@ -49,8 +49,9 @@
49
49
  ],
50
50
  "scripts": {
51
51
  "dev": "vite",
52
- "build": "vite build",
52
+ "build": "svelte-package -i src -o dist",
53
53
  "type-check": "tsc --noEmit",
54
+ "clean": "rimraf dist",
54
55
  "check": "npm run type-check",
55
56
  "prepack": "npm run build",
56
57
  "prepublishOnly": "npm run build"
@@ -59,6 +60,7 @@
59
60
  "svelte": "^5.0.0"
60
61
  },
61
62
  "devDependencies": {
63
+ "@sveltejs/package": "^2.5.7",
62
64
  "@sveltejs/vite-plugin-svelte": "^6.2.1",
63
65
  "@tailwindcss/postcss": "^4.1.17",
64
66
  "@types/node": "^24.10.1",
@@ -66,8 +68,7 @@
66
68
  "svelte": "^5.45.2",
67
69
  "tailwindcss": "^4.1.17",
68
70
  "typescript": "^5.9.3",
69
- "vite": "^7.2.4",
70
- "vite-plugin-dts": "^4.5.4"
71
+ "vite": "^7.2.4"
71
72
  },
72
73
  "dependencies": {
73
74
  "nanoid": "^5.1.6"
package/dist/index.css DELETED
@@ -1 +0,0 @@
1
- input[type=checkbox].svelte-1ip9uuj:checked:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:10px;height:10px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='none'%3E%3Cpath d='M2 5L4 7L8 3' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}input[type=checkbox].svelte-zizzig:after{content:"";position:absolute;left:.25rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;border-radius:var(--radius-pill);background:var(--color-text);transition:all .3s var(--ease-luxe)}input[type=checkbox].svelte-zizzig:checked:after{transform:translate(1.25rem,-50%)}input[type=radio].svelte-1vvu266:checked:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:.625rem;height:.625rem;border-radius:var(--radius-pill);background:var(--color-accent);box-shadow:var(--shadow-accent-glow)}input[type=range].svelte-1jab628::-webkit-slider-thumb{appearance:none;width:1.25rem;height:1.25rem;border-radius:var(--radius-pill);background:var(--color-accent);box-shadow:var(--shadow-accent-glow);cursor:pointer;transition:transform .2s var(--ease-luxe)}input[type=range].svelte-1jab628::-webkit-slider-thumb:hover{transform:scale(1.1)}input[type=range].svelte-1jab628::-moz-range-thumb{appearance:none;width:1.25rem;height:1.25rem;border-radius:var(--radius-pill);background:var(--color-accent);box-shadow:var(--shadow-accent-glow);cursor:pointer;transition:transform .2s var(--ease-luxe);border:none}input[type=range].svelte-1jab628::-moz-range-thumb:hover{transform:scale(1.1)}input[type=range].svelte-1jab628:focus::-webkit-slider-thumb{box-shadow:var(--shadow-accent-glow),0 0 0 3px var(--color-base-1),0 0 0 5px var(--color-accent)}input[type=range].svelte-1jab628:focus::-moz-range-thumb{box-shadow:var(--shadow-accent-glow),0 0 0 3px var(--color-base-1),0 0 0 5px var(--color-accent)}input[type=range].svelte-1jab628:disabled::-webkit-slider-thumb{cursor:not-allowed}input[type=range].svelte-1jab628:disabled::-moz-range-thumb{cursor:not-allowed}.sr-only.svelte-1tlg6ol{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skeleton-shimmer.svelte-z940em{position:relative;overflow:hidden}.skeleton-shimmer.svelte-z940em:before{content:"";position:absolute;top:0;left:0;width:200%;height:100%;background:linear-gradient(90deg,transparent,rgba(127,61,255,.1),transparent);animation:svelte-z940em-shimmer 1.5s ease-in-out infinite}@keyframes svelte-z940em-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}div.svelte-1blwye3::-webkit-scrollbar{width:8px}div.svelte-1blwye3::-webkit-scrollbar-track{background:var(--color-base-3);border-radius:var(--radius-sm)}div.svelte-1blwye3::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:var(--radius-sm)}div.svelte-1blwye3::-webkit-scrollbar-thumb:hover{background:var(--color-accent-soft)}div[role=listbox].svelte-1whui3e::-webkit-scrollbar{width:8px}div[role=listbox].svelte-1whui3e::-webkit-scrollbar-track{background:var(--color-base-3);border-radius:var(--radius-sm)}div[role=listbox].svelte-1whui3e::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:var(--radius-sm)}div[role=listbox].svelte-1whui3e::-webkit-scrollbar-thumb:hover{background:var(--color-accent-soft)}.mrdv-table.svelte-168is8x thead{background:var(--color-base-2);border-bottom:2px solid var(--color-border-strong)}.mrdv-table.svelte-168is8x thead th{color:var(--color-text);font-weight:600;text-transform:uppercase;letter-spacing:.05em;text-align:left}.mrdv-table.compact.svelte-168is8x th,.mrdv-table.compact.svelte-168is8x td{padding:.5rem 1rem}.mrdv-table.svelte-168is8x:not(.compact) th,.mrdv-table.svelte-168is8x:not(.compact) td{padding:1rem 1.5rem}.mrdv-table.svelte-168is8x tbody{position:relative;z-index:1}.mrdv-table.svelte-168is8x tbody tr{border-bottom:1px solid var(--color-border);transition:all var(--ease-luxe)}.mrdv-table.hoverable.svelte-168is8x tbody tr:hover{background:#7f3dff0d;transform:translateY(-1px);box-shadow:0 2px 8px #0003,var(--shadow-accent-glow)}.mrdv-table.striped.svelte-168is8x tbody tr:nth-child(2n){background:#ffffff05}.mrdv-table.striped.hoverable.svelte-168is8x tbody tr:nth-child(2n):hover{background:#7f3dff0d;transform:translateY(-1px);box-shadow:0 2px 8px #0003,var(--shadow-accent-glow)}.mrdv-table.svelte-168is8x th,.mrdv-table.svelte-168is8x td{text-align:left}button.active.svelte-1800ptl{background:var(--color-accent);color:var(--color-text);cursor:default}button.active.svelte-1800ptl{box-shadow:0 0 20px #7f3dff80}button.inactive.svelte-1800ptl{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}button.inactive.svelte-1800ptl:hover{background:#7f3dff1a;border-color:var(--color-accent)}ul.svelte-18do019{margin:0;padding:0;color:var(--color-text);font-family:var(--font-body)}ul.plain>li{padding:.5rem 0}ul.bordered>li{padding:.75rem 1rem}ul.divided>li{padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}ul.divided>li:last-child{border-bottom:none}ul.hoverable>li{transition:all var(--ease-luxe);cursor:pointer}ul.hoverable>li:hover{background:#7f3dff0d}div.svelte-x44t5r::-webkit-scrollbar{height:8px}div.svelte-x44t5r::-webkit-scrollbar-track{background:var(--color-base-1)}div.svelte-x44t5r::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:var(--radius-sm)}div.svelte-x44t5r::-webkit-scrollbar-thumb:hover{background:var(--color-accent-soft)}.highlighted.svelte-x44t5r{background:#7f3dff1a}.line.highlighted{background:#7f3dff1a;display:inline-block;width:100%}