@lukeashford/aurelius 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 lukeashford
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Aurelius
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@lukeashford/aurelius.svg)](https://www.npmjs.com/package/@lukeashford/aurelius)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
3
6
  **A dark-mode design system for creative technologists** — combining technical sophistication with a
4
7
  cinematic aesthetic.
5
8
 
@@ -56,19 +59,23 @@ npm install @lukeashford/aurelius
56
59
  npm install -D eslint eslint-plugin-tailwindcss
57
60
  ```
58
61
 
59
- ### 2. Configure Tailwind
62
+ ### 2. Import the design system
60
63
 
61
- ```javascript
62
- // tailwind.config.js
63
- const aureliusPreset = require('@lukeashford/aurelius/tailwind.preset')
64
+ Create or update your `index.css`:
64
65
 
65
- module.exports = {
66
- presets: [aureliusPreset],
67
- content: [
68
- './src/**/*.{js,ts,jsx,tsx}',
69
- './node_modules/@lukeashford/aurelius/dist/**/*.{js,mjs}',
70
- ],
71
- }
66
+ ```css
67
+ /* Import the complete Aurelius design system (includes Tailwind v4, fonts, and theme) */
68
+ @import '@lukeashford/aurelius/styles/base.css';
69
+
70
+ /* Tell Tailwind to scan the Aurelius package for utility classes */
71
+ @source "../node_modules/@lukeashford/aurelius/dist";
72
+ ```
73
+
74
+ Then import it in your entry file:
75
+
76
+ ```typescript
77
+ // main.tsx or index.tsx
78
+ import './index.css'
72
79
  ```
73
80
 
74
81
  ### 3. Configure ESLint
@@ -87,15 +94,13 @@ export default [
87
94
  'tailwindcss/no-arbitrary-value': 'error',
88
95
  'tailwindcss/no-custom-classname': 'error',
89
96
  },
90
- settings: {
91
- tailwindcss: {config: './tailwind.config.js'},
92
- },
93
97
  },
94
98
  ];
95
99
  ```
96
100
 
97
101
  <details>
98
102
  <summary>Legacy .eslintrc.js format</summary>
103
+
99
104
  ```javascript
100
105
  module.exports = {
101
106
  plugins: ['tailwindcss'],
@@ -103,11 +108,9 @@ module.exports = {
103
108
  'tailwindcss/no-arbitrary-value': 'error',
104
109
  'tailwindcss/no-custom-classname': 'error',
105
110
  },
106
- settings: {
107
- tailwindcss: { config: './tailwind.config.js' },
108
- },
109
111
  }
110
112
  ```
113
+
111
114
  </details>
112
115
 
113
116
  ### 4. Update package.json scripts
@@ -122,22 +125,7 @@ module.exports = {
122
125
  }
123
126
  ```
124
127
 
125
- ### 5. Import fonts and create index.css
126
-
127
- ```typescript
128
- // main.tsx
129
- import '@lukeashford/aurelius/styles/fonts.css'
130
- import './index.css'
131
- ```
132
-
133
- ```css
134
- /* index.css */
135
- @tailwind base;
136
- @tailwind components;
137
- @tailwind utilities;
138
- ```
139
-
140
- ### 6. Use components
128
+ ### 5. Use components
141
129
 
142
130
  ```tsx
143
131
  import {Button, Card, Input} from '@lukeashford/aurelius'
@@ -155,15 +143,4 @@ function LoginForm() {
155
143
  }
156
144
  ```
157
145
 
158
- ---
159
-
160
- ## Non-Tailwind Users
161
-
162
- Import the precompiled CSS instead:
163
-
164
- ```typescript
165
- // main.tsx
166
- import '@lukeashford/aurelius/styles/base.css'
167
- ```
168
-
169
- This includes all base styles, utilities, and fonts. Components work identically.
146
+ ---
package/dist/index.d.mts CHANGED
@@ -1,7 +1,4 @@
1
- export { default as tailwindPreset } from './tailwind.preset.mjs';
2
- export { ColorToken, DurationToken, EasingToken, RadiusToken, ShadowToken, SpacingToken, TypographyToken, colors, duration, easing, radii, shadows, spacing, typography } from './tokens/index.mjs';
3
1
  import React from 'react';
4
- import 'tailwindcss';
5
2
 
6
3
  type ButtonVariant = 'primary' | 'important' | 'elevated' | 'outlined' | 'featured' | 'ghost' | 'danger';
7
4
  type ButtonSize = 'sm' | 'md' | 'lg' | 'xl';
@@ -27,12 +24,13 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
27
24
  declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
28
25
 
29
26
  type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
27
+ type AvatarStatus = 'online' | 'offline' | 'busy';
30
28
  interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
31
29
  src?: string;
32
30
  alt?: string;
33
31
  name?: string;
34
32
  size?: AvatarSize;
35
- status?: 'online' | 'offline' | 'busy';
33
+ status?: AvatarStatus;
36
34
  }
37
35
  declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
38
36
 
@@ -42,11 +40,12 @@ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
42
40
  }
43
41
  declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
44
42
 
43
+ type TooltipSide = 'top' | 'right' | 'bottom' | 'left';
45
44
  interface TooltipProps {
46
45
  content: React.ReactNode;
47
46
  children: React.ReactElement;
48
47
  open?: boolean;
49
- side?: 'top' | 'right' | 'bottom' | 'left';
48
+ side?: TooltipSide;
50
49
  }
51
50
  declare const Tooltip: React.FC<TooltipProps>;
52
51
 
@@ -100,8 +99,9 @@ interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
100
99
  }
101
100
  declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
102
101
 
102
+ type SpinnerSize = 'sm' | 'md' | 'lg';
103
103
  interface SpinnerProps extends React.SVGAttributes<SVGElement> {
104
- size?: 'sm' | 'md' | 'lg';
104
+ size?: SpinnerSize;
105
105
  }
106
106
  declare const Spinner: {
107
107
  ({ className, size, ...rest }: SpinnerProps): React.JSX.Element;
@@ -129,8 +129,11 @@ declare const Modal: {
129
129
  *
130
130
  * A cohesive visual language for creative technologists.
131
131
  * Combines technical sophistication with artistic sensibility.
132
+ *
133
+ * CSS-first Tailwind v4 design system.
134
+ * Import '@lukeashford/aurelius/styles/base.css' for complete styling.
132
135
  */
133
136
 
134
- declare const version = "1.0.0";
137
+ declare const version = "2.0.0";
135
138
 
136
139
  export { Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardVariant, Checkbox, type CheckboxProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, Modal, type ModalProps, Radio, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Switch, type SwitchProps, Textarea, type TextareaProps, Tooltip, type TooltipProps, version };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,4 @@
1
- export { default as tailwindPreset } from './tailwind.preset.js';
2
- export { ColorToken, DurationToken, EasingToken, RadiusToken, ShadowToken, SpacingToken, TypographyToken, colors, duration, easing, radii, shadows, spacing, typography } from './tokens/index.js';
3
1
  import React from 'react';
4
- import 'tailwindcss';
5
2
 
6
3
  type ButtonVariant = 'primary' | 'important' | 'elevated' | 'outlined' | 'featured' | 'ghost' | 'danger';
7
4
  type ButtonSize = 'sm' | 'md' | 'lg' | 'xl';
@@ -27,12 +24,13 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
27
24
  declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
28
25
 
29
26
  type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
27
+ type AvatarStatus = 'online' | 'offline' | 'busy';
30
28
  interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
31
29
  src?: string;
32
30
  alt?: string;
33
31
  name?: string;
34
32
  size?: AvatarSize;
35
- status?: 'online' | 'offline' | 'busy';
33
+ status?: AvatarStatus;
36
34
  }
37
35
  declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
38
36
 
@@ -42,11 +40,12 @@ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
42
40
  }
43
41
  declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
44
42
 
43
+ type TooltipSide = 'top' | 'right' | 'bottom' | 'left';
45
44
  interface TooltipProps {
46
45
  content: React.ReactNode;
47
46
  children: React.ReactElement;
48
47
  open?: boolean;
49
- side?: 'top' | 'right' | 'bottom' | 'left';
48
+ side?: TooltipSide;
50
49
  }
51
50
  declare const Tooltip: React.FC<TooltipProps>;
52
51
 
@@ -100,8 +99,9 @@ interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
100
99
  }
101
100
  declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
102
101
 
102
+ type SpinnerSize = 'sm' | 'md' | 'lg';
103
103
  interface SpinnerProps extends React.SVGAttributes<SVGElement> {
104
- size?: 'sm' | 'md' | 'lg';
104
+ size?: SpinnerSize;
105
105
  }
106
106
  declare const Spinner: {
107
107
  ({ className, size, ...rest }: SpinnerProps): React.JSX.Element;
@@ -129,8 +129,11 @@ declare const Modal: {
129
129
  *
130
130
  * A cohesive visual language for creative technologists.
131
131
  * Combines technical sophistication with artistic sensibility.
132
+ *
133
+ * CSS-first Tailwind v4 design system.
134
+ * Import '@lukeashford/aurelius/styles/base.css' for complete styling.
132
135
  */
133
136
 
134
- declare const version = "1.0.0";
137
+ declare const version = "2.0.0";
135
138
 
136
139
  export { Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardVariant, Checkbox, type CheckboxProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, Modal, type ModalProps, Radio, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Switch, type SwitchProps, Textarea, type TextareaProps, Tooltip, type TooltipProps, version };
package/dist/index.js CHANGED
@@ -47,389 +47,10 @@ __export(index_exports, {
47
47
  Switch: () => Switch,
48
48
  Textarea: () => Textarea,
49
49
  Tooltip: () => Tooltip,
50
- colors: () => colors,
51
- duration: () => duration,
52
- easing: () => easing,
53
- radii: () => radii,
54
- shadows: () => shadows,
55
- spacing: () => spacing,
56
- tailwindPreset: () => tailwind_preset_default,
57
- typography: () => typography,
58
50
  version: () => version
59
51
  });
60
52
  module.exports = __toCommonJS(index_exports);
61
53
 
62
- // src/tailwind.preset.ts
63
- var import_plugin = __toESM(require("tailwindcss/plugin"));
64
-
65
- // src/tokens/colors.ts
66
- var colors = {
67
- // Black spectrum
68
- void: "#000000",
69
- obsidian: "#0a0a0a",
70
- charcoal: "#141414",
71
- graphite: "#1f1f1f",
72
- slate: "#2a2a2a",
73
- ash: "#3d3d3d",
74
- // Gold spectrum
75
- gold: "#c9a227",
76
- goldLight: "#d4b84a",
77
- goldBright: "#e5c84d",
78
- goldMuted: "#8b7355",
79
- goldPale: "#d4c4a8",
80
- goldGlow: "rgba(201, 162, 39, 0.15)",
81
- // Neutrals
82
- white: "#ffffff",
83
- silver: "#a3a3a3",
84
- zinc: "#71717a",
85
- dim: "#52525b",
86
- // Semantic
87
- success: "#22c55e",
88
- successMuted: "#166534",
89
- error: "#dc2626",
90
- errorMuted: "#991b1b",
91
- warning: "#d97706",
92
- warningMuted: "#92400e",
93
- info: "#0ea5e9",
94
- infoMuted: "#0369a1"
95
- };
96
-
97
- // src/tokens/typography.ts
98
- var typography = {
99
- // Headings use Marcellus, a classic serif
100
- fontHeading: ["Marcellus", "serif"],
101
- // Body and UI use Raleway
102
- fontBody: ["Raleway", "system-ui", "sans-serif"],
103
- fontMono: ["JetBrains Mono", "Fira Code", "SF Mono", "monospace"],
104
- fontSize: {
105
- xs: ["0.75rem", { lineHeight: "1rem" }],
106
- sm: ["0.875rem", { lineHeight: "1.25rem" }],
107
- base: ["1rem", { lineHeight: "1.5rem" }],
108
- lg: ["1.125rem", { lineHeight: "1.75rem" }],
109
- xl: ["1.25rem", { lineHeight: "1.75rem" }],
110
- "2xl": ["1.5rem", { lineHeight: "2rem" }],
111
- "3xl": ["1.875rem", { lineHeight: "2.25rem" }],
112
- "4xl": ["2.25rem", { lineHeight: "2.5rem" }],
113
- "5xl": ["3rem", { lineHeight: "1" }],
114
- "6xl": ["3.75rem", { lineHeight: "1" }]
115
- },
116
- fontWeight: {
117
- normal: "400",
118
- medium: "500",
119
- semibold: "600",
120
- bold: "700"
121
- },
122
- lineHeight: {
123
- none: "1",
124
- tight: "1.25",
125
- snug: "1.375",
126
- normal: "1.5",
127
- relaxed: "1.625",
128
- loose: "2"
129
- },
130
- letterSpacing: {
131
- tighter: "-0.05em",
132
- tight: "-0.025em",
133
- normal: "0",
134
- wide: "0.025em",
135
- wider: "0.05em",
136
- widest: "0.1em"
137
- }
138
- };
139
-
140
- // src/tokens/spacing.ts
141
- var spacing = {
142
- px: "1px",
143
- 0: "0",
144
- 0.5: "0.125rem",
145
- 1: "0.25rem",
146
- 1.5: "0.375rem",
147
- 2: "0.5rem",
148
- 2.5: "0.625rem",
149
- 3: "0.75rem",
150
- 3.5: "0.875rem",
151
- 4: "1rem",
152
- 5: "1.25rem",
153
- 6: "1.5rem",
154
- 7: "1.75rem",
155
- 8: "2rem",
156
- 9: "2.25rem",
157
- 10: "2.5rem",
158
- 11: "2.75rem",
159
- 12: "3rem",
160
- 14: "3.5rem",
161
- 16: "4rem",
162
- 20: "5rem",
163
- 24: "6rem",
164
- 28: "7rem",
165
- 32: "8rem"
166
- };
167
-
168
- // src/tokens/shadows.ts
169
- var shadows = {
170
- sm: "0 1px 2px 0 rgba(0, 0, 0, 0.4)",
171
- md: "0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3)",
172
- lg: "0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.3)",
173
- xl: "0 20px 25px -5px rgba(0, 0, 0, 0.4), 0 8px 10px -6px rgba(0, 0, 0, 0.3)",
174
- "2xl": "0 25px 50px -12px rgba(0, 0, 0, 0.5)",
175
- glow: "0 0 20px rgba(201, 162, 39, 0.3)",
176
- "glow-sm": "0 0 10px rgba(201, 162, 39, 0.2)",
177
- "glow-lg": "0 0 40px rgba(201, 162, 39, 0.4)",
178
- inner: "inset 0 2px 4px 0 rgba(0, 0, 0, 0.3)"
179
- };
180
-
181
- // src/tokens/transitions.ts
182
- var duration = {
183
- instant: "75ms",
184
- fast: "150ms",
185
- normal: "200ms",
186
- slow: "300ms",
187
- slower: "500ms"
188
- };
189
- var easing = {
190
- smooth: "cubic-bezier(0.16, 1, 0.3, 1)",
191
- snap: "cubic-bezier(0.5, 0, 0.1, 1)"
192
- };
193
-
194
- // src/tokens/radii.ts
195
- var radii = {
196
- sm: "0.125rem",
197
- md: "0.25rem",
198
- lg: "0.375rem",
199
- xl: "0.5rem",
200
- "2xl": "0.75rem",
201
- "3xl": "1rem",
202
- full: "9999px"
203
- };
204
-
205
- // src/tailwind.preset.ts
206
- var aureliusPlugin = (0, import_plugin.default)(function({ addBase, addUtilities, theme }) {
207
- addBase({
208
- "html": {
209
- fontFamily: theme("fontFamily.body"),
210
- backgroundColor: theme("colors.obsidian"),
211
- color: theme("colors.white"),
212
- "-webkit-font-smoothing": "antialiased",
213
- "-moz-osx-font-smoothing": "grayscale"
214
- },
215
- "body": {
216
- minHeight: "100vh",
217
- lineHeight: "1.5"
218
- },
219
- "table": {
220
- borderCollapse: "collapse",
221
- width: "100%"
222
- },
223
- "table, th, td": {
224
- border: `1px solid ${theme("colors.gold.muted")}`
225
- },
226
- "th, td": {
227
- padding: "0.5rem 0.75rem"
228
- },
229
- "table:hover": {
230
- boxShadow: theme("boxShadow.glow")
231
- },
232
- "progress": {
233
- appearance: "none",
234
- "-webkit-appearance": "none",
235
- border: `1px solid ${theme("colors.gold.muted")}`,
236
- borderRadius: "0",
237
- backgroundColor: theme("colors.charcoal"),
238
- width: "100%",
239
- height: "0.5rem"
240
- },
241
- "progress::-webkit-progress-bar": {
242
- backgroundColor: theme("colors.charcoal")
243
- },
244
- "progress::-webkit-progress-value": {
245
- backgroundColor: theme("colors.gold.DEFAULT")
246
- },
247
- "progress::-moz-progress-bar": {
248
- backgroundColor: theme("colors.gold.DEFAULT")
249
- },
250
- "h1, h2, h3, h4, h5, h6": {
251
- fontFamily: theme("fontFamily.heading"),
252
- fontWeight: "600",
253
- letterSpacing: "-0.025em",
254
- color: theme("colors.white")
255
- },
256
- "h1": { fontSize: "2.25rem", lineHeight: "1.25" },
257
- "h2": { fontSize: "1.875rem", lineHeight: "1.25" },
258
- "h3": { fontSize: "1.5rem", lineHeight: "1.375" },
259
- "h4": { fontSize: "1.25rem", lineHeight: "1.375" },
260
- "h5": { fontSize: "1.125rem", lineHeight: "1.5" },
261
- "h6": { fontSize: "1rem", lineHeight: "1.5" },
262
- "code, pre, kbd, samp": {
263
- fontFamily: theme("fontFamily.mono"),
264
- fontSize: "0.875em"
265
- },
266
- "a": {
267
- color: theme("colors.gold.DEFAULT"),
268
- textDecoration: "none",
269
- transition: `color ${theme("transitionDuration.fast")} ease-out`
270
- },
271
- "a:hover": {
272
- color: theme("colors.gold.light")
273
- },
274
- ":focus-visible": {
275
- outline: `2px solid ${theme("colors.gold.DEFAULT")}`,
276
- outlineOffset: "2px"
277
- },
278
- "::selection": {
279
- backgroundColor: theme("colors.gold.DEFAULT"),
280
- color: theme("colors.obsidian")
281
- },
282
- "::-webkit-scrollbar": { width: "8px", height: "8px" },
283
- "::-webkit-scrollbar-track": { background: theme("colors.charcoal") },
284
- "::-webkit-scrollbar-thumb": {
285
- background: theme("colors.ash"),
286
- borderRadius: theme("borderRadius.full")
287
- },
288
- "::-webkit-scrollbar-thumb:hover": { background: theme("colors.silver") }
289
- });
290
- addUtilities({
291
- ".text-gradient-gold": {
292
- background: `linear-gradient(to right, ${theme("colors.gold.DEFAULT")}, ${theme(
293
- "colors.gold.light"
294
- )}, ${theme("colors.gold.DEFAULT")})`,
295
- "-webkit-background-clip": "text",
296
- "background-clip": "text",
297
- color: "transparent"
298
- },
299
- ".glow": { boxShadow: theme("boxShadow.glow") },
300
- ".glow-sm": { boxShadow: theme("boxShadow.glow-sm") },
301
- ".glow-lg": { boxShadow: theme("boxShadow.glow-lg") },
302
- ".scroll-smooth": {
303
- scrollBehavior: "smooth",
304
- "-webkit-overflow-scrolling": "touch"
305
- },
306
- ".scrollbar-hide": {
307
- "-ms-overflow-style": "none",
308
- "scrollbar-width": "none",
309
- "&::-webkit-scrollbar": { display: "none" }
310
- },
311
- ".backdrop-glass": {
312
- backdropFilter: "blur(12px)",
313
- backgroundColor: "rgba(20, 20, 20, 0.8)"
314
- },
315
- ".focus-ring": {
316
- "&:focus-visible": {
317
- outline: "2px solid #c9a227",
318
- outlineOffset: "2px"
319
- }
320
- },
321
- ".line-clamp-2": {
322
- display: "-webkit-box",
323
- "-webkit-line-clamp": "2",
324
- "-webkit-box-orient": "vertical",
325
- overflow: "hidden"
326
- },
327
- ".line-clamp-3": {
328
- display: "-webkit-box",
329
- "-webkit-line-clamp": "3",
330
- "-webkit-box-orient": "vertical",
331
- overflow: "hidden"
332
- },
333
- ".center-absolute": {
334
- position: "absolute",
335
- top: "50%",
336
- left: "50%",
337
- transform: "translate(-50%, -50%)"
338
- }
339
- });
340
- });
341
- var preset = {
342
- theme: {
343
- extend: {
344
- colors: {
345
- // Black spectrum
346
- void: colors.void,
347
- obsidian: colors.obsidian,
348
- charcoal: colors.charcoal,
349
- graphite: colors.graphite,
350
- slate: colors.slate,
351
- ash: colors.ash,
352
- // Gold spectrum
353
- gold: {
354
- DEFAULT: colors.gold,
355
- light: colors.goldLight,
356
- bright: colors.goldBright,
357
- muted: colors.goldMuted,
358
- pale: colors.goldPale,
359
- glow: colors.goldGlow
360
- },
361
- // Neutrals
362
- white: colors.white,
363
- silver: colors.silver,
364
- zinc: colors.zinc,
365
- dim: colors.dim,
366
- // Semantic
367
- success: {
368
- DEFAULT: colors.success,
369
- muted: colors.successMuted
370
- },
371
- error: {
372
- DEFAULT: colors.error,
373
- muted: colors.errorMuted
374
- },
375
- warning: {
376
- DEFAULT: colors.warning,
377
- muted: colors.warningMuted
378
- },
379
- info: {
380
- DEFAULT: colors.info,
381
- muted: colors.infoMuted
382
- }
383
- },
384
- fontFamily: {
385
- heading: typography.fontHeading,
386
- body: typography.fontBody,
387
- mono: typography.fontMono
388
- },
389
- fontSize: typography.fontSize,
390
- fontWeight: typography.fontWeight,
391
- lineHeight: typography.lineHeight,
392
- letterSpacing: typography.letterSpacing,
393
- spacing,
394
- borderRadius: radii,
395
- boxShadow: shadows,
396
- transitionDuration: duration,
397
- transitionTimingFunction: easing,
398
- animation: {
399
- "fade-in": "fade-in 200ms ease-out",
400
- "fade-out": "fade-out 150ms ease-in",
401
- "slide-in-right": `slide-in-right 300ms ${easing.smooth}`,
402
- "slide-out-right": "slide-out-right 200ms ease-in",
403
- "pulse-glow": "pulse-glow 2s ease-in-out infinite"
404
- },
405
- keyframes: {
406
- "fade-in": {
407
- "0%": { opacity: "0" },
408
- "100%": { opacity: "1" }
409
- },
410
- "fade-out": {
411
- "0%": { opacity: "1" },
412
- "100%": { opacity: "0" }
413
- },
414
- "slide-in-right": {
415
- "0%": { transform: "translateX(100%)", opacity: "0" },
416
- "100%": { transform: "translateX(0)", opacity: "1" }
417
- },
418
- "slide-out-right": {
419
- "0%": { transform: "translateX(0)", opacity: "1" },
420
- "100%": { transform: "translateX(100%)", opacity: "0" }
421
- },
422
- "pulse-glow": {
423
- "0%, 100%": { boxShadow: "0 0 20px rgba(201, 162, 39, 0.3)" },
424
- "50%": { boxShadow: "0 0 30px rgba(201, 162, 39, 0.5)" }
425
- }
426
- }
427
- }
428
- },
429
- plugins: [aureliusPlugin]
430
- };
431
- var tailwind_preset_default = preset;
432
-
433
54
  // src/components/Button.tsx
434
55
  var import_react = __toESM(require("react"));
435
56
  function cx(...classes) {
@@ -493,7 +114,7 @@ var Input = import_react2.default.forwardRef(
493
114
  className: cx2(
494
115
  base,
495
116
  errorCls,
496
- (leadingIcon || trailingIcon) && "pl-9 pr-9",
117
+ leadingIcon || trailingIcon ? "pl-9 pr-9" : false,
497
118
  className
498
119
  ),
499
120
  disabled,
@@ -519,7 +140,7 @@ var Card = import_react3.default.forwardRef(
519
140
  ghost: "bg-transparent shadow-none border-0",
520
141
  featured: "bg-charcoal border border-gold shadow-[0_0_10px_rgba(201,162,39,0.2)]"
521
142
  };
522
- const interactiveClass = interactive ? "transition-all duration-normal hover:border-gold hover:shadow-glow cursor-pointer" : "";
143
+ const interactiveClass = interactive ? "transition-all duration-200 hover:border-gold hover:shadow-glow cursor-pointer" : "";
523
144
  const variantClass = variantClasses[variant];
524
145
  return /* @__PURE__ */ import_react3.default.createElement(
525
146
  "div",
@@ -1062,7 +683,7 @@ var Modal = ({ isOpen, onClose, title, children, className }) => {
1062
683
  Modal.displayName = "Modal";
1063
684
 
1064
685
  // src/index.ts
1065
- var version = "1.0.0";
686
+ var version = "2.0.0";
1066
687
  // Annotate the CommonJS export names for ESM import in node:
1067
688
  0 && (module.exports = {
1068
689
  Alert,
@@ -1082,14 +703,6 @@ var version = "1.0.0";
1082
703
  Switch,
1083
704
  Textarea,
1084
705
  Tooltip,
1085
- colors,
1086
- duration,
1087
- easing,
1088
- radii,
1089
- shadows,
1090
- spacing,
1091
- tailwindPreset,
1092
- typography,
1093
706
  version
1094
707
  });
1095
708
  //# sourceMappingURL=index.js.map